Posted December 27, 201212 yr Where the problem is: [glow=red,2,300]String var2 = (String)classToNameMap.get(this.getClass()); [/glow] if (var2 == null) { throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!"); } else { par1NBTTagCompound.setString("id", var2); par1NBTTagCompound.setInteger("x", this.xCoord); par1NBTTagCompound.setInteger("y", this.yCoord); par1NBTTagCompound.setInteger("z", this.zCoord); } My Tile Entity is missing the class mapping, how do I fix this? TileEntityCode package kore.korecraft.mod; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class TileEntityExpBank extends TileEntity { public TileEntityExpBank() { exp = this.getExpLevel(); } public int getExpLevel() { if(exp>=0){ return exp; } return 0; } public void setExpLevel(int expNew) { exp = expNew; } public void getTextureFromExpStored(int x, int y, int z, World world) { int textureIndex = 0; if (exp > 0 && exp <= BlockExpBank.maxExpStorage) { double maxExpScaled = BlockExpBank.maxExpStorage / 5; if (exp > 0) textureIndex = 5; if (exp > 0 && (double) exp <= maxExpScaled * 4D) textureIndex = 4; if (exp > 0 && (double) exp <= maxExpScaled * 3D) textureIndex = 3; if (exp > 0 && (double) exp <= maxExpScaled * 2D) textureIndex = 2; if (exp > 0 && (double) exp <= maxExpScaled) textureIndex = 1; } world.setBlockMetadata(x, y, z, textureIndex); } public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setInteger("ExperienceBank", this.getExpLevel()); } public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.setExpLevel(nbt.getInteger("ExperienceBank")); } public static boolean takeExpFromSurroundingBanks(World par1World, int par2, int par3, int par4, int amountToDrain){ /** * Used to check for levels in ExpBank around it */ TileEntityExpBank expbankte; expbankte = (TileEntityExpBank) par1World.getBlockTileEntity(par2-1, par3, par4); if(expbankte!=null&&expbankte.getExpLevel()>=amountToDrain){ BlockDayNightSwapper.timeSwap(par1World); expbankte.setExpLevel(expbankte.getExpLevel()-amountToDrain); expbankte.getTextureFromExpStored(par2-1, par3, par4, par1World); return true; }else{ expbankte = (TileEntityExpBank) par1World.getBlockTileEntity(par2+1, par3, par4); if(expbankte!=null&&expbankte.getExpLevel()>=amountToDrain){ BlockDayNightSwapper.timeSwap(par1World); expbankte.setExpLevel(expbankte.getExpLevel()-amountToDrain); expbankte.getTextureFromExpStored(par2+1, par3, par4, par1World); return true; }else{ expbankte = (TileEntityExpBank) par1World.getBlockTileEntity(par2, par3, par4-1); if(expbankte!=null&&expbankte.getExpLevel()>=amountToDrain){ BlockDayNightSwapper.timeSwap(par1World); expbankte.setExpLevel(expbankte.getExpLevel()-amountToDrain); expbankte.getTextureFromExpStored(par2, par3, par4-1, par1World); return true; }else{ expbankte = (TileEntityExpBank) par1World.getBlockTileEntity(par2, par3, par4+1); if(expbankte!=null&&expbankte!=null&&expbankte.getExpLevel()>=amountToDrain){ BlockDayNightSwapper.timeSwap(par1World); expbankte.setExpLevel(expbankte.getExpLevel()-amountToDrain); expbankte.getTextureFromExpStored(par2, par3, par4+1, par1World); return true; }else{ expbankte = (TileEntityExpBank) par1World.getBlockTileEntity(par2, par3-1, par4); if(expbankte!=null&&expbankte!=null&&expbankte.getExpLevel()>=amountToDrain){ BlockDayNightSwapper.timeSwap(par1World); expbankte.setExpLevel(expbankte.getExpLevel()-amountToDrain); expbankte.getTextureFromExpStored(par2, par3-1, par4, par1World); return true; }else{ expbankte = (TileEntityExpBank) par1World.getBlockTileEntity(par2, par3+1, par4); if(expbankte!=null&&expbankte!=null&&expbankte.getExpLevel()>=amountToDrain){ BlockDayNightSwapper.timeSwap(par1World); expbankte.setExpLevel(expbankte.getExpLevel()-amountToDrain); expbankte.getTextureFromExpStored(par2, par3+1, par4, par1World); return true; }else{ return false; } } } } } } } private int exp; } The Korecraft Mod
December 27, 201212 yr its because in you main mod file you should use (for all types of tile entities ) GameRegistry.registerTileEntity [/spoler] You get this erro because your tile entity its not registred so minecraft dosent writes it to nbt if u relog into your world the block (or anithing else) will desapear.
December 27, 201212 yr Author I already had that, please tell me what to change in it GameRegistry.registerTileEntity(TileEntityKoriumMiniChest.class, "containerKoriumMiniChest"); The Korecraft Mod
December 27, 201212 yr GameRegistry.registerTileEntity(TileEntityKoriumMiniChest.class, "containerKoriumMiniChest"); ' ' ' public class TileEntityExpBank something wrong huh?
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.