Jump to content

Recommended Posts

Posted (edited)

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 by JerryLy086
solved
Posted (edited)
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 by JerryLy086
solved
  • JerryLy086 changed the title to Solved: Packet crashing

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.