Jump to content

EntityAISwimming crash


darthvader45

Recommended Posts

I'm working on helping someone update the Invasion Mod for 1.10.2, and I've run into a crash.  It happens when the invasion is started.  Crash report is here:

 

[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:48:34] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:48:34] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:48:34] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:48:34] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:48:34] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombie.setAI(EntityIMZombie.java:154)
[15:48:34] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombie.<init>(EntityIMZombie.java:111)
[15:48:34] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombie.<init>(EntityIMZombie.java:83)
[15:48:34] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:48:37] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:48:37] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:48:37] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:48:37] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:48:37] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSkeleton.setAI(EntityIMSkeleton.java:46)
[15:48:37] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSkeleton.<init>(EntityIMSkeleton.java:42)
[15:48:37] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSkeleton.<init>(EntityIMSkeleton.java:30)
[15:48:37] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:48:41] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:48:41] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:48:41] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:48:41] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:48:41] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.setAI(EntityIMSpider.java:97)
[15:48:41] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.<init>(EntityIMSpider.java:81)
[15:48:41] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.<init>(EntityIMSpider.java:66)
[15:48:41] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:00] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:00] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:00] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:00] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:00] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.setAI(EntityIMSpider.java:97)
[15:49:00] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.<init>(EntityIMSpider.java:81)
[15:49:00] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.<init>(EntityIMSpider.java:66)
[15:49:00] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:01] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:01] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:01] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:01] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:01] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.setAI(EntityIMSpider.java:97)
[15:49:01] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.<init>(EntityIMSpider.java:81)
[15:49:01] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.<init>(EntityIMSpider.java:66)
[15:49:01] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:02] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:02] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:02] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:02] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:02] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.setAI(EntityIMSpider.java:97)
[15:49:02] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.<init>(EntityIMSpider.java:81)
[15:49:02] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMSpider.<init>(EntityIMSpider.java:66)
[15:49:02] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMCreeper.setAI(EntityIMCreeper.java:71)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMCreeper.<init>(EntityIMCreeper.java:67)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMCreeper.<init>(EntityIMCreeper.java:57)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:03] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMPigEngy.setAI(EntityIMPigEngy.java:119)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMPigEngy.<init>(EntityIMPigEngy.java:105)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMPigEngy.<init>(EntityIMPigEngy.java:114)
[15:49:03] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:04] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:04] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:04] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:04] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:04] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMThrower.setAI(EntityIMThrower.java:86)
[15:49:04] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMThrower.<init>(EntityIMThrower.java:72)
[15:49:04] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMThrower.<init>(EntityIMThrower.java:55)
[15:49:04] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:05] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:05] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:05] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:05] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:05] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMThrower.setAI(EntityIMThrower.java:86)
[15:49:05] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMThrower.<init>(EntityIMThrower.java:72)
[15:49:05] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMThrower.<init>(EntityIMThrower.java:55)
[15:49:05] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:06] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:06] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:06] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:06] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:06] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMImp.setAI(EntityIMImp.java:65)
[15:49:06] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMImp.<init>(EntityIMImp.java:41)
[15:49:06] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMImp.<init>(EntityIMImp.java:46)
[15:49:06] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:19] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:19] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:19] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:19] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:19] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.setAI(EntityIMZombiePigman.java:153)
[15:49:19] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.<init>(EntityIMZombiePigman.java:111)
[15:49:19] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.<init>(EntityIMZombiePigman.java:80)
[15:49:19] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:20] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:20] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:20] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:20] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:20] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.setAI(EntityIMZombiePigman.java:153)
[15:49:20] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.<init>(EntityIMZombiePigman.java:111)
[15:49:20] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.<init>(EntityIMZombiePigman.java:80)
[15:49:20] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: java.lang.reflect.InvocationTargetException
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.entity.EntityList.createEntityByName(EntityList.java:149)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.spawnCreature(ItemSpawnEgg.java:161)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at invmod.util.spawneggs.ItemSpawnEgg.onItemUse(ItemSpawnEgg.java:101)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:755)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:158)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:509)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.NetHandlerPlayServer.processRightClickBlock(NetHandlerPlayServer.java:706)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.util.Util.runTask(Util.java:25)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
[15:49:21] [server thread/INFO] [sTDERR]: [net.minecraft.entity.EntityList:createEntityByName:154]: 	at java.lang.Thread.run(Thread.java:745)
[15:49:21] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: Caused by: java.lang.NullPointerException
[15:49:21] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
[15:49:21] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
[15:49:21] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.setAI(EntityIMZombiePigman.java:153)
[15:49:21] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.<init>(EntityIMZombiePigman.java:111)
[15:49:21] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	at invmod.entity.monster.EntityIMZombiePigman.<init>(EntityIMZombiePigman.java:80)
[15:49:21] [server thread/INFO] [sTDERR]: [java.lang.Throwable:printStackTrace:634]: 	... 22 more
[15:49:30] [server thread/WARN]: Skipping Entity with id zombieT1
[15:49:30] [Client thread/INFO]: [CHAT] Unable to summon object
[15:49:36] [server thread/WARN]: Skipping Entity with id invmod:zombieT1
[15:49:36] [Client thread/INFO]: [CHAT] Unable to summon object
[15:49:48] [server thread/WARN]: Skipping Entity with id invmod:Zombie
[15:49:48] [Client thread/INFO]: [CHAT] Unable to summon object
[15:49:57] [server thread/INFO]: Saving and pausing game...
[15:49:57] [server thread/INFO]: Saving chunks for level 'New World'/Overworld
[15:49:57] [server thread/INFO]: Saving chunks for level 'New World'/Nether
[15:49:57] [server thread/INFO]: Saving chunks for level 'New World'/The End
[15:50:34] [server thread/INFO] [sTDOUT]: [invmod.block.BlockNexus:setBlockView:159]: This cant be true!!!!!!
[15:50:34] [server thread/ERROR]: Encountered an unexpected exception
net.minecraft.util.ReportedException: Ticking block entity
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:789) ~[MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687) ~[MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156) ~[integratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
Caused by: java.lang.NullPointerException
at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354) ~[PathNavigateGround.class:?]
at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14) ~[EntityAISwimming.class:?]
at invmod.entity.monster.EntityIMZombie.setAI(EntityIMZombie.java:154) ~[EntityIMZombie.class:?]
at invmod.entity.monster.EntityIMZombie.<init>(EntityIMZombie.java:111) ~[EntityIMZombie.class:?]
at invmod.nexus.IMWaveSpawner.generateSpawnPoints(IMWaveSpawner.java:251) ~[iMWaveSpawner.class:?]
at invmod.nexus.IMWaveSpawner.beginNextWave(IMWaveSpawner.java:66) ~[iMWaveSpawner.class:?]
at invmod.nexus.IMWaveSpawner.beginNextWave(IMWaveSpawner.java:61) ~[iMWaveSpawner.class:?]
at invmod.tileentity.TileEntityNexus.startInvasion(TileEntityNexus.java:614) ~[TileEntityNexus.class:?]
at invmod.tileentity.TileEntityNexus.updateStatus(TileEntityNexus.java:872) ~[TileEntityNexus.class:?]
at invmod.tileentity.TileEntityNexus.update(TileEntityNexus.java:137) ~[TileEntityNexus.class:?]
at net.minecraft.world.World.updateEntities(World.java:1942) ~[World.class:?]
at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:645) ~[WorldServer.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:783) ~[MinecraftServer.class:?]
... 4 more
[15:50:34] [server thread/ERROR]: This crash report has been saved to: C:\Users\joshl\Documents\forge-1.10.2-12.18.2.2099-mdk\run\.\crash-reports\crash-2016-11-09_15.50.34-server.txt
[15:50:34] [server thread/INFO]: Stopping server
[15:50:34] [server thread/INFO]: Saving players
[15:50:34] [Client thread/INFO] [sTDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:649]: ---- Minecraft Crash Report ----
// I'm sorry, Dave.

Time: 11/9/16 3:50 PM
Description: Ticking block entity

java.lang.NullPointerException: Ticking block entity
at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
at invmod.entity.monster.EntityIMZombie.setAI(EntityIMZombie.java:154)
at invmod.entity.monster.EntityIMZombie.<init>(EntityIMZombie.java:111)
at invmod.nexus.IMWaveSpawner.generateSpawnPoints(IMWaveSpawner.java:251)
at invmod.nexus.IMWaveSpawner.beginNextWave(IMWaveSpawner.java:66)
at invmod.nexus.IMWaveSpawner.beginNextWave(IMWaveSpawner.java:61)
at invmod.tileentity.TileEntityNexus.startInvasion(TileEntityNexus.java:614)
at invmod.tileentity.TileEntityNexus.updateStatus(TileEntityNexus.java:872)
at invmod.tileentity.TileEntityNexus.update(TileEntityNexus.java:137)
at net.minecraft.world.World.updateEntities(World.java:1942)
at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:645)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:783)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
at java.lang.Thread.run(Thread.java:745)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
at net.minecraft.pathfinding.PathNavigateGround.setCanSwim(PathNavigateGround.java:354)
at net.minecraft.entity.ai.EntityAISwimming.<init>(EntityAISwimming.java:14)
at invmod.entity.monster.EntityIMZombie.setAI(EntityIMZombie.java:154)
at invmod.entity.monster.EntityIMZombie.<init>(EntityIMZombie.java:111)
at invmod.nexus.IMWaveSpawner.generateSpawnPoints(IMWaveSpawner.java:251)
at invmod.nexus.IMWaveSpawner.beginNextWave(IMWaveSpawner.java:66)
at invmod.nexus.IMWaveSpawner.beginNextWave(IMWaveSpawner.java:61)
at invmod.tileentity.TileEntityNexus.startInvasion(TileEntityNexus.java:614)
at invmod.tileentity.TileEntityNexus.updateStatus(TileEntityNexus.java:872)
at invmod.tileentity.TileEntityNexus.update(TileEntityNexus.java:137)

-- Block entity being ticked --
Details:
Name: Nexus // invmod.tileentity.TileEntityNexus
Block type: ID #218 (tile.blockNexus // invmod.block.BlockNexus)
Block data value: 0 / 0x0 / 0b0000
Block location: World: (-132,64,243), Chunk: (at 12,4,3 in -9,15; contains blocks -144,0,240 to -129,255,255), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Actual block type: ID #218 (tile.blockNexus // invmod.block.BlockNexus)
Actual block data value: 0 / 0x0 / 0b0000
Stacktrace:
at net.minecraft.world.World.updateEntities(World.java:1942)
at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:645)

-- Affected level --
Details:
Level name: New World
All players: 1 total; [EntityPlayerMP['Player997'/322, l='New World', x=-133.45, y=65.01, z=243.78]]
Chunk stats: ServerChunkCache: 291 Drop: 0
Level seed: 8705146827051977797
Level generator: ID 00 - default, ver 1. Features enabled: true
Level generator options: 
Level spawn location: World: (-140,64,256), Chunk: (at 4,4,0 in -9,16; contains blocks -144,0,256 to -129,255,271), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Level time: 26620 game time, 26620 day time
Level dimension: 0
Level storage version: 0x04ABD - Anvil
Level weather: Rain time: 107007 (now: false), thunder time: 138430 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
Stacktrace:
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:783)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536)
at java.lang.Thread.run(Thread.java:745)

-- System Details --
Details:
Minecraft Version: 1.10.2
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_111, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 741113888 bytes (706 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
FML: MCP 9.32 Powered by Forge 12.18.2.2099 4 mods loaded, 4 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJAAAA	mcp{9.19} [Minecraft Coder Pack] (minecraft.jar) 
UCHIJAAAA	FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.2.2099.jar) 
UCHIJAAAA	Forge{12.18.2.2099} [Minecraft Forge] (forgeSrc-1.10.2-12.18.2.2099.jar) 
UCHIJAAAA	mod_invasion{@VERSION@} [invasion mod] (bin) 
Loaded coremods (and transformers): 
GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
Profiler Position: N/A (disabled)
Player Count: 1 / 8; [EntityPlayerMP['Player997'/322, l='New World', x=-133.45, y=65.01, z=243.78]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge'
[15:50:34] [Client thread/INFO] [sTDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:649]: #@!@# Game crashed! Crash report saved to: #@!@# .\crash-reports\crash-2016-11-09_15.50.34-server.txt
[15:50:34] [Client thread/INFO] [FML]: Waiting for the server to terminate/save.
[15:50:34] [server thread/INFO]: Saving worlds
[15:50:34] [server thread/INFO]: Saving chunks for level 'New World'/Overworld
[15:50:34] [server thread/INFO]: Saving chunks for level 'New World'/Nether
[15:50:34] [server thread/INFO]: Saving chunks for level 'New World'/The End
[15:50:35] [server thread/INFO] [FML]: Unloading dimension 0
[15:50:35] [server thread/INFO] [FML]: Unloading dimension -1
[15:50:35] [server thread/INFO] [FML]: Unloading dimension 1
[15:50:35] [server thread/INFO] [FML]: Applying holder lookups
[15:50:35] [server thread/INFO] [FML]: Holder lookups applied
[15:50:35] [server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
[15:50:35] [Client thread/INFO] [FML]: Server terminated.
[15:50:35] [Client Shutdown Thread/INFO]: Stopping server
[15:50:35] [Client Shutdown Thread/INFO]: Saving players
AL lib: (EE) alc_cleanup: 1 device not closed
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

Link to comment
Share on other sites

The method in question is here:

 

protected void setAI() {
	//added entityaiswimming and increased all other tasksordernumers with 1
	this.tasks = new EntityAITasks(this.worldObj.theProfiler);
	this.tasks.addTask(0, new EntityAISwimming(this));
	this.tasks.addTask(1, new EntityAIKillEntity(this, EntityPlayer.class, 40));
	this.tasks.addTask(1, new EntityAIKillEntity(this, EntityPlayerMP.class, 40));
	this.tasks.addTask(1, new EntityAIKillEntity(this, EntityGolem.class, 30));
	this.tasks.addTask(2, new EntityAIAttackNexus(this));
	this.tasks.addTask(3, new EntityAIWaitForEngy(this, 4.0F, true));
	this.tasks.addTask(4, new EntityAIKillEntity(this, EntityLiving.class, 40));
	this.tasks.addTask(5, new EntityAIGoToNexus(this));
	this.tasks.addTask(6, new EntityAIWanderIM(this));
	this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
	this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityIMCreeper.class, 12.0F));
	this.tasks.addTask(8, new EntityAILookIdle(this));


	this.targetTasks = new EntityAITasks(this.worldObj.theProfiler);
	this.targetTasks.addTask(0, new EntityAITargetRetaliate(this, EntityLiving.class, Config.NIGHTSPAWNS_MOB_SENSERANGE));
	this.targetTasks.addTask(2, new EntityAISimpleTarget(this, EntityPlayer.class, Config.NIGHTSPAWNS_MOB_SIGHTRANGE, true));
	this.targetTasks.addTask(5, new EntityAIHurtByTarget(this, false));

	if (this.tier == 3) {
		this.tasks.addTask(4, new EntityAIStoop(this));
		this.tasks.addTask(3, new EntityAISprint(this));
	} else {	
		//track players from sensing them
		this.targetTasks.addTask(1, new EntityAISimpleTarget(this, EntityPlayer.class, Config.NIGHTSPAWNS_MOB_SENSERANGE, false));
		this.targetTasks.addTask(3, new EntityAITargetOnNoNexusPath(this, EntityIMPigEngy.class, 3.5F));
	}
}

Link to comment
Share on other sites

package invmod.entity.monster;

import invmod.IBlockAccessExtended;
import invmod.INotifyTask;
import invmod.SoundHandler;
import invmod.mod_Invasion;
import invmod.entity.ICanDig;
import invmod.entity.ITerrainDig;
import invmod.entity.TerrainDigger;
import invmod.entity.TerrainModifier;
import invmod.entity.ai.EntityAIAttackNexus;
import invmod.entity.ai.EntityAIGoToNexus;
import invmod.entity.ai.EntityAIKillEntity;
import invmod.entity.ai.EntityAISimpleTarget;
import invmod.entity.ai.EntityAISprint;
import invmod.entity.ai.EntityAIStoop;
import invmod.entity.ai.EntityAITargetOnNoNexusPath;
import invmod.entity.ai.EntityAITargetRetaliate;
import invmod.entity.ai.EntityAIWaitForEngy;
import invmod.entity.ai.EntityAIWanderIM;
import invmod.entity.ai.navigator.Path;
import invmod.entity.ai.navigator.PathAction;
import invmod.entity.ai.navigator.PathNode;
import net.minecraft.entity.ai.EntityAISwimming;
import invmod.nexus.INexusAccess;
import invmod.util.IPosition;
import invmod.util.config.Config;

import java.util.List;

import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAITasks;
import net.minecraft.entity.ai.EntityAIWatchClosest;
import net.minecraft.entity.monster.EntityGolem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class EntityIMZombie extends EntityIMMob implements ICanDig {

//private static final int META_CHANGED = 29;
//private static final int META_TIER = 30;
//private static final int META_TEXTURE = 31;
//private static final int META_FLAVOUR = 28;
//private static final int META_SWINGING = 27;

private static final DataParameter<Boolean> META_CHANGED = EntityDataManager.createKey(EntityIMMob.class, DataSerializers.BOOLEAN); //29
private static final DataParameter<Integer> TIER = EntityDataManager.createKey(EntityIMMob.class, DataSerializers.VARINT); //30
private static final DataParameter<Integer> TEXTURE = EntityDataManager.createKey(EntityIMMob.class, DataSerializers.VARINT); //31
private static final DataParameter<Integer> FLAVOUR = EntityDataManager.createKey(EntityIMMob.class, DataSerializers.VARINT); //28
private static final DataParameter<Boolean> IS_SWINGING = EntityDataManager.createKey(EntityIMMob.class, DataSerializers.BOOLEAN); //27

private TerrainModifier terrainModifier;
private TerrainDigger terrainDigger;
private boolean metaChanged;
private int tier;
private int flavour;
private ItemStack defaultHeldItem;
private Item itemDrop;
private float dropChance;
private int swingTimer;

public EntityIMZombie(World world) {
	this(world, null);
}

public EntityIMZombie(World world, INexusAccess nexus) {
	super(world, nexus);
	this.terrainModifier = new TerrainModifier(this, 2.0F);
	this.terrainDigger = new TerrainDigger(this, this.terrainModifier, 1.0F);
	this.dropChance = 0.0F;
	this.metaChanged = world.isRemote;

	this.flavour = 0;
	this.tier = 1;

	/*DataWatcher dataWatcher = getDataWatcher();
	dataWatcher.addObject(29, Byte.valueOf(this.metaChanged));
	dataWatcher.addObject(30, Integer.valueOf(this.tier));
	dataWatcher.addObject(31, Integer.valueOf(0));
	dataWatcher.addObject(28, Integer.valueOf(this.flavour));
	dataWatcher.addObject(27, Byte.valueOf((byte) 0));*/

	this.getDataManager().register(META_CHANGED, this.metaChanged);
	this.getDataManager().register(TIER, this.tier);
	this.getDataManager().register(TEXTURE, 0);
	this.getDataManager().register(FLAVOUR, this.flavour);
	this.getDataManager().register(IS_SWINGING, false);

	this.setAttributes(this.tier, this.flavour);
	this.floatsInWater = true;
	this.setAI();
}

@Override
public void onUpdate() {
	super.onUpdate();
	/*if (this.metaChanged != getDataWatcher().getWatchableObjectByte(29)) 
	{
		DataWatcher data = getDataWatcher();
		this.metaChanged = data.getWatchableObjectByte(29);
		setTexture(data.getWatchableObjectInt(31));

		if (this.tier != data.getWatchableObjectInt(30))
			setTier(data.getWatchableObjectInt(30));
		if (this.flavour != data.getWatchableObjectInt(28)) 
		{
			setFlavour(data.getWatchableObjectInt(28));
		}
	}*/
	if(this.metaChanged != this.getDataManager().get(META_CHANGED)){
		this.metaChanged = this.getDataManager().get(META_CHANGED);
		this.setTexture(this.getDataManager().get(TEXTURE));
		if(this.tier != this.getDataManager().get(TIER)) this.setTier(this.getDataManager().get(TIER));
		if(this.flavour != this.getDataManager().get(FLAVOUR)) this.setFlavour(this.getDataManager().get(FLAVOUR));
	}
	if ((!this.worldObj.isRemote) && (this.flammability >= 20) && (this.isBurning())) this.doFireball();
}

@Override
public void onLivingUpdate() {
	super.onLivingUpdate();
	this.updateAnimation();
	this.updateSound();
}

@Override
public void onPathSet() {
	this.terrainModifier.cancelTask();
}

protected void setAI() {
	//added entityaiswimming and increased all other tasksordernumers with 1
	this.tasks = new EntityAITasks(this.worldObj.theProfiler);
	this.tasks.addTask(0, new EntityAISwimming(this));
	this.tasks.addTask(1, new EntityAIKillEntity(this, EntityPlayer.class, 40));
	this.tasks.addTask(1, new EntityAIKillEntity(this, EntityPlayerMP.class, 40));
	this.tasks.addTask(1, new EntityAIKillEntity(this, EntityGolem.class, 30));
	this.tasks.addTask(2, new EntityAIAttackNexus(this));
	this.tasks.addTask(3, new EntityAIWaitForEngy(this, 4.0F, true));
	this.tasks.addTask(4, new EntityAIKillEntity(this, EntityLiving.class, 40));
	this.tasks.addTask(5, new EntityAIGoToNexus(this));
	this.tasks.addTask(6, new EntityAIWanderIM(this));
	this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
	this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityIMCreeper.class, 12.0F));
	this.tasks.addTask(8, new EntityAILookIdle(this));


	this.targetTasks = new EntityAITasks(this.worldObj.theProfiler);
	this.targetTasks.addTask(0, new EntityAITargetRetaliate(this, EntityLiving.class, Config.NIGHTSPAWNS_MOB_SENSERANGE));
	this.targetTasks.addTask(2, new EntityAISimpleTarget(this, EntityPlayer.class, Config.NIGHTSPAWNS_MOB_SIGHTRANGE, true));
	this.targetTasks.addTask(5, new EntityAIHurtByTarget(this, false));

	if (this.tier == 3) {
		this.tasks.addTask(4, new EntityAIStoop(this));
		this.tasks.addTask(3, new EntityAISprint(this));
	} else {	
		//track players from sensing them
		this.targetTasks.addTask(1, new EntityAISimpleTarget(this, EntityPlayer.class, Config.NIGHTSPAWNS_MOB_SENSERANGE, false));
		this.targetTasks.addTask(3, new EntityAITargetOnNoNexusPath(this, EntityIMPigEngy.class, 3.5F));
	}
}

public void setTier(int tier) {
	this.tier = tier;
	//getDataWatcher().updateObject(30, Integer.valueOf(tier));
	this.getDataManager().set(TIER, tier);
	this.setAttributes(tier, this.flavour);
	this.setAI();

	//if (getDataWatcher().getWatchableObjectInt(31) == 0) 
	if(this.getDataManager().get(TEXTURE) == 0){
		if (tier == 1) {
			int r = this.rand.nextInt(2);
			if (r == 0)
				this.setTexture(0);
			else if (r == 1)
				this.setTexture(1);
		} else if (tier == 2) {
			if (this.flavour == 2) {
				this.setTexture(5);
			} else if (this.flavour == 3) {
				this.setTexture(3);
			} else {
				int r = this.rand.nextInt(2);
				if (r == 0){
					this.setTexture(2);
				} else if (r == 1){
					this.setTexture(4);
				}
			}
		} else if (tier == 3) {
			this.setTexture(6);
		}
	}
}

public void setTexture(int textureId) {
	//getDataWatcher().updateObject(31, Integer.valueOf(textureId));
	this.getDataManager().set(TEXTURE, textureId);
}

public void setFlavour(int flavour) {
	//getDataWatcher().updateObject(28, Integer.valueOf(flavour));
	this.getDataManager().set(FLAVOUR, flavour);
	this.flavour = flavour;
	setAttributes(this.tier, flavour);
}

public int getTextureId() {
	//return getDataWatcher().getWatchableObjectInt(31);
	return this.getDataManager().get(TEXTURE);
}

@Override
public String toString() {
	return "IMZombie-T" + this.tier;
}

@Override
public IBlockAccess getTerrain() {
	return this.worldObj;
}

//TODO: Removed Override annotation
public ItemStack getHeldItem() {
	return this.defaultHeldItem;

}

@Override
public boolean avoidsBlock(Block block) {
	if ((this.isImmuneToFire) && ((block == Blocks.FIRE) || (block == Blocks.FLOWING_LAVA) || (block == Blocks.LAVA) )) {
		return false;
	}
	return super.avoidsBlock(block);
}

@Override
public float getBlockRemovalCost(int x, int y, int z) {
	return getBlockStrength(x, y, z) * 20.0F;
}

@Override
public boolean canClearBlock(int x, int y, int z) {
	IBlockState state = this.worldObj.getBlockState(new BlockPos(x, y, z));
	return (state.getBlock() == Blocks.AIR) || (isBlockDestructible(this.worldObj, x, y, z, state));
}

@Override
public boolean onPathBlocked(Path path, INotifyTask notifee) {
	if ((!path.isFinished()) && ((isNexusBound()) || (getAttackTarget() != null))) {

		if ((path.getFinalPathPoint().distanceTo(path.getIntendedTarget()) > 2.2D) && (path.getCurrentPathIndex() + 2 >= path.getCurrentPathLength() / 2)){
			return false;
		}
		PathNode node = path.getPathPointFromIndex(path.getCurrentPathIndex());

		if (this.terrainDigger.askClearPosition(node.xCoord, node.yCoord, node.zCoord, notifee, 1.0F)){
			return true;
		}
	}
	return false;
}

public boolean isBigRenderTempHack() {
	return this.tier == 3;
}

@Override
public boolean attackEntityAsMob(Entity entity) {
	return (this.tier == 3) && (isSprinting()) ? chargeAttack(entity) : super.attackEntityAsMob(entity);
}

@Override
public boolean canBePushed() {
	return this.tier != 3;
}

@Override
public void knockBack(Entity par1Entity, float par2, double par3, double par5) {
	if (this.tier == 3) return;
	this.isAirBorne = true;
	float f = MathHelper.sqrt_double(par3 * par3 + par5 * par5);
	float f1 = 0.4F;
	this.motionX /= 2.0D;
	this.motionY /= 2.0D;
	this.motionZ /= 2.0D;
	this.motionX -= par3 / f * f1;
	this.motionY += f1;
	this.motionZ -= par5 / f * f1;

	if (this.motionY > 0.4000000059604645D) this.motionY = 0.4000000059604645D;
}

@Override
public float getBlockPathCost(PathNode prevNode, PathNode node, IBlockAccess terrainMap) {
	if ((this.tier == 2) && (this.flavour == 2) && (node.action == PathAction.SWIM)) {
		float multiplier = 1.0F;
		if ((terrainMap instanceof IBlockAccessExtended)) {
			int mobDensity = ((IBlockAccessExtended) terrainMap).getLayeredData(node.xCoord, node.yCoord, node.zCoord) & 0x7;
			multiplier += mobDensity * 3;
		}

		if ((node.yCoord > prevNode.yCoord) && (getCollide(terrainMap, node.xCoord, node.yCoord, node.zCoord) == 2)) {
			multiplier += 2.0F;
		}

		return prevNode.distanceTo(node) * 1.2F * multiplier;
	}

	return super.getBlockPathCost(prevNode, node, terrainMap);
}

@Override
public boolean canBreatheUnderwater() {
	return (this.tier == 2) && (this.flavour == 2);
}

@Override
public boolean isBlockDestructible(IBlockAccess terrainMap, int x, int y, int z, IBlockState state) {
	if (getDestructiveness() == 0) return false;

	IPosition pos = getCurrentTargetPos();
	int dY = pos.getYCoord() - y;
	boolean isTooSteep = false;
	if (dY > 0) {
		dY += 8;
		int dX = pos.getXCoord() - x;
		int dZ = pos.getZCoord() - z;
		double dXZ = Math.sqrt(dX * dX + dZ * dZ) + 1.E-005D;
		isTooSteep = dY / dXZ > 2.144D;
	}

	return (!isTooSteep) && (super.isBlockDestructible(terrainMap, x, y, z, state));
}

@Override
public void onFollowingEntity(Entity entity) {
	if (entity == null) {
		this.setDestructiveness(1);
	} else if (((entity instanceof EntityIMPigEngy)) || ((entity instanceof EntityIMCreeper))){
		this.setDestructiveness(0);
	} else {
		this.setDestructiveness(1);
	}
}

public float scaleAmount() {
	if (this.tier == 2) return 1.12F;
	if (this.tier == 3) return 1.21F;
	return 1.0F;
}

@Override
public String getSpecies() {
	return "Zombie";
}

@Override
public int getTier() {
	return this.tier < 3 ? 2 : 3;
}

@Override
public void writeEntityToNBT(NBTTagCompound nbttagcompound) {
	nbttagcompound.setInteger("tier", this.tier);
	nbttagcompound.setInteger("flavour", this.flavour);
	nbttagcompound.setInteger("textureId", this.getDataManager().get(TEXTURE));//this.dataWatcher.getWatchableObjectInt(31));
	super.writeEntityToNBT(nbttagcompound);
}

@Override
public void readEntityFromNBT(NBTTagCompound nbttagcompound) {
	super.readEntityFromNBT(nbttagcompound);
	setTexture(nbttagcompound.getInteger("textureId"));
	this.flavour = nbttagcompound.getInteger("flavour");
	this.tier = nbttagcompound.getInteger("tier");
	if (this.tier == 0) this.tier = 1;
	setFlavour(this.flavour);
	setTier(this.tier);
	//super.readEntityFromNBT(nbttagcompound);
}
@Override
protected void sunlightDamageTick() 
{
	if ((this.tier == 2) && (this.flavour == 2))
		damageEntity(DamageSource.generic, 3.0F);
	else
		setFire(;
}

protected void updateAnimation() 
{
	updateAnimation(false);
}

public void updateAnimation(boolean override){
if ((!this.worldObj.isRemote) && ((this.terrainModifier.isBusy())||override) )
{
	setSwinging(true);
}
int swingSpeed = getSwingSpeed();
if (isSwinging())
{
	this.swingTimer += 1;
	if (this.swingTimer >= swingSpeed) 
	{
		this.swingTimer = 0;
		setSwinging(false);
	}
}
else 
{
	this.swingTimer = 0;
}
this.swingProgress =(float)this.swingTimer / (float)swingSpeed;
}
protected boolean isSwinging() {
	//return getDataWatcher().getWatchableObjectByte(27) != 0;
	return this.getDataManager().get(IS_SWINGING);
}

protected void setSwinging(boolean flag) {
	//this.isSwingInProgress=flag;
	//getDataWatcher().updateObject(27, Byte.valueOf((byte) (flag == true ? 1 : 0)));
}

protected void updateSound() 
{
	if (this.terrainModifier.isBusy()) 
	{
		if (--this.throttled2 <= 0) 
		{
			//this.worldObj.playSoundAtEntity(this, "invmod:scrape", 0.85F, 1.0F / (this.rand.nextFloat() * 0.5F + 1.0F));
			this.playSound(SoundHandler.scrape1, 0.85F, 1.0F / (this.rand.nextFloat() * 0.5F + 1.0F));
			this.throttled2 = (45 + this.rand.nextInt(20));
		}
	}
}

protected int getSwingSpeed() {
	return 10;
}

protected boolean chargeAttack(Entity entity) {
	int knockback = 4;
	entity.attackEntityFrom(DamageSource.causeMobDamage(this), this.attackStrength + 3);
	entity.addVelocity(-MathHelper.sin(this.rotationYaw * 3.141593F / 180.0F) * knockback * 0.5F, 0.4D, MathHelper.cos(this.rotationYaw * 3.141593F / 180.0F) * knockback * 0.5F);
	this.setSprinting(false);
	//this.worldObj.playSoundAtEntity(entity, "damage.fallbig", 1.0F, 1.0F);
	this.playSound(SoundEvents.ENTITY_GENERIC_BIG_FALL, 1f, 1f);
	return true;
}
@Override
protected void updateAITasks() {
	super.updateAITasks();
	this.terrainModifier.onUpdate();
}

protected ITerrainDig getTerrainDig() {
	return this.terrainDigger;
}

//TODO: Removed Override annotation
protected String getLivingSound() {
	if (this.tier == 3) {
		return this.rand.nextInt(3) == 0 ? "invmod:bigzombie1" : null;
	}

	return "mob.zombie.say";
}

@Override
protected SoundEvent getHurtSound() {
	//return "mob.zombie.hurt";
	return SoundEvents.ENTITY_ZOMBIE_HURT;
}

@Override
protected SoundEvent getDeathSound() {
	//return "mob.zombie.death";
	return SoundEvents.ENTITY_ZOMBIE_DEATH;
}

@Override
protected Item getDropItem() {
	return Items.ROTTEN_FLESH;
}

@Override
protected void dropFewItems(boolean flag, int bonus) {
	super.dropFewItems(flag, bonus);
	if (this.rand.nextFloat() < 0.35F) {
		this.dropItem(Items.ROTTEN_FLESH, 1);
	}

	if ((this.itemDrop != null) && (this.rand.nextFloat() < this.dropChance)) {
		this.entityDropItem(new ItemStack(this.itemDrop, 1, 0), 0.0F);
	}
}

private void setAttributes(int tier, int flavour) {
	if (tier == 1) {
		this.tier = 1;
		if (flavour == 0) {
			setName("Zombie");
			setGender(1);
			setBaseMoveSpeedStat(0.19F);
			this.attackStrength = 4;
			this.selfDamage = 3;
			this.maxSelfDamage = 6;
			this.maxDestructiveness = 2;
			this.flammability = 3;
			setDestructiveness(2);
			setMaxHealthAndHealth(mod_Invasion.getMobHealth(this));
		} else if (flavour == 1) {
			setName("Zombie");
			setGender(1);
			setBaseMoveSpeedStat(0.19F);
			this.attackStrength = 6;
			this.selfDamage = 3;
			this.maxSelfDamage = 6;
			this.maxDestructiveness = 0;
			this.flammability = 3;
			this.defaultHeldItem = new ItemStack(Items.WOODEN_SWORD, 1);
			this.itemDrop = Items.WOODEN_SWORD;
			this.dropChance = 0.2F;
			setDestructiveness(0);
			setMaxHealthAndHealth(mod_Invasion.getMobHealth(this));
		}
	} else if (tier == 2) {
		this.tier=2;
		if (flavour == 0) {
			setName("Zombie");
			setGender(1);
			setBaseMoveSpeedStat(0.19F);
			this.attackStrength = 7;
			this.selfDamage = 4;
			this.maxSelfDamage = 12;
			this.maxDestructiveness = 2;
			this.flammability = 4;
			this.itemDrop = Items.IRON_CHESTPLATE;
			this.dropChance = 0.25F;
			setDestructiveness(2);
			setMaxHealthAndHealth(mod_Invasion.getMobHealth(this));
		} else if (flavour == 1) {
			setName("Zombie");
			setGender(1);
			setBaseMoveSpeedStat(0.19F);
			this.attackStrength = 10;
			this.selfDamage = 3;
			this.maxSelfDamage = 9;
			this.maxDestructiveness = 0;
			this.itemDrop = Items.IRON_SWORD;
			this.dropChance = 0.25F;
			this.defaultHeldItem = new ItemStack(Items.IRON_SWORD, 1);
			setDestructiveness(0);
			setMaxHealthAndHealth(mod_Invasion.getMobHealth(this));
		} else if (flavour == 2) {
			setName("Tar Zombie");
			setGender(1);
			setBaseMoveSpeedStat(0.19F);
			this.attackStrength = 5;
			this.selfDamage = 3;
			this.maxSelfDamage = 9;
			this.maxDestructiveness = 2;
			this.flammability = 30;
			this.floatsInWater = false;
			setDestructiveness(2);
			setMaxHealthAndHealth(mod_Invasion.getMobHealth(this));
		} else if (flavour == 3) {
			setName("Zombie Pigman");
			setGender(1);
			setBaseMoveSpeedStat(0.25F);
			this.attackStrength = 8;
			this.maxDestructiveness = 2;
			this.isImmuneToFire = true;
			this.defaultHeldItem = new ItemStack(Items.GOLDEN_SWORD, 1);
			setDestructiveness(2);
			setMaxHealthAndHealth(mod_Invasion.getMobHealth(this));
		}
	} else if (tier == 3) {
		this.tier=3;
		if (flavour == 0) {
			setName("Zombie Brute");
			setGender(1);
			setBaseMoveSpeedStat(0.17F);
			this.attackStrength = 18;
			this.selfDamage = 4;
			this.maxSelfDamage = 20;
			this.maxDestructiveness = 2;
			this.flammability = 4;
			this.dropChance = 0.0F;
			setDestructiveness(2);
			setMaxHealthAndHealth(mod_Invasion.getMobHealth(this));
		}
	}
}

private void doFireball() {
	int x = MathHelper.floor_double(this.posX);
	int y = MathHelper.floor_double(this.posY);
	int z = MathHelper.floor_double(this.posZ);
	int ii;
	for (ii = -1; ii < 2; ii++) {
		for (int j = -1; j < 2; j++) {
			for (int k = -1; k < 2; k++) {
				if ((this.worldObj.isAirBlock(new BlockPos(x + ii, y + j, z + k)) || (this.worldObj.getBlockState(new BlockPos(x + ii, y + j, z + k)).getMaterial().getCanBurn()))) {
					this.worldObj.setBlockState(new BlockPos(x + ii, y + j, z + k), Blocks.FIRE.getDefaultState());
				}
			}
		}
	}

	List entities = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox().expand(1.5D, 1.5D, 1.5D));
	for (int el=entities.size()-1; el >= 0; el--) 
	{
		Entity entity = (Entity) entities.get(el);
		entity.setFire(;
	}
	attackEntityFrom(DamageSource.inFire, 500.0F);
}

@Override
public void onBlockRemoved(int paramInt1, int paramInt2, int paramInt3,
		Block block) {
	// TODO Auto-generated method stub

}

}

Link to comment
Share on other sites

It's a method you haven't overriden, therefor it exists in one of your class's parent classes.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Okay, found the method, here's the EntityIMLiving class:

 

package invmod.entity.monster;

import invmod.IBlockAccessExtended;
import invmod.INotifyTask;
import invmod.IPathfindable;
import invmod.SparrowAPI;
import invmod.mod_Invasion;
import invmod.client.render.animation.util.IMMoveHelper;
import invmod.entity.Goal;
import invmod.entity.IHasNexus;
import invmod.entity.INavigation;
import invmod.entity.IPathSource;
import invmod.entity.MoveState;
import invmod.entity.ai.navigator.NavigatorIM;
import invmod.entity.ai.navigator.Path;
import invmod.entity.ai.navigator.PathAction;
import invmod.entity.ai.navigator.PathCreator;
import invmod.entity.ai.navigator.PathNavigateAdapter;
import invmod.entity.ai.navigator.PathNode;
import invmod.entity.ai.navigator.PathfinderIM;
import invmod.nexus.INexusAccess;
import invmod.util.CoordsInt;
import invmod.util.Distance;
import invmod.util.IPosition;
import invmod.util.MathUtil;
import invmod.util.config.Config;

import java.util.Arrays;
import java.util.List;

import net.minecraft.block.Block;
import net.minecraft.block.BlockDoor;
import net.minecraft.block.BlockFence;
import net.minecraft.block.BlockLadder;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAITasks;
import net.minecraft.entity.monster.IMob;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public abstract class EntityIMLiving extends EntityCreature implements IMob, IPathfindable, IPosition, IHasNexus, SparrowAPI {

private static final DataParameter<Boolean> IS_HOLDING_ONTO_LADDER = EntityDataManager.createKey(EntityIMLiving.class, DataSerializers.BOOLEAN); //20
private static final DataParameter<Boolean> IS_ADJECENT_CLIMB_BLOCK = EntityDataManager.createKey(EntityIMLiving.class, DataSerializers.BOOLEAN); //21
private static final DataParameter<Boolean> IS_JUMPING = EntityDataManager.createKey(EntityIMLiving.class, DataSerializers.BOOLEAN); //22
private static final DataParameter<Integer> MOVE_STATE = EntityDataManager.createKey(EntityIMLiving.class, DataSerializers.VARINT); //23
private static final DataParameter<Integer> META_24 = EntityDataManager.createKey(EntityIMLiving.class, DataSerializers.VARINT); //24
private static final DataParameter<String> META_25 = EntityDataManager.createKey(EntityIMLiving.class, DataSerializers.STRING); //25

private final NavigatorIM imNavigator;
private final PathNavigateAdapter oldNavAdapter;
private PathCreator pathSource;
protected Goal currentGoal;
protected Goal prevGoal;
protected EntityAITasks tasks;
protected EntityAITasks targetTasks;
private IMMoveHelper moveHelper;
private MoveState moveState;
private float rotationRoll;
private float rotationYawHeadIM;
private float rotationPitchHead;
private float prevRotationRoll;
private float prevRotationYawHeadIM;
private float prevRotationPitchHead;
private int debugMode;
private float airResistance;
private float groundFriction;
private float gravityAcel;
private float moveSpeed;
private float moveSpeedBase;
private float turnRate;
private float pitchRate;
private int rallyCooldown;
private IPosition currentTargetPos;
private IPosition lastBreathExtendPos;
private String simplyID;
private String name;
private String renderLabel;
private boolean shouldRenderLabel;
private int gender;
private boolean isHostile;
private boolean creatureRetaliates;
protected INexusAccess targetNexus;
protected int attackStrength;
protected float attackRange;
private float maxHealth;
protected int selfDamage;
protected int maxSelfDamage;
protected int maxDestructiveness;
protected float blockRemoveSpeed;
protected boolean floatsInWater;
private CoordsInt collideSize;
private boolean canClimb;
private boolean canDig;
private boolean nexusBound;
private boolean alwaysIndependent;
private boolean burnsInDay;
private int jumpHeight;
private int aggroRange;
private int senseRange;
private int stunTimer;
protected int throttled;
protected int throttled2;
protected int pathThrottle;
protected int destructionTimer;
protected int flammability;
protected int destructiveness;
protected Entity entity;
protected static final int META_CLIMB_STATE = 20;
protected static final byte META_CLIMBABLE_BLOCK = 21;
protected static final byte META_JUMPING = 22;
protected static final byte META_MOVESTATE = 23;
protected static final byte META_ROTATION = 24;
protected static final byte META_RENDERLABEL = 25;
protected static List<Block> unDestructableBlocks = Arrays.asList(
		Blocks.BEDROCK, Blocks.COMMAND_BLOCK, Blocks.END_PORTAL_FRAME,
		Blocks.LADDER, Blocks.CHEST);

public EntityIMLiving(World world) {
	this(world, null);
}

public EntityIMLiving(World world, INexusAccess nexus) {
	super(world);
	this.targetNexus = nexus;
	this.currentGoal = Goal.NONE;
	this.prevGoal = Goal.NONE;
	this.moveState = MoveState.STANDING;
	this.tasks = new EntityAITasks(world.theProfiler);
	this.targetTasks = new EntityAITasks(world.theProfiler);
	this.pathSource = new PathCreator(700, 50);
	this.imNavigator = new NavigatorIM(this, this.pathSource);
	this.oldNavAdapter = new PathNavigateAdapter(this.imNavigator);
	this.moveHelper = new IMMoveHelper(this);
	this.collideSize = new CoordsInt(
			MathHelper.floor_double(this.width + 1.0F),
			MathHelper.floor_double(this.height + 1.0F),
			MathHelper.floor_double(this.width + 1.0F));
	this.moveSpeedBase = 0.26F;
	this.moveSpeed = this.moveSpeedBase;
	this.turnRate = 30.0F;
	this.pitchRate = 2.0F;
	CoordsInt initCoords = new CoordsInt(0, 0, 0);
	this.currentTargetPos = initCoords;
	this.lastBreathExtendPos = initCoords;
	this.simplyID = "needID";
	this.renderLabel = "";
	this.gender = 0;
	this.isHostile = true;
	this.creatureRetaliates = true;
	if (Config.DEBUG) {
		this.debugMode = 1;
		this.shouldRenderLabel = true;
	} else {
		this.debugMode = 0;
		this.shouldRenderLabel = false;
	}
	this.airResistance = 0.9995F;
	this.groundFriction = 0.546F;
	this.gravityAcel = 0.08F;

	this.attackStrength = 2;
	this.attackRange = 0.0F;
	setMaxHealthAndHealth(mod_Invasion.getMobHealth(this));
	this.selfDamage = 2;
	this.maxSelfDamage = 6;
	this.flammability = 2;
	this.isImmuneToFire = false;
	this.canClimb = false;
	this.canDig = true;
	this.floatsInWater = true;
	this.alwaysIndependent = false;
	this.jumpHeight = 1;
	this.experienceValue = 5;
	this.maxDestructiveness = 0;
	this.blockRemoveSpeed = 1.0F;
	if (nexus != null) {
		this.nexusBound = true;
		this.burnsInDay = false;
		this.aggroRange = 12;
		this.senseRange = 6;
	} else {
		this.nexusBound = false;
		this.burnsInDay = Config.NIGHTSPAWNS_MOB_BURN_DURING_DAY;
		this.aggroRange = Config.NIGHTSPAWNS_MOB_SIGHTRANGE;
		this.senseRange = Config.NIGHTSPAWNS_MOB_SENSERANGE;
	}

	this.destructionTimer = 0;
	this.destructiveness = 0;
	this.throttled = 0;
	this.throttled2 = 0;
	this.pathThrottle = 0;

	// debugTest
	this.setShouldRenderLabel(debugMode == 1);
	//this.dataWatcher.addObject(20, Byte.valueOf((byte) 0));
	//this.dataWatcher.addObject(21, Byte.valueOf((byte) 0));
	//this.dataWatcher.addObject(22, Byte.valueOf((byte) 0));
	//this.dataWatcher.addObject(23, Integer.valueOf(this.moveState.ordinal()));
	//this.dataWatcher.addObject(24, Integer.valueOf(MathUtil.packAnglesDeg(this.rotationRoll, this.rotationYawHeadIM, this.rotationPitchHead, 0.0F)));
	//this.dataWatcher.addObject(25, "");
	this.getDataManager().register(IS_HOLDING_ONTO_LADDER, false);
	this.getDataManager().register(IS_ADJECENT_CLIMB_BLOCK, false);
	this.getDataManager().register(IS_JUMPING, false);
	this.getDataManager().register(MOVE_STATE, Integer.valueOf(this.moveState.ordinal()));
	this.getDataManager().register(META_24, Integer.valueOf(MathUtil.packAnglesDeg(this.rotationRoll, this.rotationYawHeadIM, this.rotationPitchHead, 0.0F)));
	this.getDataManager().register(META_25, "");
}

/*	// public EntityIMLiving(World world, INexusAccess nexus,Entity entity)
// {
// super(world);
// this.targetNexus = nexus;
// this.currentGoal = Goal.NONE;
// this.prevGoal = Goal.NONE;
// this.moveState = MoveState.STANDING;
// this.tasks = new EntityAITasks(world.theProfiler);
// this.targetTasks = new EntityAITasks(world.theProfiler);
// this.pathSource = new PathCreator(700, 50);
// this.bo = new NavigatorIM(this, this.pathSource);
// this.oldNavAdapter = new PathNavigateAdapter(this.bo);
// this.i = new IMMoveHelper(this);
// this.collideSize = new CoordsInt(MathHelper.floor_double(this.width +
// 1.0F), MathHelper.floor_double(this.height + 1.0F),
// MathHelper.floor_double(this.width + 1.0F));
// this.moveSpeedBase = 0.26F;
// this.moveSpeed = this.moveSpeedBase;
// this.turnRate = 30.0F;
// this.pitchRate = 2.0F;
// CoordsInt initCoords = new CoordsInt(0, 0, 0);
// this.currentTargetPos = initCoords;
// this.lastBreathExtendPos = initCoords;
// this.simplyID = "needID";
// this.renderLabel = "";
// this.gender = 0;
// this.isHostile = true;
// this.creatureRetaliates = true;
// if(mod_Invasion.isDebug())
// {
// this.debugMode = 1;
// this.shouldRenderLabel = true;
// }else{
// this.debugMode = 0;
// this.shouldRenderLabel = false;
// }
// this.airResistance = 0.9995F;
// this.groundFriction = 0.546F;
// this.gravityAcel = 0.08F;
//
// this.attackStrength = 2;
// this.attackRange = 0.0F;
// setMaxHealth(((EntityLiving)entity).getMaxHealth());
// setHealth(((EntityLiving)entity).getMaxHealth());
// this.selfDamage = 2;
// this.maxSelfDamage = 6;
// this.flammability = 2;
// this.isImmuneToFire = ((EntityLiving)entity).isImmuneToFire();
// this.canClimb = false;
// this.canDig = true;
// this.floatsInWater = true;
// this.alwaysIndependent = false;
// this.jumpHeight = 1;
// this.experienceValue = 5;
// this.maxDestructiveness = 0;
// this.blockRemoveSpeed = 1.0F;
//
// if (nexus != null)
// {
// this.nexusBound = true;
// this.burnsInDay=false;
// this.aggroRange=12;
// this.senseRange=6;
// }else {
// this.nexusBound = false;
// this.burnsInDay=mod_Invasion.getNightMobsBurnInDay();
// this.aggroRange=mod_Invasion.getNightMobSightRange();
// this.senseRange=mod_Invasion.getNightMobSenseRange();
//
// }
//
// this.hasAttacked = false;
// this.destructionTimer = 0;
// this.destructiveness = 0;
// this.throttled = 0;
// this.throttled2 = 0;
// this.pathThrottle = 0;
//
// //debugTest
// this.setShouldRenderLabel(debugMode==1);
// this.dataWatcher.addObject(20, Byte.valueOf((byte) 0));
// this.dataWatcher.addObject(21, Byte.valueOf((byte) 0));
// this.dataWatcher.addObject(22, Byte.valueOf((byte) 0));
// this.dataWatcher.addObject(23,
// Integer.valueOf(this.moveState.ordinal()));
// this.dataWatcher.addObject(24,
// Integer.valueOf(MathUtil.packAnglesDeg(this.rotationRoll,
// this.rotationYawHeadIM, this.rotationPitchHead, 0.0F)));
// this.dataWatcher.addObject(25, "");
// }
*/

@Override
public void onUpdate() {
	super.onUpdate();
	this.prevRotationRoll = this.rotationRoll;
	this.prevRotationYawHeadIM = this.rotationYawHeadIM;
	this.prevRotationPitchHead = this.rotationPitchHead;
	if (this.worldObj.isRemote) {
		//this.moveState = MoveState.values()[this.dataWatcher.getWatchableObjectInt(23)];
		this.moveState = MoveState.values()[this.getDataManager().get(MOVE_STATE)];
		//int packedAngles = this.dataWatcher.getWatchableObjectInt(24);
		int packedAngles = this.getDataManager().get(META_24);
		this.rotationRoll = MathUtil.unpackAnglesDeg_1(packedAngles);
		this.rotationYawHeadIM = MathUtil.unpackAnglesDeg_2(packedAngles);
		this.rotationPitchHead = MathUtil.unpackAnglesDeg_3(packedAngles);
		//this.renderLabel = this.dataWatcher.getWatchableObjectString(25);
		this.renderLabel = this.getDataManager().get(META_25);
	} else {
		int packedAngles = MathUtil.packAnglesDeg(this.rotationRoll, this.rotationYawHeadIM, this.rotationPitchHead, 0.0F);
		if (packedAngles != this.getDataManager().get(META_24)) this.getDataManager().set(META_24, Integer.valueOf(packedAngles));
		if (!this.renderLabel.equals(this.getDataManager().get(META_25))) this.getDataManager().set(META_25, this.renderLabel);
	}
}

@Override
public void onEntityUpdate() {
	super.onEntityUpdate();

	if (this.worldObj.isRemote) {
		if (this.getDataManager().get(IS_JUMPING)){
			this.isJumping = true;
		} else {
			this.isJumping = false;
		}
	} else {
		this.setAdjacentClimbBlock(checkForAdjacentClimbBlock());
	}

	if (this.getAir() == 190) {
		this.lastBreathExtendPos = new CoordsInt(getXCoord(), getYCoord(),
				getZCoord());
	} else if (this.getAir() == 0) {
		IPosition pos = new CoordsInt(getXCoord(), getYCoord(), getZCoord());
		if (Distance.distanceBetween(this.lastBreathExtendPos, pos) > 4.0D) {
			this.lastBreathExtendPos = pos;
			this.setAir(180);
		}
	}

	if (this.simplyID == "needID")
		;
}

@Override
public void onLivingUpdate() {
	if (!this.nexusBound) {
		float brightness = getBrightness(1.0F);
		if ((brightness > 0.5F) || (this.posY < 55.0D)) {
			this.entityAge += 2;
		}
		if ((this.getBurnsInDay()) && (this.worldObj.isDaytime()) && (!this.worldObj.isRemote)) {
			if ((brightness > 0.5F) && (this.worldObj.canBlockSeeSky(new BlockPos(
					MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ)))
					&& (this.rand.nextFloat() * 30.0F < (brightness - 0.4F) * 2.0F))) {
				this.sunlightDamageTick();
			}
		}
	}
	super.onLivingUpdate();
}

@Override
public boolean attackEntityFrom(DamageSource damagesource, float damage) {
	if (super.attackEntityFrom(damagesource, damage)) {
		Entity entity = damagesource.getEntity();
		//if ((this.riddenByEntity == entity) || (this.ridingEntity == entity)) {
		if(this.getPassengers().contains(entity) || this.getRidingEntity() == entity){
			return true;
		}
		if (entity != this) {
			this.entity = entity;
		}
		return true;
	}

	return false;
}

public boolean stunEntity(int ticks) {
	if (this.stunTimer < ticks) {
		this.stunTimer = ticks;
	}
	this.motionX = 0.0D;
	this.motionZ = 0.0D;
	return true;
}

@Override
public boolean attackEntityAsMob(Entity entity) {
	return entity.attackEntityFrom(DamageSource.causeMobDamage(this),
			this.attackStrength);
}

public boolean attackEntityAsMob(Entity entity, int damageOverride) {
	return entity.attackEntityFrom(DamageSource.causeMobDamage(this),
			damageOverride);
}

@Override
public void moveEntityWithHeading(float x, float z) {
	if (isInWater()) {
		double y = this.posY;
		moveFlying(x, z, 0.04F);
		moveEntity(this.motionX, this.motionY, this.motionZ);
		this.motionX *= 0.8D;
		this.motionY *= 0.8D;
		this.motionZ *= 0.8D;
		this.motionY -= 0.02D;
		if ((this.isCollidedHorizontally)
				&& (isOffsetPositionInLiquid(this.motionX, this.motionY
						+ 0.6D - this.posY + y, this.motionZ)))
			this.motionY = 0.3D;
	} else if (this.isInLava()) {
		double y = this.posY;
		moveFlying(x, z, 0.04F);
		moveEntity(this.motionX, this.motionY, this.motionZ);
		this.motionX *= 0.5D;
		this.motionY *= 0.5D;
		this.motionZ *= 0.5D;
		this.motionY -= 0.02D;
		if ((this.isCollidedHorizontally)
				&& (isOffsetPositionInLiquid(this.motionX, this.motionY
						+ 0.6D - this.posY + y, this.motionZ)))
			this.motionY = 0.3D;
	} else {
		float groundFriction = 0.91F;
		float landMoveSpeed;
		if (this.onGround) {
			groundFriction = getGroundFriction();
			Block block = this.worldObj.getBlockState(new BlockPos(
				MathHelper.floor_double(this.posX),
				MathHelper.floor_double(this.getEntityBoundingBox().minY) - 1,
				MathHelper.floor_double(this.posZ)))
					.getBlock();
			if (block != Blocks.AIR) {
				groundFriction = block.slipperiness * 0.91F;
			}
			landMoveSpeed = this.getAIMoveSpeed();

			landMoveSpeed *= 0.162771F / (groundFriction * groundFriction * groundFriction);
		} else {
			landMoveSpeed = this.jumpMovementFactor;
		}

		moveFlying(x, z, landMoveSpeed);

		if (this.isOnLadder()) {
			float maxLadderXZSpeed = 0.15F;
			if (this.motionX < -maxLadderXZSpeed)
				this.motionX = (-maxLadderXZSpeed);
			if (this.motionX > maxLadderXZSpeed)
				this.motionX = maxLadderXZSpeed;
			if (this.motionZ < -maxLadderXZSpeed)
				this.motionZ = (-maxLadderXZSpeed);
			if (this.motionZ > maxLadderXZSpeed) {
				this.motionZ = maxLadderXZSpeed;
			}
			this.fallDistance = 0.0F;
			if (this.motionY < -0.15D) {
				this.motionY = -0.15D;
			}
			if ((isHoldingOntoLadder())
					|| ((isSneaking()) && (this.motionY < 0.0D)))
				this.motionY = 0.0D;
			else if ((this.worldObj.isRemote) && (this.isJumping)) {
				this.motionY += 0.04D;
			}
		}
		moveEntity(this.motionX, this.motionY, this.motionZ);

		if ((this.isCollidedHorizontally) && (this.isOnLadder())) {
			this.motionY = 0.2D;
		}
		this.motionY -= getGravity();
		this.motionY *= this.airResistance;
		this.motionX *= groundFriction * this.airResistance;
		this.motionZ *= groundFriction * this.airResistance;
	}

	this.prevLimbSwingAmount = this.limbSwingAmount;
	double dX = this.posX - this.prevPosX;
	double dZ = this.posZ - this.prevPosZ;
	float limbEnergy = MathHelper.sqrt_double(dX * dX + dZ * dZ) * 4.0F;

	if (limbEnergy > 1.0F) {
		limbEnergy = 1.0F;
	}

	this.limbSwingAmount += (limbEnergy - this.limbSwingAmount) * 0.4F;
	this.limbSwing += this.limbSwingAmount;
}

//TODO: Removed Override annotation
public void moveFlying(float strafeAmount, float forwardAmount, float movementFactor) {
	float unit = MathHelper.sqrt_float(strafeAmount * strafeAmount + forwardAmount * forwardAmount);

	if (unit < 0.01F) return;
	if (unit < 20.0F) unit = 1.0F;

	unit = movementFactor / unit;
	strafeAmount *= unit;
	forwardAmount *= unit;

	float com1 = MathHelper.sin(this.rotationYaw * 3.141593F / 180.0F);
	float com2 = MathHelper.cos(this.rotationYaw * 3.141593F / 180.0F);
	this.motionX += strafeAmount * com2 - forwardAmount * com1;
	this.motionZ += forwardAmount * com2 + strafeAmount * com1;
}

// not sure why, but this needed to be removed in order to let the mobs swim
// public boolean handleWaterMovement() {
// if (this.floatsInWater) {
// return
// this.worldObj.handleMaterialAcceleration(this.getEntityBoundingBox().expand(0.0D,
// -0.4D, 0.0D).contract(0.001D, 0.001D, 0.001D), Material.water, this);
// }
//
// double vX = this.motionX;
// double vY = this.motionY;
// double vZ = this.motionZ;
// boolean isInWater =
// this.worldObj.handleMaterialAcceleration(this.getEntityBoundingBox().expand(0.0D,
// -0.4D, 0.0D).contract(0.001D, 0.001D, 0.001D), Material.water, this);
// this.motionX = vX;
// this.motionY = vY;
// this.motionZ = vZ;
// return isInWater;
// }

public void rally(Entity leader) {
	this.rallyCooldown = 300;
}

public void onFollowingEntity(Entity entity) {}

public void onPathSet() {}

public void onBlockRemoved(int x, int y, int z, int id) {
	if (getHealth() > this.maxHealth - this.maxSelfDamage) {
		this.attackEntityFrom(DamageSource.generic, this.selfDamage);
	}

	if ((this.throttled == 0) && ((id == 3) || (id == 2) || (id == 12) || (id == 13))) {
		//this.worldObj.playSoundAtEntity(this, "step.gravel", 1.4F, 1.0F / (this.rand.nextFloat() * 0.6F + 1.0F));
		this.playSound(SoundEvents.BLOCK_GRAVEL_STEP, 1.4f, 1f / (this.rand.nextFloat() * 0.6f + 1f));
		this.throttled = 5;
	} else {
		//this.worldObj.playSoundAtEntity(this, "step.stone", 1.4F,1.0F / (this.rand.nextFloat() * 0.6F + 1.0F));
		this.playSound(SoundEvents.BLOCK_STONE_STEP, 1.4f, 1f / (this.rand.nextFloat() * 0.6f + 1f));
		this.throttled = 5;
	}
}

public boolean avoidsBlock(Block block) {
	return ((block == Blocks.FIRE) || (block == Blocks.BEDROCK) || (block == Blocks.LAVA) || (block == Blocks.FLOWING_LAVA) || (block == Blocks.CACTUS));
}

public boolean ignoresBlock(Block block) {
	return ((block == Blocks.TALLGRASS) || (block == Blocks.DEADBUSH) || (block == Blocks.RED_FLOWER)
			|| (block == Blocks.YELLOW_FLOWER) || (block == Blocks.BROWN_MUSHROOM)
			|| (block == Blocks.RED_MUSHROOM) || (block == Blocks.WOODEN_PRESSURE_PLATE)
			|| (block == Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE) || (block == Blocks.STONE_PRESSURE_PLATE));
}

public boolean isBlockDestructible(IBlockAccess terrainMap, int x, int y, int z, IBlockState state) {
	// check if mobgriefing is enabled
	boolean mobgriefing = this.worldObj.getGameRules().getBoolean("mobGriefing");

	if (mobgriefing) {
		if (unDestructableBlocks.contains(state.getBlock()) || state.getBlock() == Blocks.AIR || blockHasLadder(terrainMap, x, y, z)) {
			return false;
		}
		if ((state.getBlock() == Blocks.IRON_DOOR) || (state.getBlock() instanceof BlockDoor)|| (state.getBlock() == Blocks.TRAPDOOR)) {
			return true;
		}
		if (state.getMaterial().isSolid()) {
			return true;
		}
	}

	return false;
}

public boolean canEntityBeDetected(Entity entity) {
	float distance = getDistanceToEntity(entity);
	return (distance <= getSenseRange())
			|| ((canEntityBeSeen(entity)) && (distance <= getAggroRange()));
}

public double findDistanceToNexus() {
	if (this.targetNexus == null) {
		return 1.7976931348623157E+308D;
	}
	double x = this.targetNexus.getXCoord() + 0.5D - this.posX;
	double y = this.targetNexus.getYCoord() - this.posY + this.height
			* 0.5D;
	double z = this.targetNexus.getZCoord() + 0.5D - this.posZ;
	return Math.sqrt(x * x + y * y + z * z);
}

// TODO: Fix This
// @Override
// public Entity findPlayerToAttack() {
// EntityPlayer entityPlayer = this.worldObj.getClosestPlayerToEntity(
// this, getSenseRange());
// if (entityPlayer != null) {
// return entityPlayer;
// }
// entityPlayer = this.worldObj.getClosestPlayerToEntity(this,
// getAggroRange());
// if ((entityPlayer != null) && (canEntityBeSeen(entityPlayer))) {
// return entityPlayer;
// }
// return null;
// }

@Override
public void writeEntityToNBT(NBTTagCompound nbttagcompound) {
	nbttagcompound.setBoolean("alwaysIndependent", this.alwaysIndependent);
	super.writeEntityToNBT(nbttagcompound);
}

@Override
public void readEntityFromNBT(NBTTagCompound nbttagcompound) {
	this.alwaysIndependent = nbttagcompound.getBoolean("alwaysIndependent");
	if (this.alwaysIndependent) {
		setBurnsInDay(Config.NIGHTSPAWNS_MOB_BURN_DURING_DAY);
		setAggroRange(Config.NIGHTSPAWNS_MOB_SIGHTRANGE);
		setSenseRange(Config.NIGHTSPAWNS_MOB_SENSERANGE);
	}
	super.readEntityFromNBT(nbttagcompound);
}

public float getPrevRotationRoll() {
	return this.prevRotationRoll;
}

public float getRotationRoll() {
	return this.rotationRoll;
}

public float getPrevRotationYawHeadIM() {
	return this.prevRotationYawHeadIM;
}

public float getRotationYawHeadIM() {
	return this.rotationYawHeadIM;
}

public float getPrevRotationPitchHead() {
	return this.prevRotationPitchHead;
}

public float getRotationPitchHead() {
	return this.rotationPitchHead;
}

@Override
public int getXCoord() {
	return MathHelper.floor_double(this.posX);
}

@Override
public int getYCoord() {
	return MathHelper.floor_double(this.posY);
}

@Override
public int getZCoord() {
	return MathHelper.floor_double(this.posZ);
}

public float getAttackRange() {
	return this.attackRange;
}

public void setMaxHealth(float health) {
	this.maxHealth = health;
}

public void setMaxHealthAndHealth(float health) {
	this.maxHealth = health;
	this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(health);
	this.setHealth(health);
}

@Override
public boolean getCanSpawnHere() {
	boolean lightFlag = ((this.nexusBound) || (getLightLevelBelow8()));
	return (super.getCanSpawnHere()) && (lightFlag)
		&& (this.worldObj.getBlockState(
			new BlockPos(
					MathHelper.floor_double(this.posX),
					MathHelper.floor_double(this.getEntityBoundingBox().minY + 0.5D) - 1,
					MathHelper.floor_double(this.posZ))).isNormalCube());
}

public MoveState getMoveState() {
	return this.moveState;
}

public float getMoveSpeedStat() {
	return this.moveSpeed;
}

public float getBaseMoveSpeedStat() {
	return this.moveSpeedBase;
}

public int getJumpHeight() {
	return this.jumpHeight;
}

public float getBlockStrength(int x, int y, int z) {
	return getBlockStrength(x, y, z,
			this.worldObj.getBlockState(new BlockPos(x, y, z)).getBlock());
}

public float getBlockStrength(int x, int y, int z, Block block) {
	return getBlockStrength(x, y, z, block, this.worldObj);
}

public boolean getCanClimb() {
	return this.canClimb;
}

public boolean getCanDigDown() {
	return this.canDig;
}

public int getAggroRange() {
	return this.aggroRange;
}

public int getSenseRange() {
	return this.senseRange;
}

// TODO: Used to have override annotation
public float getBlockPathWeight(int i, int j, int k) {
	if (this.nexusBound) {
		return 0.0F;
	}
	return 0.5F - this.worldObj.getLightBrightness(new BlockPos(i, j, k));
}

public boolean getBurnsInDay() {
	return this.burnsInDay;
}

public int getDestructiveness() {
	return this.destructiveness;
}

public float getTurnRate() {
	return this.turnRate;
}

public float getPitchRate() {
	return this.pitchRate;
}

public float getGravity() {
	return this.gravityAcel;
}

public float getAirResistance() {
	return this.airResistance;
}

public float getGroundFriction() {
	return this.groundFriction;
}

public CoordsInt getCollideSize() {
	return this.collideSize;
}

public Goal getAIGoal() {
	return this.currentGoal;
}

public Goal getPrevAIGoal() {
	return this.prevGoal;
}

@Override
public PathNavigateAdapter getNavigator() {
	return this.oldNavAdapter;
}

public INavigation getNavigatorNew() {
	return this.imNavigator;
}

public IPathSource getPathSource() {
	return this.pathSource;
}

@Override
public float getBlockPathCost(PathNode prevNode, PathNode node,
		IBlockAccess terrainMap) {
	return calcBlockPathCost(prevNode, node, terrainMap);
}

@Override
public void getPathOptionsFromNode(IBlockAccess terrainMap,
		PathNode currentNode, PathfinderIM pathFinder) {
	calcPathOptions(terrainMap, currentNode, pathFinder);
}

public IPosition getCurrentTargetPos() {
	return this.currentTargetPos;
}

public IPosition[] getBlockRemovalOrder(int x, int y, int z) {
	if (MathHelper.floor_double(this.posY) >= y) {
		IPosition[] blocks = new IPosition[2];
		blocks[1] = new CoordsInt(x, y + 1, z);
		blocks[0] = new CoordsInt(x, y, z);
		return blocks;
	}

	IPosition[] blocks = new IPosition[3];
	blocks[2] = new CoordsInt(x, y, z);
	blocks[1] = new CoordsInt(MathHelper.floor_double(this.posX),
			MathHelper.floor_double(this.posY)
					+ this.collideSize.getYCoord(),
			MathHelper.floor_double(this.posZ));
	blocks[0] = new CoordsInt(x, y + 1, z);
	return blocks;
}

@Override
public IMMoveHelper getMoveHelper() {
	return this.moveHelper;
}

@Override
public INexusAccess getNexus() {
	return this.targetNexus;
}

public String getRenderLabel() {
	return this.renderLabel;
}

public int getDebugMode() {
	return this.debugMode;
}

@Override
public boolean isHostile() {
	return this.isHostile;
}

@Override
public boolean isNeutral() {
	return this.creatureRetaliates;
}

@Override
public boolean isThreatTo(Entity entity) {
	if ((this.isHostile) && ((entity instanceof EntityPlayer))) {
		return true;
	}
	return false;
}

@Override
public Entity getAttackingTarget() {
	return getAttackTarget();
}

@Override
public boolean isStupidToAttack() {
	return false;
}

@Override
public boolean doNotVaporize() {
	return false;
}

@Override
public boolean isPredator() {
	return false;
}

@Override
public boolean isPeaceful() {
	return false;
}

@Override
public boolean isPrey() {
	return false;
}

@Override
public boolean isUnkillable() {
	return false;
}

@Override
public boolean isFriendOf(Entity par1entity) {
	return false;
}

@Override
public boolean isNPC() {
	return false;
}

@Override
public int isPet() {
	return 0;
}

@Override
public String getName() {
	return this.name;
}

@Override
public int getGender() {
	return this.gender;
}

@Override
public Entity getPetOwner() {
	return null;
}

@Override
public float getSize() {
	return this.height * this.width;
}

@Override
public String customStringAndResponse(String s) {
	return null;
}

@Override
public int getTier() {
	return 0;
}

@Override
public String getSimplyID() {
	return this.simplyID;
}

public boolean isNexusBound() {
	return this.nexusBound;
}

public boolean isHoldingOntoLadder() {
	return this.getDataManager().get(IS_HOLDING_ONTO_LADDER);
}

@Override
public boolean isOnLadder() {
	return isAdjacentClimbBlock();
}

public boolean isAdjacentClimbBlock() {
	return this.getDataManager().get(IS_ADJECENT_CLIMB_BLOCK);
}

public boolean checkForAdjacentClimbBlock() {
	int x = MathHelper.floor_double(this.posX);
	int y = MathHelper.floor_double(this.getEntityBoundingBox().minY);
	int z = MathHelper.floor_double(this.posZ);
	IBlockState blockState = this.worldObj.getBlockState(new BlockPos(x, y, z));
	if(blockState == null) return false;
	return (blockState.getBlock().isLadder(blockState, this.worldObj, new BlockPos(x, y, z), this));
}

public boolean readyToRally() {
	return this.rallyCooldown == 0;
}

public boolean canSwimHorizontal() {
	return true;
}

public boolean canSwimVertical() {
	return true;
}

public boolean shouldRenderLabel() {
	return this.shouldRenderLabel;
}

@Override
public void acquiredByNexus(INexusAccess nexus) {
	if ((this.targetNexus == null) && (!this.alwaysIndependent)) {
		this.targetNexus = nexus;
		this.nexusBound = true;
	}
}

@Override
public void setDead() {
	super.setDead();
	if ((getHealth() <= 0.0F) && (this.targetNexus != null)) this.targetNexus.registerMobDied();
}

public void setEntityIndependent() {
	this.targetNexus = null;
	this.nexusBound = false;
	this.alwaysIndependent = true;
}

@Override
public void setSize(float width, float height) {
	super.setSize(width, height);
	this.collideSize = new CoordsInt(MathHelper.floor_double(width + 1.0F),
			MathHelper.floor_double(height + 1.0F),
			MathHelper.floor_double(width + 1.0F));
}

public void setBurnsInDay(boolean flag) {
	this.burnsInDay = flag;
}

public void setAggroRange(int range) {
	this.aggroRange = range;
}

public void setSenseRange(int range) {
	this.senseRange = range;
}

public void setIsHoldingIntoLadder(boolean flag) {
	if (!this.worldObj.isRemote) this.getDataManager().set(IS_HOLDING_ONTO_LADDER, flag);
}

@Override
public void setJumping(boolean flag) {
	super.setJumping(flag);
	if (!this.worldObj.isRemote) this.getDataManager().set(IS_JUMPING, flag);
}

public void setAdjacentClimbBlock(boolean flag) {
	if (!this.worldObj.isRemote) this.getDataManager().set(IS_ADJECENT_CLIMB_BLOCK, flag);
}

public void setRenderLabel(String label) {
	this.renderLabel = label;
}

public void setShouldRenderLabel(boolean flag) {
	this.shouldRenderLabel = flag;
}

public void setDebugMode(int mode) {
	this.debugMode = mode;
	onDebugChange();
}

@Override
protected void updateAITasks() {
	this.worldObj.theProfiler.startSection("Entity IM");
	this.entityAge += 1;
	this.despawnEntity();
	this.getEntitySenses().clearSensingCache();
	this.targetTasks.onUpdateTasks();
	this.updateAITick();
	this.tasks.onUpdateTasks();
	this.getNavigatorNew().onUpdateNavigation();
	this.getLookHelper().onUpdateLook();
	this.getMoveHelper().onUpdateMoveHelper();
	this.getJumpHelper().doJump();
	this.worldObj.theProfiler.endSection();
}

//TODO: Removed Override annotation
protected void updateAITick() {
	if (this.rallyCooldown > 0) {
		this.rallyCooldown -= 1;
	}
	if (getAttackTarget() != null)
		this.currentGoal = Goal.TARGET_ENTITY;
	else if (this.targetNexus != null)
		this.currentGoal = Goal.BREAK_NEXUS;
	else
		this.currentGoal = Goal.CHILL;
}

// @Override
// protected boolean isAIEnabled() {
// return true;
// }

@Override
public boolean canDespawn() {
	return !this.nexusBound;
}

public void setRotationRoll(float roll) {
	this.rotationRoll = roll;
}

public void setRotationYawHeadIM(float yaw) {
	this.rotationYawHeadIM = yaw;
}

public void setRotationPitchHead(float pitch) {
	this.rotationPitchHead = pitch;
}

public void setAttackRange(float range) {
	this.attackRange = range;
}

public void setCurrentTargetPos(IPosition pos) {
	this.currentTargetPos = pos;
}

// TODO: Fix this
// @Override
// protected void attackEntity(Entity entity, float f) {
// if ((this.attackTime <= 0) && (f < 2.0F)
// && (entity.getEntityBoundingBox().maxY > this.getEntityBoundingBox().minY)
// && (entity.getEntityBoundingBox().minY < this.getEntityBoundingBox().maxY)) {
// this.attackTime = 38;
// attackEntityAsMob(entity);
// }
// }

protected void sunlightDamageTick() {
	setFire(;
}

public boolean onPathBlocked(Path path, INotifyTask asker) {
	return false;
}

@Override
protected void dealFireDamage(int i) {
	super.dealFireDamage(i * this.flammability);
}

@Override
protected void dropFewItems(boolean flag, int amount) {
	if (this.rand.nextInt(4) == 0) {
		entityDropItem(new ItemStack(mod_Invasion.itemSmallRemnants, 1),
				0.0F);
	}
}

protected float calcBlockPathCost(PathNode prevNode, PathNode node,
		IBlockAccess terrainMap) {
	float multiplier = 1.0F;
	if ((terrainMap instanceof IBlockAccessExtended)) {
		int mobDensity = ((IBlockAccessExtended) terrainMap)
				.getLayeredData(node.xCoord, node.yCoord, node.zCoord) & 0x7;
		multiplier += mobDensity * 3;
	}

	if ((node.yCoord > prevNode.yCoord)
			&& (getCollide(terrainMap, node.xCoord, node.yCoord,
					node.zCoord) == 2)) {
		multiplier += 2.0F;
	}

	if (blockHasLadder(terrainMap, node.xCoord, node.yCoord, node.zCoord)) {
		multiplier += 5.0F;
	}

	if (node.action == PathAction.SWIM) {
		multiplier *= ((node.yCoord <= prevNode.yCoord)
				&& (!terrainMap.isAirBlock(new BlockPos(node.xCoord,
						node.yCoord + 1, node.zCoord))) ? 3.0F : 1.0F);
		return prevNode.distanceTo(node) * 1.3F * multiplier;
	}

	Block block = terrainMap.getBlockState(
			new BlockPos(node.xCoord, node.yCoord, node.zCoord)).getBlock();
	return prevNode.distanceTo(node) * (block.getExplosionResistance(null))
			* multiplier;
}

protected void calcPathOptions(IBlockAccess terrainMap,
		PathNode currentNode, PathfinderIM pathFinder) {
	if ((currentNode.yCoord <= 0) || (currentNode.yCoord > 255)) {
		return;
	}

	calcPathOptionsVertical(terrainMap, currentNode, pathFinder);

	if ((currentNode.action == PathAction.DIG)
			&& (!canStandAt(terrainMap, currentNode.xCoord,
					currentNode.yCoord, currentNode.zCoord))) {
		return;
	}

	int height = getJumpHeight();
	for (int i = 1; i <= height; i++) {
		if (getCollide(terrainMap, currentNode.xCoord, currentNode.yCoord
				+ i, currentNode.zCoord) == 0) {
			height = i - 1;
		}
	}

	int maxFall = 8;
	for (int i = 0; i < 4; i++) {
		if (currentNode.action != PathAction.NONE) {
			if ((i == 0) && (currentNode.action == PathAction.LADDER_UP_NX)) {
				height = 0;
			}
			if ((i == 1) && (currentNode.action == PathAction.LADDER_UP_PX)) {
				height = 0;
			}
			if ((i == 2) && (currentNode.action == PathAction.LADDER_UP_NZ)) {
				height = 0;
			}
			if ((i == 3) && (currentNode.action == PathAction.LADDER_UP_PZ)) {
				height = 0;
			}
		}
		int yOffset = 0;
		int currentY = currentNode.yCoord + height;
		boolean passedLevel = false;
		do {
			yOffset = getNextLowestSafeYOffset(terrainMap,
					currentNode.xCoord + CoordsInt.offsetAdjX[i], currentY,
					currentNode.zCoord + CoordsInt.offsetAdjZ[i], maxFall
							+ currentY - currentNode.yCoord);
			if (yOffset > 0)
				break;
			if (yOffset > -maxFall) {
				pathFinder.addNode(currentNode.xCoord
						+ CoordsInt.offsetAdjX[i], currentY + yOffset,
						currentNode.zCoord + CoordsInt.offsetAdjZ[i],
						PathAction.NONE);
			}

			currentY += yOffset - 1;

			if ((!passedLevel) && (currentY <= currentNode.yCoord)) {
				passedLevel = true;
				if (currentY != currentNode.yCoord) {
					addAdjacent(terrainMap, currentNode.xCoord
							+ CoordsInt.offsetAdjX[i], currentNode.yCoord,
							currentNode.zCoord + CoordsInt.offsetAdjZ[i],
							currentNode, pathFinder);
				}

			}

		}

		while (currentY >= currentNode.yCoord);
	}

	if (canSwimHorizontal()) {
		for (int i = 0; i < 4; i++) {
			if (getCollide(terrainMap, currentNode.xCoord
					+ CoordsInt.offsetAdjX[i], currentNode.yCoord,
					currentNode.zCoord + CoordsInt.offsetAdjZ[i]) == -1)
				pathFinder.addNode(currentNode.xCoord
						+ CoordsInt.offsetAdjX[i], currentNode.yCoord,
						currentNode.zCoord + CoordsInt.offsetAdjZ[i],
						PathAction.SWIM);
		}
	}
}

protected void calcPathOptionsVertical(IBlockAccess terrainMap,
		PathNode currentNode, PathfinderIM pathFinder) {
	BlockPos blockPos = new BlockPos(currentNode.xCoord,
				currentNode.yCoord + 1, currentNode.zCoord);
	int collideUp = getCollide(terrainMap, currentNode.xCoord,
			currentNode.yCoord + 1, currentNode.zCoord);
	if (collideUp > 0) {
		if (terrainMap.getBlockState(blockPos).getBlock() instanceof BlockLadder) {
			IBlockState blockState = terrainMap.getBlockState(blockPos);
			EnumFacing meta = (EnumFacing)blockState.getProperties().get(BlockLadder.FACING);

			PathAction action = PathAction.NONE;
			if (meta == EnumFacing.EAST)
				action = PathAction.LADDER_UP_PX;
			else if (meta == EnumFacing.WEST)
				action = PathAction.LADDER_UP_NX;
			else if (meta == EnumFacing.NORTH)
				action = PathAction.LADDER_UP_PZ;
			else if (meta == EnumFacing.SOUTH) {
				action = PathAction.LADDER_UP_NZ;
			}

			if (currentNode.action == PathAction.NONE) {
				pathFinder.addNode(currentNode.xCoord,
						currentNode.yCoord + 1, currentNode.zCoord, action);
			} else if ((currentNode.action == PathAction.LADDER_UP_PX)
					|| (currentNode.action == PathAction.LADDER_UP_NX)
					|| (currentNode.action == PathAction.LADDER_UP_PZ)
					|| (currentNode.action == PathAction.LADDER_UP_NZ)) {
				if (action == currentNode.action) {
					pathFinder.addNode(currentNode.xCoord,
							currentNode.yCoord + 1, currentNode.zCoord,
							action);
				}
			} else {
				pathFinder.addNode(currentNode.xCoord,
						currentNode.yCoord + 1, currentNode.zCoord, action);
			}
		} else if (getCanClimb()) {
			if (isAdjacentSolidBlock(terrainMap, currentNode.xCoord,
					currentNode.yCoord + 1, currentNode.zCoord)) {
				pathFinder.addNode(currentNode.xCoord,
						currentNode.yCoord + 1, currentNode.zCoord,
						PathAction.NONE);
			}
		}
	}
	int below = getCollide(terrainMap, currentNode.xCoord,
			currentNode.yCoord - 1, currentNode.zCoord);
	int above = getCollide(terrainMap, currentNode.xCoord,
			currentNode.yCoord + 1, currentNode.zCoord);
	if (getCanDigDown()) {
		if (below == 2) {
			pathFinder.addNode(currentNode.xCoord, currentNode.yCoord - 1,
					currentNode.zCoord, PathAction.DIG);
		} else if (below == 1) {
			int maxFall = 5;
			int yOffset = getNextLowestSafeYOffset(terrainMap,
					currentNode.xCoord, currentNode.yCoord - 1,
					currentNode.zCoord, maxFall);
			if (yOffset <= 0) {
				pathFinder.addNode(currentNode.xCoord, currentNode.yCoord
						- 1 + yOffset, currentNode.zCoord, PathAction.NONE);
			}
		}
	}

	if (canSwimVertical()) {
		if (below == -1) {
			pathFinder.addNode(currentNode.xCoord, currentNode.yCoord - 1,
					currentNode.zCoord, PathAction.SWIM);
		}
		if (above == -1)
			pathFinder.addNode(currentNode.xCoord, currentNode.yCoord + 1,
					currentNode.zCoord, PathAction.SWIM);
	}
}

protected void addAdjacent(IBlockAccess terrainMap, int x, int y, int z,
		PathNode currentNode, PathfinderIM pathFinder) {
	if (getCollide(terrainMap, x, y, z) <= 0) {
		return;
	}
	if (getCanClimb()) {
		if (isAdjacentSolidBlock(terrainMap, x, y, z))
			pathFinder.addNode(x, y, z, PathAction.NONE);
	} else if (terrainMap.getBlockState(new BlockPos(x, y, z)).getBlock() == Blocks.LADDER) {
		pathFinder.addNode(x, y, z, PathAction.NONE);
	}
}

protected boolean isAdjacentSolidBlock(IBlockAccess terrainMap, int x, int y, int z) {
	if ((this.collideSize.getXCoord() == 1) && (this.collideSize.getZCoord() == 1)) {
		for (int i = 0; i < 4; i++) {
			IBlockState blockState = terrainMap.getBlockState(new BlockPos(x + CoordsInt.offsetAdjX[i], y, z + CoordsInt.offsetAdjZ[i]));
			if ((blockState.getBlock() != Blocks.AIR) && (blockState.getMaterial().isSolid()))
				return true;
		}
	} else if ((this.collideSize.getXCoord() == 2) && (this.collideSize.getZCoord() == 2)) {
		for (int i = 0; i < 8; i++) {
			IBlockState blockState = terrainMap.getBlockState(new BlockPos(x + CoordsInt.offsetAdj2X[i], y, z + CoordsInt.offsetAdj2Z[i]));
			if ((blockState.getBlock() != Blocks.AIR) && (blockState.getMaterial().isSolid()))
				return true;
		}
	}
	return false;
}

protected int getNextLowestSafeYOffset(IBlockAccess terrainMap, int x,
		int y, int z, int maxOffsetMagnitude) {
	for (int i = 0; (i + y > 0) && (i < maxOffsetMagnitude); i--) {
		if ((canStandAtAndIsValid(terrainMap, x, y + i, z))
				|| ((canSwimHorizontal()) && (getCollide(terrainMap, x, y
						+ i, z) == -1))) {
			return i;
		}
	}
	return 1;
}

public boolean canStandAt(IBlockAccess terrainMap, int x, int y, int z) {
	boolean isSolidBlock = false;
	for (int xOffset = x; xOffset < x + this.collideSize.getXCoord(); xOffset++) {
		for (int zOffset = z; zOffset < z + this.collideSize.getZCoord(); zOffset++) {
			Block block = terrainMap.getBlockState(new BlockPos(xOffset, y - 1, zOffset)).getBlock();
			if (block != Blocks.AIR) {
				if (!block.isPassable(terrainMap, new BlockPos(xOffset, y - 1, zOffset))) {
					isSolidBlock = true;
				} else if (avoidsBlock(block)){
					return false;
				}
			}
		}
	}
	return isSolidBlock;
}

public boolean canStandAtAndIsValid(IBlockAccess terrainMap, int x, int y, int z) {
	return ((this.getCollide(terrainMap, x, y, z) > 0) && (canStandAt(terrainMap, x, y, z)));
}

protected boolean canStandOnBlock(IBlockAccess terrainMap, int x, int y, int z) {
	Block block = terrainMap.getBlockState(new BlockPos(x, y, z)).getBlock();
	if ((block != Blocks.AIR) && (!block.isPassable(terrainMap, new BlockPos(x, y, z))) && (!this.avoidsBlock(block))) {
		return true;
	}
	return false;
}

protected boolean blockHasLadder(IBlockAccess terrainMap, int x, int y,
		int z) {
	for (int i = 0; i < 4; i++) {
		if (terrainMap.getBlockState(new BlockPos(x + CoordsInt.offsetAdjX[i], y, z + CoordsInt.offsetAdjZ[i])).getBlock() == Blocks.LADDER)
			return true;
	}
	return false;
}

protected int getCollide(IBlockAccess terrainMap, int x, int y, int z) {
	boolean destructibleFlag = false;
	boolean liquidFlag = false;
	for (int xOffset = x; xOffset < x + this.collideSize.getXCoord(); xOffset++) {
		for (int yOffset = y; yOffset < y + this.collideSize.getYCoord(); yOffset++) {
			for (int zOffset = z; zOffset < z + this.collideSize.getZCoord(); zOffset++) {
				IBlockState blockState = terrainMap.getBlockState(new BlockPos(xOffset, yOffset, zOffset));
				IBlockState blockState0 = terrainMap.getBlockState(new BlockPos(xOffset, yOffset - 1, zOffset));
				if (blockState.getBlock() != Blocks.AIR) {
					if ((blockState.getBlock() == Blocks.WATER) || (blockState.getBlock() == Blocks.LAVA)) {
						liquidFlag = true;
					} else if (!blockState.getBlock().isPassable(terrainMap, new BlockPos(xOffset, yOffset, zOffset))) {
						if (this.isBlockDestructible(terrainMap, x, y, z, blockState))
							destructibleFlag = true;
						else
							return 0;
					} else if (blockState0.getBlock() instanceof BlockFence) {
						if (this.isBlockDestructible(terrainMap, x, y, z, blockState0)) return 3;
						return 0;
					}

					if (this.avoidsBlock(blockState.getBlock())) return -2;
				}
			}
		}
	}
	if (destructibleFlag) return 2;
	if (liquidFlag) return -1;
	return 1;
}

protected boolean getLightLevelBelow8() {
	BlockPos blockPos = new BlockPos(MathHelper.floor_double(this.posX),
			MathHelper.floor_double(this.getEntityBoundingBox().minY),
			MathHelper.floor_double(this.posZ));

	if (this.worldObj.getLightFor(EnumSkyBlock.SKY, blockPos) > this.rand.nextInt(32)) return false;
	int l = this.worldObj.getBlockLightOpacity(blockPos);

	if (this.worldObj.isThundering()) {
		int i1 = this.worldObj.getSkylightSubtracted();
		this.worldObj.setSkylightSubtracted(10);
		l = this.worldObj.getBlockLightOpacity(blockPos);
		this.worldObj.setSkylightSubtracted(i1);
	}
	return l <= this.rand.nextInt(;
}

protected void setAIGoal(Goal goal) {
	this.currentGoal = goal;
}

protected void setPrevAIGoal(Goal goal) {
	this.prevGoal = goal;
}

public void transitionAIGoal(Goal newGoal) {
	this.prevGoal = this.currentGoal;
	this.currentGoal = newGoal;
}

public void setMoveState(MoveState moveState) {
	this.moveState = moveState;
	if (!this.worldObj.isRemote) this.getDataManager().set(MOVE_STATE, Integer.valueOf(moveState.ordinal()));
}

protected void setDestructiveness(int x) {
	this.destructiveness = x;
}

protected void setGravity(float acceleration) {
	this.gravityAcel = acceleration;
}

public void setGroundFriction(float frictionCoefficient) {
	this.groundFriction = frictionCoefficient;
}

protected void setCanClimb(boolean flag) {
	this.canClimb = flag;
}

protected void setJumpHeight(int height) {
	this.jumpHeight = height;
}

protected void setBaseMoveSpeedStat(float speed) {
	this.moveSpeedBase = speed;
	this.moveSpeed = speed;
}

public void setMoveSpeedStat(float speed) {
	this.moveSpeed = speed;
	getNavigatorNew().setSpeed(speed);
	getMoveHelper().setMoveSpeed(speed);
}

public void resetMoveSpeed() {
	setMoveSpeedStat(this.moveSpeedBase);
	getNavigatorNew().setSpeed(this.moveSpeedBase);
}

public void setTurnRate(float rate) {
	this.turnRate = rate;
}

protected void setName(String name) {
	this.name = name;
}

protected void setGender(int gender) {
	this.gender = gender;
}

protected void onDebugChange() {
}

public static float getBlockStrength(int x, int y, int z, Block block,
		World world) {

	int bonus = 0;
	BlockPos defaultBlockPos = new BlockPos(x, y, z);
	if (world.getBlockState(defaultBlockPos.add(0, -1, 0)).getBlock() == block)
		bonus++;
	if (world.getBlockState(defaultBlockPos.add(0, 1, 0)).getBlock() == block)
		bonus++;
	if (world.getBlockState(defaultBlockPos.add(1, 0, 0)).getBlock() == block)
		bonus++;
	if (world.getBlockState(defaultBlockPos.add(-1, 0, 0)).getBlock() == block)
		bonus++;
	if (world.getBlockState(defaultBlockPos.add(0, 0, 1)).getBlock() == block)
		bonus++;
	if (world.getBlockState(defaultBlockPos.add(0, 0, -1)).getBlock() == block)
		bonus++;

	return block.getExplosionResistance(null) * (1.0F + bonus * 0.1F);
}

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.