1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

PEX UUID

Тема в разделе "Управление сервером Bukkit", создана пользователем Dwool, 28 сен 2014.

  1. Автор темы
    Dwool

    Dwool Активный участник Пользователь

    Баллы:
    68
    Здравствуйте! Меня интересует такой вопрос. Имеется интегрированный с БД PEX и ЛК. Так вот, при покупки, допустим, префикса перед ником, игроку присваивается номер (UUID) и расшифровка ника:
    [​IMG]
    И потом все ники (например, в группах) этого игрока заменяются на на этот номер. И получается, что ЛК не распознает игрока, коем образом, не может вывести дату окончания группы, и если игрок покупает группу, ник моментально зашифровается, и в итоге - на сервере группа есть, а в ЛК отображается, что группы нет.

    Что с этим делать?
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Переписывать лк.
     
  3. Автор темы
    Dwool

    Dwool Активный участник Пользователь

    Баллы:
    68
    А как быть с тем, что плагин не всегда записывает UUID пользователя и его ник?
     
  4. oleg57zls

    oleg57zls Старожил Пользователь

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Есть ли ЛК переписанные под это?
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Всегда он записывает, когда игрок будет вигре его uuid запишется.
    Можете юзать uuid.php для перевода ника.
    https://github.com/alexandrage/Fix-Sashok/blob/master/site/uuid.php
     
  6. NewRut

    NewRut Активный участник Пользователь

    Баллы:
    63
    Имя в Minecraft:
    NewRut
    Но записывается без дефисов
     
  7. Kirich

    Kirich Активный участник Пользователь

    Баллы:
    78
    Функцию добавления в таблицу нужно переписать
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Че ты гонишь? uuid.php ставит дефисы. Вот даже в коде видно форматирование
    sprintf(
    '%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x',
     
  9. NewRut

    NewRut Активный участник Пользователь

    Баллы:
    63
    Имя в Minecraft:
    NewRut
    http://prntscr.com/8z985r
    362c11577a7736eca85f1626e476a03c = NewRut
    Должен быть: 362c1157-7a77-36ec-a85f-1626e476a03c

    <?php
    //by mssmaks
    function uuidFromString($string) {
    $val = md5($string, true);
    $byte = array_values(unpack('C16', $val));
    $tLo = ($byte[0] << 24) | ($byte[1] << 16) | ($byte[2] << 8) | $byte[3];
    $tMi = ($byte[4] << 8) | $byte[5];
    $tHi = ($byte[6] << 8) | $byte[7];
    $csLo = $byte[9];
    $csHi = $byte[8] & 0x3f | (1 << 7);
    if (pack('L', 0x6162797A) == pack('N', 0x6162797A)) {
    $tLo = (($tLo & 0x000000ff) << 24) | (($tLo & 0x0000ff00) << 8) | (($tLo & 0x00ff0000) >> 8) | (($tLo & 0xff000000) >> 24);
    $tMi = (($tMi & 0x00ff) << 8) | (($tMi & 0xff00) >> 8);
    $tHi = (($tHi & 0x00ff) << 8) | (($tHi & 0xff00) >> 8);
    }
    $tHi &= 0x0fff;
    $tHi |= (3 << 12);

    $uuid = sprintf(
    '%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x',
    $tLo, $tMi, $tHi, $csHi, $csLo,
    $byte[10], $byte[11], $byte[12], $byte[13], $byte[14], $byte[15]
    );
    return $uuid;
    }
    function uuidConvert($string)
    {
    $string = uuidFromString("OfflinePlayer:".$string);
    return $string;
    }​
    //uuidConvert($_GET['nick']);

    Все решено:
    Надо добавить дефис в launcher.php
    $stmt->bindValue(':md5', str_replace('-', '-', uuidConvert($realUser)));
    было: $stmt->bindValue(':md5', str_replace('-', '', uuidConvert($realUser)));
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Просто убрать str_replace надо было.
    $stmt->bindValue(':md5', uuidConvert($realUser));
     
  11. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    В новых версиях UUID идёт вместо ника. Все работы с игроком надо проводить через UUID.
     

Поделиться этой страницей