From 402f1e55ebf071dfbfd76efa1d79a1d0faca728a Mon Sep 17 00:00:00 2001 From: Alberto Gusmeroli <96133902+guss-alberto@users.noreply.github.com> Date: Fri, 26 Jun 2026 20:57:31 +0200 Subject: [PATCH] actually fix block action logging --- .../coreprotect/database/logger/BlockBreakLogger.java | 11 +++++++++++ .../coreprotect/database/logger/BlockPlaceLogger.java | 9 +++++++++ .../database/logger/PlayerInteractLogger.java | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/coreprotect/database/logger/BlockBreakLogger.java b/src/main/java/net/coreprotect/database/logger/BlockBreakLogger.java index 94ed4c7c0..ae3e17adc 100644 --- a/src/main/java/net/coreprotect/database/logger/BlockBreakLogger.java +++ b/src/main/java/net/coreprotect/database/logger/BlockBreakLogger.java @@ -20,6 +20,7 @@ import net.coreprotect.utility.BlockTypeUtils; import net.coreprotect.utility.WorldUtils; import net.coreprotect.utility.ErrorReporter; +import net.coreprotect.utility.MaterialUtils; public class BlockBreakLogger { @@ -54,6 +55,16 @@ else if (checkType != null && (checkType.equals(Material.AIR) || checkType.equal CacheHandler.spreadCache.remove(cacheId); } + + if (checkType != null && blockKey.length() > 0) { + Material blockDataType = MaterialUtils.getType(blockKey); + if (blockDataType != null && !blockDataType.equals(type)) { + blockKey = checkType.getKey().toString(); + blockData = null; + } + } + + if (checkType == Material.LECTERN) { blockData = blockData.replaceFirst("has_book=true", "has_book=false"); } diff --git a/src/main/java/net/coreprotect/database/logger/BlockPlaceLogger.java b/src/main/java/net/coreprotect/database/logger/BlockPlaceLogger.java index c85266f34..878550130 100644 --- a/src/main/java/net/coreprotect/database/logger/BlockPlaceLogger.java +++ b/src/main/java/net/coreprotect/database/logger/BlockPlaceLogger.java @@ -53,6 +53,15 @@ else if (forceType != null && (type == null || !type.equals(forceType))) { type = forceType; data = forceData; } + + if (forceType != null && type != null && blockKey.length() > 0) { + Material blockDataType = MaterialUtils.getType(blockKey); + if (blockDataType != null && !blockDataType.equals(type)) { + blockKey = type.getKey().toString(); + blockData = null; + } + } + if (blockKey.length() == 0) { if (type == null) { return; diff --git a/src/main/java/net/coreprotect/database/logger/PlayerInteractLogger.java b/src/main/java/net/coreprotect/database/logger/PlayerInteractLogger.java index a20da95ee..42fa1d5a5 100644 --- a/src/main/java/net/coreprotect/database/logger/PlayerInteractLogger.java +++ b/src/main/java/net/coreprotect/database/logger/PlayerInteractLogger.java @@ -26,7 +26,7 @@ private PlayerInteractLogger() { public static void log(PreparedStatement preparedStmt, int batchCount, String user, BlockState block, Material blockType) { try { - String blockData = block.getBlockData().getAsString(); + String blockData = blockType == null ? block.getBlockData().getAsString() : blockType.toString(); String blockKey = BlockTypeUtils.getBlockDataKey(blockData); if (blockKey.length() == 0 && blockType != null) { blockKey = blockType.getKey().toString();