14 mars 2016, 19:49

Mon jeu crash 😕

[20:47:08] [Client thread/FATAL]: Reported exception thrown!
net.minecraft.util.ReportedException: Ticking block entity
at net.minecraft.world.World.updateEntities(World.java:2175) ~[World.class:?]
at net.minecraft.client.Minecraft.runTick(Minecraft.java:2097) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_66]
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_66]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_66]
at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_66]
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: 15
at com.google.SpyMan.Mechanicalcraft.common.blockOreExtractor.TileEntityOreExtractor.smeltItem(TileEntityOreExtractor.java:258) ~[TileEntityOreExtractor.class:?]
at com.google.SpyMan.Mechanicalcraft.common.blockOreExtractor.TileEntityOreExtractor.updateEntity(TileEntityOreExtractor.java:297) ~[TileEntityOreExtractor.class:?]
at net.minecraft.world.World.updateEntities(World.java:2160) ~[World.class:?]
… 17 more
[20:47:08] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: –-- Minecraft Crash Report ----
// Why is it breaking :(

Time: 14/03/16 20:47
Description: Ticking block entity

java.lang.ArrayIndexOutOfBoundsException: 15
at com.google.SpyMan.Mechanicalcraft.common.blockOreExtractor.TileEntityOreExtractor.smeltItem(TileEntityOreExtractor.java:258)
at com.google.SpyMan.Mechanicalcraft.common.blockOreExtractor.TileEntityOreExtractor.updateEntity(TileEntityOreExtractor.java:297)
at net.minecraft.world.World.updateEntities(World.java:2160)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:2097)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039)
at net.minecraft.client.Minecraft.run(Minecraft.java:962)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
[font=Courier Newpublic class ]TileEntityOreExtractor extends TileEntity implements %(#345f99)[IInventory
]{
   private byte direction%(#aaa9a7)[;
]    %(#8242ff)[/** Slots list */
]    private ItemStack[] contents = new ItemStack[15]%(#aaa9a7)[;
]    %(#8242ff)[/** Actual working time */
]    protected int workingTime = 0%(#aaa9a7)[;
]    %(#8242ff)[/** Working time for one recipes */
]    protected int workingTimeNeeded = 200%(#aaa9a7)[;
]    %(#8242ff)[/** Working time default value for one recipes */
]    protected int workingTimeNeededDefault = 200%(#aaa9a7)[;
]    %(#8242ff)[/** Actual burn time */
]    protected int burnTime = 0%(#aaa9a7)[;
]    %(#8242ff)[/** Burn time of fuel */
]    protected int burnTimeTotal = 0%(#aaa9a7)[;
]    %(#8242ff)[/** Id of the result slot */
]    private int slotResultID = 3%(#aaa9a7)[;
]    %(#8242ff)[/** Id of the upgrade slot */
]    private int slotUpgradeID = 2%(#aaa9a7)[;
]    %(#8242ff)[/** Id of the fuel slot */
]    private int slotFuelID = 1%(#aaa9a7)[;
]    %(#8242ff)[/** Id of the input slot */
]    private int slotInputID = 0%(#aaa9a7)[;
]
   %(#278c3c)[***@Override
***]    public void readFromNBT(NBTTagCompound *compound*)
   {
       super.readFromNBT(*compound*)%(#aaa9a7)[;
]        this.direction = *compound*.getByte("Direction")%(#aaa9a7)[;
]        NBTTagList nbttaglist = *compound*.getTagList("Items", 10)%(#aaa9a7)[;
]        this.contents = new ItemStack[this.getSizeInventory()]%(#aaa9a7)[;
]
       for(int %(#666965)_= 0; %(#666965)_< nbttaglist.tagCount(); ++%(#666965)*)
       {
           NBTTagCompound nbtTagCompound = nbttaglist.getCompoundTagAt(%(#666965)*)%(#aaa9a7)[;
]            int j = nbtTagCompound.getByte("Slot") & 255%(#aaa9a7)[;
]
           if(j >= 0 && j < this.contents.length)
           {
               this.contents[j] = ItemStack.loadItemStackFromNBT(nbtTagCompound)%(#aaa9a7)[;
]            }
       }
       this.workingTime = *compound*.getShort("workingTime")%(#aaa9a7)[;
]        this.burnTime = *compound*.getShort("burnTime")%(#aaa9a7)[;
]        this.burnTimeTotal = *compound*.getShort("burnTimeTotal")%(#aaa9a7)[;
]    }

   %(#278c3c)[***@Override
***]    public void writeToNBT(NBTTagCompound *compound*)
   {
       super.writeToNBT(*compound*)%(#aaa9a7)[;
]        NBTTagList nbttaglist = new NBTTagList()%(#aaa9a7)[;
]        *compound*.setByte("Direction", this.direction)%(#aaa9a7)[;
]        for(int %(#666965)_= 0; %(#666965)_< this.contents.length; ++%(#666965)*)
       {
           if(this.contents[%(#666965)*] != null)
           {
               NBTTagCompound nbtTagCompound = new NBTTagCompound()%(#aaa9a7)[;
]                nbtTagCompound.setByte("Slot", (byte)%(#666965)*)%(#aaa9a7)[;
]                this.contents[%(#666965)*].writeToNBT(nbtTagCompound)%(#aaa9a7)[;
]                nbttaglist.appendTag(nbtTagCompound)%(#aaa9a7)[;
]
           }
       }
       *compound*.setTag("Items", nbttaglist)%(#aaa9a7)[;
]        *compound*.setShort("workingTime", (short)this.workingTime)%(#aaa9a7)[;
]        *compound*.setShort("burnTime", (short)this.burnTime)%(#aaa9a7)[;
]        *compound*.setShort("burnTimeTotal", (short)this.burnTimeTotal)%(#aaa9a7)[;
]    }

   public byte getDirection()
   {
       return direction%(#aaa9a7)[;
]    }

   public void setDirection(byte *direction*)
   {
       this.direction = *direction*%(#aaa9a7)[;
]        this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord)%(#aaa9a7)[;
]    }

   public Packet getDescriptionPacket()
   {
       NBTTagCompound nbtTagCompound = new NBTTagCompound()%(#aaa9a7)[;
]        this.writeToNBT(nbtTagCompound)%(#aaa9a7)[;
]        return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbtTagCompound)%(#aaa9a7)[;
]    }

   public void onDataPacket(NetworkManager *net*, S35PacketUpdateTileEntity *pkt*)
   {
       this.readFromNBT(*pkt*.func_148857_g())%(#aaa9a7)[;
]    }

   public int getSizeInventory()
   {
       return this.contents.length%(#aaa9a7)[;
]    }

   public void openInventory() {}

   public void closeInventory() {}

   public String getInventoryName()
   {
       return MechanicalCraft.oreExtractor.getLocalizedName()%(#aaa9a7)[;
]    }

   public boolean hasCustomInventoryName()
   {
       return false%(#aaa9a7)[;
]    }

   public int getInventoryStackLimit()
   {
       return 64%(#aaa9a7)[;
]    }

   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%(#aaa9a7)[;
]    }

   public ItemStack getStackInSlot(int *slotIndex*)
   {
       return this.contents[*slotIndex*]%(#aaa9a7)[;
]    }

   public ItemStack decrStackSize(int *slotIndex*, int *amount*)
   {
       if(this.contents[*slotIndex*] != null)
       {
           ItemStack itemstack%(#aaa9a7)[;
]
           if(this.contents[*slotIndex*].stackSize <= *amount*)
           {
               itemstack = this.contents[*slotIndex*]%(#aaa9a7)[;
]                this.contents[*slotIndex*] = null%(#aaa9a7)[;
]                this.markDirty()%(#aaa9a7)[;
]                return itemstack%(#aaa9a7)[;
]            }
           %(#0187df)[else
]            {
               itemstack = this.contents[*slotIndex*].splitStack(*amount*)%(#aaa9a7)[;
]
               if(this.contents[*slotIndex*].stackSize == 0)
               {
                   this.contents[*slotIndex*] = null%(#aaa9a7)[;
]                }
               this.markDirty()%(#aaa9a7)[;
]                return itemstack%(#aaa9a7)[;
]            }
       }
       %(#0187df)[else
]        {
           return null%(#aaa9a7)[;
]        }
   }

   public ItemStack getStackInSlotOnClosing(int *slotIndex*)
   {
       if(this.contents[*slotIndex*] != null)
       {
           ItemStack itemstack = this.contents[*slotIndex*]%(#aaa9a7)[;
]            this.contents[*slotIndex*] = null%(#aaa9a7)[;
]            return itemstack%(#aaa9a7)[;
]        }
       %(#0187df)[else
]        {
           return null%(#aaa9a7)[;
]        }
   }

   public void setInventorySlotContents(int *slotIndex*, ItemStack *stack*)
   {
       this.contents[*slotIndex*] = *stack*%(#aaa9a7)[;
]
       if(*stack *!= null && *stack*.stackSize > this.getInventoryStackLimit())
       {
           *stack*.stackSize = this.getInventoryStackLimit()%(#aaa9a7)[;
]        }
       this.markDirty()%(#aaa9a7)[;
]    }

   public boolean isItemValidForSlot(int *slot*, ItemStack *stack*)
   {
       return *slot *== 2 ? false : true%(#aaa9a7)[;
]    }

   public boolean isBurning()
   {
       return this.workingTime > 0%(#aaa9a7)[;
]    }

   protected boolean canSmelt()
   {
       if(this.contents[this.slotInputID] == null)
       {
           return false%(#aaa9a7)[;
]        }
       %(#0187df)[else
]        {
           ItemStack itemstack = OreExtractorRecipes.smelting().getSmeltingResult(new ItemStack[] { this.contents[this.slotInputID] })%(#aaa9a7)[;
]            int j = 0%(#aaa9a7)[;
]            for (int %(#666965)_= 3; %(#666965)_< 15; %(#666965)*++)
           {
               j = %(#666965)*%(#aaa9a7)[;
]
               if (itemstack == null)
               {
                   return false%(#aaa9a7)[;
]                }
               if (this.contents[%(#666965)*] == null)
               {
                   return true%(#aaa9a7)[;
]                }
               if (!this.contents[%(#666965)*].isItemEqual(itemstack))
               {
                   return false%(#aaa9a7)[;
]                }
           }
           int result = contents[j].stackSize + itemstack.stackSize%(#aaa9a7)[;
]            return result <= getInventoryStackLimit() && result <= this.contents[j].getMaxStackSize()%(#aaa9a7)[;
]        }
   }

   public void smeltItem()
   {
       ItemStack itemstack = OreExtractorRecipes.smelting().getSmeltingResult(new ItemStack[] { this.contents[this.slotInputID] })%(#aaa9a7)[;
]
       for (int %(#666965)_= 3; %(#666965)_<= 15; %(#666965)*++)
       {
           if (this.canSmelt())
           {
               if (this.contents[%(#666965)*] == null)
               {
                   this.contents[%(#666965)*] = itemstack.copy()%(#aaa9a7)[;
]                } else if (this.contents[%(#666965)*].getItem() == itemstack.getItem())
               {
                   this.contents[%(#666965)*].stackSize += itemstack.stackSize%(#aaa9a7)[;
]                }

               this.decrStackSize(0, 1)%(#aaa9a7)[;
]            }
       }
   }

   public void updateEntity()
   {
       if(this.burnTime > 0)
       {
           burnTime%(#aaa9a7)[–;
]        }
       if(this.canSmelt())
       {
           if(this.burnTime <= 0)
           {
               int %(#666965)________