Posted February 15, 201411 yr I have been working on a 2nd custom machine and what i did was just take the code from the first successful one and used it for the 2nd one and changed the name around to match what I needed but now it wont show the gui. no errors given so i added in a few debug lines and it is acting like the entity is not there at all. In the GuiHandler switch it just goes to the default instead of the one choice that's there. I have checked multiple times at different spots of where I thought it would be and can't find anything wrong. This is the block code package bigbaddevil7.supernova; import java.util.Random; import bigbaddevil7.supernova.TileEntityFragmenter; import bigbaddevil7.supernova.SuperNova; import cpw.mods.fml.common.network.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class Fragmenter extends BlockContainer{ private Random rand = new Random(); private final boolean isActive; private static boolean keepInventory; public Fragmenter(int id, boolean isActive) { super(id, Material.rock); this.isActive = isActive; } public TileEntity createNewTileEntity(World world){ return new TileEntityFragmenter(); } @SideOnly(Side.CLIENT) public void registerIcons(IconRegister icon){ this.blockIcon = icon.registerIcon("supernova:fragmenter"); } public int idDropped(int par1, Random random, int par3){ return SuperNova.fragmenterIdle.blockID; } public void onBlockAdded(World world, int x, int y, int z){ super.onBlockAdded(world, x, y, z); this.setDefaultDirection(world, x, y ,z); } private void setDefaultDirection(World world, int x, int y, int z){ if(!world.isRemote){ int l = world.getBlockId(x, y, z - 1); int il = world.getBlockId(x, y, z + 1); int jl = world.getBlockId(x - 1, y, z); int kl = world.getBlockId(x + 1, y, z); byte b0 = 3; if(Block.opaqueCubeLookup[l] && !Block.opaqueCubeLookup[il]){ b0 = 3; } if(Block.opaqueCubeLookup[il] && !Block.opaqueCubeLookup[l]){ b0 = 2; } if(Block.opaqueCubeLookup[kl] && !Block.opaqueCubeLookup[jl]){ b0 = 5; } if(Block.opaqueCubeLookup[jl] && !Block.opaqueCubeLookup[kl]){ b0 = 4; } world.setBlockMetadataWithNotify(x, y, z, b0, 2); } } public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){ if(!world.isRemote){ FMLNetworkHandler.openGui(player, SuperNova.instance, SuperNova.guiIdFragmenter, world, x, y, z); } return true; } public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityLivingBase, ItemStack itemstack){ int l = MathHelper.floor_double((double)(entityLivingBase.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; if(l == 0){ world.setBlockMetadataWithNotify(x, y, z, 2, 2); } if(l == 1){ world.setBlockMetadataWithNotify(x, y, z, 5, 2); } if(l == 2){ world.setBlockMetadataWithNotify(x, y, z, 3, 2); } if(l == 3){ world.setBlockMetadataWithNotify(x, y, z, 4, 2); } if(itemstack.hasDisplayName()){ ((TileEntityFragmenter)world.getBlockTileEntity(x, y, z)).setGuiDisplayName(itemstack.getDisplayName()); } } public static void updateFragmenterBlockState(boolean active, World worldObj, int xCoord, int yCoord, int zCoord) { int i = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); TileEntity tileentity = worldObj.getBlockTileEntity(xCoord, yCoord, zCoord); keepInventory = true; if(active){ worldObj.setBlock(xCoord, yCoord, zCoord, SuperNova.fragmenterActive.blockID); }else{ worldObj.setBlock(xCoord, yCoord, zCoord, SuperNova.fragmenterIdle.blockID); } keepInventory = false; worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, i, 2); if(tileentity != null){ tileentity.validate(); worldObj.setBlockTileEntity(xCoord, yCoord, zCoord, tileentity); } } @Override public void breakBlock(World world, int x, int y, int z, int oldBlockId, int oldMetadata){ if(!keepInventory){ TileEntityFragmenter tileentity = (TileEntityFragmenter) world.getBlockTileEntity(x, y, z); if(tileentity != null){ for(int i = 0; i < tileentity.getSizeInventory(); i++){ ItemStack itemstack = tileentity.getStackInSlot(i); if(itemstack != null){ float f = this.rand.nextFloat() * 0.8F + 0.1F; float f1 = this.rand.nextFloat() * 0.8F + 0.1F; float f2 = this.rand.nextFloat() * 0.8F + 0.1F; while(itemstack.stackSize > 0){ int j = this.rand.nextInt(21) + 10; if(j > itemstack.stackSize){ j = itemstack.stackSize; } itemstack.stackSize -= j; EntityItem item = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.itemID, j, itemstack.getItemDamage())); if(itemstack.hasTagCompound()){ item.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); } float f3 = 0.05F; item.motionX = (double)((float)this.rand.nextGaussian() * f3); item.motionY = (double)((float)this.rand.nextGaussian() * f3 + 0.2F); item.motionZ = (double)((float)this.rand.nextGaussian() * f3); world.spawnEntityInWorld(item); } } } world.func_96440_m(x, y, z, oldBlockId); } } super.breakBlock(world, x, y, z, oldBlockId, oldMetadata); } @Override public boolean hasComparatorInputOverride(){ return true; } @Override public int getComparatorInputOverride(World world, int x, int y, int z, int i){ return Container.calcRedstoneFromInventory((IInventory)world.getBlockTileEntity(x, y, z)); } @Override public int idPicked(World world, int x, int y, int z){ return SuperNova.fragmenterIdle.blockID; } } This is the TileEntity package bigbaddevil7.supernova; import bigbaddevil7.supernova.TileEntityFragmenter; import bigbaddevil7.supernova.Fragmenter; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.item.ItemTool; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; public class TileEntityFragmenter extends TileEntity implements ISidedInventory{ private String localizedName; private ItemStack[] slots = new ItemStack[3]; public int furanceSpeed = 100; public int burnTime; public int currentItemBurnTime; public int cookTime; private static final int[] slots_top = new int[]{0}; private static final int[] slots_bottom = new int[]{2, 1}; private static final int[] slots_sides = new int[]{1}; public String getInvName(){ return this.isInvNameLocalized() ? this.localizedName : "container.fragmenter"; } public boolean isInvNameLocalized(){ return this.localizedName != null && this.localizedName.length() > 0; } public void setGuiDisplayName(String displayName) { this.localizedName = displayName; } @Override public int getSizeInventory() { return this.slots.length; } @Override public ItemStack getStackInSlot(int i) { return this.slots[i]; } @Override public ItemStack decrStackSize(int i, int j) { if(this.slots[i] != null){ ItemStack itemstack; if(this.slots[i].stackSize <= j){ itemstack = this.slots[i]; this.slots[i] = null; return itemstack; }else{ itemstack = this.slots[i].splitStack(j); if(this.slots[i].stackSize == 0){ this.slots[i] = null; } return itemstack; } } return null; } @Override public ItemStack getStackInSlotOnClosing(int i) { if(this.slots[i] != null){ ItemStack itemstack = this.slots[i]; this.slots[i] = null; return itemstack; } return null; } @Override public void setInventorySlotContents(int i, ItemStack itemstack) { this.slots[i] = itemstack; if(itemstack != null && itemstack.stackSize > this.getInventoryStackLimit()){ itemstack.stackSize = this.getInventoryStackLimit(); } } @Override public int getInventoryStackLimit() { return 64; } public void readFromNBT(NBTTagCompound nbt){ super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("Items"); this.slots = new ItemStack[this.getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++){ NBTTagCompound compound = (NBTTagCompound) list.tagAt(i); byte b = compound.getByte("Slot"); if(b >= 0 && b < this.slots.length){ this.slots[b] = ItemStack.loadItemStackFromNBT(compound); } } this.burnTime = nbt.getShort("BurnTime"); this.cookTime = nbt.getShort("cookTime"); this.currentItemBurnTime = getItemBurnTime(this.slots[1]); if(nbt.hasKey("CustomName")){ this.localizedName = nbt.getString("CustomName"); } } public void writeToNBT(NBTTagCompound nbt){ super.writeToNBT(nbt); nbt.setShort("BurnTime", (short)this.burnTime); nbt.setShort("CookTime", (short)this.cookTime); NBTTagList list = new NBTTagList(); for(int i = 0; i < this.slots.length; i++){ if(this.slots[i] != null){ NBTTagCompound compound = new NBTTagCompound(); compound.setByte("Slot", (byte)i); this.slots[i].writeToNBT(compound); list.appendTag(compound); } } nbt.setTag("Items", list); if(this.isInvNameLocalized()){ nbt.setString("CustomName", this.localizedName); } } @Override public boolean isUseableByPlayer(EntityPlayer entityplayer) { return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : entityplayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; } @Override public void openChest() {} @Override public void closeChest() {} public boolean isBurning(){ return this.burnTime > 0; } @Override public void updateEntity(){ boolean flag = this.burnTime > 0; boolean flag1 = false; if(this.burnTime > 0){ this.burnTime--; } if(!this.worldObj.isRemote){ if(this.burnTime == 0 && this.canSmelt()){ this.currentItemBurnTime = this.burnTime = getItemBurnTime(this.slots[1]); if(this.burnTime > 0){ flag1 = true; if(this.slots[1] != null){ this.slots[1].stackSize--; if(this.slots[1].stackSize == 0){ this.slots[1] = this.slots[1].getItem().getContainerItemStack(this.slots[1]); } } } } if(this.isBurning() && this.canSmelt()){ this.cookTime++; if(this.cookTime == this.furanceSpeed){ this.cookTime = 0; this.smeltItem(); flag1 = true; } }else{ this.cookTime = 0; } if(flag != this.burnTime > 0){ flag1 = true; Fragmenter.updateFragmenterBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } } if(flag1){ this.onInventoryChanged(); } } private boolean canSmelt(){ if(this.slots[0] == null){ return false; }else{ ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); if(itemstack == null) return false; if(this.slots[2] == null) return true; if(!this.slots[2].isItemEqual(itemstack)) return false; int result = this.slots[2].stackSize + itemstack.stackSize; return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize()); } } public void smeltItem(){ if(this.canSmelt()){ ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); if(this.slots[2] == null){ this.slots[2] = itemstack.copy(); }else if(this.slots[2].isItemEqual(itemstack)){ this.slots[2].stackSize += itemstack.stackSize; } this.slots[0].stackSize--; if(this.slots[0].stackSize <= 0){ this.slots[0] = null; } } } public static int getItemBurnTime(ItemStack itemstack){ if(itemstack == null){ return 0; }else{ int i = itemstack.getItem().itemID; Item item = itemstack.getItem(); if(itemstack.getItem() instanceof ItemBlock && Block.blocksList[i] != null){ Block block = Block.blocksList[i]; if(block == Block.woodSingleSlab){ return 150; } if(block.blockMaterial == Material.wood){ return 300; } if(block == Block.coalBlock){ return 16000; } } if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200; if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200; if (item instanceof ItemHoe && ((ItemHoe)item).getMaterialName().equals("WOOD")) return 200; if (i == Item.stick.itemID) return 100; //if (i == Item.coal.itemID) return (int)Math.ceil(1371.4286 +(itemstack.stackSize * 228.5714)); if (i == Item.coal.itemID) return (int)Math.floor(itemstack.stackSize * 12.5); if (i == Item.bucketLava.itemID) return 20000; if (i == Block.sapling.blockID) return 100; if (i == Item.blazeRod.itemID) return 2400; return GameRegistry.getFuelValue(itemstack); } } public static boolean isItemFuel(ItemStack itemstack){ return getItemBurnTime(itemstack) > 0; } @Override public boolean isItemValidForSlot(int i, ItemStack itemstack) { return i == 2 ? false : (i == 1 ? isItemFuel(itemstack) : true); } @Override public int[] getAccessibleSlotsFromSide(int var1) { return var1 == 0 ? slots_bottom : (var1 == 1 ? slots_top : slots_sides); } @Override public boolean canInsertItem(int i, ItemStack itemstack, int j) { return this.isItemValidForSlot(i, itemstack); } @Override public boolean canExtractItem(int i, ItemStack itemstack, int j) { return j != 0 || i != 1 || itemstack.itemID == Item.bucketEmpty.itemID; } public int getCookProgressScaled(int i) { return this.cookTime * i / this.furanceSpeed; } public int getBurnTimeRemainingScaled(int i) { if(this.currentItemBurnTime == 0){ this.currentItemBurnTime = this.furanceSpeed; } return this.burnTime * i / this.currentItemBurnTime; } } This is the GUI package bigbaddevil7.supernova; import org.lwjgl.opengl.GL11; import bigbaddevil7.supernova.TileEntityFragmenter; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.util.ResourceLocation; public class GuiFragmenter extends GuiContainer{ public static final ResourceLocation fragmenterTexture = new ResourceLocation(SuperNovaInfo.NAME.toLowerCase(), "textures/gui/oxidizer2.png"); public TileEntityFragmenter fragmenter; public GuiFragmenter(InventoryPlayer inventoryplayer, TileEntityFragmenter entity) { super(new ContainerFragmenter(inventoryplayer, entity)); this.fragmenter = entity; this.xSize = 176; this.ySize = 166; } public void drawGuiContainerForegroundLayer(int par1, int par2){ String name = this.fragmenter.isInvNameLocalized() ? this.fragmenter.getInvName() : I18n.getString(this.fragmenter.getInvName()); this.fontRenderer.drawString(name, this.xSize / 2 - this.fontRenderer.getStringWidth(name) / 2, 6, 4210752); this.fontRenderer.drawString(I18n.getString("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @Override public void drawGuiContainerBackgroundLayer(float f, int i, int j) { GL11.glColor4f(1F, 1F, 1F, 1F); this.mc.getTextureManager().bindTexture(fragmenterTexture); int k = (this.width - this.xSize) / 2; int l = (this.height - this.ySize) / 2; this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); if (this.fragmenter.isBurning()) { int i1 = this.fragmenter.getBurnTimeRemainingScaled(18); drawTexturedModalRect(k + 34, l + 50 + 18 - i1, 176, 17 - i1, 18, i1 + 2); //drawTexturedModalRect(k + 56, l + 36 + 12 - i1, 176, 12 - i1, 14, i1 + 2); //drawTexturedModalRect(gui left, gui top, 0, 0, xSize, ySize) } int i1 = this.fragmenter.getCookProgressScaled(37); drawTexturedModalRect(k + 69, l + 72, 176, 18, i1 + 1, 7); } } This is the Container package bigbaddevil7.supernova; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.inventory.SlotFurnace; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import bigbaddevil7.supernova.TileEntityFragmenter; public class ContainerFragmenter extends Container { private TileEntityFragmenter fragmenter; public int lastBurnTime; public int lastItemBurnTime; public int lastCookTime; public ContainerFragmenter(InventoryPlayer inventory, TileEntityFragmenter tileentity){ this.fragmenter = tileentity; this.addSlotToContainer(new Slot(tileentity, 0, 35, 12)); this.addSlotToContainer(new Slot(tileentity, 1, 35, 52)); this.addSlotToContainer(new SlotFurnace(inventory.player, tileentity, 2, 124, 34 )); for(int i = 0; i< 3; i++){ for(int j = 0; j < 9; j++){ this.addSlotToContainer(new Slot(inventory, j + i*9 + 9, 8 + j * 18, 84 + i * 18)); } } for(int i = 0; i < 9; i++){ this.addSlotToContainer(new Slot(inventory, i, 8 + i*18, 142)); } } @Override public void addCraftingToCrafters(ICrafting icrafting){ super.addCraftingToCrafters(icrafting); icrafting.sendProgressBarUpdate(this, 0, this.fragmenter.cookTime); icrafting.sendProgressBarUpdate(this, 1, this.fragmenter.burnTime); icrafting.sendProgressBarUpdate(this, 2, this.fragmenter.currentItemBurnTime); } public void detectAndSendChanges(){ super.detectAndSendChanges(); for(int i = 0; i < this.crafters.size(); i++){ ICrafting icrafting = (ICrafting)this.crafters.get(i); if(this.lastCookTime != this.fragmenter.cookTime){ icrafting.sendProgressBarUpdate(this, 0, this.fragmenter.cookTime); } if(this.lastBurnTime != this.fragmenter.burnTime){ icrafting.sendProgressBarUpdate(this, 1, this.fragmenter.burnTime); } if(this.lastItemBurnTime != this.fragmenter.currentItemBurnTime){ icrafting.sendProgressBarUpdate(this, 2, this.fragmenter.currentItemBurnTime); } } this.lastCookTime = this.fragmenter.cookTime; this.lastBurnTime = this.fragmenter.burnTime; this.lastItemBurnTime = this.fragmenter.currentItemBurnTime; } @SideOnly(Side.CLIENT) public void updateProgressBar(int slot, int newValue){ if(slot == 0) this.fragmenter.cookTime = newValue; if(slot == 1) this.fragmenter.burnTime = newValue; if(slot == 2) this.fragmenter.currentItemBurnTime = newValue; } public ItemStack transferStackInSlot(EntityPlayer player, int clickedSlotNumber){ ItemStack itemstack = null; Slot slot = (Slot)this.inventorySlots.get(clickedSlotNumber); if(slot != null && slot.getHasStack()){ ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if(clickedSlotNumber == 2){ if(!this.mergeItemStack(itemstack1, 3, 39, true)){ return null; } slot.onSlotChange(itemstack1, itemstack); }else if(clickedSlotNumber != 1 && clickedSlotNumber !=0){ if(FurnaceRecipes.smelting().getSmeltingResult(itemstack1) != null){ if(!this.mergeItemStack(itemstack1, 0, 1, false)){ return null; } }else if(TileEntityFragmenter.isItemFuel(itemstack1)){ if(!this.mergeItemStack(itemstack1, 1, 2, false)){ return null; } }else if(clickedSlotNumber >= 3 && clickedSlotNumber < 30){ if(!this.mergeItemStack(itemstack1, 30, 39, true)){ return null; } }else if(clickedSlotNumber >= 30 && clickedSlotNumber <= 38){ if(!this.mergeItemStack(itemstack1, 3, 30, true)){ return null; } } }else if(!this.mergeItemStack(itemstack1, 3, 39, true)){ return null; } if(itemstack1.stackSize == 0){ slot.putStack((ItemStack)null); }else{ slot.onSlotChanged(); } if(itemstack1.stackSize == itemstack.stackSize){ return null; } slot.onPickupFromSlot(player, itemstack1); } return itemstack; } @Override public boolean canInteractWith(EntityPlayer entityplayer) { return this.fragmenter.isUseableByPlayer(entityplayer); } } This is the GuiHandler(At the moment I just have the one block in the switch statement to narrow things down). package bigbaddevil7.supernova; import bigbaddevil7.supernova.tileentity.TileEntityOxidizer; import bigbaddevil7.supernova.Fragmenter; import bigbaddevil7.supernova.TileEntityFragmenter; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; public class GuiHandler implements IGuiHandler{ public GuiHandler(){ NetworkRegistry.instance().registerGuiHandler(SuperNova.instance, this); } @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getBlockTileEntity(x, y, z); if(entity != null){ switch(ID){ case SuperNova.guiIdOxidizer: if(entity instanceof TileEntityFragmenter){ return new GuiFragmenter(player.inventory, (TileEntityFragmenter) entity); } return null; default: return null; } } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getBlockTileEntity(x, y, z); if(entity != null){ switch(ID){ case SuperNova.guiIdFragmenter: if(entity instanceof TileEntityFragmenter){ return new GuiFragmenter(player.inventory, (TileEntityFragmenter) entity); } return null; } } return null; } } I have everything for Registry in my main class.
February 15, 201411 yr Well, you've got SuperNova.guiIdOxidizer in the server side switch when you're looking for the fragmenter I do believe. Be careful how you copy and paste. If you really want help, give that modder a thank you. Modders LOVE thank yous.
February 15, 201411 yr Author huh thats strange I know for sure I swapped it must of been when I was testing it must of changed the wrong one back or something, but now im getting 2014-02-15 17:41:01 [iNFO] [sTDERR] net.minecraft.util.ReportedException: Ticking memory connection 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:63) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:691) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:587) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:484) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) 2014-02-15 17:41:01 [iNFO] [sTDERR] Caused by: java.lang.ClassCastException: bigbaddevil7.supernova.GuiFragmenter cannot be cast to net.minecraft.inventory.Container 2014-02-15 17:41:01 [iNFO] [sTDERR] at cpw.mods.fml.common.network.NetworkRegistry.openRemoteGui(NetworkRegistry.java:308) 2014-02-15 17:41:01 [iNFO] [sTDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.openGui(FMLNetworkHandler.java:353) 2014-02-15 17:41:01 [iNFO] [sTDERR] at bigbaddevil7.supernova.Fragmenter.onBlockActivated(Fragmenter.java:90) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:421) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:556) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141) 2014-02-15 17:41:01 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54) 2014-02-15 17:41:01 [iNFO] [sTDERR] ... 6 more 2014-02-15 17:41:01 [sEVERE] [Minecraft-Server] Encountered an unexpected exception ReportedException net.minecraft.util.ReportedException: Ticking memory connection at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:63) at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:691) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:587) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:484) at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) Caused by: java.lang.ClassCastException: bigbaddevil7.supernova.GuiFragmenter cannot be cast to net.minecraft.inventory.Container at cpw.mods.fml.common.network.NetworkRegistry.openRemoteGui(NetworkRegistry.java:308) at cpw.mods.fml.common.network.FMLNetworkHandler.openGui(FMLNetworkHandler.java:353) at bigbaddevil7.supernova.Fragmenter.onBlockActivated(Fragmenter.java:90) at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:421) at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:556) at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79) at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89) at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141) at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
February 16, 201411 yr Author Ok, I redid my GuiHandler and fixed that crash now in order to have two custom GUI's I would add another case wouldn't I, because when I do it give me that error again I can have one or the other but not both. Updated GuiHandler(commented out the 2nd GUI) package bigbaddevil7.supernova; import bigbaddevil7.supernova.Fragmenter; import bigbaddevil7.supernova.tileentity.TileEntityOxidizer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; public class GuiHandler implements IGuiHandler{ public GuiHandler(){ NetworkRegistry.instance().registerGuiHandler(SuperNova.instance, this); } @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getBlockTileEntity(x, y, z); if(entity != null){ switch(ID){ case SuperNova.guiIdFragmenter: if(entity instanceof TileEntityFragmenter){ return new ContainerFragmenter(player.inventory, (TileEntityFragmenter) entity); } /*case SuperNova.guiIdOxidizer: if(entity instanceof TileEntityOxidizer){ return new ContainerOxidizer(player.inventory, (TileEntityOxidizer) entity); }*/ } } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getBlockTileEntity(x, y, z); if(entity != null){ switch(ID){ case SuperNova.guiIdFragmenter: if(entity instanceof TileEntityFragmenter){ return new GuiFragmenter(player.inventory, (TileEntityFragmenter) entity); } /*case SuperNova.guiIdOxidizer: if(entity instanceof TileEntityOxidizer){ return new ContainerOxidizer(player.inventory, (TileEntityOxidizer) entity); }*/ } } return null; } }
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.