Posted March 23, 201411 yr Got this error, is this a Minecraft Bug, a Forge bug or am I doing something wrong? My Block normally works but sometimes I get this error when calling notifyBlocksOfNeighborChange()... Description: Exception in server tick loop java.lang.NoClassDefFoundError: net/minecraft/world/World$2 at net.minecraft.world.World.notifyBlockOfNeighborChange(World.java:820) at net.minecraft.world.World.notifyBlocksOfNeighborChange(World.java:773) at tennox.chameleon.TileEntityChameleon.updateMaster(TileEntityChameleon.java:41) at tennox.chameleon.BlockChameleon.onBlockAdded(BlockChameleon.java:46) at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:738) at net.minecraft.world.World.setBlock(World.java:549) at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:232) at net.minecraft.item.ItemBlock.onItemUse(ItemBlock.java:116) at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:150) at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:424) at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:596) at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74) at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:242) at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:190) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:763) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:651) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:120) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:530) at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:788) I also got this error one time without even touching my mod Block: Description: Exception in server tick loop java.lang.NoClassDefFoundError: net/minecraft/world/World$2 at net.minecraft.world.World.notifyBlockOfNeighborChange(World.java:820) at net.minecraft.world.World.notifyBlocksOfNeighborChange(World.java:752) at net.minecraft.world.World.notifyBlockChange(World.java:713) at net.minecraft.world.World.setBlock(World.java:563) at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:232) at net.minecraft.item.ItemBlock.onItemUse(ItemBlock.java:116) at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:150) at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:424) at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:596) at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74) at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:242) at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:190) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:763) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:651) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:120) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:530) at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:788) Forge Version: 1.7.2-10.12.0.104 Base classes aren't modified in any way! (not sure if that's even possible with gradle?)
March 24, 201411 yr What version of Minecraft/Forge are you using? Also, did you modify the World class? Potato's have skin. I have skin. Therefore, i am a potato. Follow me on Twitter! http://www.twitter.com/I_Mod_Minecraft
March 24, 201411 yr Author What version of Minecraft/Forge are you using? Also, did you modify the World class? Sorry... Forge Version: 1.7.2-10.12.0.104 Base classes aren't modified in any way! (not sure if that's even possible with gradle?)
March 24, 201411 yr at tennox.chameleon.TileEntityChameleon.updateMaster(TileEntityChameleon.java:41) at tennox.chameleon.BlockChameleon.onBlockAdded(BlockChameleon.java:46) We need to see your code.
March 24, 201411 yr Author at tennox.chameleon.TileEntityChameleon.updateMaster(TileEntityChameleon.java:41) at tennox.chameleon.BlockChameleon.onBlockAdded(BlockChameleon.java:46) We need to see your code. onBlockAdded: public void onBlockAdded(World world, int i, int j, int k) { super.onBlockAdded(world, i, j, k); TileEntityChameleon tile = (TileEntityChameleon) world.getTileEntity(i, j, k); tile.updateMaster(); } updateMaster: public void updateMaster() { int i = xCoord, j = yCoord, k = zCoord; if (side == ForgeDirection.DOWN) j--; if (side == ForgeDirection.UP) j++; if (side == ForgeDirection.NORTH) k--; if (side == ForgeDirection.EAST) i++; if (side == ForgeDirection.SOUTH) k++; if (side == ForgeDirection.WEST) i--; master = worldObj.getBlock(i, j, k); int meta = worldObj.getBlockMetadata(i, j, k); worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, meta, 3); markDirty(); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, master, side.ordinal()); }
March 24, 201411 yr if (side == ForgeDirection.WEST) i--; master = worldObj.getBlock(i, j, k); int meta = worldObj.getBlockMetadata(i, j, k); worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, meta, 3); markDirty(); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, master, side.ordinal()); How are "side" and "master" defined ? Don't you need a check before changing the "master" field ? The last two lines are unnecessary. You are already doing it with World#setBlockMetadataWithNotify(..., 3). Do you override markDirty() with something ?
March 24, 201411 yr Author How are "side" and "master" defined ? Don't you need a check before changing the "master" field ? The last two lines are unnecessary. You are already doing it with World#setBlockMetadataWithNotify(..., 3). Do you override markDirty() with something ? side and master: public Block master = Blocks.air; ForgeDirection side = ForgeDirection.DOWN; And the lines would be unnecessary, if I wouldn't set metadata to 0 sometimes (block was air before -> meta=0 -> no blockUpdate called because no metadata changed) I tried without. And no, I didn't override markDirty()
March 24, 201411 yr Author It seems to be fixed with this code: Block oldMaster = master; int oldMeta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); master = worldObj.getBlock(i, j, k); if (master == Chameleon.chameleon) { TileEntityChameleon tile2 = (TileEntityChameleon) worldObj.getTileEntity(i, j, k); master = tile2.master; } int meta = worldObj.getBlockMetadata(i, j, k); if (meta != oldMeta) { worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, meta, 3); } else if (master != oldMaster) { worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); // markDirty(); worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, master, side.ordinal()); } But still, can someone explain me what I did do so wrong that it would cause a NoClassDefFoundError???
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.