mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-10-31 01:23:44 +01:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			feature/v7
			...
			fix/stop-i
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | e2bb8a4b32 | ||
|   | c523feeb79 | 
							
								
								
									
										5
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							| @@ -8,7 +8,7 @@ body: | |||||||
|       value: | |       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. |         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.github.io/plotsquared-documentation/). | ||||||
|         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! |         Do NOT use the public issue tracker to report security vulnerabilities! They are disclosed using [this](https://forms.gle/btgdRn9yhGtzEiGW8) form! | ||||||
|  |  | ||||||
|   - type: dropdown |   - type: dropdown | ||||||
|     attributes: |     attributes: | ||||||
| @@ -27,9 +27,6 @@ body: | |||||||
|       description: Which server version version you using? If your server version is not listed, it is not supported. Update to a supported version first. |       description: Which server version version you using? If your server version is not listed, it is not supported. Update to a supported version first. | ||||||
|       multiple: false |       multiple: false | ||||||
|       options: |       options: | ||||||
|         - '1.20.1' |  | ||||||
|         - '1.20' |  | ||||||
|         - '1.19.4' |  | ||||||
|         - '1.19.3' |         - '1.19.3' | ||||||
|         - '1.19.2' |         - '1.19.2' | ||||||
|         - '1.19.1' |         - '1.19.1' | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -42,7 +42,7 @@ jobs: | |||||||
|           ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} |           ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} | ||||||
|           ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} |           ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} | ||||||
|       - name: Publish core javadoc |       - 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 |         uses: cpina/github-action-push-to-another-repository@main | ||||||
|         env: |         env: | ||||||
|           SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} |           SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} | ||||||
| @@ -54,7 +54,7 @@ jobs: | |||||||
|           target-branch: main |           target-branch: main | ||||||
|           target-directory: v7/core |           target-directory: v7/core | ||||||
|       - name: Publish bukkit javadoc |       - 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 |         uses: cpina/github-action-push-to-another-repository@main | ||||||
|         env: |         env: | ||||||
|           SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} |           SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							| @@ -21,11 +21,6 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - name: Checkout repository |       - name: Checkout repository | ||||||
|         uses: actions/checkout@v3 |         uses: actions/checkout@v3 | ||||||
|       - name: Setup Java |  | ||||||
|         uses: actions/setup-java@v3 |  | ||||||
|         with: |  | ||||||
|           distribution: temurin |  | ||||||
|           java-version: 17 |  | ||||||
|       - name: Initialize CodeQL |       - name: Initialize CodeQL | ||||||
|         uses: github/codeql-action/init@v2 |         uses: github/codeql-action/init@v2 | ||||||
|         with: |         with: | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ repositories { | |||||||
| } | } | ||||||
|  |  | ||||||
| dependencies { | dependencies { | ||||||
|     api(projects.plotsquaredCore) |     api(projects.plotSquaredCore) | ||||||
|  |  | ||||||
|     // Metrics |     // Metrics | ||||||
|     implementation("org.bstats:bstats-bukkit") |     implementation("org.bstats:bstats-bukkit") | ||||||
| @@ -62,7 +62,6 @@ tasks.processResources { | |||||||
| } | } | ||||||
|  |  | ||||||
| tasks.named<ShadowJar>("shadowJar") { | tasks.named<ShadowJar>("shadowJar") { | ||||||
|     dependsOn(":plotsquared-core:shadowJar") |  | ||||||
|     dependencies { |     dependencies { | ||||||
|         exclude(dependency("org.checkerframework:")) |         exclude(dependency("org.checkerframework:")) | ||||||
|     } |     } | ||||||
| @@ -103,7 +102,7 @@ tasks { | |||||||
|         opt.links("https://jd.papermc.io/paper/1.19/") |         opt.links("https://jd.papermc.io/paper/1.19/") | ||||||
|         opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/" + libs.worldeditBukkit.get().versionConstraint.toString()) |         opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/" + libs.worldeditBukkit.get().versionConstraint.toString()) | ||||||
|         opt.links("https://intellectualsites.github.io/plotsquared-javadocs/core/") |         opt.links("https://intellectualsites.github.io/plotsquared-javadocs/core/") | ||||||
|         opt.links("https://jd.advntr.dev/api/4.14.0/") |         opt.links("https://jd.advntr.dev/api/4.12.0/") | ||||||
|         opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/") |         opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/") | ||||||
|         opt.links("https://checkerframework.org/api/") |         opt.links("https://checkerframework.org/api/") | ||||||
|         opt.isLinkSource = true |         opt.isLinkSource = true | ||||||
|   | |||||||
| @@ -50,6 +50,7 @@ import com.plotsquared.bukkit.util.BukkitUtil; | |||||||
| import com.plotsquared.bukkit.util.BukkitWorld; | import com.plotsquared.bukkit.util.BukkitWorld; | ||||||
| import com.plotsquared.bukkit.util.SetGenCB; | import com.plotsquared.bukkit.util.SetGenCB; | ||||||
| import com.plotsquared.bukkit.util.TranslationUpdateManager; | import com.plotsquared.bukkit.util.TranslationUpdateManager; | ||||||
|  | import com.plotsquared.bukkit.util.UpdateUtility; | ||||||
| import com.plotsquared.bukkit.util.task.BukkitTaskManager; | import com.plotsquared.bukkit.util.task.BukkitTaskManager; | ||||||
| import com.plotsquared.bukkit.util.task.PaperTimeConverter; | import com.plotsquared.bukkit.util.task.PaperTimeConverter; | ||||||
| import com.plotsquared.bukkit.util.task.SpigotTimeConverter; | import com.plotsquared.bukkit.util.task.SpigotTimeConverter; | ||||||
| @@ -302,11 +303,9 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl | |||||||
|  |  | ||||||
|         this.serverLocale = Locale.forLanguageTag(Settings.Enabled_Components.DEFAULT_LOCALE); |         this.serverLocale = Locale.forLanguageTag(Settings.Enabled_Components.DEFAULT_LOCALE); | ||||||
|  |  | ||||||
|         /* TODO Enable update checker before v7 is released to GA |  | ||||||
|         if (PremiumVerification.isPremium() && Settings.Enabled_Components.UPDATE_NOTIFICATIONS) { |         if (PremiumVerification.isPremium() && Settings.Enabled_Components.UPDATE_NOTIFICATIONS) { | ||||||
|             injector.getInstance(UpdateUtility.class).updateChecker(); |             injector.getInstance(UpdateUtility.class).updateChecker(); | ||||||
|         } |         } | ||||||
|          */ |  | ||||||
|  |  | ||||||
|         if (PremiumVerification.isPremium()) { |         if (PremiumVerification.isPremium()) { | ||||||
|             LOGGER.info("PlotSquared version licensed to Spigot user {}", getUserID()); |             LOGGER.info("PlotSquared version licensed to Spigot user {}", getUserID()); | ||||||
|   | |||||||
| @@ -37,8 +37,6 @@ import com.sk89q.worldedit.math.BlockVector2; | |||||||
| import org.apache.logging.log4j.LogManager; | import org.apache.logging.log4j.LogManager; | ||||||
| import org.apache.logging.log4j.Logger; | import org.apache.logging.log4j.Logger; | ||||||
| import org.bukkit.HeightMap; | import org.bukkit.HeightMap; | ||||||
| import org.bukkit.NamespacedKey; |  | ||||||
| import org.bukkit.Registry; |  | ||||||
| import org.bukkit.World; | import org.bukkit.World; | ||||||
| import org.bukkit.block.Biome; | import org.bukkit.block.Biome; | ||||||
| import org.bukkit.generator.BiomeProvider; | import org.bukkit.generator.BiomeProvider; | ||||||
| @@ -50,14 +48,10 @@ import org.jetbrains.annotations.NotNull; | |||||||
| import org.jetbrains.annotations.Nullable; | import org.jetbrains.annotations.Nullable; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Arrays; |  | ||||||
| import java.util.EnumSet; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Random; | import java.util.Random; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  |  | ||||||
| import static java.util.function.Predicate.not; |  | ||||||
|  |  | ||||||
| public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrapper<ChunkGenerator> { | public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrapper<ChunkGenerator> { | ||||||
|  |  | ||||||
|     private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + BukkitPlotGenerator.class.getSimpleName()); |     private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + BukkitPlotGenerator.class.getSimpleName()); | ||||||
| @@ -290,7 +284,7 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap | |||||||
|      */ |      */ | ||||||
|     @SuppressWarnings("deprecation") // The entire method is deprecated, but kept for compatibility with <=1.16.2 |     @SuppressWarnings("deprecation") // The entire method is deprecated, but kept for compatibility with <=1.16.2 | ||||||
|     @Override |     @Override | ||||||
|     @Deprecated(since = "7.0.0") |     @Deprecated(since = "TODO") | ||||||
|     public @NonNull ChunkData generateChunkData( |     public @NonNull ChunkData generateChunkData( | ||||||
|             @NonNull World world, @NonNull Random random, int x, int z, @NonNull BiomeGrid biome |             @NonNull World world, @NonNull Random random, int x, int z, @NonNull BiomeGrid biome | ||||||
|     ) { |     ) { | ||||||
| @@ -440,16 +434,9 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap | |||||||
|         private static final List<Biome> BIOMES; |         private static final List<Biome> BIOMES; | ||||||
|  |  | ||||||
|         static { |         static { | ||||||
|             Set<Biome> disabledBiomes = EnumSet.of(Biome.CUSTOM); |             ArrayList<Biome> biomes = new ArrayList<>(List.of(Biome.values())); | ||||||
|             if (PlotSquared.platform().serverVersion()[1] <= 19) { |             biomes.remove(Biome.CUSTOM); | ||||||
|                 final Biome cherryGrove = Registry.BIOME.get(NamespacedKey.minecraft("cherry_grove")); |             BIOMES = List.copyOf(biomes); | ||||||
|                 if (cherryGrove != null) { |  | ||||||
|                     disabledBiomes.add(cherryGrove); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             BIOMES = Arrays.stream(Biome.values()) |  | ||||||
|                     .filter(not(disabledBiomes::contains)) |  | ||||||
|                     .toList(); |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         @Override |         @Override | ||||||
|   | |||||||
| @@ -1116,7 +1116,6 @@ public class BlockEventListener implements Listener { | |||||||
|             if (plot != null) { |             if (plot != null) { | ||||||
|                 plot.debug("Explosion was cancelled because explosion = false"); |                 plot.debug("Explosion was cancelled because explosion = false"); | ||||||
|             } |             } | ||||||
|             return; |  | ||||||
|         } |         } | ||||||
|         event.blockList().removeIf(blox -> !plot.equals(area.getOwnedPlot(BukkitUtil.adapt(blox.getLocation())))); |         event.blockList().removeIf(blox -> !plot.equals(area.getOwnedPlot(BukkitUtil.adapt(blox.getLocation())))); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -26,7 +26,6 @@ import com.plotsquared.core.plot.Plot; | |||||||
| import com.plotsquared.core.plot.PlotArea; | import com.plotsquared.core.plot.PlotArea; | ||||||
| import com.plotsquared.core.plot.flag.implementations.CopperOxideFlag; | import com.plotsquared.core.plot.flag.implementations.CopperOxideFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.MiscInteractFlag; | import com.plotsquared.core.plot.flag.implementations.MiscInteractFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.SculkSensorInteractFlag; |  | ||||||
| import com.plotsquared.core.util.PlotFlagUtil; | import com.plotsquared.core.util.PlotFlagUtil; | ||||||
| import org.bukkit.Material; | import org.bukkit.Material; | ||||||
| import org.bukkit.block.Block; | import org.bukkit.block.Block; | ||||||
| @@ -97,12 +96,12 @@ public class BlockEventListener117 implements Listener { | |||||||
|                 area, |                 area, | ||||||
|                 MiscInteractFlag.class, |                 MiscInteractFlag.class, | ||||||
|                 true |                 true | ||||||
|         ) || plot != null && (!plot.getFlag(MiscInteractFlag.class) || !plot.getFlag(SculkSensorInteractFlag.class))) { |         ) || plot != null && !plot.getFlag( | ||||||
|  |                 MiscInteractFlag.class)) { | ||||||
|             if (plotPlayer != null) { |             if (plotPlayer != null) { | ||||||
|                 if (plot != null) { |                 if (plot != null) { | ||||||
|                     if (!plot.isAdded(plotPlayer.getUUID())) { |                     if (!plot.isAdded(plotPlayer.getUUID())) { | ||||||
|                         plot.debug(plotPlayer.getName() + " couldn't trigger sculk sensors because both " + |                         plot.debug(plotPlayer.getName() + " couldn't trigger sculk sensors because misc-interact = false"); | ||||||
|                                 "sculk-sensor-interact and misc-interact = false"); |  | ||||||
|                         event.setCancelled(true); |                         event.setCancelled(true); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| @@ -113,15 +112,13 @@ public class BlockEventListener117 implements Listener { | |||||||
|                 if (plot != null) { |                 if (plot != null) { | ||||||
|                     if (itemThrower == null && (itemThrower = item.getOwner()) == null) { |                     if (itemThrower == null && (itemThrower = item.getOwner()) == null) { | ||||||
|                         plot.debug( |                         plot.debug( | ||||||
|                                 "A thrown item couldn't trigger sculk sensors because both sculk-sensor-interact and " + |                                 "A thrown item couldn't trigger sculk sensors because misc-interact = false and the item's owner could not be resolved."); | ||||||
|                                         "misc-interact = false and the item's owner could not be resolved."); |  | ||||||
|                         event.setCancelled(true); |                         event.setCancelled(true); | ||||||
|                         return; |                         return; | ||||||
|                     } |                     } | ||||||
|                     if (!plot.isAdded(itemThrower)) { |                     if (!plot.isAdded(itemThrower)) { | ||||||
|                         if (!plot.isAdded(itemThrower)) { |                         if (!plot.isAdded(itemThrower)) { | ||||||
|                             plot.debug("A thrown item couldn't trigger sculk sensors because both sculk-sensor-interact and " + |                             plot.debug("A thrown item couldn't trigger sculk sensors because misc-interact = false"); | ||||||
|                                     "misc-interact = false"); |  | ||||||
|                             event.setCancelled(true); |                             event.setCancelled(true); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
| @@ -140,6 +137,7 @@ public class BlockEventListener117 implements Listener { | |||||||
|         if (area == null) { |         if (area == null) { | ||||||
|             for (int i = blocks.size() - 1; i >= 0; i--) { |             for (int i = blocks.size() - 1; i >= 0; i--) { | ||||||
|                 Location blockLocation = BukkitUtil.adapt(blocks.get(i).getLocation()); |                 Location blockLocation = BukkitUtil.adapt(blocks.get(i).getLocation()); | ||||||
|  |                 blockLocation = BukkitUtil.adapt(blocks.get(i).getLocation()); | ||||||
|                 if (blockLocation.isPlotArea()) { |                 if (blockLocation.isPlotArea()) { | ||||||
|                     blocks.remove(i); |                     blocks.remove(i); | ||||||
|                 } |                 } | ||||||
|   | |||||||
| @@ -28,32 +28,24 @@ import java.nio.file.Paths; | |||||||
| import java.util.stream.Stream; | import java.util.stream.Stream; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * This is a helper class which replaces older syntax no longer supported by MiniMessage with replacements in messages_%.json. |  * This is a helper class which replaces occurrences of 'suggest_command' with 'run_command' in messages_%.json. | ||||||
|  * MiniMessage changed the syntax between major releases. To warrant a smooth upgrade, we attempt to replace any occurrences |  * MiniMessage changed the syntax between major releases. To warrant a smooth upgrade, we attempt to replace any occurrences | ||||||
|  * while loading PlotSquared. |  * while loading PlotSquared. | ||||||
|  * |  * | ||||||
|  * @since 7.0.0 |  * @since TODO | ||||||
|  */ |  */ | ||||||
| @NotPublic | @NotPublic | ||||||
| public class TranslationUpdateManager { | public class TranslationUpdateManager { | ||||||
|  |  | ||||||
|     public static void upgradeTranslationFile() throws IOException { |     public static void upgradeTranslationFile() throws IOException { | ||||||
|         String suggestCommand = "suggest_command"; |         String searchText = "suggest_command"; | ||||||
|         String suggestCommandReplacement = "run_command"; |         String replacementText = "run_command"; | ||||||
|         String minHeight = "minHeight"; |  | ||||||
|         String minheightReplacement = "minheight"; |  | ||||||
|         String maxHeight = "maxHeight"; |  | ||||||
|         String maxheightReplacement = "maxheight"; |  | ||||||
|  |  | ||||||
|         try (Stream<Path> paths = Files.walk(Paths.get(PlotSquared.platform().getDirectory().toPath().resolve("lang").toUri()))) { |         try (Stream<Path> paths = Files.walk(Paths.get(PlotSquared.platform().getDirectory().toPath().resolve("lang").toUri()))) { | ||||||
|             paths |             paths | ||||||
|                     .filter(Files::isRegularFile) |                     .filter(Files::isRegularFile) | ||||||
|                     .filter(p -> p.getFileName().toString().matches("messages_[a-z]{2}\\.json")) |                     .filter(p -> p.getFileName().toString().matches("messages_[a-z]{2}\\.json")) | ||||||
|                     .forEach(p -> { |                     .forEach(p -> replaceInFile(p, searchText, replacementText)); | ||||||
|                         replaceInFile(p, suggestCommand, suggestCommandReplacement); |  | ||||||
|                         replaceInFile(p, minHeight, minheightReplacement); |  | ||||||
|                         replaceInFile(p, maxHeight, maxheightReplacement); |  | ||||||
|                     }); |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -68,8 +68,8 @@ tasks { | |||||||
|         val isRelease = if (rootProject.version.toString().endsWith("-SNAPSHOT")) "TODO" else rootProject.version.toString() |         val isRelease = if (rootProject.version.toString().endsWith("-SNAPSHOT")) "TODO" else rootProject.version.toString() | ||||||
|         val opt = options as StandardJavadocDocletOptions |         val opt = options as StandardJavadocDocletOptions | ||||||
|         opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-core/" + libs.worldeditCore.get().versionConstraint.toString()) |         opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-core/" + libs.worldeditCore.get().versionConstraint.toString()) | ||||||
|         opt.links("https://jd.advntr.dev/api/4.14.0/") |         opt.links("https://jd.advntr.dev/api/4.12.0/") | ||||||
|         opt.links("https://jd.advntr.dev/text-minimessage/4.14.0/") |         opt.links("https://jd.advntr.dev/text-minimessage/4.12.0/") | ||||||
|         opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/") |         opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/") | ||||||
|         opt.links("https://checkerframework.org/api/") |         opt.links("https://checkerframework.org/api/") | ||||||
|         opt.links("https://javadoc.io/doc/com.intellectualsites.informative-annotations/informative-annotations/latest/") |         opt.links("https://javadoc.io/doc/com.intellectualsites.informative-annotations/informative-annotations/latest/") | ||||||
|   | |||||||
| @@ -296,13 +296,10 @@ public class Auto extends SubCommand { | |||||||
|         } |         } | ||||||
|         if (this.econHandler != null && plotarea.useEconomy()) { |         if (this.econHandler != null && plotarea.useEconomy()) { | ||||||
|             PlotExpression costExp = plotarea.getPrices().get("claim"); |             PlotExpression costExp = plotarea.getPrices().get("claim"); | ||||||
|             PlotExpression mergeCostExp = plotarea.getPrices().get("merge"); |  | ||||||
|             int size = sizeX * sizeZ; |  | ||||||
|             double mergeCost = size <= 1 || mergeCostExp == null ? 0d : mergeCostExp.evaluate(size); |  | ||||||
|             double cost = costExp.evaluate(Settings.Limit.GLOBAL ? |             double cost = costExp.evaluate(Settings.Limit.GLOBAL ? | ||||||
|                     player.getPlotCount() : |                     player.getPlotCount() : | ||||||
|                     player.getPlotCount(plotarea.getWorldName())); |                     player.getPlotCount(plotarea.getWorldName())); | ||||||
|             cost = size * cost + mergeCost; |             cost = (sizeX * sizeZ) * cost; | ||||||
|             if (cost > 0d) { |             if (cost > 0d) { | ||||||
|                 if (!this.econHandler.isSupported()) { |                 if (!this.econHandler.isSupported()) { | ||||||
|                     player.sendMessage(TranslatableCaption.of("economy.vault_or_consumer_null")); |                     player.sendMessage(TranslatableCaption.of("economy.vault_or_consumer_null")); | ||||||
|   | |||||||
| @@ -56,7 +56,7 @@ public class Music extends SubCommand { | |||||||
|             .asList("music_disc_13", "music_disc_cat", "music_disc_blocks", "music_disc_chirp", |             .asList("music_disc_13", "music_disc_cat", "music_disc_blocks", "music_disc_chirp", | ||||||
|                     "music_disc_far", "music_disc_mall", "music_disc_mellohi", "music_disc_stal", |                     "music_disc_far", "music_disc_mall", "music_disc_mellohi", "music_disc_stal", | ||||||
|                     "music_disc_strad", "music_disc_ward", "music_disc_11", "music_disc_wait", "music_disc_otherside", |                     "music_disc_strad", "music_disc_ward", "music_disc_11", "music_disc_wait", "music_disc_otherside", | ||||||
|                     "music_disc_pigstep", "music_disc_5", "music_disc_relic" |                     "music_disc_pigstep", "music_disc_5" | ||||||
|             ); |             ); | ||||||
|  |  | ||||||
|     private final InventoryUtil inventoryUtil; |     private final InventoryUtil inventoryUtil; | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ public interface Caption { | |||||||
|      * |      * | ||||||
|      * @param localeHolder Locale holder |      * @param localeHolder Locale holder | ||||||
|      * @return {@link ComponentLike} |      * @return {@link ComponentLike} | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     @NonNull Component toComponent(@NonNull LocaleHolder localeHolder); |     @NonNull Component toComponent(@NonNull LocaleHolder localeHolder); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -51,7 +51,7 @@ public class CaptionHolder { | |||||||
|      * Get the {@link TagResolver}s to use when resolving tags in the {@link Caption}. |      * Get the {@link TagResolver}s to use when resolving tags in the {@link Caption}. | ||||||
|      * |      * | ||||||
|      * @return The tag resolvers to use. |      * @return The tag resolvers to use. | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public TagResolver[] getTagResolvers() { |     public TagResolver[] getTagResolvers() { | ||||||
|         return this.tagResolvers; |         return this.tagResolvers; | ||||||
| @@ -61,7 +61,7 @@ public class CaptionHolder { | |||||||
|      * Set the {@link TagResolver}s to use when resolving tags in the {@link Caption}. |      * Set the {@link TagResolver}s to use when resolving tags in the {@link Caption}. | ||||||
|      * |      * | ||||||
|      * @param tagResolvers The tag resolvers to use. |      * @param tagResolvers The tag resolvers to use. | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public void setTagResolvers(TagResolver... tagResolvers) { |     public void setTagResolvers(TagResolver... tagResolvers) { | ||||||
|         this.tagResolvers = tagResolvers; |         this.tagResolvers = tagResolvers; | ||||||
|   | |||||||
| @@ -28,20 +28,16 @@ import com.plotsquared.core.plot.flag.implementations.PlotTitleFlag; | |||||||
| import net.kyori.adventure.text.Component; | import net.kyori.adventure.text.Component; | ||||||
| import net.kyori.adventure.text.event.ClickEvent; | import net.kyori.adventure.text.event.ClickEvent; | ||||||
| import net.kyori.adventure.text.minimessage.MiniMessage; | import net.kyori.adventure.text.minimessage.MiniMessage; | ||||||
| import net.kyori.adventure.text.minimessage.ParsingException; |  | ||||||
| import org.checkerframework.checker.nullness.qual.NonNull; | import org.checkerframework.checker.nullness.qual.NonNull; | ||||||
| import org.checkerframework.checker.nullness.qual.Nullable; | import org.checkerframework.checker.nullness.qual.Nullable; | ||||||
|  |  | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
| import java.util.regex.Pattern; |  | ||||||
|  |  | ||||||
| import static com.plotsquared.core.configuration.caption.ComponentTransform.nested; | import static com.plotsquared.core.configuration.caption.ComponentTransform.nested; | ||||||
| import static com.plotsquared.core.configuration.caption.ComponentTransform.stripClicks; | import static com.plotsquared.core.configuration.caption.ComponentTransform.stripClicks; | ||||||
|  |  | ||||||
| public class CaptionUtility { | public class CaptionUtility { | ||||||
|  |  | ||||||
|     private static final Pattern LEGACY_FORMATTING = Pattern.compile("§[a-gklmnor0-9]"); |  | ||||||
|  |  | ||||||
|     // flags which values are parsed by minimessage |     // flags which values are parsed by minimessage | ||||||
|     private static final Set<Class<? extends PlotFlag<?, ?>>> MINI_MESSAGE_FLAGS = Set.of( |     private static final Set<Class<? extends PlotFlag<?, ?>>> MINI_MESSAGE_FLAGS = Set.of( | ||||||
|             GreetingFlag.class, |             GreetingFlag.class, | ||||||
| @@ -104,14 +100,7 @@ public class CaptionUtility { | |||||||
|      */ |      */ | ||||||
|     public static String stripClickEvents(final @NonNull String miniMessageString) { |     public static String stripClickEvents(final @NonNull String miniMessageString) { | ||||||
|         // parse, transform and serialize again |         // parse, transform and serialize again | ||||||
|         Component component; |         Component component = MiniMessage.miniMessage().deserialize(miniMessageString); | ||||||
|         try { |  | ||||||
|             component = MiniMessage.miniMessage().deserialize(miniMessageString); |  | ||||||
|         } catch (ParsingException e) { |  | ||||||
|             // if the String cannot be parsed, we try stripping legacy colors |  | ||||||
|             String legacyStripped = LEGACY_FORMATTING.matcher(miniMessageString).replaceAll(""); |  | ||||||
|             component = MiniMessage.miniMessage().deserialize(legacyStripped); |  | ||||||
|         } |  | ||||||
|         component = CLICK_STRIP_TRANSFORM.transform(component); |         component = CLICK_STRIP_TRANSFORM.transform(component); | ||||||
|         return MiniMessage.miniMessage().serialize(component); |         return MiniMessage.miniMessage().serialize(component); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -19,7 +19,6 @@ | |||||||
| package com.plotsquared.core.configuration.file; | package com.plotsquared.core.configuration.file; | ||||||
|  |  | ||||||
| import com.plotsquared.core.configuration.serialization.ConfigurationSerialization; | import com.plotsquared.core.configuration.serialization.ConfigurationSerialization; | ||||||
| import org.yaml.snakeyaml.LoaderOptions; |  | ||||||
| import org.yaml.snakeyaml.constructor.SafeConstructor; | import org.yaml.snakeyaml.constructor.SafeConstructor; | ||||||
| import org.yaml.snakeyaml.error.YAMLException; | import org.yaml.snakeyaml.error.YAMLException; | ||||||
| import org.yaml.snakeyaml.nodes.Node; | import org.yaml.snakeyaml.nodes.Node; | ||||||
| @@ -31,7 +30,6 @@ import java.util.Map; | |||||||
| public class YamlConstructor extends SafeConstructor { | public class YamlConstructor extends SafeConstructor { | ||||||
|  |  | ||||||
|     YamlConstructor() { |     YamlConstructor() { | ||||||
|         super(new LoaderOptions()); |  | ||||||
|         yamlConstructors.put(Tag.MAP, new ConstructCustomObject()); |         yamlConstructors.put(Tag.MAP, new ConstructCustomObject()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -21,7 +21,6 @@ package com.plotsquared.core.configuration.file; | |||||||
| import com.plotsquared.core.configuration.ConfigurationSection; | import com.plotsquared.core.configuration.ConfigurationSection; | ||||||
| import com.plotsquared.core.configuration.serialization.ConfigurationSerializable; | import com.plotsquared.core.configuration.serialization.ConfigurationSerializable; | ||||||
| import com.plotsquared.core.configuration.serialization.ConfigurationSerialization; | import com.plotsquared.core.configuration.serialization.ConfigurationSerialization; | ||||||
| import org.yaml.snakeyaml.DumperOptions; |  | ||||||
| import org.yaml.snakeyaml.nodes.Node; | import org.yaml.snakeyaml.nodes.Node; | ||||||
| import org.yaml.snakeyaml.representer.Representer; | import org.yaml.snakeyaml.representer.Representer; | ||||||
|  |  | ||||||
| @@ -31,7 +30,6 @@ import java.util.Map; | |||||||
| class YamlRepresenter extends Representer { | class YamlRepresenter extends Representer { | ||||||
|  |  | ||||||
|     YamlRepresenter() { |     YamlRepresenter() { | ||||||
|         super(new DumperOptions()); |  | ||||||
|         this.multiRepresenters.put(ConfigurationSection.class, new RepresentConfigurationSection()); |         this.multiRepresenters.put(ConfigurationSection.class, new RepresentConfigurationSection()); | ||||||
|         this.multiRepresenters |         this.multiRepresenters | ||||||
|                 .put(ConfigurationSerializable.class, new RepresentConfigurationSerializable()); |                 .put(ConfigurationSerializable.class, new RepresentConfigurationSerializable()); | ||||||
|   | |||||||
| @@ -379,11 +379,10 @@ public class ClassicPlotManager extends SquarePlotManager { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         int yStart = classicPlotWorld.getMinBuildHeight() + (classicPlotWorld.PLOT_BEDROCK ? 1 : 0); |  | ||||||
|         if (!plot.isMerged(Direction.NORTH)) { |         if (!plot.isMerged(Direction.NORTH)) { | ||||||
|             int z = bot.getZ(); |             int z = bot.getZ(); | ||||||
|             for (int x = bot.getX(); x < top.getX(); x++) { |             for (int x = bot.getX(); x < top.getX(); x++) { | ||||||
|                 for (int y = yStart; y <= classicPlotWorld.WALL_HEIGHT; y++) { |                 for (int y = classicPlotWorld.getMinBuildHeight(); y <= classicPlotWorld.WALL_HEIGHT; y++) { | ||||||
|                     queue.setBlock(x, y, z, blocks); |                     queue.setBlock(x, y, z, blocks); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -391,7 +390,7 @@ public class ClassicPlotManager extends SquarePlotManager { | |||||||
|         if (!plot.isMerged(Direction.WEST)) { |         if (!plot.isMerged(Direction.WEST)) { | ||||||
|             int x = bot.getX(); |             int x = bot.getX(); | ||||||
|             for (int z = bot.getZ(); z < top.getZ(); z++) { |             for (int z = bot.getZ(); z < top.getZ(); z++) { | ||||||
|                 for (int y = yStart; y <= classicPlotWorld.WALL_HEIGHT; y++) { |                 for (int y = classicPlotWorld.getMinBuildHeight(); y <= classicPlotWorld.WALL_HEIGHT; y++) { | ||||||
|                     queue.setBlock(x, y, z, blocks); |                     queue.setBlock(x, y, z, blocks); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -399,7 +398,7 @@ public class ClassicPlotManager extends SquarePlotManager { | |||||||
|         if (!plot.isMerged(Direction.SOUTH)) { |         if (!plot.isMerged(Direction.SOUTH)) { | ||||||
|             int z = top.getZ(); |             int z = top.getZ(); | ||||||
|             for (int x = bot.getX(); x < top.getX() + (plot.isMerged(Direction.EAST) ? 0 : 1); x++) { |             for (int x = bot.getX(); x < top.getX() + (plot.isMerged(Direction.EAST) ? 0 : 1); x++) { | ||||||
|                 for (int y = yStart; y <= classicPlotWorld.WALL_HEIGHT; y++) { |                 for (int y = classicPlotWorld.getMinBuildHeight(); y <= classicPlotWorld.WALL_HEIGHT; y++) { | ||||||
|                     queue.setBlock(x, y, z, blocks); |                     queue.setBlock(x, y, z, blocks); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -407,7 +406,7 @@ public class ClassicPlotManager extends SquarePlotManager { | |||||||
|         if (!plot.isMerged(Direction.EAST)) { |         if (!plot.isMerged(Direction.EAST)) { | ||||||
|             int x = top.getX(); |             int x = top.getX(); | ||||||
|             for (int z = bot.getZ(); z < top.getZ() + (plot.isMerged(Direction.SOUTH) ? 0 : 1); z++) { |             for (int z = bot.getZ(); z < top.getZ() + (plot.isMerged(Direction.SOUTH) ? 0 : 1); z++) { | ||||||
|                 for (int y = yStart; y <= classicPlotWorld.WALL_HEIGHT; y++) { |                 for (int y = classicPlotWorld.getMinBuildHeight(); y <= classicPlotWorld.WALL_HEIGHT; y++) { | ||||||
|                     queue.setBlock(x, y, z, blocks); |                     queue.setBlock(x, y, z, blocks); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -46,7 +46,7 @@ public abstract class IndependentPlotGenerator { | |||||||
|      * @param result   Queue to write to |      * @param result   Queue to write to | ||||||
|      * @param settings PlotArea (settings) |      * @param settings PlotArea (settings) | ||||||
|      * @param biomes   If biomes should be generated |      * @param biomes   If biomes should be generated | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public abstract void generateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea settings, boolean biomes); |     public abstract void generateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea settings, boolean biomes); | ||||||
|  |  | ||||||
| @@ -55,7 +55,7 @@ public abstract class IndependentPlotGenerator { | |||||||
|      * |      * | ||||||
|      * @param result  Queue to write to |      * @param result  Queue to write to | ||||||
|      * @param setting PlotArea (settings) |      * @param setting PlotArea (settings) | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public void populateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea setting) { |     public void populateChunk(ZeroedDelegateScopedQueueCoordinator result, PlotArea setting) { | ||||||
|     } |     } | ||||||
| @@ -108,7 +108,7 @@ public abstract class IndependentPlotGenerator { | |||||||
|      * @param y        World y position |      * @param y        World y position | ||||||
|      * @param z        World z position |      * @param z        World z position | ||||||
|      * @return Biome type to be generated |      * @return Biome type to be generated | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public abstract BiomeType getBiome(PlotArea settings, int x, int y, int z); |     public abstract BiomeType getBiome(PlotArea settings, int x, int y, int z); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -657,9 +657,9 @@ public abstract class PlotArea implements ComponentLike { | |||||||
|             player.sendMessage( |             player.sendMessage( | ||||||
|                     TranslatableCaption.of("height.height_limit"), |                     TranslatableCaption.of("height.height_limit"), | ||||||
|                     TagResolver.builder() |                     TagResolver.builder() | ||||||
|                             .tag("minheight", Tag.inserting(Component.text(minBuildHeight))) |                             .tag("minHeight", Tag.inserting(Component.text(minBuildHeight))) | ||||||
|                             .tag( |                             .tag( | ||||||
|                                     "maxheight", |                                     "maxHeight", | ||||||
|                                     Tag.inserting(Component.text(maxBuildHeight)) |                                     Tag.inserting(Component.text(maxBuildHeight)) | ||||||
|                             ).build() |                             ).build() | ||||||
|             ); |             ); | ||||||
|   | |||||||
| @@ -91,7 +91,6 @@ import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag; | |||||||
| import com.plotsquared.core.plot.flag.implementations.PveFlag; | import com.plotsquared.core.plot.flag.implementations.PveFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.PvpFlag; | import com.plotsquared.core.plot.flag.implementations.PvpFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.RedstoneFlag; | import com.plotsquared.core.plot.flag.implementations.RedstoneFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.SculkSensorInteractFlag; |  | ||||||
| import com.plotsquared.core.plot.flag.implementations.ServerPlotFlag; | import com.plotsquared.core.plot.flag.implementations.ServerPlotFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.SnowFormFlag; | import com.plotsquared.core.plot.flag.implementations.SnowFormFlag; | ||||||
| import com.plotsquared.core.plot.flag.implementations.SnowMeltFlag; | import com.plotsquared.core.plot.flag.implementations.SnowMeltFlag; | ||||||
| @@ -173,7 +172,6 @@ public final class GlobalFlagContainer extends FlagContainer { | |||||||
|         this.addFlag(MobBreakFlag.MOB_BREAK_FALSE); |         this.addFlag(MobBreakFlag.MOB_BREAK_FALSE); | ||||||
|         this.addFlag(MobPlaceFlag.MOB_PLACE_FALSE); |         this.addFlag(MobPlaceFlag.MOB_PLACE_FALSE); | ||||||
|         this.addFlag(MiscInteractFlag.MISC_INTERACT_FALSE); |         this.addFlag(MiscInteractFlag.MISC_INTERACT_FALSE); | ||||||
|         this.addFlag(SculkSensorInteractFlag.SCULK_SENSOR_INTERACT_FALSE); |  | ||||||
|         this.addFlag(MiscPlaceFlag.MISC_PLACE_FALSE); |         this.addFlag(MiscPlaceFlag.MISC_PLACE_FALSE); | ||||||
|         this.addFlag(MycelGrowFlag.MYCEL_GROW_TRUE); |         this.addFlag(MycelGrowFlag.MYCEL_GROW_TRUE); | ||||||
|         this.addFlag(NotifyEnterFlag.NOTIFY_ENTER_FALSE); |         this.addFlag(NotifyEnterFlag.NOTIFY_ENTER_FALSE); | ||||||
|   | |||||||
| @@ -88,7 +88,7 @@ public abstract class PlotFlag<T, F extends PlotFlag<T, F>> { | |||||||
|      * Gets the flag name as a Kyori {@link Component} |      * Gets the flag name as a Kyori {@link Component} | ||||||
|      * |      * | ||||||
|      * @see #getFlagName(Class) |      * @see #getFlagName(Class) | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public static <T, F extends PlotFlag<T, F>> Component getFlagNameComponent(Class<F> flagClass) { |     public static <T, F extends PlotFlag<T, F>> Component getFlagNameComponent(Class<F> flagClass) { | ||||||
|         return Component.text(getFlagName(flagClass)); |         return Component.text(getFlagName(flagClass)); | ||||||
|   | |||||||
| @@ -1,39 +0,0 @@ | |||||||
| /* |  | ||||||
|  * PlotSquared, a land and world management plugin for Minecraft. |  | ||||||
|  * Copyright (C) IntellectualSites <https://intellectualsites.com> |  | ||||||
|  * Copyright (C) IntellectualSites team and contributors |  | ||||||
|  * |  | ||||||
|  * This program is free software: you can redistribute it and/or modify |  | ||||||
|  * it under the terms of the GNU General Public License as published by |  | ||||||
|  * the Free Software Foundation, either version 3 of the License, or |  | ||||||
|  * (at your option) any later version. |  | ||||||
|  * |  | ||||||
|  * This program is distributed in the hope that it will be useful, |  | ||||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
|  * GNU General Public License for more details. |  | ||||||
|  * |  | ||||||
|  * You should have received a copy of the GNU General Public License |  | ||||||
|  * along with this program.  If not, see <https://www.gnu.org/licenses/>. |  | ||||||
|  */ |  | ||||||
| package com.plotsquared.core.plot.flag.implementations; |  | ||||||
|  |  | ||||||
| import com.plotsquared.core.configuration.caption.TranslatableCaption; |  | ||||||
| import com.plotsquared.core.plot.flag.types.BooleanFlag; |  | ||||||
| import org.checkerframework.checker.nullness.qual.NonNull; |  | ||||||
|  |  | ||||||
| public class SculkSensorInteractFlag extends BooleanFlag<SculkSensorInteractFlag> { |  | ||||||
|  |  | ||||||
|     public static final SculkSensorInteractFlag SCULK_SENSOR_INTERACT_TRUE = new SculkSensorInteractFlag(true); |  | ||||||
|     public static final SculkSensorInteractFlag SCULK_SENSOR_INTERACT_FALSE = new SculkSensorInteractFlag(false); |  | ||||||
|  |  | ||||||
|     private SculkSensorInteractFlag(boolean value) { |  | ||||||
|         super(value, TranslatableCaption.of("flags.flag_description_sculk_sensor_interact")); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     protected SculkSensorInteractFlag flagOf(@NonNull Boolean value) { |  | ||||||
|         return value ? SCULK_SENSOR_INTERACT_TRUE : SCULK_SENSOR_INTERACT_FALSE; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @@ -111,7 +111,7 @@ public interface PlotAreaManager { | |||||||
|      * |      * | ||||||
|      * @param worldName Name of the world to add |      * @param worldName Name of the world to add | ||||||
|      * @return {@code true} if successful, {@code false} if world already existed |      * @return {@code true} if successful, {@code false} if world already existed | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     boolean addWorld(@NonNull String worldName); |     boolean addWorld(@NonNull String worldName); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -66,7 +66,7 @@ public abstract class QueueCoordinator { | |||||||
|      * @param x chunk x coordinate |      * @param x chunk x coordinate | ||||||
|      * @param z chunk z coordinate |      * @param z chunk z coordinate | ||||||
|      * @return a new {@link ZeroedDelegateScopedQueueCoordinator} |      * @return a new {@link ZeroedDelegateScopedQueueCoordinator} | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public ZeroedDelegateScopedQueueCoordinator getForChunk(int x, int z, int minY, int maxY) { |     public ZeroedDelegateScopedQueueCoordinator getForChunk(int x, int z, int minY, int maxY) { | ||||||
|         int bx = x << 4; |         int bx = x << 4; | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ import org.checkerframework.checker.nullness.qual.Nullable; | |||||||
|  * zero in the x and z directions, i.e. starting from 0,0. An offset of the minimum point of the region will then be applied to |  * zero in the x and z directions, i.e. starting from 0,0. An offset of the minimum point of the region will then be applied to | ||||||
|  * x and z. |  * x and z. | ||||||
|  * |  * | ||||||
|  * @since 7.0.0 |  * @since TODO | ||||||
|  */ |  */ | ||||||
| public class ZeroedDelegateScopedQueueCoordinator extends DelegateQueueCoordinator { | public class ZeroedDelegateScopedQueueCoordinator extends DelegateQueueCoordinator { | ||||||
|  |  | ||||||
| @@ -50,7 +50,7 @@ public class ZeroedDelegateScopedQueueCoordinator extends DelegateQueueCoordinat | |||||||
|     /** |     /** | ||||||
|      * Create a new ScopedQueueCoordinator instance that delegates to a given QueueCoordinator. Locations are inclusive. |      * Create a new ScopedQueueCoordinator instance that delegates to a given QueueCoordinator. Locations are inclusive. | ||||||
|      * |      * | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public ZeroedDelegateScopedQueueCoordinator(@Nullable QueueCoordinator parent, @NonNull Location min, @NonNull Location max) { |     public ZeroedDelegateScopedQueueCoordinator(@Nullable QueueCoordinator parent, @NonNull Location min, @NonNull Location max) { | ||||||
|         super(parent); |         super(parent); | ||||||
|   | |||||||
| @@ -36,7 +36,7 @@ public abstract class ChunkManager { | |||||||
|     private static final Map<BlockVector2, RunnableVal<ZeroedDelegateScopedQueueCoordinator>> addChunks = new ConcurrentHashMap<>(); |     private static final Map<BlockVector2, RunnableVal<ZeroedDelegateScopedQueueCoordinator>> addChunks = new ConcurrentHashMap<>(); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public static void setChunkInPlotArea( |     public static void setChunkInPlotArea( | ||||||
|             RunnableVal<ZeroedDelegateScopedQueueCoordinator> force, |             RunnableVal<ZeroedDelegateScopedQueueCoordinator> force, | ||||||
| @@ -76,7 +76,7 @@ public abstract class ChunkManager { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public static boolean preProcessChunk(BlockVector2 loc, ZeroedDelegateScopedQueueCoordinator queue) { |     public static boolean preProcessChunk(BlockVector2 loc, ZeroedDelegateScopedQueueCoordinator queue) { | ||||||
|         final RunnableVal<ZeroedDelegateScopedQueueCoordinator> forceChunk = forceChunks.get(loc); |         final RunnableVal<ZeroedDelegateScopedQueueCoordinator> forceChunk = forceChunks.get(loc); | ||||||
| @@ -89,7 +89,7 @@ public abstract class ChunkManager { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public static boolean postProcessChunk(BlockVector2 loc, ZeroedDelegateScopedQueueCoordinator queue) { |     public static boolean postProcessChunk(BlockVector2 loc, ZeroedDelegateScopedQueueCoordinator queue) { | ||||||
|         final RunnableVal<ZeroedDelegateScopedQueueCoordinator> addChunk = forceChunks.get(loc); |         final RunnableVal<ZeroedDelegateScopedQueueCoordinator> addChunk = forceChunks.get(loc); | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ import java.util.Collection; | |||||||
| /** | /** | ||||||
|  * A utility class for modifying components. |  * A utility class for modifying components. | ||||||
|  * |  * | ||||||
|  * @since 7.0.0 |  * @since TODO | ||||||
|  */ |  */ | ||||||
| public class ComponentHelper { | public class ComponentHelper { | ||||||
|  |  | ||||||
| @@ -37,7 +37,7 @@ public class ComponentHelper { | |||||||
|      * @param components The components to join |      * @param components The components to join | ||||||
|      * @param delimiter  The delimiter to use between the components |      * @param delimiter  The delimiter to use between the components | ||||||
|      * @return The joined components |      * @return The joined components | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public static ComponentLike join(Collection<? extends ComponentLike> components, Component delimiter) { |     public static ComponentLike join(Collection<? extends ComponentLike> components, Component delimiter) { | ||||||
|         return join(components.toArray(ComponentLike[]::new), delimiter); |         return join(components.toArray(ComponentLike[]::new), delimiter); | ||||||
| @@ -49,7 +49,7 @@ public class ComponentHelper { | |||||||
|      * @param components The components to join |      * @param components The components to join | ||||||
|      * @param delimiter  The delimiter to use between the components |      * @param delimiter  The delimiter to use between the components | ||||||
|      * @return The joined components |      * @return The joined components | ||||||
|      * @since 7.0.0 |      * @since TODO | ||||||
|      */ |      */ | ||||||
|     public static Component join(ComponentLike[] components, Component delimiter) { |     public static Component join(ComponentLike[] components, Component delimiter) { | ||||||
|         TextComponent.Builder builder = Component.text(); |         TextComponent.Builder builder = Component.text(); | ||||||
|   | |||||||
| @@ -486,7 +486,7 @@ | |||||||
|   "single.get_position": "<prefix><gold>Go to the first corner and use: <gray><command> to create position 1.</gold>", |   "single.get_position": "<prefix><gold>Go to the first corner and use: <gray><command> to create position 1.</gold>", | ||||||
|   "single.delete_world_region": "<prefix><red>Stop the server and delete: <world>/region.</red>", |   "single.delete_world_region": "<prefix><red>Stop the server and delete: <world>/region.</red>", | ||||||
|   "single.regeneration_complete": "<prefix><gold>Regeneration complete.</gold>", |   "single.regeneration_complete": "<prefix><gold>Regeneration complete.</gold>", | ||||||
|   "single.worldcreation_location": "<prefix><gold>World creation settings may be stored in multiple locations:</gold>\n<dark_gray> - </dark_gray><gray>bukkit.yml in your server's root folder.</gray>\n<dark_gray> - </dark_gray><gray>PlotSquared's worlds.yml</gray>\n<dark_gray> - </dark_gray><gray>Hyperverse's worlds.yml (or any world management plugin)</gray>\n<dark_gray> - </dark_gray><red>Stop the server and delete it from these locations.</red>", |   "single.worldcreation_location": "<prefix><gold>World creation settings may be stored in multiple locations:</gold>\n<dark_gray> - </dark_gray><gray>bukkit.yml in your server's root folder.</gray>\n<dark_gray> - </dark_gray><gray>PlotSquared's settings.yml</gray>\n<dark_gray> - </dark_gray><gray>Hyperverse's worlds.yml (or any world management plugin)</gray>\n<dark_gray> - </dark_gray><red>Stop the server and delete it from these locations.</red>", | ||||||
|   "legacyconfig.legacy_config_found": "<prefix><green>A legacy configuration file was detected. Conversion will be attempted.</green>", |   "legacyconfig.legacy_config_found": "<prefix><green>A legacy configuration file was detected. Conversion will be attempted.</green>", | ||||||
|   "legacyconfig.legacy_config_backup": "<prefix><gold>A copy of worlds.yml has been saved in the file worlds.yml.old</gold>.", |   "legacyconfig.legacy_config_backup": "<prefix><gold>A copy of worlds.yml has been saved in the file worlds.yml.old</gold>.", | ||||||
|   "legacyconfig.legacy_config_replaced": "<prefix><gray><value1> has been replaced with <value2></gray>", |   "legacyconfig.legacy_config_replaced": "<prefix><gray><value1> has been replaced with <value2></gray>", | ||||||
| @@ -572,7 +572,6 @@ | |||||||
|   "flags.flag_description_misc_break": "<gray>Set to `true` to allow guests to break miscellaneous items.</gray>", |   "flags.flag_description_misc_break": "<gray>Set to `true` to allow guests to break miscellaneous items.</gray>", | ||||||
|   "flags.flag_description_misc_cap": "<gray>Set to an integer value to limit the amount of miscellaneous entities on the plot.</gray>", |   "flags.flag_description_misc_cap": "<gray>Set to an integer value to limit the amount of miscellaneous entities on the plot.</gray>", | ||||||
|   "flags.flag_description_misc_interact": "<gray>Set to `true` to allow guests to interact with miscellaneous items.</gray>", |   "flags.flag_description_misc_interact": "<gray>Set to `true` to allow guests to interact with miscellaneous items.</gray>", | ||||||
|   "flags.flag_description_sculk_sensor_interact": "<gray>Set to `true` to allow guests to interact with sculk sensors.</gray>", |  | ||||||
|   "flags.flag_description_misc_place": "<gray>Set to `true` to allow guests to place miscellaneous items.</gray>", |   "flags.flag_description_misc_place": "<gray>Set to `true` to allow guests to place miscellaneous items.</gray>", | ||||||
|   "flags.flag_description_mob_break": "<gray>Set to `true` to allow mobs to break blocks within the plot.</gray>", |   "flags.flag_description_mob_break": "<gray>Set to `true` to allow mobs to break blocks within the plot.</gray>", | ||||||
|   "flags.flag_description_mob_cap": "<gray>Set to an integer value to limit the amount of mobs on the plot.</gray>", |   "flags.flag_description_mob_cap": "<gray>Set to an integer value to limit the amount of mobs on the plot.</gray>", | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ plugins { | |||||||
|     id("xyz.jpenilla.run-paper") version "2.1.0" |     id("xyz.jpenilla.run-paper") version "2.1.0" | ||||||
| } | } | ||||||
|  |  | ||||||
| group = "com.intellectualsites.plotsquared" | group = "com.plotsquared" | ||||||
| version = "7.0.0-SNAPSHOT" | version = "7.0.0-SNAPSHOT" | ||||||
|  |  | ||||||
| if (!File("$rootDir/.git").exists()) { | if (!File("$rootDir/.git").exists()) { | ||||||
| @@ -77,7 +77,7 @@ subprojects { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     dependencies { |     dependencies { | ||||||
|         implementation(platform("com.intellectualsites.bom:bom-newest:1.29")) |         implementation(platform("com.intellectualsites.bom:bom-newest:1.27")) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     dependencies { |     dependencies { | ||||||
| @@ -210,7 +210,7 @@ subprojects { | |||||||
| } | } | ||||||
|  |  | ||||||
| nexusPublishing { | nexusPublishing { | ||||||
|     this.repositories { |     repositories { | ||||||
|         sonatype { |         sonatype { | ||||||
|             nexusUrl.set(URI.create("https://s01.oss.sonatype.org/service/local/")) |             nexusUrl.set(URI.create("https://s01.oss.sonatype.org/service/local/")) | ||||||
|             snapshotRepositoryUrl.set(URI.create("https://s01.oss.sonatype.org/content/repositories/snapshots/")) |             snapshotRepositoryUrl.set(URI.create("https://s01.oss.sonatype.org/content/repositories/snapshots/")) | ||||||
| @@ -222,12 +222,12 @@ tasks.getByName<Jar>("jar") { | |||||||
|     enabled = false |     enabled = false | ||||||
| } | } | ||||||
|  |  | ||||||
| val supportedVersions = listOf("1.16.5", "1.17", "1.17.1", "1.18.2", "1.19", "1.19.1", "1.19.2", "1.19.3", "1.19.4", "1.20") | val supportedVersions = listOf("1.16.5", "1.17", "1.17.1", "1.18.2", "1.19", "1.19.1", "1.19.2", "1.19.3", "1.19.4") | ||||||
| tasks { | tasks { | ||||||
|     supportedVersions.forEach { |     supportedVersions.forEach { | ||||||
|         register<RunServer>("runServer-$it") { |         register<RunServer>("runServer-$it") { | ||||||
|             minecraftVersion(it) |             minecraftVersion(it) | ||||||
|             pluginJars(*project(":plotsquared-bukkit").getTasksByName("shadowJar", false).map { (it as Jar).archiveFile } |             pluginJars(*project(":PlotSquared-Bukkit").getTasksByName("shadowJar", false).map { (it as Jar).archiveFile } | ||||||
|                     .toTypedArray()) |                     .toTypedArray()) | ||||||
|             jvmArgs("-DPaper.IgnoreJavaVersion=true", "-Dcom.mojang.eula.agree=true") |             jvmArgs("-DPaper.IgnoreJavaVersion=true", "-Dcom.mojang.eula.agree=true") | ||||||
|             group = "run paper" |             group = "run paper" | ||||||
|   | |||||||
| @@ -1,13 +1,13 @@ | |||||||
| [versions] | [versions] | ||||||
| # Platform expectations | # Platform expectations | ||||||
| guice = "7.0.0" | guice = "5.1.0" | ||||||
| spotbugs = "4.7.3" | spotbugs = "4.7.3" | ||||||
|  |  | ||||||
| # Plugins | # Plugins | ||||||
| worldedit = "7.2.14" | worldedit = "7.2.14" | ||||||
| placeholderapi = "2.11.3" | placeholderapi = "2.11.3" | ||||||
| luckperms = "5.4" | luckperms = "5.4" | ||||||
| essentialsx = "2.20.0" | essentialsx = "2.19.7" | ||||||
| mvdwapi = "3.1.1" | mvdwapi = "3.1.1" | ||||||
|  |  | ||||||
| # Third party | # Third party | ||||||
| @@ -18,9 +18,9 @@ arkitektonika = "2.1.2" | |||||||
| squirrelid = "0.3.2" | squirrelid = "0.3.2" | ||||||
|  |  | ||||||
| # Gradle plugins | # Gradle plugins | ||||||
| shadow = "8.1.1" | shadow = "7.1.2" | ||||||
| grgit = "4.1.1" | grgit = "4.1.1" | ||||||
| spotless = "6.19.0" | spotless = "6.18.0" | ||||||
| nexus = "1.3.0" | nexus = "1.3.0" | ||||||
|  |  | ||||||
| [libraries] | [libraries] | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| distributionBase=GRADLE_USER_HOME | distributionBase=GRADLE_USER_HOME | ||||||
| distributionPath=wrapper/dists | distributionPath=wrapper/dists | ||||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip | ||||||
| networkTimeout=10000 | networkTimeout=10000 | ||||||
| zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||||
| zipStorePath=wrapper/dists | zipStorePath=wrapper/dists | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							| @@ -85,6 +85,9 @@ done | |||||||
| APP_BASE_NAME=${0##*/} | APP_BASE_NAME=${0##*/} | ||||||
| APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit | APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit | ||||||
|  |  | ||||||
|  | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | ||||||
|  | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' | ||||||
|  |  | ||||||
| # Use the maximum available, or set MAX_FD != -1 to use that value. | # Use the maximum available, or set MAX_FD != -1 to use that value. | ||||||
| MAX_FD=maximum | MAX_FD=maximum | ||||||
|  |  | ||||||
| @@ -194,10 +197,6 @@ if "$cygwin" || "$msys" ; then | |||||||
|     done |     done | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  |  | ||||||
| # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. |  | ||||||
| DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' |  | ||||||
|  |  | ||||||
| # Collect all arguments for the java command; | # Collect all arguments for the java command; | ||||||
| #   * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of | #   * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of | ||||||
| #     shell script including quotes and variable substitutions, so put them in | #     shell script including quotes and variable substitutions, so put them in | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ rootProject.name = "PlotSquared" | |||||||
|  |  | ||||||
| include("Core", "Bukkit") | include("Core", "Bukkit") | ||||||
|  |  | ||||||
| project(":Core").name = "plotsquared-core" | project(":Core").name = "PlotSquared-Core" | ||||||
| project(":Bukkit").name = "plotsquared-bukkit" | project(":Bukkit").name = "PlotSquared-Bukkit" | ||||||
|  |  | ||||||
| enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") | enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user