package greymerk.roguelike; import java.util.Collection; import greymerk.roguelike.monster.IEntity; import greymerk.roguelike.monster.MetaEntity; import greymerk.roguelike.monster.MonsterProfile; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.monster.EntitySlime; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class EntityJoinWorld { @SubscribeEvent public void OnEntityJoinWorld(EntityJoinWorldEvent event) { World world = event.getWorld(); Entity entity = event.getEntity(); // slimes do not extend EntityMob for some reason if(!(entity instanceof EntityMob || entity instanceof EntitySlime)){ return; } EntityLiving mob = (EntityLiving) entity; Collection<?> effects = mob.getActivePotionEffects(); for(Object buff : effects){ if(Potion.getIdFromPotion(((PotionEffect) buff).getPotion()) == 4){ int level = ((PotionEffect) buff).getAmplifier(); IEntity metaEntity = new MetaEntity((Entity)mob); MonsterProfile.equip(world, world.rand, level, metaEntity); if(entity.isDead) event.setCanceled(true); return; } } } }