Posted August 29, 201312 yr Hi, I'm working on this furnace and I have gotten everything to work properly except one thing, the progress bars aren't working. Then I found out how the vanilla furnace did it, but when I tried it out it gave me some null pointers and a error log. So here is my Container and error log and the gui in case that is needed. ContainerFuser package net.blazecoding.magicpowders.inventory; import net.blazecoding.magicpowders.tileentity.TileFuser; 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.item.ItemStack; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; /** * * Magic Powders * * ContainerFuser * * @author BlazeCoding * @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html) * */ public class ContainerFuser extends Container { private TileFuser fuser; private int lastCookTime = 0; private int lastBurnTime = 0; private int lastItemBurnTime = 0; public ContainerFuser(InventoryPlayer inventoryPlayer, TileFuser fuser) { this.fuser = fuser; // Add the input slot to the container this.addSlotToContainer(new Slot(fuser, TileFuser.INPUT_INVENTORY_INDEX, 56, 17)); // Add the fuel slot to the container this.addSlotToContainer(new Slot(fuser, TileFuser.FUEL_INVENTORY_INDEX, 56, 53)); // Add the output results slot to the container this.addSlotToContainer(new SlotFuser(fuser, TileFuser.OUTPUT_INVENTORY_INDEX, 116, 35)); // Add the player's inventory slots to the container for (int inventoryRowIndex = 0; inventoryRowIndex < 3; ++inventoryRowIndex) { for (int inventoryColumnIndex = 0; inventoryColumnIndex < 9; ++inventoryColumnIndex) { this.addSlotToContainer(new Slot(inventoryPlayer, inventoryColumnIndex + inventoryRowIndex * 9 + 9, 8 + inventoryColumnIndex * 18, 84 + inventoryRowIndex * 18)); } } // Add the player's action bar slots to the container for (int actionBarSlotIndex = 0; actionBarSlotIndex < 9; ++actionBarSlotIndex) { this.addSlotToContainer(new Slot(inventoryPlayer, actionBarSlotIndex, 8 + actionBarSlotIndex * 18, 142)); } } public void addCraftingToCrafters(ICrafting par1ICrafting) { super.addCraftingToCrafters(par1ICrafting); par1ICrafting.sendProgressBarUpdate(this, 0, this.fuser.fuserFuseTime); par1ICrafting.sendProgressBarUpdate(this, 1, this.fuser.fuserFusedTime2); par1ICrafting.sendProgressBarUpdate(this, 2, this.fuser.currentItemFuseTime); } public void detectAndSendChanges() { super.detectAndSendChanges(); for (int var1 = 0; var1 < this.crafters.size(); ++var1) { ICrafting var2 = (ICrafting) this.crafters.get(var1); if (this.lastBurnTime != this.fuser.fuserFuseTime) { var2.sendProgressBarUpdate(this, 0, this.fuser.fuserFuseTime); } if (this.lastCookTime != this.fuser.fuserFusedTime2) { var2.sendProgressBarUpdate(this, 1, this.fuser.fuserFusedTime2); } if (this.lastItemBurnTime != this.fuser.currentItemFuseTime) { var2.sendProgressBarUpdate(this, 2, this.fuser.currentItemFuseTime); } this.lastCookTime = this.fuser.fuserFusedTime2; this.lastBurnTime = this.fuser.fuserFuseTime; this.lastItemBurnTime = this.fuser.currentItemFuseTime; } } @SideOnly(Side.CLIENT) public void updateProgressBar(int par1, int par2) { if (par1 == 0) { this.fuser.fuserFuseTime = par2; } if (par1 == 1) { this.fuser.fuserFusedTime2 = par2; } if (par1 == 2) { this.fuser.currentItemFuseTime = par2; } } public boolean canInteractWith(EntityPlayer player) { return fuser.isUseableByPlayer(player); } public ItemStack transferStackInSlot(EntityPlayer entityPlayer, int slotIndex) { ItemStack itemStack = null; Slot slot = (Slot) inventorySlots.get(slotIndex); if (slot != null && slot.getHasStack()) { ItemStack slotItemStack = slot.getStack(); itemStack = slotItemStack.copy(); if (slotIndex < TileFuser.INVENTORY_SIZE) { if (!this.mergeItemStack(slotItemStack, TileFuser.INVENTORY_SIZE, inventorySlots.size(), false)) { return null; } } else { if (TileFuser.isItemDust(slotItemStack)) { if (!this.mergeItemStack(slotItemStack, TileFuser.FUEL_INVENTORY_INDEX, TileFuser.OUTPUT_INVENTORY_INDEX, false)) { return null; } } else if (!this.mergeItemStack(slotItemStack, TileFuser.INPUT_INVENTORY_INDEX, TileFuser.OUTPUT_INVENTORY_INDEX, false)) { return null; } } if (slotItemStack.stackSize == 0) { slot.putStack((ItemStack) null); } else { slot.onSlotChanged(); } } return itemStack; } } GuiFuser package net.blazecoding.magicpowders.client.gui.inventory; import net.blazecoding.magicpowders.inventory.ContainerFuser; import net.blazecoding.magicpowders.lib.Strings; import net.blazecoding.magicpowders.lib.Textures; import net.blazecoding.magicpowders.tileentity.TileFuser; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.StatCollector; import org.lwjgl.opengl.GL11; /** * * Magic Powders * * GuiFuser * * @author BlazeCoding * @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html) * */ public class GuiFuser extends GuiContainer { private TileFuser tileFuser; public GuiFuser(InventoryPlayer player, TileFuser tileFuser) { super(new ContainerFuser(player, tileFuser)); this.tileFuser = tileFuser; } protected void drawGuiContainerForegroundLayer(int x, int y) { String containerName = tileFuser.isInvNameLocalized() ? tileFuser.getInvName() : StatCollector.translateToLocal(tileFuser.getInvName()); fontRenderer.drawString(containerName, xSize / 2 - fontRenderer.getStringWidth(containerName) / 2, 6, 4210752); fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_INVENTORY), 8, ySize - 96 + 2, 4210752); } protected void drawGuiContainerBackgroundLayer(float opacity, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); // this.mc.getTextureManager().bindTexture(...) this.mc.func_110434_K().func_110577_a(Textures.GUI_FUSER); int xStart = (width - xSize) / 2; int yStart = (height - ySize) / 2; this.drawTexturedModalRect(xStart, yStart, 0, 0, xSize, ySize); int i1; if (this.tileFuser.isBurning()) { i1 = this.tileFuser.getBurnTimeRemainingScaled(12); this.drawTexturedModalRect(xStart + 56, yStart + 36 + 12 - i1, 176, 12 - i1, 14, i1 + 2); } i1 = this.tileFuser.getCookProgressTimeScaled(24); this.drawTexturedModalRect(xStart + 79, yStart + 34, 176, 14, i1 + 1, 16); } } Error log: 2013-08-29 23:28:10 [iNFO] [sTDERR] net.minecraft.util.ReportedException: Ticking memory connection 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:63) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) 2013-08-29 23:28:10 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.blazecoding.magicpowders.inventory.ContainerFuser.detectAndSendChanges(ContainerFuser.java:65) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:56) 2013-08-29 23:28:10 [iNFO] [sTDERR] at cpw.mods.fml.common.network.NetworkRegistry.openRemoteGui(NetworkRegistry.java:321) 2013-08-29 23:28:10 [iNFO] [sTDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.openGui(FMLNetworkHandler.java:352) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2461) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.blazecoding.magicpowders.block.BlockFuser.onBlockActivated(BlockFuser.java:94) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:416) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:554) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141) 2013-08-29 23:28:10 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54) 2013-08-29 23:28:10 [iNFO] [sTDERR] ... 6 more 2013-08-29 23:28:10 [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:689) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) Caused by: java.lang.NullPointerException at net.blazecoding.magicpowders.inventory.ContainerFuser.detectAndSendChanges(ContainerFuser.java:65) at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:56) at cpw.mods.fml.common.network.NetworkRegistry.openRemoteGui(NetworkRegistry.java:321) at cpw.mods.fml.common.network.FMLNetworkHandler.openGui(FMLNetworkHandler.java:352) at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2461) at net.blazecoding.magicpowders.block.BlockFuser.onBlockActivated(BlockFuser.java:94) at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:416) at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:554) 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) ... 6 more 2013-08-29 23:28:10 [sEVERE] [Minecraft-Server] This crash report has been saved to: C:\Development\forge\mcp\jars\.\crash-reports\crash-2013-08-29_23.28.10-server.txt 2013-08-29 23:28:10 [iNFO] [Minecraft-Server] Stopping server 2013-08-29 23:28:10 [iNFO] [Minecraft-Server] Saving players 2013-08-29 23:28:10 [iNFO] [Minecraft-Server] Xetosphere left the game 2013-08-29 23:28:10 [iNFO] [sTDOUT] ---- Minecraft Crash Report ---- 2013-08-29 23:28:10 [iNFO] [sTDOUT] // Ouch. That hurt 2013-08-29 23:28:10 [iNFO] [sTDOUT] 2013-08-29 23:28:10 [iNFO] [sTDOUT] Time: 29.08.13 23:28 2013-08-29 23:28:10 [iNFO] [sTDOUT] Description: Ticking memory connection 2013-08-29 23:28:10 [iNFO] [sTDOUT] 2013-08-29 23:28:10 [iNFO] [sTDOUT] java.lang.NullPointerException 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.blazecoding.magicpowders.inventory.ContainerFuser.detectAndSendChanges(ContainerFuser.java:65) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:56) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.network.NetworkRegistry.openRemoteGui(NetworkRegistry.java:321) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.network.FMLNetworkHandler.openGui(FMLNetworkHandler.java:352) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2461) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.blazecoding.magicpowders.block.BlockFuser.onBlockActivated(BlockFuser.java:94) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:416) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:554) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) 2013-08-29 23:28:10 [iNFO] [sTDOUT] 2013-08-29 23:28:10 [iNFO] [sTDOUT] 2013-08-29 23:28:10 [iNFO] [sTDOUT] A detailed walkthrough of the error, its code path and all known details is as follows: 2013-08-29 23:28:10 [iNFO] [sTDOUT] --------------------------------------------------------------------------------------- 2013-08-29 23:28:10 [iNFO] [sTDOUT] 2013-08-29 23:28:10 [iNFO] [sTDOUT] -- Head -- 2013-08-29 23:28:10 [iNFO] [sTDOUT] Stacktrace: 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.blazecoding.magicpowders.inventory.ContainerFuser.detectAndSendChanges(ContainerFuser.java:65) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:56) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.network.NetworkRegistry.openRemoteGui(NetworkRegistry.java:321) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at cpw.mods.fml.common.network.FMLNetworkHandler.openGui(FMLNetworkHandler.java:352) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2461) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.blazecoding.magicpowders.block.BlockFuser.onBlockActivated(BlockFuser.java:94) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:416) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:554) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141) 2013-08-29 23:28:10 [iNFO] [sTDOUT] 2013-08-29 23:28:10 [iNFO] [sTDOUT] -- Ticking connection -- 2013-08-29 23:28:10 [iNFO] [sTDOUT] Details: 2013-08-29 23:28:10 [iNFO] [sTDOUT] Connection: net.minecraft.network.NetServerHandler@306c3705 2013-08-29 23:28:10 [iNFO] [sTDOUT] Stacktrace: 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) 2013-08-29 23:28:10 [iNFO] [sTDOUT] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) 2013-08-29 23:28:10 [iNFO] [sTDOUT] 2013-08-29 23:28:10 [iNFO] [sTDOUT] -- System Details -- 2013-08-29 23:28:10 [iNFO] [sTDOUT] Details: 2013-08-29 23:28:10 [iNFO] [sTDOUT] Minecraft Version: 1.6.2 2013-08-29 23:28:10 [iNFO] [sTDOUT] Operating System: Windows 7 (amd64) version 6.1 2013-08-29 23:28:10 [iNFO] [sTDOUT] Java Version: 1.7.0_25, Oracle Corporation 2013-08-29 23:28:10 [iNFO] [sTDOUT] Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation 2013-08-29 23:28:10 [iNFO] [sTDOUT] Memory: 828494480 bytes (790 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB) 2013-08-29 23:28:10 [iNFO] [sTDOUT] JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M 2013-08-29 23:28:10 [iNFO] [sTDOUT] AABB Pool Size: 445 (24920 bytes; 0 MB) allocated, 291 (16296 bytes; 0 MB) used 2013-08-29 23:28:10 [iNFO] [sTDOUT] Suspicious classes: FML and Forge are installed 2013-08-29 23:28:10 [iNFO] [sTDOUT] IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 2013-08-29 23:28:10 [iNFO] [sTDOUT] FML: MCP v8.04 FML v6.2.35.804 Minecraft Forge 9.10.0.804 4 mods loaded, 4 mods active 2013-08-29 23:28:10 [iNFO] [sTDOUT] mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available 2013-08-29 23:28:10 [iNFO] [sTDOUT] FML{6.2.35.804} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available 2013-08-29 23:28:10 [iNFO] [sTDOUT] Forge{9.10.0.804} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available 2013-08-29 23:28:10 [iNFO] [sTDOUT] MP{pre0.0.1} [Magic Powders] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available 2013-08-29 23:28:10 [iNFO] [sTDOUT] Profiler Position: N/A (disabled) 2013-08-29 23:28:10 [iNFO] [sTDOUT] Vec3 Pool Size: 53 (2968 bytes; 0 MB) allocated, 38 (2128 bytes; 0 MB) used 2013-08-29 23:28:10 [iNFO] [sTDOUT] Player Count: 1 / 8; [EntityPlayerMP['Xetosphere'/17, l='New World', x=-142,50, y=4,00, z=268,50]] 2013-08-29 23:28:10 [iNFO] [sTDOUT] Type: Integrated Server (map_client.txt) 2013-08-29 23:28:10 [iNFO] [sTDOUT] Is Modded: Definitely; Client brand changed to 'fml,forge' 2013-08-29 23:28:10 [iNFO] [sTDOUT] #@!@# Game crashed! Crash report saved to: #@!@# C:\Development\forge\mcp\jars\.\crash-reports\crash-2013-08-29_23.28.10-server.txt Is it something wrong in the code or is that I miss some packets or so. I ealier had some problems with nbt's as well, but a few packets fixed those.
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.