rwtema / extrautilities_old_issues

Issue tracker
70 stars 45 forks source link

Ender Chest autocrafting crash #184

Closed 61352151511 closed 10 years ago

61352151511 commented 10 years ago

Kind of related to #183 I was testing to see if I could find a dupe bug (How dare I!) instead I find a crash. I tested by setting up 9 ender chests with the same color code all in a crafting grid shape and then made it so it would auto-craft diamond blocks, I put a diamond in the ender chest and it crashed.

---- Minecraft Crash Report ---- // But it works on my machine.

Time: 22/07/14 9:28 AM Description: Ticking block entity

java.lang.NullPointerException: Ticking block entity at com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNodeInventory.doCraft(TileEntityTransferNodeInventory.java:404) at com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNodeInventory.loadbuffer(TileEntityTransferNodeInventory.java:243) at com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNodeInventory.processBuffer(TileEntityTransferNodeInventory.java:153) at com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNode.func_145845_h(TileEntityTransferNode.java:140) at net.minecraft.world.World.func_72939_s(World.java:1888) at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:501) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head -- Stacktrace: at com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNodeInventory.doCraft(TileEntityTransferNodeInventory.java:404) at com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNodeInventory.loadbuffer(TileEntityTransferNodeInventory.java:243) at com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNodeInventory.processBuffer(TileEntityTransferNodeInventory.java:153) at com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNode.func_145845_h(TileEntityTransferNode.java:140)

-- Block entity being ticked -- Details: Name: TileEntityTransferNodeInventory // com.rwtema.extrautils.tileentity.transfernodes.TileEntityTransferNodeInventory Block type: ID #730 (tile.extrautils:extractor_base // com.rwtema.extrautils.tileentity.transfernodes.BlockTransferNode) Block data value: 0 / 0x0 / 0b0000 Block location: World: (-1245,6,1350), Chunk: (at 3,0,6 in -78,84; contains blocks -1248,0,1344 to -1233,255,1359), Region: (-3,2; contains chunks -96,64 to -65,95, blocks -1536,0,1024 to -1025,255,1535) Actual block type: ID #730 (tile.extrautils:extractor_base // com.rwtema.extrautils.tileentity.transfernodes.BlockTransferNode) Actual block data value: 0 / 0x0 / 0b0000 Stacktrace: at net.minecraft.world.World.func_72939_s(World.java:1888) at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:501)

-- Affected level -- Details: Level name: New World All players: 1 total; [EntityPlayerMP['61352151511'/39, l='New World', x=-1242.49, y=4.00, z=1346.50]] Chunk stats: ServerChunkCache: 308 Drop: 0 Level seed: -5009486861098096404 Level generator: ID 01 - flat, ver 0. Features enabled: true Level generator options: Level spawn location: World: (-1243,4,1333), Chunk: (at 5,0,5 in -78,83; contains blocks -1248,0,1328 to -1233,255,1343), Region: (-3,2; contains chunks -96,64 to -65,95, blocks -1536,0,1024 to -1025,255,1535) Level time: 2587 game time, 2587 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 112721 (now: false), thunder time: 22665 (now: false) Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true Stacktrace: at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)

-- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.7.0_60, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 360877488 bytes (344 MB) / 834142208 bytes (795 MB) up to 954728448 bytes (910 MB) Mod Pack: Unknown / None LiteLoader Mods: 1 loaded mod(s)

rwtema commented 10 years ago

Not related to #183. The algorithm wasn't made to deal with inventories that change during the extraction process (like shared enderchests). I've added some code that, if it encounters this issue will stop crafting and try put items back into the inventory, otherwise drop them.

It will not craft an item unless it extracts all the items needed, so no dupes here.