Помогите Получение Material по id в 1.14

Studenikin

Старожил
Пользователь
Баллы
123
Имя в Minecraft
stuvanya
Всем привет. Переписываю плагин под 1.14, и столкнулся с проблемой, что нельзя получить Material по id предмета (getById(int id) больше нет)
Есть ли другие варианты получения Material по id предмета?
 
В том что первый вернет null если нету, второй ексепшен кинет.
слушай, еще вопрос
было
net.minecraft.server.v1_12_R1.Block.getByName(String name)
сейчас в v1_14_R1 вообще ничего похожего нет, только
getByCombinedId(int id)
Как быть?
 
Забудь про id. Нету больше такого. Material.matchMaterial(name)
Вообще, в классе Material присутствуют материалы с префиксами LEGACY_ и старыми id (по крайней мере в 1.13).
Но вот в Material.values() их нет. Видимо ядро удаляет их из энама прямо при загрузке.
Однако, возможно, это получится как-то обойти...
 
Вообще, в классе Material присутствуют материалы с префиксами LEGACY_ и старыми id (по крайней мере в 1.13).
Но вот в Material.values() их нет. Видимо ядро удаляет их из энама прямо при загрузке.
Однако, возможно, это получится как-то обойти...
Не поможет, у новых стаков нет LEGACY, а id с потолка будете брать и эту затычку для старых плагинов потом уберут со временем.
 
Не поможет, у новых стаков нет LEGACY
Legacy + derability можно без проблем конвертировать в новый материал. Тут вопрос в том, как его получить этот legacy.
и эту затычку для старых плагинов потом уберут со временем.
Да понятно.
Но для самых упёртых можно записать список материалов в конфиг с их легаси-айдишниками.
И потом уже оттуда читать хоть до посинения.
Подозреваю, всё это можно получить, если не указывать api-version в plugin.yml
 
Вот вам делать то нечего. Юзать имена и не парится.
Точно. Можно написать конвертер из числовых айдишников в названия! И шобы автоматом конфиги всех плагинов на сервере обновило по преуказанным регуляркам
 
Пишу под 1.7.5, использую названия, я думал это неактуально уже лет 5...
 
Назад
Верх