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);
}
}
}