как отловить мобов которых спавнит спавнер

Версия Minecraft
1.7.10
235
3
21
ку всем
как определить был ли заспавнен моб через спавнер или же поймать событие его спавна
мне нужно отключить таким мобам выпадения опыта, для этого для EntityLivingBase зареган IEEP (я знаю про IAttribute, нравится мне так)
хуки классов спавнера к успеху привели частично, ибо когда я воткнул на термос он влез в эти классы тоже и моя логика сломалась
 
627
72
178
Насчет спавнера не знаю, но отловить спавн моба можно эвентом LivingSpawnEvent

Может быть в радиусе от места спавна определять наличие спавнера, и если он есть, то для своей переменной ставить true значение, а там уже выполнять все что тебе надо.
 

Icosider

Kotliner
Администратор
3,603
99
664
Добавь своё событие в MobSpawnerBaseLogic#func_98265_a

Насчет спавнера не знаю, но отловить спавн моба можно эвентом LivingSpawnEvent
Для спавнера не сработает.
Может быть в радиусе от места спавна определять наличие спавнера, и если он есть, то для своей переменной ставить true значение, а там уже выполнять все что тебе надо.
Жёсткий костыль, который вряд ли будет нормально работать.
 
3,005
192
592
А вот в 1.14 добавили аргумент "откуда заспавнили моба". Переходи, ждем.

А по теме, раз ты такой хукерист, добавляй хук в последнюю очередь (в смысле после термоса) и не заменяй фулл метод, а изменяй лишь вызов спавна моба.
Типо за место World#spawnEntity -> SomeClass.summon(entity), в котором ты что-то делаешь в мобом.
 

jopi

Попрошайка
1,421
30
260
Как вариант брать метод обновления существ и проверять есть ли рядом спавнер.
Ну и делать что хочешь с ними.
но это КОСТЫЛЬ ГИГАНТСКИЙ поэтому не советую юзать такой способ
 
Сверху