From 44452bab09bc22a6dbcd71f9eb10d01e4e2960ae Mon Sep 17 00:00:00 2001 From: MCSamuel Date: Wed, 1 Apr 2026 12:54:28 -0700 Subject: [PATCH 1/2] deprecated ChunkTag.regenerate on 1.21+ --- .../com/denizenscript/denizen/objects/ChunkTag.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java index d2b8ba213b..10f7e173b2 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java @@ -889,15 +889,21 @@ public void adjust(Mechanism mechanism) { // <--[mechanism] // @object ChunkTag // @name regenerate + // @deprecated This functionality was removed from Spigot and Paper as of 1.21. // @input None // @description + // Deprecated on MC 1.21+. // Causes the chunk to be entirely deleted and reformed from the world's seed. - // At time of writing this method only works as expected on Paper, and will error on Spigot. // @example // - adjust regenerate // --> if (mechanism.matches("regenerate")) { - getBukkitWorld().regenerateChunk(getX(), getZ()); + if (NMSHandler.getVersion().isAtMost(NMSVersion.v1_20)) { + getBukkitWorld().regenerateChunk(getX(), getZ()); + } + else { + mechanism.echoError("The 'ChunkTag.regenerate' mechanism has been deprecated upstream and is no longer supported."); + } } // <--[mechanism] From 1ed7f20cef5303eb8a0d82493cb3ca40c8fdb409 Mon Sep 17 00:00:00 2001 From: MCSamuel Date: Mon, 27 Apr 2026 09:23:33 -0700 Subject: [PATCH 2/2] added official deprecation registration --- .../main/java/com/denizenscript/denizen/objects/ChunkTag.java | 2 +- .../denizen/utilities/BukkitImplDeprecations.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java index 10f7e173b2..bb2413349c 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java @@ -902,7 +902,7 @@ public void adjust(Mechanism mechanism) { getBukkitWorld().regenerateChunk(getX(), getZ()); } else { - mechanism.echoError("The 'ChunkTag.regenerate' mechanism has been deprecated upstream and is no longer supported."); + BukkitImplDeprecations.chunkRegeneration.warn(mechanism.context); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/BukkitImplDeprecations.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/BukkitImplDeprecations.java index 949a31a77f..feb1cee2f0 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/BukkitImplDeprecations.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/BukkitImplDeprecations.java @@ -496,6 +496,9 @@ public class BukkitImplDeprecations { // ==================== PAST deprecations of things that are already gone but still have a warning left behind ==================== + // Removed upstream 2025/02/15 + public static Warning chunkRegeneration = new StrongWarning("chunkRegeneration", "The 'ChunkTag.regenerate' mechanism has been deprecated upstream and is no longer supported."); + // Removed upstream 2023/10/29 without warning. public static Warning npcHologramDirection = new StrongWarning("npcHologramDirection", "NPCTag's 'hologram_direction' is deprecated: it was removed from Citizens. Ask in the Citizens channel on the Discord if you need it.");