Posted November 9, 20168 yr 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
November 9, 20168 yr Author 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)); } }
November 9, 20168 yr Author 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 } }
November 9, 20168 yr Author I just searched the file and there is no such getNavigator. Where did you see it?
November 9, 20168 yr 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.
November 9, 20168 yr Author 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); } }
November 10, 20168 yr Author It continues to refer to this method in IMZombie (and does this for any other mob): this.tasks.addTask(0, new EntityAISwimming(this));
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.