Pas codé depuis 1mois = perdu
-
package com.adamitemod.mod; import com.adamitemod.mod.init.MachineRecipes; import com.adamitemod.mod.init.MachineRecipesPulveriser; import com.adamitemod.mod.init.MachineRecipesStacker; import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.Side; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; public class TileEntityMachineStacker extends TileEntity implements IInventory { private ItemStack[] contents = new ItemStack[2]; private int workingTime = 0; private int workingTimeNeeded = 100; @SideOnly(Side.CLIENT) public int getCookProgress() { return this.workingTime * 8 / this.workingTimeNeeded; } @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); NBTTagList nbttaglist = new NBTTagList(); for(int i = 0; i < this.contents.length; ++i) { if(this.contents* != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.setByte("Slot", (byte)i); this.contents*.writeToNBT(nbttagcompound1); nbttaglist.appendTag(nbttagcompound1); } } compound.setTag("Items", nbttaglist); compound.setShort("workingTime", (short)this.workingTime); compound.setShort("workingTimeNeeded", (short)this.workingTimeNeeded); } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); NBTTagList nbttaglist = compound.getTagList("Items", 10); this.contents = new ItemStack[this.getSizeInventory()]; for(int i = 0; i < nbttaglist.tagCount(); ++i) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); int j = nbttagcompound1.getByte("Slot") & 255; if(j >= 0 && j < this.contents.length) { this.contents[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } this.workingTime = compound.getShort("workingTime"); this.workingTimeNeeded = compound.getShort("workingTimeNeeded"); } @Override public int getSizeInventory() { return this.contents.length; } @Override public ItemStack getStackInSlot(int slotIndex) { return this.contents[slotIndex]; } @Override public ItemStack decrStackSize(int slotIndex, int amount) { if(this.contents[slotIndex] != null) { ItemStack itemstack; if(this.contents[slotIndex].stackSize <= amount) { itemstack = this.contents[slotIndex]; this.contents[slotIndex] = null; this.markDirty(); return itemstack; } else { itemstack = this.contents[slotIndex].splitStack(amount); if(this.contents[slotIndex].stackSize == 0) { this.contents[slotIndex] = null; } this.markDirty(); return itemstack; } } else { return null; } } @Override public ItemStack getStackInSlotOnClosing(int slotIndex) { if(this.contents[slotIndex] != null) { ItemStack itemstack = this.contents[slotIndex]; this.contents[slotIndex] = null; return itemstack; } else { return null; } } @Override public void setInventorySlotContents(int slotIndex, ItemStack stack) { this.contents[slotIndex] = stack; if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } this.markDirty(); } @Override public String getInventoryName() { return "tile.machineTuto"; } @Override public boolean hasCustomInventoryName() { return false; } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot == 1 ? false : true; } public boolean isBurning() { return this.workingTime > 0; } private boolean canSmelt() { if(this.contents[0] == null) { return false; } else { ItemStack itemstack = MachineRecipesStacker.smelting().getSmeltingResult(this.contents[0]); if(itemstack == null) return false; if(this.contents[1] == null) return true; if(!this.contents[1].isItemEqual(itemstack)) return false; int result = contents[1].stackSize + itemstack.stackSize; return result <= getInventoryStackLimit() && result <= this.contents[0].getMaxStackSize(); } } public void updateEntity() { if(this.isBurning() && this.canSmelt()) { ++this.workingTime; } if(this.canSmelt() && !this.isBurning()) { this.workingTime = 1; } if(this.canSmelt() && this.workingTime == this.workingTimeNeeded) { this.smeltItem(); this.workingTime = 0; } if(!this.canSmelt()) { this.workingTime = 0; } } public void smeltItem() { if(this.canSmelt()) { ItemStack itemstack = MachineRecipesStacker.smelting().getSmeltingResult(this.contents[0]); if(this.contents[1] == null) { this.contents[1] = itemstack.copy(); } else if(this.contents[1].getItem() == itemstack.getItem()) { this.contents[1].stackSize += itemstack.stackSize; } –this.contents[0].stackSize; if(this.contents[0].stackSize <= 0) { this.contents[0] = null; } } } }package com.adamitemod.mod; import com.adamitemod.mod.TileEntityMachinePulveriser; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerMachineStacker extends Container { public ContainerMachineStacker(TileEntityMachineStacker tile, InventoryPlayer inventory) { this.tileMachineStacker = tile; this.addSlotToContainer(new Slot(tile, 0, 57, 121)); this.addSlotToContainer(new SlotResult(tile, 1, 124, 121)); this.bindPlayerInventory(inventory); } public boolean canInteractWith(EntityPlayer player) { return tileMachineStacker.isUseableByPlayer(player); } private void bindPlayerInventory(InventoryPlayer inventory) { for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 17 + j * 18, 171 + i * 18)); } for(int i = 0; i < 9; i++) addSlotToContainer(new Slot(inventory, i, 17 + i * 18, 229)); } public ItemStack transferStackInSlot(EntityPlayer player, int quantity) { ItemStack itemstack = null; Slot slot = (Slot)inventorySlots.get(quantity); if(slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if(quantity < tileMachineStacker.getSizeInventory()) { if(!mergeItemStack(itemstack1, tileMachineStacker.getSizeInventory(), inventorySlots.size(), true)) return null; } else if(!mergeItemStack(itemstack1, 0, tileMachineStacker.getSizeInventory(), false)) return null; if(itemstack1.stackSize == 0) slot.putStack((ItemStack)null); else slot.onSlotChanged(); } return itemstack; } public void onContainerClosed(EntityPlayer player) { super.onContainerClosed(player); tileMachineStacker.closeInventory(); } private TileEntityMachineStacker tileMachineStacker; } -
Il n’y pas d’erreur là dedans, dans le constructeur de ton Gui, as-tu bien “super(new ContainerBackPack(quelques choses));” ?
-
mon backpack marche ses mon stacker qui bug
-
Oui j’ai bien se que tu m’as demander dans le gui c’est :
super(new ContainerMachineStacker(tile, inventory)); -
@‘amigo127’:
mon backpack marche ses mon stacker qui bug
Ah oui autant pour moi je me suis trompé pour le nom ^^
Alors je ne vois pas d’où vient le problème.
-
bah je sait juste que que j’essaye de l’ouvrire sa crash
-
Envoi rapport de crash + container correspondant
-
OKi je fait ceci de suite___Le crash :
:::
java.lang.NullPointerException: Ticking memory connection
at com.adamitemod.mod.InventoryBackPack.<init>(InventoryBackPack.java:20)
at com.adamitemod.mod.GuiHandler.getServerGuiElement(GuiHandler.java:25)
at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)
at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2501)
at com.adamitemod.mod.MachineStacker.onBlockActivated(MachineStacker.java:86)
at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)
at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)
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:241)
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)A detailed walkthrough of the error, its code path and all known details is as follows:
–-------------------------------------------------------------------------------------– Head –
Stacktrace:
at com.adamitemod.mod.InventoryBackPack.<init>(InventoryBackPack.java:20)
at com.adamitemod.mod.GuiHandler.getServerGuiElement(GuiHandler.java:25)
at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)
at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2501)
at com.adamitemod.mod.MachineStacker.onBlockActivated(MachineStacker.java:86)
at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)
at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)
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:241)– Ticking connection –
Details:
Connection: net.minecraft.network.NetworkManager@14a7560
Stacktrace:
at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)– System Details –
Details:
Minecraft Version: 1.7.10
Operating System: Windows 10 (x86) version 10.0
Java Version: 1.8.0_66, Oracle Corporation
Java VM Version: Java HotSpot
Client VM (mixed mode), Oracle Corporation
Memory: 714443272 bytes (681 MB) / 1046937600 bytes (998 MB) up to 1046937600 bytes (998 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 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.05} [Minecraft Coder Pack] (minecraft.jar)
UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)
UCHIJAAAA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)
UCHIJAAAA adamitemod{1.0.0} [Adamite Mod] (bin)
GL info:ERRORRuntimeException: No OpenGL context found in the current thread.
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Player Count: 1 / 8; [EntityPlayerMP[‘Player584’/281, l=‘New World’, x=308,30, y=66,00, z=299,57]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to ‘fml,forge’
:::ma class
package com.adamitemod.mod; import com.adamitemod.mod.TileEntityMachinePulveriser; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerMachineStacker extends Container { public ContainerMachineStacker(TileEntityMachineStacker tile, InventoryPlayer inventory) { this.tileMachineStacker = tile; this.addSlotToContainer(new Slot(tile, 0, 57, 121)); this.addSlotToContainer(new SlotResult(tile, 1, 124, 121)); this.bindPlayerInventory(inventory); } public boolean canInteractWith(EntityPlayer player) { return tileMachineStacker.isUseableByPlayer(player); } private void bindPlayerInventory(InventoryPlayer inventory) { for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 17 + j * 18, 171 + i * 18)); } for(int i = 0; i < 9; i++) addSlotToContainer(new Slot(inventory, i, 17 + i * 18, 229)); } public ItemStack transferStackInSlot(EntityPlayer player, int quantity) { ItemStack itemstack = null; Slot slot = (Slot)inventorySlots.get(quantity); if(slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if(quantity < tileMachineStacker.getSizeInventory()) { if(!mergeItemStack(itemstack1, tileMachineStacker.getSizeInventory(), inventorySlots.size(), true)) return null; } else if(!mergeItemStack(itemstack1, 0, tileMachineStacker.getSizeInventory(), false)) return null; if(itemstack1.stackSize == 0) slot.putStack((ItemStack)null); else slot.onSlotChanged(); } return itemstack; } public void onContainerClosed(EntityPlayer player) { super.onContainerClosed(player); tileMachineStacker.closeInventory(); } private TileEntityMachineStacker tileMachineStacker; } ```</init></init> -
Renvoies le code du gui handler.
Il n’est toujours pas bon, il essaie d’ouvrir le container du BackPack au lieu de celui du bloc. -
Ses ce que je me disait mais j’ai pas trouvé tien cadeau du pas bohneur
package com.adamitemod.mod; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; public class GuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityMachine) { return new ContainerMachine((TileEntityMachine)tile, player.inventory); } else if(tile instanceof TileEntityMachinePulveriser) { return new ContainerMachinePulveriser((TileEntityMachinePulveriser)tile, player.inventory); } else if(ID == 0) { return new ContainerBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54)); } else if(tile instanceof TileEntityMachineStacker) { return new ContainerMachineStacker((TileEntityMachineStacker)tile, player.inventory); } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityMachine) { return new GuiMachine((TileEntityMachine)tile, player.inventory); } else if(tile instanceof TileEntityMachinePulveriser) { return new GuiMachinePulveriser((TileEntityMachinePulveriser)tile, player.inventory); } else if(tile instanceof TileEntityMachineStacker) { return new GuiMachineStacker((TileEntityMachineStacker)tile, player.inventory); } else if(ID == 0) { return new GuiBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54)); } return null; } } -
else if(ID == 0)
{
return new ContainerBackPack(player.inventory, new InventoryBackPack(player.getHeldItem(), 54));
}
-> pareil à mettre à la fin de la fonction. -
Ou change l’ID en le passant à 1 car si tu utilises la méthode de Robin ton ID est toujours à 0
-
Merci pour vos réponce je test sa :)___Merci a vous sa marche nnikell