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

Помогите Как форматировать UUID в формат #00000

Тема в разделе "Помощь", создана пользователем mieslefd, 7 фев 2023.

Метки:
  1. Автор темы
    mieslefd

    mieslefd Ньюби Пользователь

    Баллы:
    1
    Нужно форматировать плейсхолдер %player_uuid% в формат #00000 вместо основного формата уникального идентификатора игрока
     
  2. HauserGrim

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

    Баллы:
    96
    Если даже придумать конвертер UUID в цифру, то сами числа будут получатся намного длиннее, чем UUID. Так как вариантов UUID огромное количество.
    Проще при входе игрока генерировать ему число и сохранять в базу. Сомневаюсь, что такие плагины легко найти в паблике, если кто-то и писал. Так что писать или заказывать.
     
  3. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Для чего его так форматировать? Какая конечная задача?
    Технически довольно легко перевести в число, но зачем?
     
  4. Автор темы
    mieslefd

    mieslefd Ньюби Пользователь

    Баллы:
    1
    для присваивания порядкового номера каждому вошедшему игроку
    Формат как я и указывал: #00000 - #99999
     
  5. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    UUID - это не порядковый номер, а практически случайный номер. Вот так выглядит UUID в числовом виде:
    170141183460469231740910675752738881536

    Если тебе нужен именно порядковый номер - UUID тебе не поможет. Используй либо какой-то другой плейсхолдер, либо вовсе другой плагин.

    Если надо - вот код перевода UUID в число:
    String uuidString = new BigInteger(uuid.toString().replace("-", ""), 16).toString();
    Любой программист сможет сделать плейсхолдер
     
  6. Автор темы
    mieslefd

    mieslefd Ньюби Пользователь

    Баллы:
    1
    я пробовал сделать свой плейсхолдер, так как не нашёл альтернатив:

    package PassNumP;

    import me.clip.placeholderapi.expansion.PlaceholderExpansion;
    import org.bukkit.entity.Player;

    public class PassNumberExpansion extends PlaceholderExpansion {

    private static int nextPassNumber = 1;


    public String getIdentifier() {
    return "pass_num";
    }


    public String getAuthor() {
    return "AuthorName";
    }


    public String getVersion() {
    return "1.0";
    }


    public String onRequest(Player player, String identifier) {

    if (player == null) {
    return "";
    }

    int passNumber = nextPassNumber++;

    return String.format("#%05d", passNumber);
    }

    }

    при добавлении в ChestCommands плейсхолдера %pass_num% ничего не происходит, должно выводить номер паспорта в формате #00000

    но не работает
     

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