[Гайд][Легко][1.6+] Модификация чужого кода при запуске (трансфомеры)

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

Пойду добавлять блоки ! :D
 

CumingSoon

Местный стендапер
1,634
12
269
А вставка в строку осуществляется до,после или как замена строки? Просто надо между 2 строками вставить,а там нет промежутка(логично,компилятор уберёт его)
 

CumingSoon

Местный стендапер
1,634
12
269
А если на этой строке есть код, а надо между прошлой и текущей?
 
1,470
19
189
Глупый вопрос, но как убрать предметы,блоки и что-либо?
 

CumingSoon

Местный стендапер
1,634
12
269
Без последствий - никак. Будет краш рано или поздно(в рецептах нулл схватит, даже не нулл, а другое исключение)
 
1,239
2
24
Из креатив вкладки убери.А то действительно нулл будет 110%
 

CumingSoon

Местный стендапер
1,634
12
269
Глуми, ты говорил, что трансформеры форджа медленны из-за того, что не модифицируют классы, а вставляются каждый раз по-новому.(даже не помню, но что-то в этом роде было) У тебя применяются уже модифицированные?
 
808
3
124
Нет, конечно. Разницы по времени между "запустить майн с применением только форджевских трансформеров" и "запустить майн с хуклиб-трансформерами" практически нет. Сохранять классы с примененными трансформерами нужно на другом этапе - этапе создания готовой сборки модов. Собственно, что я и делаю у себя на проектике.
 
1,137
5
3
Глуми, в классе Minecraft есть метод shutdown, выглядит он так:
Код:
shutdown(){
running=false;
}
Можно ли сделать так:
Код:
shutdown(){
if(condition){
return;
}
running=false;
 
808
3
124
Чойт? Тип возвращаемого значения у хук-метода должно быть тем же, что у целевого, только если returnValue == ReturnValue.HOOK_RETURN_VALUE
 
808
3
124
Пришел к выводу, что большинству удобнее упаковывать хуклибу в свой мод, и переписал урок под это.
 
33
1
2
Подскажите, а по условию исполнять исходный код есть возможность? Например, если условие истинно - послать вызывающего лесом, а если ложно - выполнить операцию над блоком?
 

tox1cozZ

aka Agravaine
8,456
598
2,892
Странно, но если неявно трогать объект класса, то будет вываливаться ClassNotFoundException.
Например:
Код:
@Hook(returnCondition = ReturnCondition.ALWAYS)
	public static void processCreativeInventoryAction(NetHandlerPlayServer network, C10PacketCreativeInventoryAction p_147344_1_){
		if(network.playerEntity.theItemInWorldManager.isCreative()){
Вот тут дергается playerEntity и из-за этого эксепшн. Можно как-то обойти это?
 
Сверху