MinecraftModDevelopmentMods / NetherMetals

Nether Metals Mod
GNU Lesser General Public License v2.1
8 stars 3 forks source link

Extra Utilities Quarry Crash (possible world corruption) #20

Closed Senjar closed 7 years ago

Senjar commented 7 years ago

MC version: 1.10.2 Forge: 12.18.3.2254 ExUtils version: 1.3.3 NetherMetals version: 1.1.3 (1.1.2 does NOT crash)

Can be reproduced Place the quarry , put a chest above and as soon as you power it ,it crashes the game. Crash Log http://pastebin.com/SwqSZEuw

` ---- Minecraft Crash Report ---- // My bad.

Time: 3/13/17 7:30 PM Description: Ticking block entity

java.lang.IllegalArgumentException: Invalid hand null at net.minecraft.entity.EntityLivingBase.func_184586_b(EntityLivingBase.java:1487) at com.mcmoddev.nethermetals.NetherMetals.onBlockBreak(NetherMetals.java:62) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_64_NetherMetals_onBlockBreak_BreakEvent.invoke(.dynamic) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:185) at net.minecraftforge.common.ForgeHooks.onBlockBreakEvent(ForgeHooks.java:742) at net.minecraft.server.management.PlayerInteractionManager.func_180237_b(PlayerInteractionManager.java:287) at com.rwtema.extrautils2.quarry.TileQuarry.func_73660_a(TileQuarry.java:307) at net.minecraft.world.World.func_72939_s(World.java:1804) at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:620) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:709) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:149) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471) at java.lang.Thread.run(Thread.java:745)

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

-- Head -- Thread: Server thread Stacktrace: at net.minecraft.entity.EntityLivingBase.func_184586_b(EntityLivingBase.java:1487) at com.mcmoddev.nethermetals.NetherMetals.onBlockBreak(NetherMetals.java:62) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_64_NetherMetals_onBlockBreak_BreakEvent.invoke(.dynamic) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:185) at net.minecraftforge.common.ForgeHooks.onBlockBreakEvent(ForgeHooks.java:742) at net.minecraft.server.management.PlayerInteractionManager.func_180237_b(PlayerInteractionManager.java:287) at com.rwtema.extrautils2.quarry.TileQuarry.func_73660_a(TileQuarry.java:307)

-- Block entity being ticked -- Details: Name: XU2:TileQuarry // com.rwtema.extrautils2.quarry.TileQuarry Block type: ID #263 (tile.extrautils2:quarry // com.rwtema.extrautils2.quarry.BlockQuarry) Block data value: 0 / 0x0 / 0b0000 Block location: World: (-140,74,71), Chunk: (at 4,4,7 in -9,4; contains blocks -144,0,64 to -129,255,79), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Actual block type: ID #263 (tile.extrautils2:quarry // com.rwtema.extrautils2.quarry.BlockQuarry) Actual block data value: 0 / 0x0 / 0b0000 Stacktrace: at net.minecraft.world.World.func_72939_s(World.java:1804) at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:620)

-- Affected level -- Details: Level name: New World All players: 1 total; [EntityPlayerMP['MrSenjar'/957, l='New World', x=-137.87, y=78.17, z=72.13]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: -5712497314494526443 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (-124,64,84), Chunk: (at 4,4,4 in -8,5; contains blocks -128,0,80 to -113,255,95), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Level time: 2350 game time, 2350 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 117129 (now: false), thunder time: 128544 (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:709) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:149) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471) at java.lang.Thread.run(Thread.java:745)

-- System Details -- Details: Minecraft Version: 1.10.2 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_25, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 2822249552 bytes (2691 MB) / 4294967296 bytes (4096 MB) up to 4294967296 bytes (4096 MB) JVM Flags: 12 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4096m -Xms256m -XX:PermSize=256m -XX:+UseG1GC -Xmx4G -Xms4G -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95 FML: MCP 9.32 Powered by Forge 12.18.3.2254 6 mods loaded, 6 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.19} [Minecraft Coder Pack] (minecraft.jar) UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forge-1.10.2-12.18.3.2254.jar) UCHIJAAAA Forge{12.18.3.2254} [Minecraft Forge] (forge-1.10.2-12.18.3.2254.jar) UCHIJAAAA extrautils2{1.0} [Extra Utilities 2] (extrautils2-1.10.2-1.3.3.jar) UCHIJAAAA nethermetals{1.1.3} [Nether Metals] (NetherMetals-1.10.2-1.1.3.jar) UCHIJAAAA orespawn{1.1.0} [Ore Spawn] (OreSpawn_1.10.2-1.1.0.jar) Loaded coremods (and transformers): GL info: ERROR RuntimeException: No OpenGL context found in the current thread. Profiler Position: N/A (disabled) Player Count: 1 / 8; [EntityPlayerMP['MrSenjar'/957, l='New World', x=-137.87, y=78.17, z=72.13]] Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'fml,forge' `

knoxhack commented 7 years ago

Change the explosion chance to 0 and try loading the world. That bug its being caused by the mod expecting a player to mine the nether ores for explosion chances

knoxhack commented 7 years ago

I'll look into adding support for non players mining the ores in next version

sandalle commented 7 years ago

This also affects non-nether ores (e.g. Amber Ore from JurassiCraft), see https://github.com/Ellpeck/ActuallyAdditions/issues/689 where I first ran into this after updating Nether Metals to 1.1.3, and was directed to Nether Metals.

Minecraft: 1.10.2 Forge Mod Loader: 1.10.2-12.18.3.2239 Actually Additions: 1.10.2-r105 Draconic Evolution: 1.10.2-2.0.8.177 JurassiCraft: 2.0.5 Nether Metals: 1.10.2-1.1.3

Breaking the blocks by a player (e.g. with a Tinker's Construct pickaxe) works without issue.

Auto-Breaking Amber Ore from JurassiCraft (not added by Nether Metals): crash-2017-03-13_10.20.21-server.txt

AutoBreaking Ender Draconium Ore or Nether Draconium Ore from Draconic Evolutions: crash-2017-03-13_09.54.54-server.txt

Per @Ellpeck

This is an issue with Nether Metals due to the fact that it uses the parameter swingingHand in its code right here, even though a player (especially a fake player) breaking something doesn't necessarily mean that they are swinging their arm while doing it. The mod should instead use EntityPlayer.getHeldItemMainhand().

knoxhack commented 7 years ago

Yeah, will implement support for fake-players in the next update

knoxhack commented 7 years ago

https://github.com/MinecraftModDevelopmentMods/NetherMetals/commit/b16b5f3ffdf6a8d5ae32d833d184b4c510892963

sandalle commented 7 years ago

Nether Metals 1.1.4 fixes this for me, thank you! :)