diff --git a/common/src/main/java/com/daqem/grieflogger/database/Database.java b/common/src/main/java/com/daqem/grieflogger/database/Database.java index a8552a7..9ed4c93 100644 --- a/common/src/main/java/com/daqem/grieflogger/database/Database.java +++ b/common/src/main/java/com/daqem/grieflogger/database/Database.java @@ -5,6 +5,7 @@ import com.daqem.grieflogger.config.GriefLoggerConfig; import com.daqem.grieflogger.database.queue.IQueue; import com.daqem.grieflogger.database.queue.Queue; +import com.supermartijn642.configlib.ConfigLib; import org.jetbrains.annotations.Nullable; import java.nio.file.Path; @@ -80,7 +81,7 @@ public boolean createSqliteConnection() { GriefLogger.LOGGER.error("Failed to load SQLite driver", e); return false; } - Path path = GriefLoggerExpectPlatform.getConfigDirectory().resolve(GriefLogger.MOD_ID); + Path path = ConfigLib.getConfigFolder().toPath().resolve(GriefLogger.MOD_ID); if (!path.toFile().exists()) { //noinspection ResultOfMethodCallIgnored path.toFile().mkdirs(); 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 e4f6e1d..69e6349 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(LeftClickBlockEvent::leftClickBlock); InteractionEvent.RIGHT_CLICK_BLOCK.register(RightClickBlockEvent::rightClickBlock); } 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..b7ea06b 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 @@ -10,10 +10,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 617cf12..4f7dbda 100644 --- a/common/src/main/java/com/daqem/grieflogger/mixin/MixinBucketItem.java +++ b/common/src/main/java/com/daqem/grieflogger/mixin/MixinBucketItem.java @@ -21,20 +21,6 @@ @Mixin(BucketItem.class) public class MixinBucketItem { - @Inject( - method = "emptyContents(Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/phys/BlockHitResult;)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(Player player, Level level, BlockPos blockPos, BlockHitResult blockHitResult, CallbackInfoReturnable cir) { - if (player 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..e300f4a --- /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.player.Player; +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(Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/phys/BlockHitResult;)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(Player player, Level level, BlockPos blockPos, BlockHitResult blockHitResult, CallbackInfoReturnable cir) { + if (player instanceof ServerPlayer serverPlayer) { + PlaceBlockEvent.placeBlock(level, blockPos, level.getBlockState(blockPos), serverPlayer); + } + } +} diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index de8a359..d93fa35 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -20,7 +20,7 @@ ] }, "mixins": [ - "grieflogger.mixins.json", + "grieflogger-fabric.mixins.json", "grieflogger-common.mixins.json" ], "depends": { diff --git a/fabric/src/main/resources/grieflogger.mixins.json b/fabric/src/main/resources/grieflogger-fabric.mixins.json similarity index 90% rename from fabric/src/main/resources/grieflogger.mixins.json rename to fabric/src/main/resources/grieflogger-fabric.mixins.json index 79b6f4d..112d0a9 100644 --- a/fabric/src/main/resources/grieflogger.mixins.json +++ b/fabric/src/main/resources/grieflogger-fabric.mixins.json @@ -6,6 +6,7 @@ "client": [ ], "mixins": [ + "MixinBucketItem" ], "injectors": { "defaultRequire": 1 diff --git a/gradle.properties b/gradle.properties index d736cae..11cf7e4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ minecraft_version=1.21.1 enabled_platforms=fabric,neoforge archives_base_name=grieflogger -mod_version=1.2.7-1.21.1 +mod_version=1.2.8-1.21.1 maven_group=com.daqem.grieflogger architectury_version=13.0.8 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..b05ed39 --- /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.player.Player; +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/player/Player;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(Player player, Level level, BlockPos blockPos, BlockHitResult blockHitResult, ItemStack container, CallbackInfoReturnable cir) { + if (player instanceof ServerPlayer serverPlayer) { + PlaceBlockEvent.placeBlock(level, blockPos, level.getBlockState(blockPos), serverPlayer); + } + } +} diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml index 14c621c..c115e90 100644 --- a/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -43,3 +43,6 @@ side = "SERVER" [[mixins]] config = "grieflogger-common.mixins.json" + +[[mixins]] +config = "grieflogger-neoforge.mixins.json" diff --git a/neoforge/src/main/resources/grieflogger.mixins.json b/neoforge/src/main/resources/grieflogger-neoforge.mixins.json similarity index 90% rename from neoforge/src/main/resources/grieflogger.mixins.json rename to neoforge/src/main/resources/grieflogger-neoforge.mixins.json index fdec52a..26e3488 100644 --- a/neoforge/src/main/resources/grieflogger.mixins.json +++ b/neoforge/src/main/resources/grieflogger-neoforge.mixins.json @@ -6,6 +6,7 @@ "client": [ ], "mixins": [ + "MixinBucketItem" ], "injectors": { "defaultRequire": 1