[Решено] Как получить количество достижений у любого игрока

Статус
Закрыто для дальнейших ответов.

SashaBrine

Активный участник
Пользователь
Баллы
76
Здравствуйте,

Как узнать количество достиженей у любого игрока?
 
Не самый полезный ответ, учитывая, что предлагается NMS.

Могу предложить два варианта.
Во-первых, попросту подглядеть, как это сделано в расширении Advancements для PlaceholderAPI. Черт ногу сломит разобраться в этом месиве, но если потратить время, наверняка всё получится.
Во-вторых, попытаться перебрать Bukkit.advancementsIterator(); проверять является ли advancement достижением (открытые крафты тоже считаются advancement), например, по тому, появляются ли они в углу экрана/в чате; если да - проверять наличие достижения у игрока. Можно улучшить производительность, заранее собирая конкретно достижении при запуске сервера и перезагрузке датапаков, и проверять уже их у игрока. Можно пойти и дальше... но это уже твоё дело.
 
Не самый полезный ответ, учитывая, что предлагается NMS.

Могу предложить два варианта.
Во-первых, попросту подглядеть, как это сделано в расширении Advancements для PlaceholderAPI. Черт ногу сломит разобраться в этом месиве, но если потратить время, наверняка всё получится.
Во-вторых, попытаться перебрать Bukkit.advancementsIterator(); проверять является ли advancement достижением (открытые крафты тоже считаются advancement), например, по тому, появляются ли они в углу экрана/в чате; если да - проверять наличие достижения у игрока. Можно улучшить производительность, заранее собирая конкретно достижении при запуске сервера и перезагрузке датапаков, и проверять уже их у игрока. Можно пойти и дальше... но это уже твоё дело.
Дебри, чем NMS плох?
 
Дебри, чем NMS плох?
Тем, что это не API. NMS может меняться как и когда угодно - моджангам не требуется сохранять какую-либо обратную совместимость. Одно решение сейчас может запросто сломаться уже в следующей минорной версии (1.19>1.19.1).
 
Не самый полезный ответ, учитывая, что предлагается NMS.

Могу предложить два варианта.
Во-первых, попросту подглядеть, как это сделано в расширении Advancements для PlaceholderAPI. Черт ногу сломит разобраться в этом месиве, но если потратить время, наверняка всё получится.
Во-вторых, попытаться перебрать Bukkit.advancementsIterator(); проверять является ли advancement достижением (открытые крафты тоже считаются advancement), например, по тому, появляются ли они в углу экрана/в чате; если да - проверять наличие достижения у игрока. Можно улучшить производительность, заранее собирая конкретно достижении при запуске сервера и перезагрузке датапаков, и проверять уже их у игрока. Можно пойти и дальше... но это уже твоё дело.
Спасибо большое, я и искал расширение, вот и решил своё написать.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх