From b1b6e6e746fd55e8f5f4705308333cac77103e33 Mon Sep 17 00:00:00 2001 From: DAQEM Date: Fri, 3 Oct 2025 13:36:12 +0200 Subject: [PATCH] fix: NeoForge mixin error --- .../grieflogger/event/block/BlockEvents.java | 6 +++- .../event/block/PlaceBlockEvent.java | 4 +-- .../grieflogger/mixin/MixinBucketItem.java | 14 -------- .../fabric/mixin/MixinBucketItem.java | 31 ++++++++++++++++++ fabric/src/main/resources/fabric.mod.json | 3 +- .../resources/grieflogger-fabric.mixins.json | 14 ++++++++ gradle.properties | 2 +- .../neoforge/mixin/MixinBucketItem.java | 32 +++++++++++++++++++ .../resources/META-INF/neoforge.mods.toml | 5 ++- .../grieflogger-neoforge.mixins.json | 14 ++++++++ settings.gradle | 2 +- 11 files changed, 105 insertions(+), 22 deletions(-) create mode 100644 fabric/src/main/java/com/daqem/grieflogger/fabric/mixin/MixinBucketItem.java create mode 100644 fabric/src/main/resources/grieflogger-fabric.mixins.json create mode 100644 neoforge/src/main/java/com/daqem/grieflogger/neoforge/mixin/MixinBucketItem.java create mode 100644 neoforge/src/main/resources/grieflogger-neoforge.mixins.json diff --git a/common/src/main/java/com/daqem/grieflogger/event/block/BlockEvents.java b/common/src/main/java/com/daqem/grieflogger/event/block/BlockEvents.java index 5591e40..e654890 100644 --- a/common/src/main/java/com/daqem/grieflogger/event/block/BlockEvents.java +++ b/common/src/main/java/com/daqem/grieflogger/event/block/BlockEvents.java @@ -1,5 +1,6 @@ package com.daqem.grieflogger.event.block; +import dev.architectury.event.EventResult; import dev.architectury.event.events.common.BlockEvent; import dev.architectury.event.events.common.InteractionEvent; @@ -7,7 +8,10 @@ public class BlockEvents { public static void registerEvents() { BlockEvent.BREAK.register(BreakBlockEvent::breakBlock); - BlockEvent.PLACE.register(PlaceBlockEvent::placeBlock); + BlockEvent.PLACE.register(((level, blockPos, blockState, entity) -> { + PlaceBlockEvent.placeBlock(level, blockPos, blockState, entity); + return EventResult.pass(); + })); InteractionEvent.LEFT_CLICK_BLOCK.register((player, hand, pos, direction) -> LeftClickBlockEvent.leftClickBlock(player, hand, pos, direction).asMinecraft()); InteractionEvent.RIGHT_CLICK_BLOCK.register((player, hand, pos, direction) -> RightClickBlockEvent.rightClickBlock(player, hand, pos, direction).asMinecraft()); } diff --git a/common/src/main/java/com/daqem/grieflogger/event/block/PlaceBlockEvent.java b/common/src/main/java/com/daqem/grieflogger/event/block/PlaceBlockEvent.java index 84ac5ba..4014c41 100644 --- a/common/src/main/java/com/daqem/grieflogger/event/block/PlaceBlockEvent.java +++ b/common/src/main/java/com/daqem/grieflogger/event/block/PlaceBlockEvent.java @@ -2,7 +2,6 @@ import com.daqem.grieflogger.model.action.BlockAction; import com.daqem.grieflogger.player.GriefLoggerServerPlayer; -import dev.architectury.event.EventResult; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; @@ -10,10 +9,9 @@ public class PlaceBlockEvent { - public static EventResult placeBlock(Level level, BlockPos pos, BlockState state, Entity placer) { + public static void placeBlock(Level level, BlockPos pos, BlockState state, Entity placer) { if (placer instanceof GriefLoggerServerPlayer serverPlayer) { LogBlockEvent.logBlock(serverPlayer, level, state, pos, BlockAction.PLACE_BLOCK); } - return EventResult.pass(); } } diff --git a/common/src/main/java/com/daqem/grieflogger/mixin/MixinBucketItem.java b/common/src/main/java/com/daqem/grieflogger/mixin/MixinBucketItem.java index 333fb69..ec30004 100644 --- a/common/src/main/java/com/daqem/grieflogger/mixin/MixinBucketItem.java +++ b/common/src/main/java/com/daqem/grieflogger/mixin/MixinBucketItem.java @@ -22,20 +22,6 @@ @Mixin(BucketItem.class) public class MixinBucketItem { - @Inject( - method = "emptyContents", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/world/level/Level;setBlock(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;I)Z", - shift = At.Shift.AFTER - ) - ) - private void onLiquidPlaced(LivingEntity livingEntity, Level level, BlockPos blockPos, BlockHitResult blockHitResult, CallbackInfoReturnable cir) { - if (livingEntity instanceof ServerPlayer serverPlayer) { - PlaceBlockEvent.placeBlock(level, blockPos, level.getBlockState(blockPos), serverPlayer); - } - } - @Inject( method = "use", at = @At( diff --git a/fabric/src/main/java/com/daqem/grieflogger/fabric/mixin/MixinBucketItem.java b/fabric/src/main/java/com/daqem/grieflogger/fabric/mixin/MixinBucketItem.java new file mode 100644 index 0000000..a2f11f5 --- /dev/null +++ b/fabric/src/main/java/com/daqem/grieflogger/fabric/mixin/MixinBucketItem.java @@ -0,0 +1,31 @@ +package com.daqem.grieflogger.fabric.mixin; + +import com.daqem.grieflogger.event.block.PlaceBlockEvent; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.BlockHitResult; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BucketItem.class) +public class MixinBucketItem { + + @Inject( + method = "emptyContents", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/world/level/Level;setBlock(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;I)Z", + shift = At.Shift.AFTER + ) + ) + private void onLiquidPlaced(LivingEntity livingEntity, Level level, BlockPos blockPos, BlockHitResult blockHitResult, CallbackInfoReturnable cir) { + if (livingEntity instanceof ServerPlayer serverPlayer) { + PlaceBlockEvent.placeBlock(level, blockPos, level.getBlockState(blockPos), serverPlayer); + } + } +} \ No newline at end of file diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 9f6e3fa..62716b6 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -20,7 +20,8 @@ ] }, "mixins": [ - "grieflogger-common.mixins.json" + "grieflogger-common.mixins.json", + "grieflogger-fabric.mixins.json" ], "depends": { "fabric": "*", diff --git a/fabric/src/main/resources/grieflogger-fabric.mixins.json b/fabric/src/main/resources/grieflogger-fabric.mixins.json new file mode 100644 index 0000000..112d0a9 --- /dev/null +++ b/fabric/src/main/resources/grieflogger-fabric.mixins.json @@ -0,0 +1,14 @@ +{ + "required": true, + "package": "com.daqem.grieflogger.fabric.mixin", + "compatibilityLevel": "JAVA_21", + "minVersion": "0.8", + "client": [ + ], + "mixins": [ + "MixinBucketItem" + ], + "injectors": { + "defaultRequire": 1 + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index bc8ccd2..63b8182 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ maven_group=com.daqem archives_base_name=grieflogger # Project -mod_version=1.2.7-1.21.6 +mod_version=1.2.8-1.21.6 mod_id=grieflogger mod_name=GriefLogger mod_description=A mod that logs all player interactions with blocks and entities and stores them in a database. diff --git a/neoforge/src/main/java/com/daqem/grieflogger/neoforge/mixin/MixinBucketItem.java b/neoforge/src/main/java/com/daqem/grieflogger/neoforge/mixin/MixinBucketItem.java new file mode 100644 index 0000000..209ec0e --- /dev/null +++ b/neoforge/src/main/java/com/daqem/grieflogger/neoforge/mixin/MixinBucketItem.java @@ -0,0 +1,32 @@ +package com.daqem.grieflogger.neoforge.mixin; + +import com.daqem.grieflogger.event.block.PlaceBlockEvent; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.BlockHitResult; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BucketItem.class) +public class MixinBucketItem { + + @Inject( + method = "emptyContents(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/phys/BlockHitResult;Lnet/minecraft/world/item/ItemStack;)Z", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/world/level/Level;setBlock(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;I)Z", + shift = At.Shift.AFTER + ) + ) + private void onLiquidPlaced(LivingEntity livingEntity, Level level, BlockPos blockPos, BlockHitResult blockHitResult, ItemStack itemStack, CallbackInfoReturnable cir) { + if (livingEntity instanceof ServerPlayer serverPlayer) { + PlaceBlockEvent.placeBlock(level, blockPos, level.getBlockState(blockPos), serverPlayer); + } + } +} \ No newline at end of file diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml index 1224e00..a159012 100644 --- a/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -41,4 +41,7 @@ ordering = "AFTER" side = "SERVER" [[mixins]] -config = "grieflogger-common.mixins.json" \ No newline at end of file +config = "grieflogger-common.mixins.json" + +[[mixins]] +config = "grieflogger-neoforge.mixins.json" \ No newline at end of file diff --git a/neoforge/src/main/resources/grieflogger-neoforge.mixins.json b/neoforge/src/main/resources/grieflogger-neoforge.mixins.json new file mode 100644 index 0000000..26e3488 --- /dev/null +++ b/neoforge/src/main/resources/grieflogger-neoforge.mixins.json @@ -0,0 +1,14 @@ +{ + "required": true, + "package": "com.daqem.grieflogger.neoforge.mixin", + "compatibilityLevel": "JAVA_21", + "minVersion": "0.8", + "client": [ + ], + "mixins": [ + "MixinBucketItem" + ], + "injectors": { + "defaultRequire": 1 + } +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index b0a7399..7a594f9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -11,4 +11,4 @@ include 'common' include 'fabric' include 'neoforge' -rootProject.name = "GriefLogger 1.21.5" +rootProject.name = "GriefLogger 1.21.6"