mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-10-31 01:23:44 +01:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			docs/ploti
			...
			feature/v7
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | e5a4026a2a | ||
|   | e138dc0267 | ||
|   | ca50b53f94 | ||
|   | f705487055 | ||
|   | b7c9453a1a | 
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -138,6 +138,5 @@ build/ | |||||||
|  |  | ||||||
| .DS_Store | .DS_Store | ||||||
| # Ignore run folders | # Ignore run folders | ||||||
| run-[0-0].[0-9]/ | run-[0-9].[0-9][0-9]/ | ||||||
| run-[0-0].[0-9].[0-9]/ | run-[0-9].[0-9][0-9].[0-9]/ | ||||||
|  |  | ||||||
|   | |||||||
| @@ -252,6 +252,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|  |     @SuppressWarnings("deprecation") // Paper deprecation | ||||||
|     public void onEnable() { |     public void onEnable() { | ||||||
|         this.pluginName = getDescription().getName(); |         this.pluginName = getDescription().getName(); | ||||||
|  |  | ||||||
| @@ -1160,6 +1161,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl | |||||||
|         return new BukkitPlotGenerator(world, generator, this.plotAreaManager); |         return new BukkitPlotGenerator(world, generator, this.plotAreaManager); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @SuppressWarnings("deprecation") // Paper deprecation | ||||||
|     @Override |     @Override | ||||||
|     public @NonNull String pluginsFormatted() { |     public @NonNull String pluginsFormatted() { | ||||||
|         StringBuilder msg = new StringBuilder(); |         StringBuilder msg = new StringBuilder(); | ||||||
| @@ -1181,7 +1183,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     @SuppressWarnings("ConstantConditions") |     @SuppressWarnings({"ConstantConditions", "deprecation"}) // Paper deprecation | ||||||
|     public @NonNull String worldEditImplementations() { |     public @NonNull String worldEditImplementations() { | ||||||
|         StringBuilder msg = new StringBuilder(); |         StringBuilder msg = new StringBuilder(); | ||||||
|         if (Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit") != null) { |         if (Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit") != null) { | ||||||
|   | |||||||
| @@ -74,6 +74,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { | |||||||
|     private HorseStats horse; |     private HorseStats horse; | ||||||
|     private boolean noGravity; |     private boolean noGravity; | ||||||
|  |  | ||||||
|  |     @SuppressWarnings("deprecation") // Deprecation exists since 1.20, while we support 1.16 onwards | ||||||
|     public ReplicatingEntityWrapper(Entity entity, short depth) { |     public ReplicatingEntityWrapper(Entity entity, short depth) { | ||||||
|         super(entity); |         super(entity); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -369,6 +369,7 @@ public class PlayerEventListener implements Listener { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) |     @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) | ||||||
|  |     @SuppressWarnings("deprecation") // Paper deprecation | ||||||
|     public void onConnect(PlayerJoinEvent event) { |     public void onConnect(PlayerJoinEvent event) { | ||||||
|         final Player player = event.getPlayer(); |         final Player player = event.getPlayer(); | ||||||
|         PlotSquared.platform().playerManager().removePlayer(player.getUniqueId()); |         PlotSquared.platform().playerManager().removePlayer(player.getUniqueId()); | ||||||
| @@ -733,6 +734,7 @@ public class PlayerEventListener implements Listener { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @EventHandler(priority = EventPriority.LOW) |     @EventHandler(priority = EventPriority.LOW) | ||||||
|  |     @SuppressWarnings("deprecation") // Paper deprecation | ||||||
|     public void onChat(AsyncPlayerChatEvent event) { |     public void onChat(AsyncPlayerChatEvent event) { | ||||||
|         if (event.isCancelled()) { |         if (event.isCancelled()) { | ||||||
|             return; |             return; | ||||||
| @@ -1063,6 +1065,7 @@ public class PlayerEventListener implements Listener { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @EventHandler(priority = EventPriority.LOW) |     @EventHandler(priority = EventPriority.LOW) | ||||||
|  |     @SuppressWarnings("deprecation") // Paper deprecation | ||||||
|     public void onCancelledInteract(PlayerInteractEvent event) { |     public void onCancelledInteract(PlayerInteractEvent event) { | ||||||
|         if (event.isCancelled() && event.getAction() == Action.RIGHT_CLICK_AIR) { |         if (event.isCancelled() && event.getAction() == Action.RIGHT_CLICK_AIR) { | ||||||
|             Player player = event.getPlayer(); |             Player player = event.getPlayer(); | ||||||
|   | |||||||
| @@ -44,6 +44,7 @@ import java.util.stream.IntStream; | |||||||
| @Singleton | @Singleton | ||||||
| public class BukkitInventoryUtil extends InventoryUtil { | public class BukkitInventoryUtil extends InventoryUtil { | ||||||
|  |  | ||||||
|  |     @SuppressWarnings("deprecation") // Paper deprecation | ||||||
|     private static @Nullable ItemStack getItem(PlotItemStack item) { |     private static @Nullable ItemStack getItem(PlotItemStack item) { | ||||||
|         if (item == null) { |         if (item == null) { | ||||||
|             return null; |             return null; | ||||||
|   | |||||||
| @@ -67,6 +67,7 @@ public class BukkitSetupUtils extends SetupUtils { | |||||||
|         this.worldFile = worldFile; |         this.worldFile = worldFile; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @SuppressWarnings("deprecation") // Paper deprecation | ||||||
|     @Override |     @Override | ||||||
|     public void updateGenerators(final boolean force) { |     public void updateGenerators(final boolean force) { | ||||||
|         if (loaded && !SetupUtils.generators.isEmpty() && !force) { |         if (loaded && !SetupUtils.generators.isEmpty() && !force) { | ||||||
|   | |||||||
| @@ -60,7 +60,7 @@ public class UpdateUtility implements Listener { | |||||||
|         task = Bukkit.getScheduler().runTaskTimerAsynchronously(this.javaPlugin, () -> { |         task = Bukkit.getScheduler().runTaskTimerAsynchronously(this.javaPlugin, () -> { | ||||||
|             try { |             try { | ||||||
|                 HttpsURLConnection connection = (HttpsURLConnection) new URL( |                 HttpsURLConnection connection = (HttpsURLConnection) new URL( | ||||||
|                         "https://api.spigotmc.org/simple/0.1/index.php?action=getResource&id=77506") |                         "https://api.spigotmc.org/simple/0.2/index.php?action=getResource&id=77506") | ||||||
|                         .openConnection(); |                         .openConnection(); | ||||||
|                 connection.setRequestMethod("GET"); |                 connection.setRequestMethod("GET"); | ||||||
|                 JsonObject result = new JsonParser() |                 JsonObject result = new JsonParser() | ||||||
|   | |||||||
| @@ -517,6 +517,7 @@ public class ListCmd extends SubCommand { | |||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|                 finalResolver.tag("players", Tag.inserting(builder.asComponent())); |                 finalResolver.tag("players", Tag.inserting(builder.asComponent())); | ||||||
|  |                 finalResolver.tag("size", Tag.inserting(Component.text(plot.getConnectedPlots().size()))); | ||||||
|                 caption.set(TranslatableCaption.of("info.plot_list_item")); |                 caption.set(TranslatableCaption.of("info.plot_list_item")); | ||||||
|                 caption.setTagResolvers(finalResolver.build()); |                 caption.setTagResolvers(finalResolver.build()); | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -26,8 +26,8 @@ import java.util.Iterator; | |||||||
| import java.util.NoSuchElementException; | import java.util.NoSuchElementException; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Plot (X,Y) tuples for plot locations |  * The PlotId class represents a Plot's x and y coordinates within a {@link PlotArea}. PlotId x,y values do not correspond to Block locations. | ||||||
|  * within a plot area |  * A PlotId instance can be created using the {@link #of(int, int)} method or parsed from a string using the {@link #fromString(String)} method. | ||||||
|  */ |  */ | ||||||
| public final class PlotId { | public final class PlotId { | ||||||
|  |  | ||||||
| @@ -36,10 +36,10 @@ public final class PlotId { | |||||||
|     private final int hash; |     private final int hash; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * PlotId class (PlotId x,y values do not correspond to Block locations) |      * Constructs a new PlotId with the given x and y coordinates. | ||||||
|      * |      * | ||||||
|      * @param x The plot x coordinate |      * @param x the x-coordinate of the plot | ||||||
|      * @param y The plot y coordinate |      * @param y the y-coordinate of the plot | ||||||
|      */ |      */ | ||||||
|     private PlotId(final int x, final int y) { |     private PlotId(final int x, final int y) { | ||||||
|         this.x = x; |         this.x = x; | ||||||
| @@ -48,11 +48,11 @@ public final class PlotId { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Create a new plot ID instance |      * Returns a new PlotId instance with the specified x and y coordinates. | ||||||
|      * |      * | ||||||
|      * @param x The plot x coordinate |      * @param x the x-coordinate of the plot | ||||||
|      * @param y The plot y coordinate |      * @param y the y-coordinate of the plot | ||||||
|      * @return a new PlotId at x,y |      * @return a new PlotId instance with the specified x and y coordinates | ||||||
|      */ |      */ | ||||||
|     public static @NonNull PlotId of(final int x, final int y) { |     public static @NonNull PlotId of(final int x, final int y) { | ||||||
|         return new PlotId(x, y); |         return new PlotId(x, y); | ||||||
| @@ -74,10 +74,13 @@ public final class PlotId { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Attempt to parse a plot ID from a string |      * Returns a PlotId object from the given string, or null if the string is invalid. | ||||||
|  |      * The string should be in the format "x;y" where x and y are integers. | ||||||
|  |      * The string can also contain any combination of the characters ";_,." | ||||||
|  |      * as delimiters. | ||||||
|      * |      * | ||||||
|      * @param string ID string |      * @param string the string to parse | ||||||
|      * @return Plot ID, or {@code null} if none could be parsed |      * @return a PlotId object parsed from the given string, or null if the string is invalid | ||||||
|      */ |      */ | ||||||
|     public static @Nullable PlotId fromStringOrNull(final @NonNull String string) { |     public static @Nullable PlotId fromStringOrNull(final @NonNull String string) { | ||||||
|         final String[] parts = string.split("[;_,.]"); |         final String[] parts = string.split("[;_,.]"); | ||||||
| @@ -95,39 +98,39 @@ public final class PlotId { | |||||||
|         return of(x, y); |         return of(x, y); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Gets the PlotId from the HashCode<br> |      * Returns a new PlotId instance from the given hash. | ||||||
|      * Note: Only accurate for small x,z values (short) |  | ||||||
|      * |      * | ||||||
|      * @param hash ID hash |      * @param hash the hash to unpair | ||||||
|      * @return Plot ID |      * @return a new PlotId instance | ||||||
|      */ |      */ | ||||||
|     public static @NonNull PlotId unpair(final int hash) { |     public static @NonNull PlotId unpair(final int hash) { | ||||||
|         return PlotId.of(hash >> 16, hash & 0xFFFF); |         return PlotId.of(hash >> 16, hash & 0xFFFF); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get the ID X component |      * Returns the x-coordinate of this Plot ID. | ||||||
|      * |      * | ||||||
|      * @return X component |      * @return the x-coordinate of this Plot ID | ||||||
|      */ |      */ | ||||||
|     public int getX() { |     public int getX() { | ||||||
|         return this.x; |         return this.x; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get the ID Y component |      * Returns the y-coordinate of this Plot ID. | ||||||
|      * |      * | ||||||
|      * @return Y component |      * @return the y-coordinate of this Plot ID | ||||||
|      */ |      */ | ||||||
|     public int getY() { |     public int getY() { | ||||||
|         return this.y; |         return this.y; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get the next plot ID for claiming purposes |      * Returns the next Plot ID for claiming purposes based on the current Plot ID. | ||||||
|      * |      * | ||||||
|      * @return Next plot ID |      * @return the next Plot ID | ||||||
|      */ |      */ | ||||||
|     public @NonNull PlotId getNextId() { |     public @NonNull PlotId getNextId() { | ||||||
|         final int absX = Math.abs(x); |         final int absX = Math.abs(x); | ||||||
| @@ -159,10 +162,11 @@ public final class PlotId { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get the PlotId in a relative direction |      * Returns a new Plot ID in the specified relative direction based on the | ||||||
|  |      * current Plot ID. | ||||||
|      * |      * | ||||||
|      * @param direction Direction |      * @param direction the direction in which to get the relative Plot ID | ||||||
|      * @return Relative plot ID |      * @return the relative Plot ID | ||||||
|      */ |      */ | ||||||
|     public @NonNull PlotId getRelative(final @NonNull Direction direction) { |     public @NonNull PlotId getRelative(final @NonNull Direction direction) { | ||||||
|         return switch (direction) { |         return switch (direction) { | ||||||
| @@ -193,10 +197,11 @@ public final class PlotId { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get a String representation of the plot ID where the |      * Returns a string representation of this Plot ID in the format "x;y". | ||||||
|      * components are separated by ";" |  | ||||||
|      * |      * | ||||||
|      * @return {@code x + ";" + y} |      * <p> The format is {@code x + ";" + y} | ||||||
|  |      * | ||||||
|  |      * @return a string representation of this Plot ID | ||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|     public @NonNull String toString() { |     public @NonNull String toString() { | ||||||
| @@ -204,41 +209,40 @@ public final class PlotId { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get a String representation of the plot ID where the |      * Returns a string representation of this Plot ID with the specified separator. | ||||||
|      * components are separated by a specified string |      * <p> | ||||||
|  |      * The format is {@code x + separator + y} | ||||||
|      * |      * | ||||||
|      * @param separator Separator |      * @param separator the separator to use between the X and Y coordinates | ||||||
|      * @return {@code x + separator + y} |      * @return a string representation of this Plot ID with the specified separator | ||||||
|      */ |      */ | ||||||
|     public @NonNull String toSeparatedString(String separator) { |     public @NonNull String toSeparatedString(String separator) { | ||||||
|         return this.getX() + separator + this.getY(); |         return this.getX() + separator + this.getY(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get a String representation of the plot ID where the |      * Returns a string representation of this Plot ID in the format "x,y". | ||||||
|      * components are separated by "," |  | ||||||
|      * |      * | ||||||
|      * @return {@code x + "," + y} |      * @return a string representation of this Plot ID | ||||||
|      */ |      */ | ||||||
|     public @NonNull String toCommaSeparatedString() { |     public @NonNull String toCommaSeparatedString() { | ||||||
|         return this.getX() + "," + this.getY(); |         return this.getX() + "," + this.getY(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get a String representation of the plot ID where the |      * Returns a string representation of this Plot ID in the format "x_y". | ||||||
|      * components are separated by "_" |  | ||||||
|      * |      * | ||||||
|      * @return {@code x + "_" + y} |      * @return a string representation of this Plot ID | ||||||
|      */ |      */ | ||||||
|  |  | ||||||
|     public @NonNull String toUnderscoreSeparatedString() { |     public @NonNull String toUnderscoreSeparatedString() { | ||||||
|         return this.getX() + "_" + this.getY(); |         return this.getX() + "_" + this.getY(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get a String representation of the plot ID where the |      * Returns a string representation of this Plot ID in the format "x-y". | ||||||
|      * components are separated by "-" |  | ||||||
|      * |      * | ||||||
|      * @return {@code x + "-" + y} |      * @return a string representation of this Plot ID | ||||||
|      */ |      */ | ||||||
|     public @NonNull String toDashSeparatedString() { |     public @NonNull String toDashSeparatedString() { | ||||||
|         return this.getX() + "-" + this.getY(); |         return this.getX() + "-" + this.getY(); | ||||||
| @@ -250,6 +254,10 @@ public final class PlotId { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * An iterator that iterates over a range of {@link PlotId}s. | ||||||
|  |      * The range is defined by a start and end {@link PlotId}. | ||||||
|  |      */ | ||||||
|     public static final class PlotRangeIterator implements Iterator<PlotId>, Iterable<PlotId> { |     public static final class PlotRangeIterator implements Iterator<PlotId>, Iterable<PlotId> { | ||||||
|  |  | ||||||
|         private final PlotId start; |         private final PlotId start; | ||||||
| @@ -265,6 +273,13 @@ public final class PlotId { | |||||||
|             this.y = this.start.getY(); |             this.y = this.start.getY(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         /** | ||||||
|  |          * Returns a new {@link PlotRangeIterator} that iterates over the range of Plots between the specified start and end Plots (inclusive). | ||||||
|  |          * | ||||||
|  |          * @param start the starting Plot of the range | ||||||
|  |          * @param end the ending Plot of the range | ||||||
|  |          * @return a new {@link PlotRangeIterator} that iterates over the range of Plots between the specified start and end Plots (inclusive) | ||||||
|  |          */ | ||||||
|         public static PlotRangeIterator range(final @NonNull PlotId start, final @NonNull PlotId end) { |         public static PlotRangeIterator range(final @NonNull PlotId start, final @NonNull PlotId end) { | ||||||
|             return new PlotRangeIterator(start, end); |             return new PlotRangeIterator(start, end); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -187,6 +187,7 @@ public final class PlaceholderRegistry { | |||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|         this.createPlaceholder("currentplot_biome", (player, plot) -> plot.getBiomeSynchronous().toString()); |         this.createPlaceholder("currentplot_biome", (player, plot) -> plot.getBiomeSynchronous().toString()); | ||||||
|  |         this.createPlaceholder("currentplot_size", (player, plot) -> String.valueOf(plot.getConnectedPlots().size())); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| import com.diffplug.gradle.spotless.SpotlessPlugin | import com.diffplug.gradle.spotless.SpotlessPlugin | ||||||
| import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin | import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin | ||||||
|  | import groovy.json.JsonSlurper | ||||||
| import java.net.URI | import java.net.URI | ||||||
| import xyz.jpenilla.runpaper.task.RunServer | import xyz.jpenilla.runpaper.task.RunServer | ||||||
|  |  | ||||||
| @@ -218,14 +219,23 @@ 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", "1.18.2", "1.19.4", "1.20.1") | ||||||
| tasks { | tasks { | ||||||
|  |     val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL() | ||||||
|  |     val artifact = ((JsonSlurper().parse(lastSuccessfulBuildUrl) as Map<*, *>)["artifacts"] as List<*>) | ||||||
|  |             .map { it as Map<*, *> } | ||||||
|  |             .map { it["fileName"] as String } | ||||||
|  |             .first { it.contains("Bukkit") } | ||||||
|  |  | ||||||
|     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") | ||||||
|  |             downloadPlugins { | ||||||
|  |                 url("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/artifact/artifacts/$artifact") | ||||||
|  |             } | ||||||
|             group = "run paper" |             group = "run paper" | ||||||
|             runDirectory.set(file("run-$it")) |             runDirectory.set(file("run-$it")) | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ shadow = "8.1.1" | |||||||
| grgit = "4.1.1" | grgit = "4.1.1" | ||||||
| spotless = "6.21.0" | spotless = "6.21.0" | ||||||
| nexus = "1.3.0" | nexus = "1.3.0" | ||||||
| runPaper = "2.1.0" | runPaper = "2.2.0" | ||||||
|  |  | ||||||
| [libraries] | [libraries] | ||||||
| # Platform expectations | # Platform expectations | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user