Résolu Four
-
Bonsoir,
Après avoir suivi le tuto sur le forum pour créer un four je suis coincé .
Je voudrais avoir que un slot en input et 1 slot en output.
J’ai donc modifier ici dans le tileentity:
public static final int INPUTS_SLOTS = 1; public static final int FUEL_SLOTS = 1; public static final int OUTPUT_SLOTS = 1;
Mais le soucis est que maintenant lorsque je veux ouvrir mon four j’ai un crash:
[19:26:27] [main/INFO] [GradleStart]: username: floriangabet [19:26:27] [main/INFO] [GradleStart]: Extra: [] [19:26:27] [main/INFO] [GradleStart]: Running with arguments: [–userProperties, {}, --assetsDir, C:/Users/Admin/.gradle/caches/minecraft/assets, --assetIndex, 1.8, --accessToken, {REDACTED}, --version, 1.8, --username, floriangabet, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker] [19:26:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker [19:26:27] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker [19:26:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker [19:26:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker [19:26:27] [main/INFO] [FML]: Forge Mod Loader version 8.0.37.1334 for Minecraft 1.8 loading [19:26:27] [main/INFO] [FML]: Java is Java HotSpot(TM) Client VM, version 1.8.0_45, running on Windows 7:x86:6.1, installed at C:\Program Files (x86)\Java\jdk1.8.0_45\jre [19:26:27] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation [19:26:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker [19:26:27] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin [19:26:27] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin [19:26:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [19:26:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker [19:26:27] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker [19:26:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [19:26:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [19:26:27] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper [19:26:27] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work! [19:26:28] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing [19:26:28] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper [19:26:28] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker [19:26:28] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker [19:26:28] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker [19:26:28] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker [19:26:28] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main} [19:26:28] [Client thread/INFO]: Setting user: floriangabet [19:26:29] [Client thread/INFO]: LWJGL Version: 2.9.1 [19:26:30] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization [19:26:30] [Client thread/INFO] [FML]: MinecraftForge v11.14.1.1334 Initialized [19:26:30] [Client thread/INFO] [FML]: Replaced 204 ore recipies [19:26:30] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization [19:26:30] [Client thread/INFO] [FML]: Searching C:\Users\Admin\Desktop\CSC\eclipse\mods for mods [19:26:30] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load [19:26:30] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, csc] at CLIENT [19:26:30] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, csc] at SERVER [19:26:31] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Cite Sous Controle [19:26:31] [Client thread/INFO] [FML]: Processing ObjectHolder annotations [19:26:31] [Client thread/INFO] [FML]: Found 384 ObjectHolder annotations [19:26:31] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0 [19:26:31] [Client thread/INFO] [FML]: Applying holder lookups [19:26:31] [Client thread/INFO] [FML]: Holder lookups applied [19:26:31] [Sound Library Loader/INFO]: Starting up SoundSystem… [19:26:31] [Thread-7/INFO]: Initializing LWJGL OpenAL [19:26:31] [Thread-7/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) [19:26:31] [Thread-7/INFO]: OpenAL initialized. [19:26:31] [Sound Library Loader/INFO]: Sound engine started [19:26:32] [Client thread/INFO]: Created: 1024x1024 textures-atlas [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:block_machinelaver#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_batonP#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_panierlinge#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_coli#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_balai#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:block_machinelaver#normal not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_medic#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_linge#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_belier#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_clefm#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:block_block1#normal not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_menotte#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:item_bfouille#inventory not found [19:26:32] [Client thread/ERROR] [FML]: Model definition for location csc:block_block1#inventory not found [19:26:32] [Client thread/INFO] [STDOUT]: [com.CSC.net.Main:init:71]: [19:26:32] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 4 mods [19:26:32] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Cite Sous Controle [19:26:33] [Client thread/INFO]: SoundSystem shutting down… [19:26:33] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com [19:26:33] [Sound Library Loader/INFO]: Starting up SoundSystem… [19:26:33] [Thread-9/INFO]: Initializing LWJGL OpenAL [19:26:33] [Thread-9/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) [19:26:33] [Thread-9/INFO]: OpenAL initialized. [19:26:33] [Sound Library Loader/INFO]: Sound engine started [19:26:34] [Client thread/INFO]: Created: 1024x1024 textures-atlas [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:block_machinelaver#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_batonP#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_panierlinge#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_coli#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_balai#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:block_machinelaver#normal not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_medic#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_linge#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_belier#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_clefm#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:block_block1#normal not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_menotte#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:item_bfouille#inventory not found [19:26:34] [Client thread/ERROR] [FML]: Model definition for location csc:block_block1#inventory not found [19:26:35] [Server thread/INFO]: Starting integrated minecraft server version 1.8 [19:26:35] [Server thread/INFO]: Generating keypair [19:26:36] [Server thread/INFO] [FML]: Injecting existing block and item data into this server instance [19:26:36] [Server thread/INFO] [FML]: Applying holder lookups [19:26:36] [Server thread/INFO] [FML]: Holder lookups applied [19:26:36] [Server thread/INFO] [FML]: Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@44130) [19:26:36] [Server thread/INFO] [FML]: Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@44130) [19:26:36] [Server thread/INFO] [FML]: Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@44130) [19:26:36] [Server thread/INFO]: Preparing start region for level 0 [19:26:36] [Server thread/INFO] [STDOUT]: [com.CSC.net.Main:onServerStarting:85]: ranksaveload [19:26:37] [Server thread/INFO]: Changing view distance to 8, from 10 [19:26:37] [Netty Local Client IO #0/INFO] [FML]: Server protocol version 1 [19:26:37] [Netty Server IO #1/INFO] [FML]: Client protocol version 1 [19:26:37] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 4 mods : csc@1.0,FML@8.0.37.1334,Forge@11.14.1.1334,mcp@9.05 [19:26:37] [Netty Local Client IO #0/INFO] [FML]: [Netty Local Client IO #0] Client side modded connection established [19:26:37] [Server thread/INFO] [FML]: [Server thread] Server side modded connection established [19:26:37] [Server thread/INFO]: floriangabet[local:E:c5fa6839] logged in with entity id 326 at (-234.81899715385038, 66.0, 228.41021904200548) [19:26:37] [Server thread/INFO]: floriangabet a rejoint la partie [19:26:38] [Server thread/FATAL] [FML]: Exception caught executing FutureTask: java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 3 java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 3 at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_45] at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_45] at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:710) [FMLCommonHandler.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:669) [MinecraftServer.class:?] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:171) [IntegratedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:540) [MinecraftServer.class:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45] Caused by: java.lang.ArrayIndexOutOfBoundsException: 3 at com.CSC.net.block.TileEntityMachineLaver.getStackInSlot(TileEntityMachineLaver.java:99) ~[TileEntityMachineLaver.class:?] at net.minecraft.inventory.Slot.getStack(Slot.java:79) ~[Slot.class:?] at net.minecraft.inventory.Container.getInventory(Container.java:75) ~[Container.class:?] at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:61) ~[Container.class:?] at com.CSC.net.GUI.ContainerMachineLaver.addCraftingToCrafters(ContainerMachineLaver.java:92) ~[ContainerMachineLaver.class:?] at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:92) ~[FMLNetworkHandler.class:?] at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2577) ~[EntityPlayer.class:?] at com.CSC.net.block.Blockmachinelaver.onBlockActivated(Blockmachinelaver.java:55) ~[Blockmachinelaver.class:?] at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:476) ~[ItemInWorldManager.class:?] at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:624) ~[NetHandlerPlayServer.class:?] at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:67) ~[C08PacketPlayerBlockPlacement.class:?] at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:114) ~[C08PacketPlayerBlockPlacement.class:?] at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:24) ~[PacketThreadUtil$1.class:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_45] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_45] at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:709) ~[FMLCommonHandler.class:?] … 5 more [19:26:38] [Server thread/ERROR]: Encountered an unexpected exception net.minecraft.util.ReportedException: Ticking entity at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:780) ~[MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:669) ~[MinecraftServer.class:?] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:171) ~[IntegratedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:540) [MinecraftServer.class:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45] Caused by: java.lang.ArrayIndexOutOfBoundsException: 3 at com.CSC.net.block.TileEntityMachineLaver.getStackInSlot(TileEntityMachineLaver.java:99) ~[TileEntityMachineLaver.class:?] at net.minecraft.inventory.Slot.getStack(Slot.java:79) ~[Slot.class:?] at net.minecraft.inventory.Container.detectAndSendChanges(Container.java:97) ~[Container.class:?] at com.CSC.net.GUI.ContainerMachineLaver.detectAndSendChanges(ContainerMachineLaver.java:101) ~[ContainerMachineLaver.class:?] at net.minecraft.entity.player.EntityPlayerMP.onUpdate(EntityPlayerMP.java:263) ~[EntityPlayerMP.class:?] at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2024) ~[World.class:?] at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:758) ~[WorldServer.class:?] at net.minecraft.world.World.updateEntity(World.java:1990) ~[World.class:?] at net.minecraft.world.World.updateEntities(World.java:1816) ~[World.class:?] at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:587) ~[WorldServer.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:774) ~[MinecraftServer.class:?] … 4 more [19:26:38] [Server thread/ERROR]: This crash report has been saved to: C:\Users\Admin\Desktop\CSC\eclipse\.\crash-reports\crash-2016-09-25_19.26.38-server.txt [19:26:38] [Server thread/INFO]: Stopping server [19:26:38] [Server thread/INFO]: Saving players [19:26:38] [Server thread/INFO]: Saving worlds [19:26:38] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld [19:26:38] [Server thread/INFO]: Saving chunks for level 'New World'/Nether [19:26:38] [Server thread/INFO]: Saving chunks for level 'New World'/The End [19:26:39] [Server thread/INFO] [FML]: Unloading dimension 0 [19:26:39] [Server thread/INFO] [FML]: Unloading dimension -1 [19:26:39] [Server thread/INFO] [FML]: Unloading dimension 1 [19:26:39] [Server thread/INFO] [FML]: Applying holder lookups [19:26:39] [Server thread/INFO] [FML]: Holder lookups applied [19:26:39] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
Ma classe tileentity:
package com.CSC.net.block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.server.gui.IUpdatePlayerListBox; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumFacing; import net.minecraft.util.IChatComponent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class TileEntityMachineLaver extends TileEntity implements IUpdatePlayerListBox, ISidedInventory { private String customName; public static final int INPUTS_SLOTS = 1; public static final int FUEL_SLOTS = 1; public static final int OUTPUT_SLOTS = 1; private ItemStack[] contents = new ItemStack[INPUTS_SLOTS + FUEL_SLOTS + OUTPUT_SLOTS]; private int currentWorkingTime = 0; private int totalWorkingTime = 300; private int remainingFuelTime = 0; private int totalCurrentFuelTime; @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); byte b0 = nbttagcompound1.getByte("Slot"); if (b0 >= 0 && b0 < this.contents.length) { this.contents[b0] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } this.currentWorkingTime = compound.getShort("CurrentWorkingTime"); this.totalWorkingTime = compound.getShort("TotalWorkingTime"); this.remainingFuelTime = compound.getShort("RemainingFuelTime"); this.totalCurrentFuelTime = compound.getShort("TotalCurrentFuelTime"); if (compound.hasKey("CustomName", 8)) { this.customName = compound.getString("CustomName"); } } @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); compound.setShort("CurrentWorkingTime", (short)this.currentWorkingTime); compound.setShort("TotalWorkingTime", (short)this.totalWorkingTime); compound.setShort("RemainingFuelTime", (short)this.remainingFuelTime); compound.setShort("TotalCurrentFuelTime", (short)this.totalCurrentFuelTime); 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); if (this.hasCustomName()) { compound.setString("CustomName", this.customName); } } @Override public int getSizeInventory() { return this.contents.length; } @Override public ItemStack getStackInSlot(int index) { return this.contents[index]; } @Override public ItemStack decrStackSize(int index, int count) { if (this.contents[index] != null) { ItemStack itemstack; if (this.contents[index].stackSize <= count) { itemstack = this.contents[index]; this.contents[index] = null; this.markDirty(); return itemstack; } else { itemstack = this.contents[index].splitStack(count); if (this.contents[index].stackSize == 0) { this.contents[index] = null; } this.markDirty(); return itemstack; } } else { return null; } } @Override public ItemStack getStackInSlotOnClosing(int index) { if (this.contents[index] != null) { ItemStack itemstack = this.contents[index]; this.contents[index] = null; return itemstack; } else { return null; } } @Override public void setInventorySlotContents(int index, ItemStack stack) { this.contents[index] = stack; if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return this.worldObj.getTileEntity(this.pos) != this ? false : player.getDistanceSq((double)this.pos.getX() + 0.5D, (double)this.pos.getY() + 0.5D, (double)this.pos.getZ() + 0.5D) <= 64.0D; } @Override public void openInventory(EntityPlayer player) {} @Override public void closeInventory(EntityPlayer player) {} @Override public boolean isItemValidForSlot(int index, ItemStack stack) { return index >= INPUTS_SLOTS + FUEL_SLOTS ? false : index >= INPUTS_SLOTS && !this.isFuel(stack) ? false : true; } @Override public int getField(int id) { switch(id) { case 0: return this.currentWorkingTime; case 1: return this.totalWorkingTime; case 2: return this.remainingFuelTime; case 3: return this.totalCurrentFuelTime; default: return 0; } } @Override public void setField(int id, int value) { switch(id) { case 0: this.currentWorkingTime = value; break; case 1: this.totalWorkingTime = value; break; case 2: this.remainingFuelTime = value; break; case 3: this.totalCurrentFuelTime = value; } } @Override public int getFieldCount() { return 3; } @Override public void clear() { for(int i = 0; i < this.contents.length; i++) { this.contents* = null; } } @Override public String getName() { return this.hasCustomName() ? this.customName : "machine.laver"; } @Override public boolean hasCustomName() { return this.customName != null && this.customName.length() > 0; } public void setCustomInventoryName(String name) { this.customName = name; } @Override public IChatComponent getDisplayName() { return new ChatComponentText(this.getName()); } @Override public int[] getSlotsForFace(EnumFacing side) { if(side == EnumFacing.UP) return this.getInputSlotsIds(); if(side == EnumFacing.DOWN) return this.getOutputSlotsIds(); return this.getFuelSlotsIds(); } @Override public boolean canInsertItem(int index, ItemStack stack, EnumFacing direction) { return this.isItemValidForSlot(index, stack); } @Override public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction) { for(int id : this.getOutputSlotsIds()) { if(id == index) return true; } return false; } @Override public void update() { if(this.isRemainingFuel()) { –this.remainingFuelTime; } if(this.isWorking() && this.canWork()) { ++this.currentWorkingTime; } if(!this.isWorking() && this.canWork()) { this.currentWorkingTime = 1; } if(this.canWork() && this.currentWorkingTime >= this.totalWorkingTime) { this.applyRecipe(); this.currentWorkingTime = 0; } if(!this.canWork()) { this.currentWorkingTime = 0; } this.markDirty(); } private boolean isFuel(ItemStack stack) { return stack == null ? false : stack.getItem() == Items.blaze_powder; } private int[] getInputSlotsIds() { int[] ids = new int[INPUTS_SLOTS]; for(int i = 0; i < INPUTS_SLOTS; i++) { ids* = i; } return ids; } private int[] getFuelSlotsIds() { int[] ids = new int[FUEL_SLOTS]; int k = 0; for(int i = INPUTS_SLOTS; i < (INPUTS_SLOTS + FUEL_SLOTS); i++) { ids[k] = i; k++; } return ids; } private int[] getOutputSlotsIds() { int[] ids = new int[OUTPUT_SLOTS]; int k = 0; for(int i = (INPUTS_SLOTS + FUEL_SLOTS); i < (INPUTS_SLOTS + FUEL_SLOTS + OUTPUT_SLOTS); i++) { ids[k] = i; k++; } return ids; } private ItemStack[] getInputSlotsContents() { ItemStack[] s = new ItemStack[INPUTS_SLOTS]; for(int i = 0; i < INPUTS_SLOTS; i++) { s* = this.getStackInSlot(i); } return s; } private ItemStack[] getOutputSlotsContents() { ItemStack[] s = new ItemStack[OUTPUT_SLOTS]; int k = 0; for(int i = (INPUTS_SLOTS + FUEL_SLOTS); i < (INPUTS_SLOTS + FUEL_SLOTS + OUTPUT_SLOTS); i++) { s[k] = this.getStackInSlot(i); k++; } return s; } public boolean isWorking() { return this.currentWorkingTime > 0; } private boolean hasNullInput() { for(int i = 0; i < INPUTS_SLOTS; i++) { if(this.getStackInSlot(i) == null) return true; } return false; } private boolean areOutputsNull() { for(int i = (INPUTS_SLOTS + FUEL_SLOTS); i < (INPUTS_SLOTS + FUEL_SLOTS + OUTPUT_SLOTS); i++) { if(this.getStackInSlot(i) != null) return false; } return true; } private boolean canCombineStacks(ItemStack[] stack1, ItemStack[] stack2) { if(stack1.length != stack2.length) return false; for(int i = 0; i < stack1.length; i++) { if(!this.canCombineItems(stack1*, stack2*)) { return false; } } return true; } private boolean canCombineItems(ItemStack item1, ItemStack item2) { if (item1 == null) return true; if (!item1.isItemEqual(item2)) return false; int result = item1.stackSize + item2.stackSize; return result <= getInventoryStackLimit() && result <= item1.getMaxStackSize(); } private boolean outOfFuel() { if(!this.isRemainingFuel()) { for(int i = INPUTS_SLOTS; i < (INPUTS_SLOTS + FUEL_SLOTS); i++) { if(this.getStackInSlot(i) != null) { int duration = RecipesMachineLaver.instance().getFuelDuration(this.getStackInSlot(i)); if(duration > 0) { this.remainingFuelTime += duration; this.totalCurrentFuelTime = duration; this.decrStackSize(i, 1); } } } } this.markDirty(); return !this.isRemainingFuel(); } public boolean isRemainingFuel() { return this.remainingFuelTime > 0; } private boolean canWork() { if(this.hasNullInput()) { return false; } ItemStack[] itemstacks = RecipesMachineLaver.instance().getRecipeResult(this.getInputSlotsContents()); if (itemstacks == null) { return false; } if(this.outOfFuel()) return false; if (this.areOutputsNull()) return true; if (!this.canCombineStacks(this.getOutputSlotsContents(), itemstacks)) return false; return true; } private void applyRecipe() { ItemStack[] itemstacks = RecipesMachineLaver.instance().getRecipeResult(this.getInputSlotsContents()); if(this.areOutputsNull()) { int k = 0; for(int i = (INPUTS_SLOTS + FUEL_SLOTS); i < (INPUTS_SLOTS + FUEL_SLOTS + OUTPUT_SLOTS); i++) { this.setInventorySlotContents(i, itemstacks[k].copy()); k++; } } else { int k = 0; for(int i = (INPUTS_SLOTS + FUEL_SLOTS); i < (INPUTS_SLOTS + FUEL_SLOTS + OUTPUT_SLOTS); i++) { if(this.getStackInSlot(i) != null && itemstacks[k] != null) { this.getStackInSlot(i).stackSize += itemstacks[k].copy().stackSize; } else if(this.getStackInSlot(i) == null) { this.setInventorySlotContents(i, itemstacks[k].copy());; } k++; } } for(int i = 0; i < INPUTS_SLOTS; i++) { this.decrStackSize(i, 1); } this.markDirty(); } @Override public Packet getDescriptionPacket() { NBTTagCompound nbttagcompound = new NBTTagCompound(); this.writeToNBT(nbttagcompound); return new S35PacketUpdateTileEntity(this.getPos(), this.getBlockMetadata(), nbttagcompound); } @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.getNbtCompound()); this.worldObj.markBlockRangeForRenderUpdate(this.pos, this.pos); } @SideOnly(Side.CLIENT) public int getRecipeProgress() { return this.currentWorkingTime * 17 / this.totalWorkingTime; } @SideOnly(Side.CLIENT) public int getFuelProgress() { return this.remainingFuelTime * 20 / this.totalCurrentFuelTime; } }
Merci
-
Le problème est dans ton Container, montres-le.
-
Tien:
package com.CSC.net.GUI; 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 net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import com.CSC.net.block.TileEntityMachineLaver; public class ContainerMachineLaver extends Container { private TileEntityMachineLaver tile; private int currentWorkingTime; private int totalWorkingTime; private int remainingFuelTime; public ContainerMachineLaver(TileEntityMachineLaver tile, InventoryPlayer inventory) { this.tile = tile; //INPUTS this.addSlotToContainer(new Slot(tile, 0, 21, 0)); this.addSlotToContainer(new Slot(tile, 1, 45, 0)); this.addSlotToContainer(new Slot(tile, 2, 69, 0)); this.addSlotToContainer(new Slot(tile, 3, 93, 0)); //FUEL this.addSlotToContainer(new Slot(tile, 4, 21, 34)); //OUTPUTS this.addSlotToContainer(new SlotOutput(tile, 5, 149, 0)); this.addSlotToContainer(new SlotOutput(tile, 6, 149, 25)); this.bindPlayerInventory(inventory); } private void bindPlayerInventory(InventoryPlayer inventory) { int i; int j; for (i = 0; i < 3; ++i) { for (j = 0; j < 9; ++j) { this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 12)); } } for (i = 0; i < 9; ++i) { this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 142 + 12)); } } @Override public ItemStack transferStackInSlot(EntityPlayer player, int quantity) { ItemStack itemstack = null; Slot slot = (Slot)this.inventorySlots.get(quantity); if (slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if (quantity < this.tile.getSizeInventory()) { if (!this.mergeItemStack(itemstack1, this.tile.getSizeInventory(), this.inventorySlots.size(), true)) { return null; } } else if (!this.mergeItemStack(itemstack1, 0, this.tile.getSizeInventory(), false)) { return null; } if (itemstack1.stackSize == 0) { slot.putStack((ItemStack)null); } else { slot.onSlotChanged(); } } return itemstack; } @Override public boolean canInteractWith(EntityPlayer player) { return this.tile.isUseableByPlayer(player); } @Override public void onContainerClosed(EntityPlayer player) { super.onContainerClosed(player); this.tile.closeInventory(player); } @Override public void addCraftingToCrafters(ICrafting crafting) { super.addCraftingToCrafters(crafting); for(int i = 0; i < this.tile.getFieldCount(); i++) { crafting.sendProgressBarUpdate(this, i, this.tile.getField(i)); } crafting.func_175173_a(this, this.tile); } @Override public void detectAndSendChanges() { super.detectAndSendChanges(); for(int i = 0; i < this.crafters.size(); ++i) { ICrafting icrafting = (ICrafting)this.crafters.get(i); for(int j = 0; j < this.tile.getFieldCount(); j++) { if(this.getField(j) != this.tile.getField(j)) { icrafting.sendProgressBarUpdate(this, j, this.tile.getField(j)); } } } for(int i = 0; i < this.tile.getFieldCount(); i++) { this.setField(i, this.tile.getField(i)); } } @Override @SideOnly(Side.CLIENT) public void updateProgressBar(int id, int value) { this.tile.setField(id, value); } private int getField(int id) { switch(id) { case 0: return this.currentWorkingTime; case 1: return this.totalWorkingTime; case 2: return this.remainingFuelTime; default: return 0; } } private void setField(int id, int value) { switch(id) { case 0: this.currentWorkingTime = value; break; case 1: this.totalWorkingTime = value; break; case 2: this.remainingFuelTime = value; } } }
-
Dans ton container tu dis que tu as 5 entrées et 2 sorties, mais dans ta tileEntity, tu as 2 entrées et une sortie
-
@‘SCAREX’:
Dans ton container tu dis que tu as 5 entrées et 2 sorties, mais dans ta tileEntity, tu as 2 entrées et une sortie
Ah bon, ou ça exactement ?
-
ligne 25 à 36.
-
@‘SCAREX’:
Dans ton container tu dis que tu as 5 entrées et 2 sorties, mais dans ta tileEntity, tu as 2 entrées et une sortie
Tu voulais pas plutôt dire 4 entrée et 2 sorties dans le container et 1 entrées et une sortie dans le tile ?
car même quand j’enlève les slots dans le container j’ai toujours le arrayindexoutofboundsExecption.
C’est peut-être pas le même crash donc tenez:
[13:30:01] [main/INFO] [GradleStart]: username: floriangabet [13:30:01] [main/INFO] [GradleStart]: Extra: [] [13:30:01] [main/INFO] [GradleStart]: Running with arguments: [–userProperties, {}, --assetsDir, C:/Users/Admin/.gradle/caches/minecraft/assets, --assetIndex, 1.8, --accessToken, {REDACTED}, --version, 1.8, --username, floriangabet, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker] [13:30:02] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker [13:30:02] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker [13:30:02] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker [13:30:02] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker [13:30:02] [main/INFO] [FML]: Forge Mod Loader version 8.0.37.1334 for Minecraft 1.8 loading [13:30:02] [main/INFO] [FML]: Java is Java HotSpot(TM) Client VM, version 1.8.0_45, running on Windows 7:x86:6.1, installed at C:\Program Files (x86)\Java\jdk1.8.0_45\jre [13:30:02] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation [13:30:02] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker [13:30:02] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin [13:30:02] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin [13:30:02] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [13:30:02] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker [13:30:02] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker [13:30:02] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [13:30:02] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [13:30:02] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper [13:30:02] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work! [13:30:02] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing [13:30:02] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper [13:30:02] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker [13:30:03] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker [13:30:03] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker [13:30:03] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker [13:30:03] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main} [13:30:03] [Client thread/INFO]: Setting user: floriangabet [13:30:04] [Client thread/INFO]: LWJGL Version: 2.9.1 [13:30:04] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization [13:30:04] [Client thread/INFO] [FML]: MinecraftForge v11.14.1.1334 Initialized [13:30:04] [Client thread/INFO] [FML]: Replaced 204 ore recipies [13:30:04] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization [13:30:04] [Client thread/INFO] [FML]: Searching C:\Users\Admin\Desktop\CSC\eclipse\mods for mods [13:30:05] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load [13:30:05] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, csc] at CLIENT [13:30:05] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, csc] at SERVER [13:30:05] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Cite Sous Controle [13:30:05] [Client thread/INFO] [FML]: Processing ObjectHolder annotations [13:30:05] [Client thread/INFO] [FML]: Found 384 ObjectHolder annotations [13:30:05] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0 [13:30:05] [Client thread/INFO] [FML]: Applying holder lookups [13:30:05] [Client thread/INFO] [FML]: Holder lookups applied [13:30:05] [Sound Library Loader/INFO]: Starting up SoundSystem… [13:30:06] [Thread-6/INFO]: Initializing LWJGL OpenAL [13:30:06] [Thread-6/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) [13:30:06] [Thread-6/INFO]: OpenAL initialized. [13:30:06] [Sound Library Loader/INFO]: Sound engine started [13:30:07] [Client thread/INFO]: Created: 2048x1024 textures-atlas [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:item_belier#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:block_machinelaver#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:item_batonP#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:item_panierlinge#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:item_clefm#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:item_coli#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:item_balai#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:block_machinelaver#normal not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:block_block1#normal not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:item_medic#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:block_block1#inventory not found [13:30:07] [Client thread/ERROR] [FML]: Model definition for location csc:item_linge#inventory not found [13:30:07] [Client thread/INFO] [STDOUT]: [com.CSC.net.Main:init:71]: [13:30:07] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 4 mods [13:30:07] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Cite Sous Controle [13:30:07] [Client thread/INFO]: SoundSystem shutting down… [13:30:07] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com [13:30:07] [Sound Library Loader/INFO]: Starting up SoundSystem… [13:30:08] [Thread-8/INFO]: Initializing LWJGL OpenAL [13:30:08] [Thread-8/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) [13:30:08] [Thread-8/INFO]: OpenAL initialized. [13:30:08] [Sound Library Loader/INFO]: Sound engine started [13:30:09] [Client thread/INFO]: Created: 2048x1024 textures-atlas [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:item_belier#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:block_machinelaver#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:item_batonP#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:item_panierlinge#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:item_clefm#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:item_coli#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:item_balai#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:block_machinelaver#normal not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:block_block1#normal not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:item_medic#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:block_block1#inventory not found [13:30:09] [Client thread/ERROR] [FML]: Model definition for location csc:item_linge#inventory not found [13:30:11] [Server thread/INFO]: Starting integrated minecraft server version 1.8 [13:30:11] [Server thread/INFO]: Generating keypair [13:30:11] [Server thread/INFO] [FML]: Injecting existing block and item data into this server instance [13:30:11] [Server thread/INFO] [FML]: Applying holder lookups [13:30:11] [Server thread/INFO] [FML]: Holder lookups applied [13:30:11] [Server thread/INFO] [FML]: Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@16065ec) [13:30:11] [Server thread/INFO] [FML]: Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@16065ec) [13:30:11] [Server thread/INFO] [FML]: Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@16065ec) [13:30:11] [Server thread/INFO]: Preparing start region for level 0 [13:30:12] [Server thread/INFO] [STDOUT]: [com.CSC.net.Main:onServerStarting:85]: ranksaveload [13:30:12] [Server thread/INFO]: Changing view distance to 8, from 10 [13:30:13] [Netty Local Client IO #0/INFO] [FML]: Server protocol version 1 [13:30:13] [Netty Server IO #1/INFO] [FML]: Client protocol version 1 [13:30:13] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 4 mods : csc@1.0,FML@8.0.37.1334,Forge@11.14.1.1334,mcp@9.05 [13:30:13] [Netty Local Client IO #0/INFO] [FML]: [Netty Local Client IO #0] Client side modded connection established [13:30:13] [Server thread/INFO] [FML]: [Server thread] Server side modded connection established [13:30:13] [Server thread/INFO]: floriangabet[local:E:1768b6d1] logged in with entity id 327 at (-233.42264533304527, 66.0, 232.65042769983205) [13:30:13] [Server thread/INFO]: floriangabet a rejoint la partie [13:30:14] [Server thread/FATAL] [FML]: Exception caught executing FutureTask: java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 4 java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 4 at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_45] at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_45] at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:710) [FMLCommonHandler.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:669) [MinecraftServer.class:?] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:171) [IntegratedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:540) [MinecraftServer.class:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45] Caused by: java.lang.ArrayIndexOutOfBoundsException: 4 at com.CSC.net.block.TileEntityMachineLaver.getStackInSlot(TileEntityMachineLaver.java:99) ~[TileEntityMachineLaver.class:?] at net.minecraft.inventory.Slot.getStack(Slot.java:79) ~[Slot.class:?] at net.minecraft.inventory.Container.getInventory(Container.java:75) ~[Container.class:?] at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:61) ~[Container.class:?] at com.CSC.net.GUI.ContainerMachineLaver.addCraftingToCrafters(ContainerMachineLaver.java:88) ~[ContainerMachineLaver.class:?] at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:92) ~[FMLNetworkHandler.class:?] at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2577) ~[EntityPlayer.class:?] at com.CSC.net.block.Blockmachinelaver.onBlockActivated(Blockmachinelaver.java:55) ~[Blockmachinelaver.class:?] at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:476) ~[ItemInWorldManager.class:?] at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:624) ~[NetHandlerPlayServer.class:?] at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:67) ~[C08PacketPlayerBlockPlacement.class:?] at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:114) ~[C08PacketPlayerBlockPlacement.class:?] at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:24) ~[PacketThreadUtil$1.class:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_45] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_45] at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:709) ~[FMLCommonHandler.class:?] … 5 more [13:30:14] [Server thread/ERROR]: Encountered an unexpected exception net.minecraft.util.ReportedException: Ticking entity at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:780) ~[MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:669) ~[MinecraftServer.class:?] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:171) ~[IntegratedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:540) [MinecraftServer.class:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45] Caused by: java.lang.ArrayIndexOutOfBoundsException: 4 at com.CSC.net.block.TileEntityMachineLaver.getStackInSlot(TileEntityMachineLaver.java:99) ~[TileEntityMachineLaver.class:?] at net.minecraft.inventory.Slot.getStack(Slot.java:79) ~[Slot.class:?] at net.minecraft.inventory.Container.detectAndSendChanges(Container.java:97) ~[Container.class:?] at com.CSC.net.GUI.ContainerMachineLaver.detectAndSendChanges(ContainerMachineLaver.java:97) ~[ContainerMachineLaver.class:?] at net.minecraft.entity.player.EntityPlayerMP.onUpdate(EntityPlayerMP.java:263) ~[EntityPlayerMP.class:?] at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2024) ~[World.class:?] at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:758) ~[WorldServer.class:?] at net.minecraft.world.World.updateEntity(World.java:1990) ~[World.class:?] at net.minecraft.world.World.updateEntities(World.java:1816) ~[World.class:?] at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:587) ~[WorldServer.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:774) ~[MinecraftServer.class:?] … 4 more [13:30:14] [Server thread/ERROR]: This crash report has been saved to: C:\Users\Admin\Desktop\CSC\eclipse\.\crash-reports\crash-2016-09-26_13.30.14-server.txt [13:30:14] [Server thread/INFO]: Stopping server [13:30:14] [Server thread/INFO]: Saving players [13:30:14] [Server thread/INFO]: Saving worlds [13:30:14] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld [13:30:14] [Server thread/INFO]: Saving chunks for level 'New World'/Nether [13:30:14] [Server thread/INFO]: Saving chunks for level 'New World'/The End [13:30:14] [Server thread/INFO] [FML]: Unloading dimension 0 [13:30:14] [Server thread/INFO] [FML]: Unloading dimension -1 [13:30:14] [Server thread/INFO] [FML]: Unloading dimension 1 [13:30:14] [Server thread/INFO] [FML]: Applying holder lookups [13:30:14] [Server thread/INFO] [FML]: Holder lookups applied [13:30:14] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
ma classe:
package com.CSC.net.GUI; 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 net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import com.CSC.net.block.TileEntityMachineLaver; public class ContainerMachineLaver extends Container { private TileEntityMachineLaver tile; private int currentWorkingTime; private int totalWorkingTime; private int remainingFuelTime; public ContainerMachineLaver(TileEntityMachineLaver tile, InventoryPlayer inventory) { this.tile = tile; //INPUTS this.addSlotToContainer(new Slot(tile, 0, 21, 0)); //FUEL this.addSlotToContainer(new Slot(tile, 4, 21, 34)); //OUTPUTS this.addSlotToContainer(new SlotOutput(tile, 5, 149, 0)); this.bindPlayerInventory(inventory); } private void bindPlayerInventory(InventoryPlayer inventory) { int i; int j; for (i = 0; i < 3; ++i) { for (j = 0; j < 9; ++j) { this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 12)); } } for (i = 0; i < 9; ++i) { this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 142 + 12)); } } @Override public ItemStack transferStackInSlot(EntityPlayer player, int quantity) { ItemStack itemstack = null; Slot slot = (Slot)this.inventorySlots.get(quantity); if (slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if (quantity < this.tile.getSizeInventory()) { if (!this.mergeItemStack(itemstack1, this.tile.getSizeInventory(), this.inventorySlots.size(), true)) { return null; } } else if (!this.mergeItemStack(itemstack1, 0, this.tile.getSizeInventory(), false)) { return null; } if (itemstack1.stackSize == 0) { slot.putStack((ItemStack)null); } else { slot.onSlotChanged(); } } return itemstack; } @Override public boolean canInteractWith(EntityPlayer player) { return this.tile.isUseableByPlayer(player); } @Override public void onContainerClosed(EntityPlayer player) { super.onContainerClosed(player); this.tile.closeInventory(player); } @Override public void addCraftingToCrafters(ICrafting crafting) { super.addCraftingToCrafters(crafting); for(int i = 0; i < this.tile.getFieldCount(); i++) { crafting.sendProgressBarUpdate(this, i, this.tile.getField(i)); } crafting.func_175173_a(this, this.tile); } @Override public void detectAndSendChanges() { super.detectAndSendChanges(); for(int i = 0; i < this.crafters.size(); ++i) { ICrafting icrafting = (ICrafting)this.crafters.get(i); for(int j = 0; j < this.tile.getFieldCount(); j++) { if(this.getField(j) != this.tile.getField(j)) { icrafting.sendProgressBarUpdate(this, j, this.tile.getField(j)); } } } for(int i = 0; i < this.tile.getFieldCount(); i++) { this.setField(i, this.tile.getField(i)); } } @Override @SideOnly(Side.CLIENT) public void updateProgressBar(int id, int value) { this.tile.setField(id, value); } private int getField(int id) { switch(id) { case 0: return this.currentWorkingTime; case 1: return this.totalWorkingTime; case 2: return this.remainingFuelTime; default: return 0; } } private void setField(int id, int value) { switch(id) { case 0: this.currentWorkingTime = value; break; case 1: this.totalWorkingTime = value; break; case 2: this.remainingFuelTime = value; } } }
-
Quelqu’un?
-
Tu dois rechanger les IDs de tes slots dans le container, là tu as 0, 4 et 5, or tu devrais avoir 0, 1 et 2.
-
@‘Reden’:
Tu dois rechanger les IDs de tes slots dans le container, là tu as 0, 4 et 5, or tu devrais avoir 0, 1 et 2.
Ah oui je pensais pas que c’était pour ça, merci