Можно ли с помощью аннотации ObjectHolder изменять свойства ванильных предметов и т.д?

Версия Minecraft
1.12.2
API
Forge
33
5
7
Java:
@ObjectHolder("minecraft:ender_eye")
public static final Item ENDER_EYE = null;
На что влиет параметр, переданный в аннотацию? Как это поле теперь можно использовать?
 
Решение
Эта штука позволяет призывать регистрируемый объект(блок, предмет, зачарование) в статическое поле, вот и все.
Если чот не сходится, то оно оставит null в поле, hard fail нет.
Но зато это способ получить регистрируемый объект из мода, если тот не предоставляет класса со своими статическими полями как ванильный Items.
Так же можно юзать ForgeRegistries.ITEMS.getValue(new ResourceLocation("minecraft:ender_eye"))

После того как каким-нить способом получил экземпляр предмета, можно вызвать какие-нить его методы, которые изменяют нужные тебе свойства, если такие методы есть.
Если нет, то можно:
  • зарегать новый предмет с тем же registry name, это перезапишет ванильный, сделать в своем как надо
  • хукнуться в класс предмета...
На что влиет параметр, переданный в аннотацию?
На то какой предмет засунется в переменную.
Как это поле теперь можно использовать?
Как предмет, там будет находится предмет с идентификатором который ты задал, но лучше просто используй Items.ПРЕДМЕТ
 
Эта штука позволяет призывать регистрируемый объект(блок, предмет, зачарование) в статическое поле, вот и все.
Если чот не сходится, то оно оставит null в поле, hard fail нет.
Но зато это способ получить регистрируемый объект из мода, если тот не предоставляет класса со своими статическими полями как ванильный Items.
Так же можно юзать ForgeRegistries.ITEMS.getValue(new ResourceLocation("minecraft:ender_eye"))

После того как каким-нить способом получил экземпляр предмета, можно вызвать какие-нить его методы, которые изменяют нужные тебе свойства, если такие методы есть.
Если нет, то можно:
  • зарегать новый предмет с тем же registry name, это перезапишет ванильный, сделать в своем как надо
  • хукнуться в класс предмета и поменять чо надо
  • ловить события, типо PlayerInteractEvent, чекать какой в руке предмет и по чему кликают и добавлять свой эффект
 
Последнее редактирование модератором:
Назад
Сверху