package com.hea3ven.hardmodetweaks.other; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.ai.EntityAIPanic; import net.minecraft.entity.ai.EntityAITasks; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import com.hea3ven.hardmodetweaks.other.entity.ai.EntityAIPanicAway; public class AITweaksManager { @SubscribeEvent public void specialSpawnEvent(EntityJoinWorldEvent e) { if (e.getEntity() instanceof EntityLiving) { replaceAIPanicTask((EntityLiving) e.getEntity()); } } private void replaceAIPanicTask(EntityLiving entity) { EntityAITasks.EntityAITaskEntry panicTask = null; for (Object taskEntryObj : entity.tasks.taskEntries) { EntityAITasks.EntityAITaskEntry taskEntry = (EntityAITasks.EntityAITaskEntry) taskEntryObj; if (taskEntry.action instanceof EntityAIPanic) { panicTask = taskEntry; } } if (panicTask != null) { entity.tasks.removeTask(panicTask.action); entity.tasks.addTask(panicTask.priority, new EntityAIPanicAway( (EntityCreature) entity, 2.5f)); } } }