Изменить предметы уже существующие в игре

Версия Minecraft
1.7.10
48
1
1.7.10
Хочу изменить некоторые предметы.
Допустим хлеб. Пусть у него будет 10000 урона, на кнопку h он пускает молнии, а при съедании прибавляет +1000 к макс. кол-ву хп. Это только пример, на самом деле я хочу изменить не хлеб, и сделать все более менее адекватно.
_______
Мне иногда кажется, можно сделать itembread.java, с пакетом net.minecraft'а, а дальше делать с ним что мне нужно.
 
2,932
44
598
Допустим хлеб. Пусть у него будет 10000 урона, на кнопку h он пускает молнии, а при съедании прибавляет +1000 к макс. кол-ву хп.
А ты фантазёр! Прям хлеб Зевса какой-то!
Мне иногда кажется, можно сделать itembread.java, с пакетом net.minecraft'а
Нет, так нельзя сделать(
Для этого надо трансформер(хук) использовать. Вот почитай на эту тему: [Гайд][Легко][1.6+] Модификация чужого кода при запуске (трансфомеры)
 
48
1
А ты фантазёр! Прям хлеб Зевса какой-то!
Спасибо, но это всего лишь пример!

Нет, так нельзя сделать(
Для этого надо трансформер(хук) использовать. Вот почитай на эту тему: [Гайд][Легко][1.6+] Модификация чужого кода при запуске (трансфомеры)
Спасибо, посмотрю
 
48
1
Фигня. Тут гораздо проще было бы использовать рефлексию (тык) и просто заменить хлеб на свой. И целую либу тянуть не надо (просто ctrl+c ctrl+v метод)
то есть в твоем способе надо создавать ItemBread.java, и дальше проводить нужные мне операции?
 
48
1
Просто делаешь свой айтем с любым именем а-ля Item uberHleb = new UberHleb(), потом вызываешь replaceItem(Items.bread, uberHleb, true);. Профит.
public static boolean replaceItem(Item item, Item newItem, boolean replaceField) писать в главном классе?
 
917
22
332
Этот метод(public static boolean replaceItem(Item item, Item newItem, boolean replaceField)) ты должен вызвать(разместить) в классе своего предмета!
А какая разница? Ты передаёшь в параметры старый предмет и новый. Это универсальный метод, который можно использовать для любых предметов. К тому же статический. Где ты его разместишь - не имеет значения.
--------------------------------------------------------------
Опоздал я с комментом... на две секунды.
 
917
22
332
Но всё же стоит соблюдать кодстайл и поместить его там где он используется!
А если он используется дважды? В классе твоей картошки ты будешь вызывать его из класса твоего лука?
 
2,932
44
598
А если он используется дважды?
Создать отдельный класс для рефлексий!
В класса твоей картошки ты будешь вызывать его из класса твоего лука?
(По моему этих методов можно делать сколько угодно, и по этому в класс картошки кидать картошку, а в класс лука кидать рефлексию лука)
 
2,932
44
598
Гораздо проще создать такой метод в "левом" классе, например Reference, и вызывать его в postInit'е сколько душе угодно.
Ну так естественно гораздо удобнее! (Только я бы для рефлексий создал отдельный класс а не в Справке(Reference) писал бы рефлексий)
Ну всё, надеюсь тема исчерпана ;):sneaky:
 
Последнее редактирование:
Сверху