From 293d7acf2d895a69a2d67a8761f0f4ab08d8ad1b Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Sat, 22 Jul 2023 10:56:35 +0200 Subject: [PATCH 01/20] Release 7.0.0-rc.3 --- .../java/com/plotsquared/core/generator/HybridPlotWorld.java | 4 ++-- build.gradle.kts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java index c636fc6af..ee2c3db77 100644 --- a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java +++ b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java @@ -562,7 +562,7 @@ public class HybridPlotWorld extends ClassicPlotWorld { * Get the y value where the plot schematic should be pasted from. * * @return plot schematic y start value - * @since TODO + * @since 7.0.0 */ public int getPlotYStart() { return SCHEM_Y + plotY; @@ -572,7 +572,7 @@ public class HybridPlotWorld extends ClassicPlotWorld { * Get the y value where the road schematic should be pasted from. * * @return road schematic y start value - * @since TODO + * @since 7.0.0 */ public int getRoadYStart() { return SCHEM_Y + roadY; diff --git a/build.gradle.kts b/build.gradle.kts index 687120fc8..20c488f05 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } group = "com.intellectualsites.plotsquared" -version = "7.0.0-SNAPSHOT" +version = "7.0.0-rc.3" if (!File("$rootDir/.git").exists()) { logger.lifecycle(""" From 21f79d1c1304873d09bf111116c4a8173535568d Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Sat, 22 Jul 2023 11:01:11 +0200 Subject: [PATCH 02/20] Back to snapshot for development --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 20c488f05..687120fc8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } group = "com.intellectualsites.plotsquared" -version = "7.0.0-rc.3" +version = "7.0.0-SNAPSHOT" if (!File("$rootDir/.git").exists()) { logger.lifecycle(""" From cbc8bc8879dea8632b85d98b9cada3f9252b8ae0 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Sat, 22 Jul 2023 11:05:30 +0200 Subject: [PATCH 03/20] [ci skip] Publish javadocs for releases only --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a9dd532d..44c77eeb4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,7 +42,7 @@ jobs: ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} - name: Publish core javadoc - # if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} + if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} uses: cpina/github-action-push-to-another-repository@main env: SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} @@ -54,7 +54,7 @@ jobs: target-branch: main target-directory: v7/core - name: Publish bukkit javadoc - # if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} + if: ${{ runner.os == 'Linux' && env.STATUS == 'release' && github.event_name == 'push' && github.ref == 'refs/heads/main'}} uses: cpina/github-action-push-to-another-repository@main env: SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} From 1a7ded864e9b851685e57eca6abafead2d6c7c28 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Jul 2023 09:11:22 +0000 Subject: [PATCH 04/20] Update dependency com.diffplug.spotless to v6.20.0 (#4118) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e6056ca8e..95dc281df 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ squirrelid = "0.3.2" # Gradle plugins shadow = "8.1.1" grgit = "4.1.1" -spotless = "6.19.0" +spotless = "6.20.0" nexus = "1.3.0" [libraries] From a68918f8308e0f1364eb253870361ade5aab185a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Jul 2023 11:16:24 +0200 Subject: [PATCH 05/20] Update dependency gradle to v8.2.1 (#4117) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 62f495dfe..9f4197d5f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From f6cbb3792f00abdb9554c2f15c1b9a455d8fee78 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Sat, 22 Jul 2023 11:40:01 +0200 Subject: [PATCH 06/20] [ci skip] Update documentation location --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- .../java/com/plotsquared/core/command/PluginCmd.java | 2 +- .../com/plotsquared/core/configuration/Settings.java | 12 ++++++------ README.md | 8 ++++---- javadocfooter.html | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 06fa996c7..4733d2ae0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -7,7 +7,7 @@ body: attributes: value: | Thanks for taking the time to fill out this bug report for PlotSquared! Fill out the following form to your best ability to help us fix the problem. - Only use this if you're absolutely sure that you found a bug and can reproduce it. For anything else, use: [our Discord server](https://discord.gg/intellectualsites) or [the wiki](https://intellectualsites.github.io/plotsquared-documentation/). + Only use this if you're absolutely sure that you found a bug and can reproduce it. For anything else, use: [our Discord server](https://discord.gg/intellectualsites) or [the wiki](https://intellectualsites.gitbook.io/plotsquared/). Do NOT use the public issue tracker to report security vulnerabilities! They are disclosed using [this](https://github.com/IntellectualSites/PlotSquared/security/policy) GitHub form! - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 98e4777e6..033ae1277 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -4,5 +4,5 @@ contact_links: url: https://discord.gg/intellectualsites about: Our support Discord, please ask questions and seek support here. - name: PlotSquared Wiki - url: https://intellectualsites.github.io/plotsquared-documentation/ + url: https://intellectualsites.gitbook.io/plotsquared/ about: Take a look at the wiki page for instructions how to setup PlotSquared and use its commands. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 648dc10a4..88cbea5cd 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -7,7 +7,7 @@ body: attributes: value: | Thanks for taking the time to fill out this feature request for PlotSquared! Fill out the following form to your best ability to help us understand your feature request and greately improve the change of it getting added. - For anything else than a feature request, use: [our Discord server](https://discord.gg/intellectualsites) or [the wiki](https://intellectualsites.github.io/plotsquared-documentation/). + For anything else than a feature request, use: [our Discord server](https://discord.gg/intellectualsites) or [the wiki](https://intellectualsites.gitbook.io/plotsquared/). - type: textarea attributes: diff --git a/Core/src/main/java/com/plotsquared/core/command/PluginCmd.java b/Core/src/main/java/com/plotsquared/core/command/PluginCmd.java index be78475b5..b25d56493 100644 --- a/Core/src/main/java/com/plotsquared/core/command/PluginCmd.java +++ b/Core/src/main/java/com/plotsquared/core/command/PluginCmd.java @@ -46,7 +46,7 @@ public class PluginCmd extends SubCommand { player.sendMessage(StaticCaption.of( ">> Authors: Citymonstret & Empire92 & MattBDev & dordsor21 & NotMyFault & SirYwell")); player.sendMessage(StaticCaption.of( - ">> Wiki: https://intellectualsites.github.io/plotsquared-documentation/")); + ">> Wiki: https://intellectualsites.gitbook.io/plotsquared/")); player.sendMessage(StaticCaption.of( ">> Discord: https://discord.gg/intellectualsites")); player.sendMessage( diff --git a/Core/src/main/java/com/plotsquared/core/configuration/Settings.java b/Core/src/main/java/com/plotsquared/core/configuration/Settings.java index 025c779ee..25012bbbd 100644 --- a/Core/src/main/java/com/plotsquared/core/configuration/Settings.java +++ b/Core/src/main/java/com/plotsquared/core/configuration/Settings.java @@ -194,7 +194,7 @@ public class Settings extends Config { public List WORLDS = new ArrayList<>(Collections.singletonList("*")); - @Comment("See: https://intellectualsites.github.io/plotsquared-documentation/optimization/plot-analysis for a description of each value.") + @Comment("See: https://intellectualsites.gitbook.io/plotsquared/optimization/plot-analysis for a description of each value.") public static final class CALIBRATION { public int VARIETY = 0; @@ -214,7 +214,7 @@ public class Settings extends Config { @Comment({"Chunk processor related settings", - "See https://intellectualsites.github.io/plotsquared-documentation/optimization/chunk-processor for more information."}) + "See https://intellectualsites.gitbook.io/plotsquared/optimization/chunk-processor for more information."}) public static class Chunk_Processor { @Comment("Auto trim will not save chunks which aren't claimed") @@ -280,7 +280,7 @@ public class Settings extends Config { @Comment("Always show explosion Particles, even if explosion flag is set to false") public static boolean ALWAYS_SHOW_EXPLOSIONS = false; @Comment({"Blocks that may not be used in plot components", - "Checkout the wiki article regarding plot components before modifying: https://intellectualsites.github.io/plotsquared-documentation/customization/plot-components"}) + "Checkout the wiki article regarding plot components before modifying: https://intellectualsites.gitbook.io/plotsquared/customization/plot-components"}) public static List INVALID_BLOCKS = Arrays.asList( // Acacia Stuff @@ -402,7 +402,7 @@ public class Settings extends Config { @Comment({"Schematic Settings", - "See https://intellectualsites.github.io/plotsquared-documentation/schematics/schematic-on-claim for more information."}) + "See https://intellectualsites.gitbook.io/plotsquared/schematics/schematic-on-claim for more information."}) public static final class Schematics { @Comment( @@ -531,7 +531,7 @@ public class Settings extends Config { @Comment({"Backup related settings", - "See https://intellectualsites.github.io/plotsquared-documentation/plot-backups for more information."}) + "See https://intellectualsites.gitbook.io/plotsquared/plot-backups for more information."}) public static final class Backup { @Comment("Automatically backup plots when destructive commands are performed, e.g. /plot clear") @@ -783,7 +783,7 @@ public class Settings extends Config { public static boolean PERSISTENT_ROAD_REGEN = true; @Comment({"Enable the `/plot component` preset GUI", - "Read more about components here: https://intellectualsites.github.io/plotsquared-documentation/customization/plot-components"}) + "Read more about components here: https://intellectualsites.gitbook.io/plotsquared/customization/plot-components"}) public static boolean COMPONENT_PRESETS = true; @Comment("Enable per user locale") public static boolean PER_USER_LOCALE = false; diff --git a/README.md b/README.md index 690cb86d9..c5e817892 100644 --- a/README.md +++ b/README.md @@ -27,16 +27,16 @@ is to provide a lag-free and smooth experience. * [Download](https://www.spigotmc.org/resources/77506/) * [Discord](https://discord.gg/intellectualsites) -* [Wiki](https://intellectualsites.github.io/plotsquared-documentation/) +* [Wiki](https://intellectualsites.gitbook.io/plotsquared/) * [Issues](https://github.com/IntellectualSites/PlotSquared/issues) * [Translations](https://intellectualsites.crowdin.com/plotsquared/) * [Contributing](https://github.com/IntellectualSites/.github/blob/main/CONTRIBUTING.md) ### Developer Resources -* [API Documentation](https://intellectualsites.github.io/plotsquared-documentation/api/api-documentation) -* [Event API](https://intellectualsites.github.io/plotsquared-documentation/api/event-api) -* [Flag API](https://intellectualsites.github.io/plotsquared-documentation/api/flag-api) +* [API Documentation](https://intellectualsites.gitbook.io/plotsquared/api/api-documentation) +* [Event API](https://intellectualsites.gitbook.io/plotsquared/api/event-api) +* [Flag API](https://intellectualsites.gitbook.io/plotsquared/api/flag-api) # Official Addons diff --git a/javadocfooter.html b/javadocfooter.html index 2588b6b7a..27be23b00 100644 --- a/javadocfooter.html +++ b/javadocfooter.html @@ -1,4 +1,4 @@ Javadocs generated for PlotSquared | - Documentation | + Documentation | Visit us on our Discord server :) From 59be582c28c1917b11220408a1572daed0e4be41 Mon Sep 17 00:00:00 2001 From: Jordan Date: Mon, 24 Jul 2023 16:56:46 +0100 Subject: [PATCH 07/20] fix: correct reflected fields for chunk needs saving (#4111) --- .../bukkit/listener/ChunkListener.java | 42 ++++++++++------- .../bukkit/listener/SingleWorldListener.java | 47 +++++++++---------- 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java index 9af09527c..763263e99 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java @@ -26,6 +26,7 @@ import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.PlotArea; import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.plot.world.SinglePlotArea; +import com.plotsquared.core.util.ReflectionUtils; import com.plotsquared.core.util.ReflectionUtils.RefClass; import com.plotsquared.core.util.ReflectionUtils.RefField; import com.plotsquared.core.util.ReflectionUtils.RefMethod; @@ -64,9 +65,11 @@ public class ChunkListener implements Listener { private final PlotAreaManager plotAreaManager; private final int version; + private RefMethod methodSetUnsaved; private RefMethod methodGetHandleChunk; private RefMethod methodGetHandleWorld; - private RefField mustSave; + private RefField mustNotSave; + private Object objChunkStatusFull = null; /* private RefMethod methodGetFullChunk; private RefMethod methodGetBukkitChunk; @@ -79,7 +82,6 @@ public class ChunkListener implements Listener { */ private Chunk lastChunk; private boolean ignoreUnload = false; - private boolean isTrueForNotSave = true; @Inject public ChunkListener(final @NonNull PlotAreaManager plotAreaManager) { @@ -90,22 +92,27 @@ public class ChunkListener implements Listener { } try { RefClass classCraftWorld = getRefClass("{cb}.CraftWorld"); - this.methodGetHandleWorld = classCraftWorld.getMethod("getHandle"); RefClass classCraftChunk = getRefClass("{cb}.CraftChunk"); - this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle"); + ReflectionUtils.RefClass classChunkAccess = getRefClass("net.minecraft.world.level.chunk.IChunkAccess"); + this.methodSetUnsaved = classChunkAccess.getMethod("a", boolean.class); + try { + this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle"); + } catch (NoSuchMethodException ignored) { + try { + RefClass classChunkStatus = getRefClass("net.minecraft.world.level.chunk.ChunkStatus"); + this.objChunkStatusFull = classChunkStatus.getRealClass().getField("n").get(null); + this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle", classChunkStatus.getRealClass()); + } catch (NoSuchMethodException ex) { + throw new RuntimeException(ex); + } + } try { if (version < 17) { RefClass classChunk = getRefClass("{nms}.Chunk"); - if (version == 13) { - this.mustSave = classChunk.getField("mustSave"); - this.isTrueForNotSave = false; - } else { - this.mustSave = classChunk.getField("mustNotSave"); - } + this.mustNotSave = classChunk.getField("mustNotSave"); } else { RefClass classChunk = getRefClass("net.minecraft.world.level.chunk.Chunk"); - this.mustSave = classChunk.getField("mustNotSave"); - + this.mustNotSave = classChunk.getField("mustNotSave"); } } catch (NoSuchFieldException e) { e.printStackTrace(); @@ -167,10 +174,13 @@ public class ChunkListener implements Listener { if (safe && shouldSave(world, chunk.getX(), chunk.getZ())) { return false; } - Object c = this.methodGetHandleChunk.of(chunk).call(); - RefField.RefExecutor field = this.mustSave.of(c); - if ((Boolean) field.get() != isTrueForNotSave) { - field.set(isTrueForNotSave); + Object c = objChunkStatusFull != null + ? this.methodGetHandleChunk.of(chunk).call(objChunkStatusFull) + : this.methodGetHandleChunk.of(chunk).call(); + RefField.RefExecutor field = this.mustNotSave.of(c); + methodSetUnsaved.of(c).call(false); + if (!((Boolean) field.get())) { + field.set(true); if (chunk.isLoaded()) { ignoreUnload = true; chunk.unload(false); diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/SingleWorldListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/SingleWorldListener.java index deb14ed7b..34184659e 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/SingleWorldListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/SingleWorldListener.java @@ -31,45 +31,39 @@ import org.bukkit.event.Listener; import org.bukkit.event.world.ChunkEvent; import org.bukkit.event.world.ChunkLoadEvent; -import java.lang.reflect.Field; import java.lang.reflect.Method; import static com.plotsquared.core.util.ReflectionUtils.getRefClass; public class SingleWorldListener implements Listener { - private final Method methodGetHandleChunk; - private Field shouldSave = null; + private final Method methodSetUnsaved; + private Method methodGetHandleChunk; + private Object objChunkStatusFull = null; public SingleWorldListener() throws Exception { ReflectionUtils.RefClass classCraftChunk = getRefClass("{cb}.CraftChunk"); - this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle").getRealMethod(); + ReflectionUtils.RefClass classChunkAccess = getRefClass("net.minecraft.world.level.chunk.IChunkAccess"); + this.methodSetUnsaved = classChunkAccess.getMethod("a", boolean.class).getRealMethod(); try { - if (PlotSquared.platform().serverVersion()[1] < 17) { - ReflectionUtils.RefClass classChunk = getRefClass("{nms}.Chunk"); - if (PlotSquared.platform().serverVersion()[1] == 13) { - this.shouldSave = classChunk.getField("mustSave").getRealField(); - } else { - this.shouldSave = classChunk.getField("s").getRealField(); - } - } else if (PlotSquared.platform().serverVersion()[1] == 17) { - ReflectionUtils.RefClass classChunk = getRefClass("net.minecraft.world.level.chunk.Chunk"); - this.shouldSave = classChunk.getField("r").getRealField(); - } else if (PlotSquared.platform().serverVersion()[1] == 18) { - ReflectionUtils.RefClass classChunk = getRefClass("net.minecraft.world.level.chunk.IChunkAccess"); - this.shouldSave = classChunk.getField("b").getRealField(); + this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle").getRealMethod(); + } catch (NoSuchMethodException ignored) { + try { + ReflectionUtils.RefClass classChunkStatus = getRefClass("net.minecraft.world.level.chunk.ChunkStatus"); + this.objChunkStatusFull = classChunkStatus.getRealClass().getField("n").get(null); + this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle", classChunkStatus.getRealClass()).getRealMethod(); + } catch (NoSuchMethodException ex) { + throw new RuntimeException(ex); } - } catch (NoSuchFieldException e) { - e.printStackTrace(); } } public void markChunkAsClean(Chunk chunk) { try { - Object nmsChunk = methodGetHandleChunk.invoke(chunk); - if (shouldSave != null) { - this.shouldSave.set(nmsChunk, false); - } + Object nmsChunk = objChunkStatusFull != null + ? this.methodGetHandleChunk.invoke(chunk, objChunkStatusFull) + : this.methodGetHandleChunk.invoke(chunk); + methodSetUnsaved.invoke(nmsChunk, false); } catch (Throwable e) { e.printStackTrace(); } @@ -85,7 +79,12 @@ public class SingleWorldListener implements Listener { if (!SinglePlotArea.isSinglePlotWorld(name)) { return; } - + int x = event.getChunk().getX(); + int z = event.getChunk().getZ(); + if (x < 16 && x > -16 && z < 16 && z > -16) { + // Allow spawn to generate + return; + } markChunkAsClean(event.getChunk()); } From e0cb2949df02c75806824eca22e12ebeef12228b Mon Sep 17 00:00:00 2001 From: Jordan Date: Mon, 24 Jul 2023 16:56:53 +0100 Subject: [PATCH 08/20] fix: switch to consistent heights for schematic generation (#4113) --- .../core/generator/HybridPlotWorld.java | 15 +++++---------- .../plotsquared/core/generator/HybridUtils.java | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java index ee2c3db77..b94f8fdb9 100644 --- a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java +++ b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java @@ -275,7 +275,7 @@ public class HybridPlotWorld extends ClassicPlotWorld { SCHEM_Y = getMinGenHeight(); plotY = 0; } else if (!Settings.Schematics.PASTE_ON_TOP) { - SCHEM_Y = getMinBuildHeight(); + SCHEM_Y = getMinGenHeight(); plotY = 0; } maxSchematicHeight = plotY + plotSchemHeight; @@ -296,20 +296,15 @@ public class HybridPlotWorld extends ClassicPlotWorld { // Road is the lowest schematic. Normalize plotY to it. if (Settings.Schematics.PASTE_ON_TOP) { plotY = PLOT_HEIGHT - getMinGenHeight(); - } else { - plotY = getMinBuildHeight() - getMinGenHeight(); } } } else if (!Settings.Schematics.PASTE_ROAD_ON_TOP) { - if (SCHEM_Y == getMinGenHeight()) { // Only possible if plot schematic is enabled - // Plot is still the lowest schematic, normalize roadY to it - roadY = getMinBuildHeight() - getMinGenHeight(); - } else if (schematic3 != null) { - SCHEM_Y = getMinBuildHeight(); - roadY = 0;// Road is the lowest schematic + roadY = 0; + SCHEM_Y = getMinGenHeight(); + if (schematic3 != null) { if (Settings.Schematics.PASTE_ON_TOP) { // Road is the lowest schematic. Normalize plotY to it. - plotY = PLOT_HEIGHT - getMinBuildHeight(); + plotY = PLOT_HEIGHT - SCHEM_Y; } maxSchematicHeight = Math.max(maxSchematicHeight, plotY + plotSchemHeight); } diff --git a/Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java b/Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java index f151c8ebd..46c506546 100644 --- a/Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java +++ b/Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java @@ -529,7 +529,7 @@ public class HybridUtils { Math.min(plotworld.PLOT_HEIGHT, Math.min(plotworld.WALL_HEIGHT, plotworld.ROAD_HEIGHT)) : plotworld.ROAD_HEIGHT; int sx = bot.getX() - plotworld.ROAD_WIDTH + 1; int sz = bot.getZ() + 1; - int sy = Settings.Schematics.PASTE_ROAD_ON_TOP ? schemY : plot.getArea().getMinBuildHeight(); + int sy = Settings.Schematics.PASTE_ROAD_ON_TOP ? schemY : plot.getArea().getMinGenHeight(); int ex = bot.getX(); int ez = top.getZ(); int ey = get_ey(plotworld, queue, sx, ex, sz, ez, sy); From c27b838dad76349661fda52bf3804d3a679561c3 Mon Sep 17 00:00:00 2001 From: Jordan Date: Mon, 24 Jul 2023 19:00:56 +0100 Subject: [PATCH 09/20] fix: add missing method in UncheckedWorldLocation (#4112) Co-authored-by: Alexander Brandes --- .../core/location/UncheckedWorldLocation.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Core/src/main/java/com/plotsquared/core/location/UncheckedWorldLocation.java b/Core/src/main/java/com/plotsquared/core/location/UncheckedWorldLocation.java index 38183269b..173820ddb 100644 --- a/Core/src/main/java/com/plotsquared/core/location/UncheckedWorldLocation.java +++ b/Core/src/main/java/com/plotsquared/core/location/UncheckedWorldLocation.java @@ -60,6 +60,19 @@ public final class UncheckedWorldLocation extends Location { return new UncheckedWorldLocation(world, x, y, z); } + /** + * Construct a new location with yaw and pitch equal to 0 + * + * @param world World + * @param loc Coordinates + * @return New location + * @since TODO + */ + @DoNotUse + public static @NonNull UncheckedWorldLocation at(final @NonNull String world, BlockVector3 loc) { + return new UncheckedWorldLocation(world, loc.getX(), loc.getY(), loc.getZ()); + } + @Override @DoNotUse public @NonNull String getWorldName() { From 638f0bd078d04990663fedfc029f3d4b2d02f64d Mon Sep 17 00:00:00 2001 From: Jordan Date: Sun, 30 Jul 2023 11:17:35 +0100 Subject: [PATCH 10/20] fix: do not use overall max schem height for checking road schem height (#4124) --- .../plotsquared/core/generator/HybridPlotWorld.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java index b94f8fdb9..93b877f50 100644 --- a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java +++ b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java @@ -265,7 +265,6 @@ public class HybridPlotWorld extends ClassicPlotWorld { int worldGenHeight = getMaxGenHeight() - getMinGenHeight() + 1; - int maxSchematicHeight = 0; int plotSchemHeight = 0; // SCHEM_Y should be normalised to the plot "start" height @@ -278,18 +277,16 @@ public class HybridPlotWorld extends ClassicPlotWorld { SCHEM_Y = getMinGenHeight(); plotY = 0; } - maxSchematicHeight = plotY + plotSchemHeight; } - int roadSchemHeight; + int roadSchemHeight = 0; if (schematic1 != null) { roadSchemHeight = Math.max( schematic1.getClipboard().getDimensions().getY(), schematic2.getClipboard().getDimensions().getY() ); - maxSchematicHeight = Math.max(roadSchemHeight, maxSchematicHeight); - if (maxSchematicHeight == worldGenHeight) { + if (roadSchemHeight == worldGenHeight) { SCHEM_Y = getMinGenHeight(); roadY = 0; // Road is the lowest schematic if (schematic3 != null && schematic3.getClipboard().getDimensions().getY() != worldGenHeight) { @@ -306,13 +303,12 @@ public class HybridPlotWorld extends ClassicPlotWorld { // Road is the lowest schematic. Normalize plotY to it. plotY = PLOT_HEIGHT - SCHEM_Y; } - maxSchematicHeight = Math.max(maxSchematicHeight, plotY + plotSchemHeight); } } else { roadY = minRoadWall - SCHEM_Y; - maxSchematicHeight = Math.max(maxSchematicHeight, roadY + roadSchemHeight); } } + int maxSchematicHeight = Math.max(plotY + plotSchemHeight, roadY + roadSchemHeight); if (schematic3 != null) { this.PLOT_SCHEMATIC = true; From 9b0b39ac2e861309d8ec027b41a30815cb786cd4 Mon Sep 17 00:00:00 2001 From: Jordan Date: Mon, 31 Jul 2023 13:04:08 +0100 Subject: [PATCH 11/20] feat: add a permission requirement to /plot merge all (#4127) --- Core/src/main/java/com/plotsquared/core/command/Merge.java | 2 +- .../main/java/com/plotsquared/core/permissions/Permission.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Core/src/main/java/com/plotsquared/core/command/Merge.java b/Core/src/main/java/com/plotsquared/core/command/Merge.java index 24e842645..97a3965c7 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Merge.java +++ b/Core/src/main/java/com/plotsquared/core/command/Merge.java @@ -109,7 +109,7 @@ public class Merge extends SubCommand { } } if (direction == null && (args[0].equalsIgnoreCase("all") || args[0] - .equalsIgnoreCase("auto"))) { + .equalsIgnoreCase("auto")) && player.hasPermission(Permission.PERMISSION_MERGE_ALL)) { direction = Direction.ALL; } } diff --git a/Core/src/main/java/com/plotsquared/core/permissions/Permission.java b/Core/src/main/java/com/plotsquared/core/permissions/Permission.java index 806dcfc9b..43205ca3d 100644 --- a/Core/src/main/java/com/plotsquared/core/permissions/Permission.java +++ b/Core/src/main/java/com/plotsquared/core/permissions/Permission.java @@ -45,6 +45,7 @@ public enum Permission implements ComponentLike { PERMISSION_ADMIN_ENTRY_FORCEFIELD("plots.admin.entry.forcefield"), PERMISSION_ADMIN_COMMANDS_CHATSPY("plots.admin.command.chatspy"), PERMISSION_MERGE("plots.merge"), + PERMISSION_MERGE_ALL("plots.merge.all"), PERMISSION_MERGE_OTHER("plots.merge.other"), PERMISSION_MERGE_KEEP_ROAD("plots.merge.keeproad"), PERMISSION_ADMIN_CAPS_OTHER("plots.admin.caps.other"), From a6d436e841ca15f3fae0e3c43cb16a7f15ae3a84 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 10:45:38 +0200 Subject: [PATCH 12/20] Update dependency org.junit.jupiter:junit-jupiter to v5.10.0 (#4131) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 687120fc8..a6f199839 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -82,7 +82,7 @@ subprojects { dependencies { // Tests - testImplementation("org.junit.jupiter:junit-jupiter:5.9.3") + testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") } plugins.withId("java") { From 1ddc19ff6931e5b0dcab8f5f34321fbed1a6d80d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 10:45:47 +0200 Subject: [PATCH 13/20] Update dependency com.intellectualsites.bom:bom-newest to v1.34 (#4130) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index a6f199839..a29d33b61 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -77,7 +77,7 @@ subprojects { } dependencies { - implementation(platform("com.intellectualsites.bom:bom-newest:1.31")) + implementation(platform("com.intellectualsites.bom:bom-newest:1.34")) } dependencies { From 49e13384cf4b63774a32fba16ce3047f0379bde4 Mon Sep 17 00:00:00 2001 From: Jordan Date: Wed, 2 Aug 2023 12:47:53 +0100 Subject: [PATCH 14/20] fix: remove "default" spawn reason (#4132) --- .../com/plotsquared/bukkit/listener/EntityEventListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/EntityEventListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/EntityEventListener.java index 671154a2b..6c786c79b 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/EntityEventListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/EntityEventListener.java @@ -152,7 +152,7 @@ public class EntityEventListener implements Listener { } } case "REINFORCEMENTS", "NATURAL", "MOUNT", "PATROL", "RAID", "SHEARED", "SILVERFISH_BLOCK", "ENDER_PEARL", - "TRAP", "VILLAGE_DEFENSE", "VILLAGE_INVASION", "BEEHIVE", "CHUNK_GEN", "NETHER_PORTAL", "DEFAULT", + "TRAP", "VILLAGE_DEFENSE", "VILLAGE_INVASION", "BEEHIVE", "CHUNK_GEN", "NETHER_PORTAL", "DUPLICATION", "FROZEN", "SPELL" -> { if (!area.isMobSpawning()) { event.setCancelled(true); From 0d63c2bdb61c5b6053a1d836df3a335dc81f4bd5 Mon Sep 17 00:00:00 2001 From: Jordan Date: Wed, 2 Aug 2023 12:48:07 +0100 Subject: [PATCH 15/20] feat: allow bypass of econ costs (#4126) --- .../main/java/com/plotsquared/core/command/Auto.java | 2 +- .../java/com/plotsquared/core/command/Claim.java | 2 +- .../com/plotsquared/core/command/MainCommand.java | 4 ++-- .../java/com/plotsquared/core/command/Merge.java | 12 ++++++------ .../core/components/ComponentPresetManager.java | 2 +- .../com/plotsquared/core/permissions/Permission.java | 3 ++- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Core/src/main/java/com/plotsquared/core/command/Auto.java b/Core/src/main/java/com/plotsquared/core/command/Auto.java index a31d17c46..826b981e6 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Auto.java +++ b/Core/src/main/java/com/plotsquared/core/command/Auto.java @@ -294,7 +294,7 @@ public class Auto extends SubCommand { return true; } } - if (this.econHandler != null && plotarea.useEconomy()) { + if (this.econHandler != null && plotarea.useEconomy() && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON)) { PlotExpression costExp = plotarea.getPrices().get("claim"); PlotExpression mergeCostExp = plotarea.getPrices().get("merge"); int size = sizeX * sizeZ; diff --git a/Core/src/main/java/com/plotsquared/core/command/Claim.java b/Core/src/main/java/com/plotsquared/core/command/Claim.java index e9848685c..d1f81d4fe 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Claim.java +++ b/Core/src/main/java/com/plotsquared/core/command/Claim.java @@ -141,7 +141,7 @@ public class Claim extends SubCommand { } } } - if (this.econHandler.isEnabled(area) && !force) { + if (this.econHandler.isEnabled(area) && !force && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON)) { PlotExpression costExr = area.getPrices().get("claim"); double cost = costExr.evaluate(currentPlots); if (cost > 0d) { diff --git a/Core/src/main/java/com/plotsquared/core/command/MainCommand.java b/Core/src/main/java/com/plotsquared/core/command/MainCommand.java index 1911f24e9..721bec05f 100644 --- a/Core/src/main/java/com/plotsquared/core/command/MainCommand.java +++ b/Core/src/main/java/com/plotsquared/core/command/MainCommand.java @@ -183,7 +183,7 @@ public class MainCommand extends Command { if (cmd.hasConfirmation(player)) { CmdConfirm.addPending(player, cmd.getUsage(), () -> { PlotArea area = player.getApplicablePlotArea(); - if (area != null && econHandler.isEnabled(area)) { + if (area != null && econHandler.isEnabled(area) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON)) { PlotExpression priceEval = area.getPrices().get(cmd.getFullId()); double price = priceEval != null ? priceEval.evaluate(0d) : 0d; @@ -201,7 +201,7 @@ public class MainCommand extends Command { return; } PlotArea area = player.getApplicablePlotArea(); - if (area != null && econHandler.isEnabled(area)) { + if (area != null && econHandler.isEnabled(area) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON)) { PlotExpression priceEval = area.getPrices().get(cmd.getFullId()); double price = priceEval != null ? priceEval.evaluate(0d) : 0d; if (price != 0d && econHandler.getMoney(player) < price) { diff --git a/Core/src/main/java/com/plotsquared/core/command/Merge.java b/Core/src/main/java/com/plotsquared/core/command/Merge.java index 97a3965c7..0e0650836 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Merge.java +++ b/Core/src/main/java/com/plotsquared/core/command/Merge.java @@ -178,7 +178,7 @@ public class Merge extends SubCommand { return true; } if (plot.getPlotModificationManager().autoMerge(Direction.ALL, maxSize, uuid, player, terrain)) { - if (this.econHandler.isEnabled(plotArea) && price > 0d) { + if (this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d) { this.econHandler.withdrawMoney(player, price); player.sendMessage( TranslatableCaption.of("economy.removed_balance"), @@ -196,8 +196,8 @@ public class Merge extends SubCommand { player.sendMessage(TranslatableCaption.of("merge.no_available_automerge")); return false; } - if (!force && this.econHandler.isEnabled(plotArea) && price > 0d - && this.econHandler.getMoney(player) < price) { + if (!force && this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d && this.econHandler.getMoney( + player) < price) { player.sendMessage( TranslatableCaption.of("economy.cannot_afford_merge"), TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) @@ -218,7 +218,7 @@ public class Merge extends SubCommand { return true; } if (plot.getPlotModificationManager().autoMerge(direction, maxSize - size, uuid, player, terrain)) { - if (this.econHandler.isEnabled(plotArea) && price > 0d) { + if (this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d) { this.econHandler.withdrawMoney(player, price); player.sendMessage( TranslatableCaption.of("economy.removed_balance"), @@ -259,7 +259,7 @@ public class Merge extends SubCommand { accepter.sendMessage(TranslatableCaption.of("merge.merge_not_valid")); return; } - if (this.econHandler.isEnabled(plotArea) && price > 0d) { + if (this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d) { if (!force && this.econHandler.getMoney(player) < price) { player.sendMessage( TranslatableCaption.of("economy.cannot_afford_merge"), @@ -303,7 +303,7 @@ public class Merge extends SubCommand { player, terrain )) { - if (this.econHandler.isEnabled(plotArea) && price > 0d) { + if (this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d) { if (!force && this.econHandler.getMoney(player) < price) { player.sendMessage( TranslatableCaption.of("economy.cannot_afford_merge"), diff --git a/Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java b/Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java index fd8e5b5ab..fb76aef42 100644 --- a/Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java +++ b/Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java @@ -206,7 +206,7 @@ public class ComponentPresetManager { return false; } - if (componentPreset.cost() > 0.0D) { + if (componentPreset.cost() > 0.0D && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON)) { if (!econHandler.isEnabled(plot.getArea())) { getPlayer().sendMessage( TranslatableCaption.of("preset.economy_disabled"), diff --git a/Core/src/main/java/com/plotsquared/core/permissions/Permission.java b/Core/src/main/java/com/plotsquared/core/permissions/Permission.java index 43205ca3d..94b71761b 100644 --- a/Core/src/main/java/com/plotsquared/core/permissions/Permission.java +++ b/Core/src/main/java/com/plotsquared/core/permissions/Permission.java @@ -201,7 +201,8 @@ public enum Permission implements ComponentLike { PERMISSION_RATE("plots.rate"), PERMISSION_ADMIN_FLIGHT("plots.admin.flight"), PERMISSION_ADMIN_COMPONENTS_OTHER("plots.admin.component.other"), - PERMISSION_ADMIN_BYPASS_BORDER("plots.admin.border.bypass"); + PERMISSION_ADMIN_BYPASS_BORDER("plots.admin.border.bypass"), + PERMISSION_ADMIN_BYPASS_ECON("plots.admin.econ.bypass"); // private final String text; From 72f511ce9989273fd138d3adf733e9f390f6db0b Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Wed, 2 Aug 2023 13:51:03 +0200 Subject: [PATCH 16/20] Release 7.0.0-rc.4 --- .../com/plotsquared/core/location/UncheckedWorldLocation.java | 2 +- build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/src/main/java/com/plotsquared/core/location/UncheckedWorldLocation.java b/Core/src/main/java/com/plotsquared/core/location/UncheckedWorldLocation.java index 173820ddb..f284dd738 100644 --- a/Core/src/main/java/com/plotsquared/core/location/UncheckedWorldLocation.java +++ b/Core/src/main/java/com/plotsquared/core/location/UncheckedWorldLocation.java @@ -66,7 +66,7 @@ public final class UncheckedWorldLocation extends Location { * @param world World * @param loc Coordinates * @return New location - * @since TODO + * @since 7.0.0 */ @DoNotUse public static @NonNull UncheckedWorldLocation at(final @NonNull String world, BlockVector3 loc) { diff --git a/build.gradle.kts b/build.gradle.kts index a29d33b61..445014fc8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } group = "com.intellectualsites.plotsquared" -version = "7.0.0-SNAPSHOT" +version = "7.0.0-rc.4" if (!File("$rootDir/.git").exists()) { logger.lifecycle(""" From dc04ec955a9074036f206a75361236716d082457 Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Wed, 2 Aug 2023 13:57:50 +0200 Subject: [PATCH 17/20] Back to snapshot for development --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 445014fc8..a29d33b61 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } group = "com.intellectualsites.plotsquared" -version = "7.0.0-rc.4" +version = "7.0.0-SNAPSHOT" if (!File("$rootDir/.git").exists()) { logger.lifecycle(""" From d4c90283d6ffc937e079dec4b9ff235ee9cb912d Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Tue, 8 Aug 2023 22:33:24 +0200 Subject: [PATCH 18/20] Cleanup dependencies --- .github/renovate.json | 8 +++++++- Bukkit/build.gradle.kts | 20 ++++++++++---------- Core/build.gradle.kts | 22 +++++++++++----------- build.gradle.kts | 6 +----- gradle/libs.versions.toml | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 64 insertions(+), 27 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index a9e88c73c..693a554d5 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -9,5 +9,11 @@ "dependencies" ], "rebaseWhen": "conflicted", - "schedule": ["on the first day of the month"] + "schedule": ["on the first day of the month"], + "ignoreDeps": [ + "com.google.code.gson:gson", + "com.google.guava:guava", + "org.yaml:snakeyaml", + "org.apache.logging.log4j:log4j-api", + ] } diff --git a/Bukkit/build.gradle.kts b/Bukkit/build.gradle.kts index abc3cea42..f51210525 100644 --- a/Bukkit/build.gradle.kts +++ b/Bukkit/build.gradle.kts @@ -21,20 +21,20 @@ dependencies { api(projects.plotsquaredCore) // Metrics - implementation("org.bstats:bstats-bukkit") + implementation(libs.bstatsBukkit) // Paper - compileOnly("io.papermc.paper:paper-api") - implementation("io.papermc:paperlib") + compileOnly(libs.paper) + implementation(libs.paperlib) // Plugins compileOnly(libs.worldeditBukkit) { exclude(group = "org.bukkit") exclude(group = "org.spigotmc") } - compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") { isTransitive = false } - testImplementation("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") { isTransitive = false } - compileOnly("com.github.MilkBowl:VaultAPI") { + compileOnly(libs.faweBukkit) { isTransitive = false } + testImplementation(libs.faweBukkit) { isTransitive = false } + compileOnly(libs.vault) { exclude(group = "org.bukkit") } compileOnly(libs.placeholderapi) @@ -44,15 +44,15 @@ dependencies { // Other libraries implementation(libs.squirrelid) { isTransitive = false } - implementation("dev.notmyfault.serverlib:ServerLib") + implementation(libs.serverlib) // Our libraries implementation(libs.arkitektonika) - implementation("com.intellectualsites.paster:Paster") - implementation("com.intellectualsites.informative-annotations:informative-annotations") + implementation(libs.paster) + implementation(libs.informativeAnnotations) // Adventure - implementation("net.kyori:adventure-platform-bukkit") + implementation(libs.adventureBukkit) } tasks.processResources { diff --git a/Core/build.gradle.kts b/Core/build.gradle.kts index c7b2172ac..4449ccbe6 100644 --- a/Core/build.gradle.kts +++ b/Core/build.gradle.kts @@ -2,18 +2,18 @@ import java.time.format.DateTimeFormatter dependencies { // Expected everywhere. - compileOnlyApi("org.checkerframework:checker-qual") + compileOnlyApi(libs.checkerqual) // Minecraft expectations - compileOnlyApi("com.google.code.gson:gson") - compileOnly("com.google.guava:guava") + compileOnlyApi(libs.gson) + compileOnly(libs.guava) // Platform expectations - compileOnlyApi("org.yaml:snakeyaml") + compileOnlyApi(libs.snakeyaml) // Adventure - api("net.kyori:adventure-api") - api("net.kyori:adventure-text-minimessage") + api(libs.adventureApi) + api(libs.adventureMiniMessage) // Guice api(libs.guice) { @@ -31,19 +31,19 @@ dependencies { exclude(group = "dummypermscompat") } testImplementation(libs.worldeditCore) - compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core") { isTransitive = false } - testImplementation("com.fastasyncworldedit:FastAsyncWorldEdit-Core") { isTransitive = false } + compileOnly(libs.faweBukkit) { isTransitive = false } + testImplementation(libs.faweCore) { isTransitive = false } // Logging - compileOnlyApi("org.apache.logging.log4j:log4j-api") + compileOnlyApi(libs.log4j) // Other libraries api(libs.prtree) api(libs.aopalliance) api(libs.cloudServices) api(libs.arkitektonika) - api("com.intellectualsites.paster:Paster") - api("com.intellectualsites.informative-annotations:informative-annotations") + api(libs.paster) + api(libs.informativeAnnotations) } tasks.processResources { diff --git a/build.gradle.kts b/build.gradle.kts index a29d33b61..f81bccdd5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,7 @@ plugins { eclipse idea - id("xyz.jpenilla.run-paper") version "2.1.0" + alias(libs.plugins.runPaper) } group = "com.intellectualsites.plotsquared" @@ -76,10 +76,6 @@ subprojects { plugin() } - dependencies { - implementation(platform("com.intellectualsites.bom:bom-newest:1.34")) - } - dependencies { // Tests testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 95dc281df..2db199ed1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,10 +1,19 @@ [versions] # Platform expectations +paper = "1.20.1-R0.1-SNAPSHOT" guice = "7.0.0" spotbugs = "4.7.3" +checkerqual = "3.37.0" +gson = "2.10" +guava = "31.1-jre" +snakeyaml = "2.0" +adventure = "4.14.0" +adventure-bukkit = "4.3.0" +log4j = "2.19.0" # Plugins worldedit = "7.2.15" +fawe = "2.7.0" placeholderapi = "2.11.3" luckperms = "5.4" essentialsx = "2.20.0" @@ -16,18 +25,34 @@ aopalliance = "1.0" cloud-services = "1.8.3" arkitektonika = "2.1.2" squirrelid = "0.3.2" +paster = "1.1.5" +bstats = "3.0.2" +paperlib = "1.0.8" +informative-annotations = "1.3" +vault = "1.7.1" +serverlib = "2.3.1" # Gradle plugins shadow = "8.1.1" grgit = "4.1.1" spotless = "6.20.0" nexus = "1.3.0" +runPaper = "2.1.0" [libraries] # Platform expectations +paper = { group = "io.papermc.paper", name = "paper-api", version.ref = "paper" } guice = { group = "com.google.inject", name = "guice", version.ref = "guice" } guiceassistedinject = { group = "com.google.inject.extensions", name = "guice-assistedinject", version.ref = "guice" } spotbugs = { group = "com.github.spotbugs", name = "spotbugs-annotations", version.ref = "spotbugs" } +checkerqual = { group = "org.checkerframework", name = "checker-qual", version.ref = "checkerqual" } +gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } +guava = { group = "com.google.guava", name = "guava", version.ref = "guava" } +snakeyaml = { group = "org.yaml", name = "snakeyaml", version.ref = "snakeyaml" } +adventureApi = { group = "net.kyori", name = "adventure-api", version.ref = "adventure" } +adventureMiniMessage = { group = "net.kyori", name = "adventure-text-minimessage", version.ref = "adventure" } +adventureBukkit = { group = "net.kyori", name = "adventure-platform-bukkit", version.ref = "adventure-bukkit" } +log4j = { group = "org.apache.logging.log4j", name = "log4j-api", version.ref = "log4j" } # Plugins worldeditCore = { group = "com.sk89q.worldedit", name = "worldedit-core", version.ref = "worldedit" } @@ -35,6 +60,8 @@ worldeditBukkit = { group = "com.sk89q.worldedit", name = "worldedit-bukkit", ve placeholderapi = { group = "me.clip", name = "placeholderapi", version.ref = "placeholderapi" } luckperms = { group = "net.luckperms", name = "api", version.ref = "luckperms" } essentialsx = { group = "net.essentialsx", name = "EssentialsX", version.ref = "essentialsx" } +faweCore = { group = "com.fastasyncworldedit", name = "FastAsyncWorldEdit-Core", version.ref = "fawe" } +faweBukkit = { group = "com.fastasyncworldedit", name = "FastAsyncWorldEdit-Bukkit", version.ref = "fawe" } # Third party prtree = { group = "com.intellectualsites.prtree", name = "PRTree", version.ref = "prtree" } @@ -43,9 +70,17 @@ cloudServices = { group = "cloud.commandframework", name = "cloud-services", ver mvdwapi = { group = "com.intellectualsites.mvdwplaceholderapi", name = "MVdWPlaceholderAPI", version.ref = "mvdwapi" } squirrelid = { group = "org.enginehub", name = "squirrelid", version.ref = "squirrelid" } arkitektonika = { group = "com.intellectualsites.arkitektonika", name = "Arkitektonika-Client", version.ref = "arkitektonika" } +paster = { group = "com.intellectualsites.paster", name = "Paster", version.ref = "paster" } +bstatsBase = { group = "org.bstats", name = "bstats-base", version.ref = "bstats" } +bstatsBukkit = { group = "org.bstats", name = "bstats-bukkit", version.ref = "bstats" } +informativeAnnotations = { group = "com.intellectualsites.informative-annotations", name = "informative-annotations", version.ref = "informative-annotations" } +paperlib = { group = "io.papermc", name = "paperlib", version.ref = "paperlib" } +vault = { group = "com.github.MilkBowl", name = "VaultAPI", version.ref = "vault" } +serverlib = { group = "dev.notmyfault.serverlib", name = "ServerLib", version.ref = "serverlib" } [plugins] shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus" } +runPaper = { id = "xyz.jpenilla.run-paper", version.ref = "runPaper" } From cd008bed9b11cb0961a04d5f11eb9ca6235aaec1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 09:52:49 +0200 Subject: [PATCH 19/20] Update dependency net.essentialsx:EssentialsX to v2.20.1 (#4139) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2db199ed1..c436bfb20 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,7 +16,7 @@ worldedit = "7.2.15" fawe = "2.7.0" placeholderapi = "2.11.3" luckperms = "5.4" -essentialsx = "2.20.0" +essentialsx = "2.20.1" mvdwapi = "3.1.1" # Third party From e56e52ba4f447c1bb7ca6725ee46172d2cdd4e9d Mon Sep 17 00:00:00 2001 From: Alexander Brandes Date: Fri, 11 Aug 2023 14:05:23 +0200 Subject: [PATCH 20/20] Fix 'grant' placeholder --- .../plotsquared/bukkit/util/TranslationUpdateManager.java | 6 ++++++ Core/src/main/java/com/plotsquared/core/command/Auto.java | 4 ++-- Core/src/main/java/com/plotsquared/core/command/Claim.java | 4 ++-- Core/src/main/resources/lang/messages_en.json | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/TranslationUpdateManager.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/TranslationUpdateManager.java index 0c25f5bf7..2e499c6c9 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/TranslationUpdateManager.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/TranslationUpdateManager.java @@ -44,6 +44,10 @@ public class TranslationUpdateManager { String minheightReplacement = "minheight"; String maxHeight = "maxHeight"; String maxheightReplacement = "maxheight"; + String usedGrants = "usedGrants"; + String usedGrantsReplacement = "used_grants"; + String remainingGrants = "remainingGrants"; + String rremainingGrantsReplacement = "remaining_grants"; try (Stream paths = Files.walk(Paths.get(PlotSquared.platform().getDirectory().toPath().resolve("lang").toUri()))) { paths @@ -53,6 +57,8 @@ public class TranslationUpdateManager { replaceInFile(p, suggestCommand, suggestCommandReplacement); replaceInFile(p, minHeight, minheightReplacement); replaceInFile(p, maxHeight, maxheightReplacement); + replaceInFile(p, usedGrants, usedGrantsReplacement); + replaceInFile(p, remainingGrants, rremainingGrantsReplacement); }); } } diff --git a/Core/src/main/java/com/plotsquared/core/command/Auto.java b/Core/src/main/java/com/plotsquared/core/command/Auto.java index 826b981e6..230ed9e3a 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Auto.java +++ b/Core/src/main/java/com/plotsquared/core/command/Auto.java @@ -131,8 +131,8 @@ public class Auto extends SubCommand { player.sendMessage( TranslatableCaption.of("economy.removed_granted_plot"), TagResolver.builder() - .tag("usedGrants", Tag.inserting(Component.text(grantedPlots - left))) - .tag("remainingGrants", Tag.inserting(Component.text(left))) + .tag("used_grants", Tag.inserting(Component.text(grantedPlots - left))) + .tag("remaining_grants", Tag.inserting(Component.text(left))) .build() ); } diff --git a/Core/src/main/java/com/plotsquared/core/command/Claim.java b/Core/src/main/java/com/plotsquared/core/command/Claim.java index d1f81d4fe..de35e7bb1 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Claim.java +++ b/Core/src/main/java/com/plotsquared/core/command/Claim.java @@ -186,8 +186,8 @@ public class Claim extends SubCommand { player.sendMessage( TranslatableCaption.of("economy.removed_granted_plot"), TagResolver.builder() - .tag("usedGrants", Tag.inserting(Component.text(grants - 1))) - .tag("remainingGrants", Tag.inserting(Component.text(grants))) + .tag("used_grants", Tag.inserting(Component.text(grants - 1))) + .tag("remaining_grants", Tag.inserting(Component.text(grants))) .build() ); } diff --git a/Core/src/main/resources/lang/messages_en.json b/Core/src/main/resources/lang/messages_en.json index 9434ab814..0fde34600 100644 --- a/Core/src/main/resources/lang/messages_en.json +++ b/Core/src/main/resources/lang/messages_en.json @@ -124,7 +124,7 @@ "economy.cannot_afford_merge": "You cannot afford to merge the plots. It costs .", "economy.added_balance": " has been added to your balance.", "economy.removed_balance": " has been taken from your balance.", - "economy.removed_granted_plot": "You used plot grant(s), you've got left.", + "economy.removed_granted_plot": "You used plot grant(s), you've got left.", "setup.choose_generator": "What generator do you want?", "setup.setup_not_started": "No setup started.", "setup.setup_init": "Usage: /plot setup ",