From 22fa0dbc474cab3116300273ac0dce47c4f041bf Mon Sep 17 00:00:00 2001 From: Intelli Date: Wed, 16 Jul 2025 20:00:29 -0600 Subject: [PATCH] Fixed inconsistent rollback states --- .../rollback/RollbackBlockHandler.java | 60 +------------------ .../database/rollback/RollbackProcessor.java | 3 +- 2 files changed, 2 insertions(+), 61 deletions(-) diff --git a/src/main/java/net/coreprotect/database/rollback/RollbackBlockHandler.java b/src/main/java/net/coreprotect/database/rollback/RollbackBlockHandler.java index 9c3ef2a..871a0ca 100644 --- a/src/main/java/net/coreprotect/database/rollback/RollbackBlockHandler.java +++ b/src/main/java/net/coreprotect/database/rollback/RollbackBlockHandler.java @@ -54,65 +54,7 @@ import net.coreprotect.utility.entity.HangingUtil; public class RollbackBlockHandler extends Queue { - /** - * Handle block-related rollback operations - * - * @param block - * The block to modify - * @param row - * Block data from the database (used only for specific operations) - * @param rollbackType - * The type of rollback (0=rollback, 1=restore) - * @param clearInventories - * Whether to clear container inventories - * @param chunkChanges - * Map of block changes to apply - * @param countBlock - * Whether to count this block in stats - * @param oldTypeMaterial - * The previous material type - * @param pendingChangeType - * The pending change material type - * @param pendingChangeData - * The pending change block data - * @param finalUserString - * The username for this rollback - * @param rawBlockData - * The raw block data - * @param changeType - * The current block type - * @param changeBlockData - * The current block data - * @param meta - * Block metadata - * @param blockData - * The processed block data - * @param rowUser - * The username associated with this block change - * @param rowType - * The material type for this block change - * @param rowX - * The X coordinate - * @param rowY - * The Y coordinate - * @param rowZ - * The Z coordinate - * @param rowTypeRaw - * The raw type value - * @param rowData - * The data value - * @param rowAction - * The action value - * @param rowWorldId - * The world ID - * @param blockDataString - * The block data as a string - * @return Updated count status - */ - public static boolean processBlockChange(Block block, Object[] row, int rollbackType, boolean clearInventories, Map chunkChanges, boolean countBlock, Material oldTypeMaterial, Material pendingChangeType, BlockData pendingChangeData, String finalUserString, BlockData rawBlockData, Material changeType, BlockData changeBlockData, ArrayList meta, BlockData blockData, String rowUser, Material rowType, int rowX, int rowY, int rowZ, int rowTypeRaw, int rowData, int rowAction, int rowWorldId, String blockDataString) { - - boolean changeBlock = true; - World bukkitWorld = block.getWorld(); + public static boolean processBlockChange(World bukkitWorld, Block block, Object[] row, int rollbackType, boolean clearInventories, Map chunkChanges, boolean countBlock, Material oldTypeMaterial, Material pendingChangeType, BlockData pendingChangeData, String finalUserString, BlockData rawBlockData, Material changeType, boolean changeBlock, BlockData changeBlockData, ArrayList meta, BlockData blockData, String rowUser, Material rowType, int rowX, int rowY, int rowZ, int rowTypeRaw, int rowData, int rowAction, int rowWorldId, String blockDataString) { int unixtimestamp = (int) (System.currentTimeMillis() / 1000L); try { diff --git a/src/main/java/net/coreprotect/database/rollback/RollbackProcessor.java b/src/main/java/net/coreprotect/database/rollback/RollbackProcessor.java index 2e719df..d566fa4 100644 --- a/src/main/java/net/coreprotect/database/rollback/RollbackProcessor.java +++ b/src/main/java/net/coreprotect/database/rollback/RollbackProcessor.java @@ -72,7 +72,6 @@ public class RollbackProcessor { // Process blocks for (Object[] row : data) { - int unixtimestamp = (int) (System.currentTimeMillis() / 1000L); int[] rollbackHashData = ConfigHandler.rollbackHash.get(finalUserString); int itemCount = rollbackHashData[0]; int blockCount = rollbackHashData[1]; @@ -234,7 +233,7 @@ public class RollbackProcessor { } } - if (countBlock && RollbackBlockHandler.processBlockChange(block, row, rollbackType, clearInventories, chunkChanges, countBlock, oldTypeMaterial, pendingChangeType, pendingChangeData, finalUserString, rawBlockData, changeType, changeBlockData, meta != null ? new ArrayList<>(meta) : null, blockData, rowUser, rowType, rowX, rowY, rowZ, rowTypeRaw, rowData, rowAction, rowWorldId, BlockUtils.byteDataToString((byte[]) row[13], rowTypeRaw))) { + if (RollbackBlockHandler.processBlockChange(bukkitWorld, block, row, rollbackType, clearInventories, chunkChanges, countBlock, oldTypeMaterial, pendingChangeType, pendingChangeData, finalUserString, rawBlockData, changeType, changeBlock, changeBlockData, meta != null ? new ArrayList<>(meta) : null, blockData, rowUser, rowType, rowX, rowY, rowZ, rowTypeRaw, rowData, rowAction, rowWorldId, BlockUtils.byteDataToString((byte[]) row[13], rowTypeRaw)) && countBlock) { blockCount++; } }