From 22fa0dbc474cab3116300273ac0dce47c4f041bf Mon Sep 17 00:00:00 2001 From: Intelli Date: Wed, 16 Jul 2025 20:00:29 -0600 Subject: [PATCH 1/6] 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 9c3ef2a29..871a0cab2 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 @@ 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 2e719df3b..d566fa4d0 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 static boolean processChunk(int finalChunkX, int finalChunkZ, long chunkK // 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 @@ else if ((pendingChangeType != Material.AIR) && (pendingChangeType != Material.C } } - 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++; } } From dff6526537ebf3f3609451c3984bbd8c23ebc6f0 Mon Sep 17 00:00:00 2001 From: Intelli Date: Fri, 18 Jul 2025 18:15:02 -0600 Subject: [PATCH 2/6] Added support for targeting minor versions --- pom.xml | 27 +++++++++++++++++++ .../net/coreprotect/config/ConfigHandler.java | 2 +- .../services/VersionCheckService.java | 4 +-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 810eee51a..73f7e3c15 100755 --- a/pom.xml +++ b/pom.xml @@ -56,6 +56,26 @@ + + org.apache.maven.plugins + maven-enforcer-plugin + 3.4.1 + + + skip-deploy + deploy + enforce + + + + true + + + true + + + + org.apache.maven.plugins maven-shade-plugin @@ -102,6 +122,13 @@ + + maven-deploy-plugin + 3.1.1 + + true + + org.apache.maven.plugins maven-surefire-plugin diff --git a/src/main/java/net/coreprotect/config/ConfigHandler.java b/src/main/java/net/coreprotect/config/ConfigHandler.java index 730c64c6e..c7fd37c75 100644 --- a/src/main/java/net/coreprotect/config/ConfigHandler.java +++ b/src/main/java/net/coreprotect/config/ConfigHandler.java @@ -47,7 +47,7 @@ public class ConfigHandler extends Queue { public static final String COMMUNITY_EDITION = "Community Edition"; public static final String JAVA_VERSION = "11.0"; public static final String MINECRAFT_VERSION = "1.16"; - public static final String LATEST_VERSION = "1.21"; + public static final String LATEST_VERSION = "1.21.6"; public static String path = "plugins/CoreProtect/"; public static String sqlite = "database.db"; public static String host = "127.0.0.1"; diff --git a/src/main/java/net/coreprotect/services/VersionCheckService.java b/src/main/java/net/coreprotect/services/VersionCheckService.java index f3cdf24e9..af55f257e 100644 --- a/src/main/java/net/coreprotect/services/VersionCheckService.java +++ b/src/main/java/net/coreprotect/services/VersionCheckService.java @@ -32,8 +32,8 @@ public static boolean performVersionChecks() { return false; } - if (VersionUtils.newVersion(ConfigHandler.LATEST_VERSION, bukkitVersion[0] + "." + bukkitVersion[1]) && VersionUtils.isBranch("master")) { - Chat.console(Phrase.build(Phrase.VERSION_INCOMPATIBLE, "Minecraft", bukkitVersion[0] + "." + bukkitVersion[1])); + if (VersionUtils.newVersion(ConfigHandler.LATEST_VERSION, bukkitVersion[0] + "." + bukkitVersion[1] + (bukkitVersion.length > 2 ? "." + bukkitVersion[2] : "")) && VersionUtils.isBranch("master")) { + Chat.console(Phrase.build(Phrase.VERSION_INCOMPATIBLE, "Minecraft", bukkitVersion[0] + "." + bukkitVersion[1] + (bukkitVersion.length > 2 ? "." + bukkitVersion[2] : ""))); return false; } From 4f41c19284aff7349a2eeb9bf4da6b691a238bfc Mon Sep 17 00:00:00 2001 From: Intelli Date: Fri, 18 Jul 2025 18:42:18 -0600 Subject: [PATCH 3/6] Improve build validation (partial implementation) --- pom.xml | 49 ++++++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/pom.xml b/pom.xml index 73f7e3c15..3248caf10 100755 --- a/pom.xml +++ b/pom.xml @@ -56,26 +56,6 @@ - - org.apache.maven.plugins - maven-enforcer-plugin - 3.4.1 - - - skip-deploy - deploy - enforce - - - - true - - - true - - - - org.apache.maven.plugins maven-shade-plugin @@ -122,13 +102,6 @@ - - maven-deploy-plugin - 3.1.1 - - true - - org.apache.maven.plugins maven-surefire-plugin @@ -142,6 +115,28 @@ + + + maven-install + + + env.BUILD_ID + + + + + + org.apache.maven.plugins + maven-install-plugin + 3.1.1 + + true + + + + + + spigot-repo From 78701dee96f7f8d20993c27b57c65ceb94764113 Mon Sep 17 00:00:00 2001 From: Intelli Date: Fri, 8 Aug 2025 15:34:49 -0600 Subject: [PATCH 4/6] CoreProtect Community Edition v23.0 release --- README.md | 4 +-- pom.xml | 30 ++++++++++++++----- .../net/coreprotect/config/ConfigHandler.java | 2 +- .../services/VersionCheckService.java | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 7e6a30c3a..17b772010 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ For a detailed description of the plugin, please visit [coreprotect.net](https:/ | CoreProtect Discord: | [discord.gg/b4DZ4jy](https://discord.gg/b4DZ4jy) | | CoreProtect Patreon: | [patreon.com/coreprotect](https://www.patreon.com/coreprotect) | | CoreProtect Documentation: | [docs.coreprotect.net](https://docs.coreprotect.net) | -| Downloads for MC 1.14 - 1.20: | [coreprotect.net/latest](https://coreprotect.net/latest/) | +| Downloads for MC 1.14 - 1.21: | [coreprotect.net/latest](https://coreprotect.net/latest/) | | Downloads for MC 1.8 - 1.12: | [coreprotect.net/legacy](https://coreprotect.net/legacy/) | bStats @@ -41,7 +41,7 @@ Maven net.coreprotect coreprotect - 22.4 + 23.0 provided ``` diff --git a/pom.xml b/pom.xml index 3248caf10..a33466c5a 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 net.coreprotect CoreProtect - 22.4 + 23.0 UTF-8 @@ -73,7 +73,7 @@ **/*.java **/*.c - META-INF/maven/** + META-INF/maven/**/pom.properties META-INF/services/** @@ -126,12 +126,26 @@ - org.apache.maven.plugins - maven-install-plugin - 3.1.1 - - true - + maven-antrun-plugin + 3.1.0 + + + install-validation + install + + + + + + + + + + + run + + + diff --git a/src/main/java/net/coreprotect/config/ConfigHandler.java b/src/main/java/net/coreprotect/config/ConfigHandler.java index c7fd37c75..6effac75e 100644 --- a/src/main/java/net/coreprotect/config/ConfigHandler.java +++ b/src/main/java/net/coreprotect/config/ConfigHandler.java @@ -47,7 +47,7 @@ public class ConfigHandler extends Queue { public static final String COMMUNITY_EDITION = "Community Edition"; public static final String JAVA_VERSION = "11.0"; public static final String MINECRAFT_VERSION = "1.16"; - public static final String LATEST_VERSION = "1.21.6"; + public static final String LATEST_VERSION = "1.21.8"; public static String path = "plugins/CoreProtect/"; public static String sqlite = "database.db"; public static String host = "127.0.0.1"; diff --git a/src/main/java/net/coreprotect/services/VersionCheckService.java b/src/main/java/net/coreprotect/services/VersionCheckService.java index af55f257e..bc3c12f78 100644 --- a/src/main/java/net/coreprotect/services/VersionCheckService.java +++ b/src/main/java/net/coreprotect/services/VersionCheckService.java @@ -32,7 +32,7 @@ public static boolean performVersionChecks() { return false; } - if (VersionUtils.newVersion(ConfigHandler.LATEST_VERSION, bukkitVersion[0] + "." + bukkitVersion[1] + (bukkitVersion.length > 2 ? "." + bukkitVersion[2] : "")) && VersionUtils.isBranch("master")) { + if (VersionUtils.newVersion(ConfigHandler.LATEST_VERSION, bukkitVersion[0] + "." + bukkitVersion[1] + (bukkitVersion.length > 2 ? "." + bukkitVersion[2] : "")) && VersionUtils.isCommunityEdition()) { Chat.console(Phrase.build(Phrase.VERSION_INCOMPATIBLE, "Minecraft", bukkitVersion[0] + "." + bukkitVersion[1] + (bukkitVersion.length > 2 ? "." + bukkitVersion[2] : ""))); return false; } From df41d1446edbb27e140874dd5217a9f7d4102e31 Mon Sep 17 00:00:00 2001 From: Intelli Date: Fri, 8 Aug 2025 17:01:44 -0600 Subject: [PATCH 5/6] Fixed CoreProtect Edge update notice displaying for Community Edition builds --- src/main/java/net/coreprotect/command/CommandHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/coreprotect/command/CommandHandler.java b/src/main/java/net/coreprotect/command/CommandHandler.java index a314e9d8f..52a407bff 100755 --- a/src/main/java/net/coreprotect/command/CommandHandler.java +++ b/src/main/java/net/coreprotect/command/CommandHandler.java @@ -150,7 +150,7 @@ public void run() { Chat.sendMessage(user, Color.DARK_AQUA + Phrase.build(Phrase.UPDATE_NOTICE, Color.WHITE, "CoreProtect CE v" + latestVersion)); Chat.sendMessage(user, Color.DARK_AQUA + Phrase.build(Phrase.LINK_DOWNLOAD, Color.WHITE, "www.coreprotect.net/download/")); } - else { + else if (!VersionUtils.isCommunityEdition()) { Chat.sendMessage(user, Color.DARK_AQUA + Phrase.build(Phrase.UPDATE_NOTICE, Color.WHITE, "CoreProtect v" + latestEdgeVersion)); Chat.sendMessage(user, Color.DARK_AQUA + Phrase.build(Phrase.LINK_DOWNLOAD, Color.WHITE, "www.coreprotect.net/latest/")); } From a4ffbb642c1e3af19d2bd815e9f2c76bd77afbbd Mon Sep 17 00:00:00 2001 From: Intelli Date: Fri, 8 Aug 2025 18:45:31 -0600 Subject: [PATCH 6/6] Target API version 1.16 --- src/main/resources/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 1f61249dd..077e44d24 100755 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,7 +2,7 @@ name: CoreProtect main: net.coreprotect.CoreProtect version: ${project.version} branch: ${project.branch} -api-version: 1.13 +api-version: 1.16 folia-supported: true website: http://coreprotect.net author: Intelli