
JerryLy086
Members-
Posts
9 -
Joined
-
Last visited
JerryLy086's Achievements

Tree Puncher (2/8)
0
Reputation
-
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.
-
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); } } }
-
I used the AttributeModifer before, but what I want is increase the attack damage. Like if I'm using melee damage and wearing the chestplate, I will deal 6 damage. And if I'm using netherite sword, which has 8 attack damage, I will deal 13 damage. As far as I know what I can do with AttributeModifer is only *set* the attack damage, like if I'm wearing the chestplate, I will always deal 5 damage, even I'm using the weapons with high attack damage.
-
Here's my code: package com.jerrylu086.createarsenal.items; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; import com.jerrylu086.createarsenal.CreateArsenal; import com.jerrylu086.createarsenal.registry.ModItems; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.ai.attributes.Attribute; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.*; import net.minecraft.util.DamageSource; import net.minecraftforge.event.entity.living.LivingDamageEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import javax.annotation.Nonnull; @EventBusSubscriber(modid = CreateArsenal.MOD_ID) public class ExoframeItem extends ArmorItem { private Multimap<Attribute, AttributeModifier> attributeModifiers = ArrayListMultimap.create(); public ExoframeItem(IArmorMaterial materialIn, EquipmentSlotType slot, Properties properties) { super(materialIn, slot, properties); } /*@Override public boolean hitEntity(@Nonnull ItemStack stack, @Nonnull LivingEntity target, @Nonnull LivingEntity attacker) { stack.damageItem(1, attacker, (entity) -> { entity.sendBreakAnimation(EquipmentSlotType.CHEST); }); return true; }*/ @SubscribeEvent public void onDamageDealt (LivingDamageEvent event) { Entity trueSource = event.getSource().getTrueSource(); for (ItemStack stack : trueSource.getArmorInventoryList()) { if (isExo(stack)) { float damage = event.getAmount() + 5; event.setAmount(damage); } } } public boolean isExo(ItemStack stack) { if (stack == null || stack.getItem() == null) { return false; } Item item = stack.getItem(); return item == ModItems.EXOFRAME.get(); } } What I want to do is when this event detects an attacker of LivingDamageEvent is wearing the Exoframe item will increase the attack damage by 5 (can be reduced so use LivingDamageEvent instead of LivingHurtEvent). But I tested it, it does not do anything when I'm wearing the item. How I fix it?
-
I want to increase the player's attack damage when using a chestplate, but I have no way to do it. What I have done is just set to a number, not increase. For example, I want to increase 3 attack damage when using, and I'm using a diamond sword which provides 7 damage. When I'm wearing the chestplate, it should be 10 attack damage. My code: package com.jerrylu086.createarsenal.items; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import com.jerrylu086.createarsenal.CreateArsenal; import net.minecraft.entity.Entity; import net.minecraft.entity.ai.attributes.Attribute; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.ai.attributes.Attributes; import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.*; import net.minecraft.util.ResourceLocation; import javax.annotation.Nullable; public class ExoskeletonItem extends ArmorItem { private final float attackDamage; private final Multimap<Attribute, AttributeModifier> attributeModifiers; public ExoskeletonItem(IArmorMaterial materialIn, EquipmentSlotType slot, float attackDamageIn, Properties properties) { super(materialIn, slot, properties); this.attackDamage = attackDamageIn; ImmutableMultimap.Builder<Attribute, AttributeModifier> builder = ImmutableMultimap.builder(); builder.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", (double)this.attackDamage, AttributeModifier.Operation.ADDITION)); this.attributeModifiers = builder.build(); } @Override @Nullable public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlotType slot, String type) { return new ResourceLocation(CreateArsenal.MOD_ID, "textures/models/armor/exoskeleton_layer_1.png").toString(); } public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlotType equipmentSlot) { return equipmentSlot == EquipmentSlotType.CHEST ? this.attributeModifiers : super.getAttributeModifiers(equipmentSlot); } }package com.jerrylu086.createarsenal.items; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import com.jerrylu086.createarsenal.CreateArsenal; import net.minecraft.entity.Entity; import net.minecraft.entity.ai.attributes.Attribute; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.ai.attributes.Attributes; import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.*; import net.minecraft.util.ResourceLocation; import javax.annotation.Nullable; public class ExoskeletonItem extends ArmorItem { private final float attackDamage; private final Multimap<Attribute, AttributeModifier> attributeModifiers; public ExoskeletonItem(IArmorMaterial materialIn, EquipmentSlotType slot, float attackDamageIn, Properties properties) { super(materialIn, slot, properties); this.attackDamage = attackDamageIn; ImmutableMultimap.Builder<Attribute, AttributeModifier> builder = ImmutableMultimap.builder(); builder.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", (double)this.attackDamage, AttributeModifier.Operation.ADDITION)); this.attributeModifiers = builder.build(); } @Override @Nullable public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlotType slot, String type) { return new ResourceLocation(CreateArsenal.MOD_ID, "textures/models/armor/exoskeleton_layer_1.png").toString(); } public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlotType equipmentSlot) { return equipmentSlot == EquipmentSlotType.CHEST ? this.attributeModifiers : super.getAttributeModifiers(equipmentSlot); } }
-
Adding item depends on a tag (Minecraft 1.16.4, Forge 35.1.28)
JerryLy086 replied to JerryLy086's topic in Modder Support
Sorry I don't really understand that... but I found that I need a bool value about a tag is loaded or not but don't really know how to do it... -
Is there any ways to add a item to the ItemGroup depends on a tag? Like something is depends on a mod loaded as the code below: public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MyProject.MOD_ID); public static final RegistryObject<Item> ITEM_A = ITEMS.register("item_a", () -> new Item(new Item.Properties().group(ModList.get().isLoaded("mod_a") ? ItemGroup.MATERIALS : null)));
-
I'm new at coding and I got a problem when I was building my gradle. Here's the error code: Build file 'build.gradle' line: 37 A problem occurred evaluating root project 'RoseGold'. > No signature of method: java.lang.String.mods() is applicable for argument types: (build_aylkspmrctt1hitxfh2fvq7es$_run_closure2$_closure8$_closure9$_closure12) values: [build_aylkspmrctt1hitxfh2fvq7es$_run_closure2$_closure8$_closure9$_closure12@7c9fab72] Possible solutions: plus(java.lang.Object), minus(java.util.regex.Pattern), plus(java.lang.CharSequence), is(java.lang.Object), minus(java.lang.Object), wait() Code in my gradle: buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } jcenter() mavenCentral() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true } } repositories { maven { url "https://www.cursemaven.com" } } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' version = 'b0.1' group = 'com.jerryly086.rosegold' archivesBaseName = 'rosegold' sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { mappings channel: 'snapshot', version: '20201028-1.16.3' runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES'. mods { rosegold { source sourceSets.main } } } server { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' mods { rosegold { source sourceSets.main } } } data { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') mods { rosegold { source sourceSets.main } } } } } sourceSets.main.resources { srcDir 'src/generated/resources' } dependencies { minecraft 'net.minecraftforge:forge:1.16.5-36.0.42' implementation fg.deobf("curse.maven:farmers-delight-398521:3249879") } jar { manifest { attributes([ "Specification-Title": project.name, "Specification-Vendor": "JerryLu086", "Specification-Version": "1", // We are version 1 of ourselves "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor" :"JerryLu086", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } jar.finalizedBy('reobfJar') publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file:///${project.projectDir}/mcmodsrepo" } } }