Posted June 2, 20214 yr I'm porting some code (Create mod Shadow Steel tools, GitHub link below) from 1.14.4 to 1.16.5. Link: https://github.com/Creators-of-Create/Create/tree/mc1.14/release/src/main/java/com/simibubi/create And every time when I mine some blocks with the tools that toggle the event the game just crash. Crash report: Description: Ticking entity java.lang.IllegalArgumentException: Invalid message com.jerrylu086.shadowsteeltools.items.utils.AbstractToolItem$HarvestPacket at net.minecraftforge.fml.network.simple.IndexedMessageCodec.build(IndexedMessageCodec.java:145) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.encodeMessage(SimpleChannel.java:85) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.toBuffer(SimpleChannel.java:98) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.toVanillaPacket(SimpleChannel.java:129) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.send(SimpleChannel.java:124) ~[?:?] {re:classloading} at com.jerrylu086.shadowsteeltools.items.ToolEvents.toolsCanModifyBlockDrops(ToolEvents.java:85) ~[?:mc1.16-b1.0.0] {re:classloading} at net.minecraftforge.eventbus.ASMEventHandler_31_ToolEvents_toolsCanModifyBlockDrops_BreakEvent.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus$$Lambda$2557/317960538.invoke(Unknown Source) ~[?:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.common.ForgeHooks.onBlockBreakEvent(ForgeHooks.java:601) ~[?:?] {re:classloading} at net.minecraft.server.management.PlayerInteractionManager.func_180237_b(PlayerInteractionManager.java:230) ~[?:?] {re:computing_frames,re:classloading} at net.minecraft.server.management.PlayerInteractionManager.func_73075_a(PlayerInteractionManager.java:96) ~[?:?] {re:computing_frames,re:classloading} at net.minecraft.entity.player.ServerPlayerEntity.func_70071_h_(ServerPlayerEntity.java:354) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.func_217479_a(ServerWorld.java:611) ~[?:?] {re:classloading} at net.minecraft.world.server.ServerWorld$$Lambda$8066/167082997.accept(Unknown Source) ~[?:?] {} at net.minecraft.world.World.func_217390_a(World.java:554) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:create.mixins.json:TileWorldHookMixin,pl:mixin:A} at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:404) ~[?:?] {re:classloading} at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:851) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:787) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:118) ~[?:?] {re:classloading,xf:OptiFine:default} at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) [?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) [?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer$$Lambda$7541/1467198794.run(Unknown Source) [?:?] {} at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Server thread Stacktrace: at net.minecraftforge.fml.network.simple.IndexedMessageCodec.build(IndexedMessageCodec.java:145) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.encodeMessage(SimpleChannel.java:85) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.toBuffer(SimpleChannel.java:98) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.toVanillaPacket(SimpleChannel.java:129) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.send(SimpleChannel.java:124) ~[?:?] {re:classloading} at com.jerrylu086.shadowsteeltools.items.ToolEvents.toolsCanModifyBlockDrops(ToolEvents.java:85) ~[?:mc1.16-b1.0.0] {re:classloading} at net.minecraftforge.eventbus.ASMEventHandler_31_ToolEvents_toolsCanModifyBlockDrops_BreakEvent.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus$$Lambda$2557/317960538.invoke(Unknown Source) ~[?:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.common.ForgeHooks.onBlockBreakEvent(ForgeHooks.java:601) ~[?:?] {re:classloading} at net.minecraft.server.management.PlayerInteractionManager.func_180237_b(PlayerInteractionManager.java:230) ~[?:?] {re:computing_frames,re:classloading} at net.minecraft.server.management.PlayerInteractionManager.func_73075_a(PlayerInteractionManager.java:96) ~[?:?] {re:computing_frames,re:classloading} at net.minecraft.entity.player.ServerPlayerEntity.func_70071_h_(ServerPlayerEntity.java:354) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.func_217479_a(ServerWorld.java:611) ~[?:?] {re:classloading} at net.minecraft.world.server.ServerWorld$$Lambda$8066/167082997.accept(Unknown Source) ~[?:?] {} -- Entity being ticked -- Details: Entity Type: minecraft:player (net.minecraft.entity.player.ServerPlayerEntity) Entity ID: 207 Entity Name: JerryLu086 Entity's Exact location: -36.60, 58.00, 112.67 Entity's Block location: World: (-37,58,112), Chunk: (at 11,3,0 in -3,7; contains blocks -48,0,112 to -33,255,127), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Entity's Momentum: 0.00, -0.08, 0.00 Entity's Passengers: [] Entity's Vehicle: ~~ERROR~~ NullPointerException: null Stacktrace: at net.minecraft.world.World.func_217390_a(World.java:554) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:create.mixins.json:TileWorldHookMixin,pl:mixin:A} at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:404) ~[?:?] {re:classloading} -- Affected level -- Details: All players: 1 total; [ServerPlayerEntity['JerryLu086'/207, l='ServerLevel[Tests]', x=-36.60, y=58.00, z=112.67]] Chunk stats: ServerChunkCache: 2025 Level dimension: minecraft:overworld Level spawn location: World: (-32,64,112), Chunk: (at 0,4,0 in -2,7; contains blocks -32,0,112 to -17,255,127), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Level time: 1077 game time, 1000 day time Level name: Tests Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false) Known server brands: forge Level was modded: true Level storage version: 0x04ABD - Anvil Stacktrace: at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:851) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:787) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:118) ~[?:?] {re:classloading,xf:OptiFine:default} at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) [?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) [?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer$$Lambda$7541/1467198794.run(Unknown Source) [?:?] {} at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {} -- System Details -- Details: Minecraft Version: 1.16.5 Minecraft Version ID: 1.16.5 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_51, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 2233564128 bytes (2130 MB) / 3221225472 bytes (3072 MB) up to 3221225472 bytes (3072 MB) CPUs: 4 JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx3G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M ModLauncher: 8.0.9+86+master.3cf110c ModLauncher launch target: fmlclient ModLauncher naming: srg ModLauncher services: /mixin-0.8.2.jar mixin PLUGINSERVICE /eventbus-4.0.0.jar eventbus PLUGINSERVICE /forge-1.16.5-36.1.0.jar object_holder_definalize PLUGINSERVICE /forge-1.16.5-36.1.0.jar runtime_enum_extender PLUGINSERVICE /accesstransformers-3.0.1.jar accesstransformer PLUGINSERVICE /forge-1.16.5-36.1.0.jar capability_inject_definalize PLUGINSERVICE /forge-1.16.5-36.1.0.jar runtimedistcleaner PLUGINSERVICE /mixin-0.8.2.jar mixin TRANSFORMATIONSERVICE /OptiFine_1.16.5_HD_U_G7.jar OptiFine TRANSFORMATIONSERVICE /forge-1.16.5-36.1.0.jar fml TRANSFORMATIONSERVICE FML: 36.1 Forge: net.minecraftforge:36.1.0 FML Language Providers: [email protected] minecraft@1 Mod List: forge-1.16.5-36.1.0-client.jar |Minecraft |minecraft |1.16.5 |DONE |NOSIGNATURE tetra-1.16.5-3.8.0.jar |Tetra |tetra |3.8.0 |DONE |NOSIGNATURE cleancut-mc1.16-2.2-forge.jar |Clean Cut |cleancut |2.2 |DONE |NOSIGNATURE MouseTweaks-2.13-mc1.16.2.jar |Mouse Tweaks |mousetweaks |2.13 |DONE |NOSIGNATURE Jade-1.16.4-2.6.1.jar |Jade |jade |2.6.1 |DONE |NOSIGNATURE EntityCulling-1.16.5-1.0.0.jar |Entity Culling |entity_culling |1.0.0 |DONE |NOSIGNATURE morecreatestuffs-mc1.16-1.4.1.jar |More Create Stuffs |morecreatestuffs |mc1.16-1.4.1 |DONE |NOSIGNATURE tetrapak-0.1.1.jar |Tetra Pak |tetrapak |0.1.1 |DONE |NOSIGNATURE ferritecore-2.0.4-forge.jar |Ferrite Core |ferritecore |2.0.4 |DONE |41:ce:50:66:d1:a0:05:ce:a1:0e:02:85:9b:46:64:e0:bf:2e:cf:60:30:9a:fe:0c:27:e0:63:66:9a:84:ce:8a jei-1.16.5-7.6.4.90.jar |Just Enough Items |jei |7.6.4.90 |DONE |NOSIGNATURE shadowsteeltools-mc1.16-b1.0.0.jar |Shadow Steel Tools: Reborn |shadowsteeltools |mc1.16-1.4.1 |DONE |NOSIGNATURE forge-1.16.5-36.1.0-universal.jar |Forge |forge |36.1.0 |DONE |22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90 Neat+1.7-27.jar |Neat |neat |1.7-27 |DONE |NOSIGNATURE create-mc1.16.5_v0.3.1b.jar |Create |create |mc1.16.5_v0.3.1b+143|DONE |NOSIGNATURE Xaeros_Minimap_21.2.0.2_Forge_1.16.5.jar |Xaero's Minimap |xaerominimap |21.2.0 |DONE |NOSIGNATURE XaerosWorldMap_1.11.11.2_Forge_1.16.5.jar |Xaero's World Map |xaeroworldmap |1.11.11 |DONE |NOSIGNATURE mgui-1.16.4-3.1.3.jar |mgui |mgui |3.1.3 |DONE |NOSIGNATURE Controlling-7.0.0.11.jar |Controlling |controlling |7.0.0.11 |DONE |NOSIGNATURE Crash Report UUID: 02d0a64a-badc-49c7-abd6-6e902a157b84 Player Count: 1 / 8; [ServerPlayerEntity['JerryLu086'/207, l='ServerLevel[Tests]', x=-36.60, y=58.00, z=112.67]] Data Packs: vanilla, mod:tetra, mod:cleancut (incompatible), mod:mousetweaks, mod:jade, mod:entity_culling, mod:morecreatestuffs, mod:tetrapak, mod:ferritecore (incompatible), mod:jei, mod:shadowsteeltools, mod:forge, mod:neat (incompatible), mod:create, mod:xaerominimap, mod:xaeroworldmap, mod:mgui (incompatible), mod:controlling Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'forge' OptiFine Version: OptiFine_1.16.5_HD_U_G7 OptiFine Build: 20210305-003221 Render Distance Chunks: 8 Mipmaps: 4 Anisotropic Filtering: 1 Antialiasing: 0 Multitexture: false Shaders: null OpenGlVersion: 4.5.0 - Build 23.20.16.4973 OpenGlRenderer: Intel(R) HD Graphics 520 OpenGlVendor: Intel CpuCount: 4 Description: Ticking entity java.lang.IllegalArgumentException: Invalid message com.jerrylu086.shadowsteeltools.items.utils.AbstractToolItem$HarvestPacket at net.minecraftforge.fml.network.simple.IndexedMessageCodec.build(IndexedMessageCodec.java:145) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.encodeMessage(SimpleChannel.java:85) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.toBuffer(SimpleChannel.java:98) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.toVanillaPacket(SimpleChannel.java:129) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.send(SimpleChannel.java:124) ~[?:?] {re:classloading} at com.jerrylu086.shadowsteeltools.items.ToolEvents.toolsCanModifyBlockDrops(ToolEvents.java:85) ~[?:mc1.16-b1.0.0] {re:classloading} at net.minecraftforge.eventbus.ASMEventHandler_31_ToolEvents_toolsCanModifyBlockDrops_BreakEvent.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus$$Lambda$2557/317960538.invoke(Unknown Source) ~[?:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.common.ForgeHooks.onBlockBreakEvent(ForgeHooks.java:601) ~[?:?] {re:classloading} at net.minecraft.server.management.PlayerInteractionManager.func_180237_b(PlayerInteractionManager.java:230) ~[?:?] {re:computing_frames,re:classloading} at net.minecraft.server.management.PlayerInteractionManager.func_73075_a(PlayerInteractionManager.java:96) ~[?:?] {re:computing_frames,re:classloading} at net.minecraft.entity.player.ServerPlayerEntity.func_70071_h_(ServerPlayerEntity.java:354) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.func_217479_a(ServerWorld.java:611) ~[?:?] {re:classloading} at net.minecraft.world.server.ServerWorld$$Lambda$8066/167082997.accept(Unknown Source) ~[?:?] {} at net.minecraft.world.World.func_217390_a(World.java:554) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:create.mixins.json:TileWorldHookMixin,pl:mixin:A} at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:404) ~[?:?] {re:classloading} at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:851) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:787) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:118) ~[?:?] {re:classloading,xf:OptiFine:default} at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) [?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) [?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer$$Lambda$7541/1467198794.run(Unknown Source) [?:?] {} at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Server thread Stacktrace: at net.minecraftforge.fml.network.simple.IndexedMessageCodec.build(IndexedMessageCodec.java:145) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.encodeMessage(SimpleChannel.java:85) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.toBuffer(SimpleChannel.java:98) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.toVanillaPacket(SimpleChannel.java:129) ~[?:?] {re:classloading} at net.minecraftforge.fml.network.simple.SimpleChannel.send(SimpleChannel.java:124) ~[?:?] {re:classloading} at com.jerrylu086.shadowsteeltools.items.ToolEvents.toolsCanModifyBlockDrops(ToolEvents.java:85) ~[?:mc1.16-b1.0.0] {re:classloading} at net.minecraftforge.eventbus.ASMEventHandler_31_ToolEvents_toolsCanModifyBlockDrops_BreakEvent.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus$$Lambda$2557/317960538.invoke(Unknown Source) ~[?:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.common.ForgeHooks.onBlockBreakEvent(ForgeHooks.java:601) ~[?:?] {re:classloading} at net.minecraft.server.management.PlayerInteractionManager.func_180237_b(PlayerInteractionManager.java:230) ~[?:?] {re:computing_frames,re:classloading} at net.minecraft.server.management.PlayerInteractionManager.func_73075_a(PlayerInteractionManager.java:96) ~[?:?] {re:computing_frames,re:classloading} at net.minecraft.entity.player.ServerPlayerEntity.func_70071_h_(ServerPlayerEntity.java:354) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.func_217479_a(ServerWorld.java:611) ~[?:?] {re:classloading} at net.minecraft.world.server.ServerWorld$$Lambda$8066/167082997.accept(Unknown Source) ~[?:?] {} -- Entity being ticked -- Details: Entity Type: minecraft:player (net.minecraft.entity.player.ServerPlayerEntity) Entity ID: 207 Entity Name: JerryLu086 Entity's Exact location: -36.60, 58.00, 112.67 Entity's Block location: World: (-37,58,112), Chunk: (at 11,3,0 in -3,7; contains blocks -48,0,112 to -33,255,127), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Entity's Momentum: 0.00, -0.08, 0.00 Entity's Passengers: [] Entity's Vehicle: ~~ERROR~~ NullPointerException: null Stacktrace: at net.minecraft.world.World.func_217390_a(World.java:554) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:create.mixins.json:TileWorldHookMixin,pl:mixin:A} at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:404) ~[?:?] {re:classloading} -- Affected level -- Details: All players: 1 total; [ServerPlayerEntity['JerryLu086'/207, l='ServerLevel[Tests]', x=-36.60, y=58.00, z=112.67]] Chunk stats: ServerChunkCache: 2025 Level dimension: minecraft:overworld Level spawn location: World: (-32,64,112), Chunk: (at 0,4,0 in -2,7; contains blocks -32,0,112 to -17,255,127), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Level time: 1077 game time, 1000 day time Level name: Tests Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false) Known server brands: forge Level was modded: true Level storage version: 0x04ABD - Anvil Stacktrace: at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:851) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:787) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:118) ~[?:?] {re:classloading,xf:OptiFine:default} at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:642) [?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) [?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer$$Lambda$7541/1467198794.run(Unknown Source) [?:?] {} at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {} -- System Details -- Details: Minecraft Version: 1.16.5 Minecraft Version ID: 1.16.5 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_51, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 2233564128 bytes (2130 MB) / 3221225472 bytes (3072 MB) up to 3221225472 bytes (3072 MB) CPUs: 4 JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx3G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M ModLauncher: 8.0.9+86+master.3cf110c ModLauncher launch target: fmlclient ModLauncher naming: srg ModLauncher services: /mixin-0.8.2.jar mixin PLUGINSERVICE /eventbus-4.0.0.jar eventbus PLUGINSERVICE /forge-1.16.5-36.1.0.jar object_holder_definalize PLUGINSERVICE /forge-1.16.5-36.1.0.jar runtime_enum_extender PLUGINSERVICE /accesstransformers-3.0.1.jar accesstransformer PLUGINSERVICE /forge-1.16.5-36.1.0.jar capability_inject_definalize PLUGINSERVICE /forge-1.16.5-36.1.0.jar runtimedistcleaner PLUGINSERVICE /mixin-0.8.2.jar mixin TRANSFORMATIONSERVICE /OptiFine_1.16.5_HD_U_G7.jar OptiFine TRANSFORMATIONSERVICE /forge-1.16.5-36.1.0.jar fml TRANSFORMATIONSERVICE FML: 36.1 Forge: net.minecraftforge:36.1.0 FML Language Providers: [email protected] minecraft@1 Mod List: forge-1.16.5-36.1.0-client.jar |Minecraft |minecraft |1.16.5 |DONE |NOSIGNATURE tetra-1.16.5-3.8.0.jar |Tetra |tetra |3.8.0 |DONE |NOSIGNATURE cleancut-mc1.16-2.2-forge.jar |Clean Cut |cleancut |2.2 |DONE |NOSIGNATURE MouseTweaks-2.13-mc1.16.2.jar |Mouse Tweaks |mousetweaks |2.13 |DONE |NOSIGNATURE Jade-1.16.4-2.6.1.jar |Jade |jade |2.6.1 |DONE |NOSIGNATURE EntityCulling-1.16.5-1.0.0.jar |Entity Culling |entity_culling |1.0.0 |DONE |NOSIGNATURE morecreatestuffs-mc1.16-1.4.1.jar |More Create Stuffs |morecreatestuffs |mc1.16-1.4.1 |DONE |NOSIGNATURE tetrapak-0.1.1.jar |Tetra Pak |tetrapak |0.1.1 |DONE |NOSIGNATURE ferritecore-2.0.4-forge.jar |Ferrite Core |ferritecore |2.0.4 |DONE |41:ce:50:66:d1:a0:05:ce:a1:0e:02:85:9b:46:64:e0:bf:2e:cf:60:30:9a:fe:0c:27:e0:63:66:9a:84:ce:8a jei-1.16.5-7.6.4.90.jar |Just Enough Items |jei |7.6.4.90 |DONE |NOSIGNATURE shadowsteeltools-mc1.16-b1.0.0.jar |Shadow Steel Tools: Reborn |shadowsteeltools |mc1.16-1.4.1 |DONE |NOSIGNATURE forge-1.16.5-36.1.0-universal.jar |Forge |forge |36.1.0 |DONE |22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90 Neat+1.7-27.jar |Neat |neat |1.7-27 |DONE |NOSIGNATURE create-mc1.16.5_v0.3.1b.jar |Create |create |mc1.16.5_v0.3.1b+143|DONE |NOSIGNATURE Xaeros_Minimap_21.2.0.2_Forge_1.16.5.jar |Xaero's Minimap |xaerominimap |21.2.0 |DONE |NOSIGNATURE XaerosWorldMap_1.11.11.2_Forge_1.16.5.jar |Xaero's World Map |xaeroworldmap |1.11.11 |DONE |NOSIGNATURE mgui-1.16.4-3.1.3.jar |mgui |mgui |3.1.3 |DONE |NOSIGNATURE Controlling-7.0.0.11.jar |Controlling |controlling |7.0.0.11 |DONE |NOSIGNATURE Crash Report UUID: 02d0a64a-badc-49c7-abd6-6e902a157b84 Player Count: 1 / 8; [ServerPlayerEntity['JerryLu086'/207, l='ServerLevel[Tests]', x=-36.60, y=58.00, z=112.67]] Data Packs: vanilla, mod:tetra, mod:cleancut (incompatible), mod:mousetweaks, mod:jade, mod:entity_culling, mod:morecreatestuffs, mod:tetrapak, mod:ferritecore (incompatible), mod:jei, mod:shadowsteeltools, mod:forge, mod:neat (incompatible), mod:create, mod:xaerominimap, mod:xaeroworldmap, mod:mgui (incompatible), mod:controlling Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'forge' OptiFine Version: OptiFine_1.16.5_HD_U_G7 OptiFine Build: 20210305-003221 Render Distance Chunks: 8 Mipmaps: 4 Anisotropic Filtering: 1 Antialiasing: 0 Multitexture: false Shaders: null OpenGlVersion: 4.5.0 - Build 23.20.16.4973 OpenGlRenderer: Intel(R) HD Graphics 520 OpenGlVendor: Intel CpuCount: 4 The code in ToolEvents: package com.jerrylu086.shadowsteeltools.items; import java.util.List; import com.jerrylu086.shadowsteeltools.items.material.ToolTiers; import com.jerrylu086.shadowsteeltools.items.utils.AbstractToolItem; import com.jerrylu086.shadowsteeltools.items.utils.AbstractToolItem.HarvestPacket; import com.simibubi.create.foundation.networking.AllPackets; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.IItemTier; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.TieredItem; import net.minecraft.util.EntityDamageSource; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IWorld; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import net.minecraft.loot.LootContext.Builder; import net.minecraft.loot.LootParameters; import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.event.entity.living.LivingExperienceDropEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.eventbus.api.Event.Result; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.network.PacketDistributor; @EventBusSubscriber public class ToolEvents { @SubscribeEvent(priority = EventPriority.LOWEST) public static void toolsCanModifyBlockDrops(BlockEvent.BreakEvent event) { if (event.isCanceled()) return; PlayerEntity player = event.getPlayer(); ItemStack held = player.getHeldItemMainhand(); if (player.isCreative()) return; if (!(held.getItem() instanceof AbstractToolItem)) return; AbstractToolItem tool = (AbstractToolItem) held.getItem(); if (!tool.modifiesDrops()) return; BlockState state = event.getState(); if (!tool.canHarvestBlock(held, state) && state.getRequiresTool()) return; IWorld world = event.getWorld(); BlockPos pos = event.getPos(); boolean onServer = !world.isRemote(); if (!onServer) { tool.spawnParticles(world, pos, held, state); return; } World actualWorld = event.getPlayer().world; if (!(actualWorld instanceof ServerWorld)) return; List<ItemStack> drops = state.getDrops(new Builder((ServerWorld) actualWorld) .withRandom(actualWorld.getRandom()).withParameter(LootParameters.field_237457_g_, Vector3d.copy(pos)) .withParameter(LootParameters.TOOL, held).withParameter(LootParameters.THIS_ENTITY, player) .withNullableParameter(LootParameters.BLOCK_ENTITY, world.getTileEntity(pos))); tool.modifyDrops(drops, world, pos, held, state); tool.onBlockDestroyed(held, actualWorld, state, pos, player); world.setBlockState(pos, Blocks.AIR.getDefaultState(), 3); for (ItemStack dropped : drops) Block.spawnAsEntity(actualWorld, pos, dropped); AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY.with(() -> player), new HarvestPacket(state, held, pos, false)); AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new HarvestPacket(state, held, pos, true)); event.setResult(Result.DENY); } @SubscribeEvent public static void toolsMayModifyEntityLoot(LivingDropsEvent event) { if (!(event.getSource() instanceof EntityDamageSource)) return; EntityDamageSource source = (EntityDamageSource) event.getSource(); Entity target = event.getEntity(); Entity trueSource = source.getTrueSource(); World world = target.getEntityWorld(); if (trueSource != null && trueSource instanceof PlayerEntity) { PlayerEntity player = (PlayerEntity) trueSource; ItemStack heldItemMainhand = player.getHeldItemMainhand(); Item item = heldItemMainhand.getItem(); IItemTier tier = item instanceof TieredItem ? ((TieredItem) item).getTier() : null; if (tier == ToolTiers.SHADOW_STEEL) event.setCanceled(true); } } @SubscribeEvent public static void shadowSteelToolsDropMoreXPonKill(LivingExperienceDropEvent event) { PlayerEntity attackingPlayer = event.getAttackingPlayer(); if (attackingPlayer == null) return; ItemStack heldItemMainhand = attackingPlayer.getHeldItemMainhand(); Item item = heldItemMainhand.getItem(); IItemTier tier = item instanceof TieredItem ? ((TieredItem) item).getTier() : null; if (tier == ToolTiers.SHADOW_STEEL) { int level = EnchantmentHelper.getEnchantmentLevel(Enchantments.LOOTING, heldItemMainhand); float modifier = 1 + event.getEntity().world.getRandom().nextFloat() * level; event.setDroppedExperience((int) (event.getDroppedExperience() * modifier + 0.4f)); } } } AbstractToolItem: package com.jerrylu086.shadowsteeltools.items.utils; import static com.jerrylu086.shadowsteeltools.items.utils.ToolTypes.AXE; import static com.jerrylu086.shadowsteeltools.items.utils.ToolTypes.HOE; import static com.jerrylu086.shadowsteeltools.items.utils.ToolTypes.PICKAXE; import static com.jerrylu086.shadowsteeltools.items.utils.ToolTypes.SHOVEL; import static com.jerrylu086.shadowsteeltools.items.utils.ToolTypes.SWORD; import java.util.Collection; import java.util.HashSet; import java.util.Set; import java.util.function.Supplier; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.world.ClientWorld; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.IItemTier; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.item.Items; import net.minecraft.item.ToolItem; import net.minecraft.nbt.NBTUtil; import net.minecraft.network.PacketBuffer; import net.minecraft.tags.BlockTags; import net.minecraft.util.ActionResultType; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IWorld; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.ToolType; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.network.NetworkEvent.Context; public abstract class AbstractToolItem extends ToolItem { protected ToolTypes[] toolTypes; public AbstractToolItem(float attackDamageIn, float attackSpeedIn, IItemTier tier, Properties builder, ToolTypes... types) { super(attackDamageIn, attackSpeedIn, tier, getEffectiveBlocks(types), setToolTypes(builder, tier, types)); toolTypes = types; } @Override public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment) { boolean canEnchant = super.canApplyAtEnchantingTable(stack, enchantment); for (ToolTypes type : toolTypes) { switch (type) { case AXE: canEnchant |= enchantment.canApply(new ItemStack(Items.DIAMOND_AXE)); break; case HOE: canEnchant |= enchantment.canApply(new ItemStack(Items.DIAMOND_HOE)); break; case PICKAXE: canEnchant |= enchantment.canApply(new ItemStack(Items.DIAMOND_PICKAXE)); break; case SHEARS: canEnchant |= enchantment.canApply(new ItemStack(Items.SHEARS)); break; case SHOVEL: canEnchant |= enchantment.canApply(new ItemStack(Items.DIAMOND_SHOVEL)); break; case SWORD: canEnchant |= enchantment.canApply(new ItemStack(Items.DIAMOND_SWORD)); break; default: break; } } return canEnchant; } private static Set<Block> getEffectiveBlocks(ToolTypes... types) { Set<Block> blocks = new HashSet<>(); for (ToolTypes type : types) { switch (type) { case AXE: blocks.addAll(EffectiveBlocks.AXE); break; case HOE: break; case PICKAXE: blocks.addAll(EffectiveBlocks.PICKAXE); break; case SHEARS: break; case SHOVEL: blocks.addAll(EffectiveBlocks.SHOVEL); break; case SWORD: break; default: break; } } return blocks; } private static Properties setToolTypes(Properties builder, IItemTier tier, ToolTypes... types) { for (ToolTypes type : types) { if (type == PICKAXE) builder.addToolType(ToolType.PICKAXE, tier.getHarvestLevel()); if (type == SHOVEL) builder.addToolType(ToolType.SHOVEL, tier.getHarvestLevel()); if (type == AXE) builder.addToolType(ToolType.AXE, tier.getHarvestLevel()); } return builder; } protected boolean hasType(ToolTypes typeIn) { for (ToolTypes type : toolTypes) if (type == typeIn) return true; return false; } @Override public ActionResultType onItemUse(ItemUseContext context) { if (hasType(HOE) && !context.getPlayer().isSneaking()) return Items.WOODEN_HOE.onItemUse(context); if (hasType(SHOVEL)) return Items.WOODEN_SHOVEL.onItemUse(context); return super.onItemUse(context); } @Override public boolean canHarvestBlock(ItemStack stack, BlockState state) { int i = this.getTier().getHarvestLevel(); if (getToolTypes(stack).contains(state.getHarvestTool())) return i >= state.getHarvestLevel(); Material material = state.getMaterial(); boolean canHarvestMaterial = false; if (hasType(PICKAXE)) canHarvestMaterial |= material == Material.ROCK || material == Material.IRON || material == Material.ANVIL; if (hasType(SHOVEL)) canHarvestMaterial |= Items.WOODEN_SHOVEL.canHarvestBlock(stack, state); if (hasType(SWORD)) canHarvestMaterial |= Items.WOODEN_SWORD.canHarvestBlock(stack, state); if (hasType(ToolTypes.SHEARS)) canHarvestMaterial |= Items.SHEARS.canHarvestBlock(state); return canHarvestMaterial; } @Override public boolean canPlayerBreakBlockWhileHolding(BlockState state, World worldIn, BlockPos pos, PlayerEntity player) { return !hasType(SWORD) || !player.isCreative(); } @Override public float getDestroySpeed(ItemStack stack, BlockState state) { Material material = state.getMaterial(); if (hasType(PICKAXE) && (material == Material.IRON || material == Material.ANVIL || material == Material.ROCK)) return this.efficiency; if (hasType(AXE) && (material == Material.WOOD || material == Material.PLANTS || material == Material.TALL_PLANTS || material == Material.BAMBOO)) return this.efficiency; if (hasType(SWORD) && (state.getBlock() == Blocks.COBWEB || material == Material.PLANTS || material == Material.TALL_PLANTS || material == Material.CORAL || state.isIn(BlockTags.LEAVES) || material == Material.GOURD)) return this.efficiency; return super.getDestroySpeed(stack, state); } public boolean modifiesDrops() { return false; } public void modifyDrops(final Collection<ItemStack> drops, IWorld world, BlockPos pos, ItemStack tool, BlockState state) { } public void spawnParticles(IWorld world, BlockPos pos, ItemStack tool, BlockState state) { } public static class HarvestPacket extends SimplePacketBase { private BlockState state; private ItemStack stack; private BlockPos pos; private boolean self; public HarvestPacket(BlockState state, ItemStack stack, BlockPos pos, boolean self) { this.state = state; this.stack = stack; this.pos = pos; this.self = self; } public HarvestPacket(PacketBuffer buffer) { state = NBTUtil.readBlockState(buffer.readCompoundTag()); stack = buffer.readItemStack(); pos = buffer.readBlockPos(); self = buffer.readBoolean(); } @Override public void write(PacketBuffer buffer) { buffer.writeCompoundTag(NBTUtil.writeBlockState(state)); buffer.writeItemStack(stack); buffer.writeBlockPos(pos); buffer.writeBoolean(self); } @Override public void handle(Supplier<Context> context) { context.get().enqueueWork(() -> DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> this.spawnParticles(self))); context.get().setPacketHandled(true); } @OnlyIn(Dist.CLIENT) void spawnParticles(boolean self) { if (!(stack.getItem() instanceof AbstractToolItem)) return; ClientWorld world = Minecraft.getInstance().world; if (!self) world.playEvent(2001, pos, Block.getStateId(state)); ((AbstractToolItem) stack.getItem()).spawnParticles(world, pos, stack, state); } } } Edited June 4, 20214 yr by JerryLy086 solved
June 2, 20214 yr Author On 6/2/2021 at 3:45 PM, diesieben07 said: You have not registered the packet to the network channel. Finally fixed, thank you so much. Didn't even know I have to register that before, sorry about that silly guessing of the issues, I'm bad at doing this. Edited June 4, 20214 yr by JerryLy086 solved
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.