mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-10-31 09:33:43 +01:00 
			
		
		
		
	Compare commits
	
		
			29 Commits
		
	
	
		
			fix/v7/def
			...
			docs/ploti
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | b858250ffd | ||
|   | 2b0c1465c5 | ||
|   | 1aa370d562 | ||
|   | d3dab0d736 | ||
|   | 764156b267 | ||
|   | 665f5251bf | ||
|   | d46d8b158c | ||
|   | a6fb7b2358 | ||
|   | 7c328095d7 | ||
|   | 7884c91d52 | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | e9a19e0821 | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | 022847fc4b | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | 1ee673be58 | ||
|   | 3c2aa99e86 | ||
|   | 11fac3f060 | ||
|   | 3e57e524b9 | ||
|   | f582ec03c5 | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | 893be136f0 | ||
|   | b74ba30281 | ||
|   | ba9dab1f73 | ||
|   | 8e60fdb477 | ||
|   | 443fe8dd47 | ||
|   | e56e52ba4f | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | cd008bed9b | ||
|   | d4c90283d6 | ||
|   | dc04ec955a | ||
|   | 72f511ce99 | ||
|   | 0d63c2bdb6 | ||
|   | 49e13384cf | 
							
								
								
									
										8
									
								
								.github/renovate.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/renovate.json
									
									
									
									
										vendored
									
									
								
							| @@ -9,5 +9,11 @@ | |||||||
|     "dependencies" |     "dependencies" | ||||||
|   ], |   ], | ||||||
|   "rebaseWhen": "conflicted", |   "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", | ||||||
|  |   ] | ||||||
| } | } | ||||||
|   | |||||||
| @@ -21,20 +21,20 @@ dependencies { | |||||||
|     api(projects.plotsquaredCore) |     api(projects.plotsquaredCore) | ||||||
|  |  | ||||||
|     // Metrics |     // Metrics | ||||||
|     implementation("org.bstats:bstats-bukkit") |     implementation(libs.bstatsBukkit) | ||||||
|  |  | ||||||
|     // Paper |     // Paper | ||||||
|     compileOnly("io.papermc.paper:paper-api") |     compileOnly(libs.paper) | ||||||
|     implementation("io.papermc:paperlib") |     implementation(libs.paperlib) | ||||||
|  |  | ||||||
|     // Plugins |     // Plugins | ||||||
|     compileOnly(libs.worldeditBukkit) { |     compileOnly(libs.worldeditBukkit) { | ||||||
|         exclude(group = "org.bukkit") |         exclude(group = "org.bukkit") | ||||||
|         exclude(group = "org.spigotmc") |         exclude(group = "org.spigotmc") | ||||||
|     } |     } | ||||||
|     compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") { isTransitive = false } |     compileOnly(libs.faweBukkit) { isTransitive = false } | ||||||
|     testImplementation("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit") { isTransitive = false } |     testImplementation(libs.faweBukkit) { isTransitive = false } | ||||||
|     compileOnly("com.github.MilkBowl:VaultAPI") { |     compileOnly(libs.vault) { | ||||||
|         exclude(group = "org.bukkit") |         exclude(group = "org.bukkit") | ||||||
|     } |     } | ||||||
|     compileOnly(libs.placeholderapi) |     compileOnly(libs.placeholderapi) | ||||||
| @@ -44,15 +44,15 @@ dependencies { | |||||||
|  |  | ||||||
|     // Other libraries |     // Other libraries | ||||||
|     implementation(libs.squirrelid) { isTransitive = false } |     implementation(libs.squirrelid) { isTransitive = false } | ||||||
|     implementation("dev.notmyfault.serverlib:ServerLib") |     implementation(libs.serverlib) | ||||||
|  |  | ||||||
|     // Our libraries |     // Our libraries | ||||||
|     implementation(libs.arkitektonika) |     implementation(libs.arkitektonika) | ||||||
|     implementation("com.intellectualsites.paster:Paster") |     implementation(libs.paster) | ||||||
|     implementation("com.intellectualsites.informative-annotations:informative-annotations") |     implementation(libs.informativeAnnotations) | ||||||
|  |  | ||||||
|     // Adventure |     // Adventure | ||||||
|     implementation("net.kyori:adventure-platform-bukkit") |     implementation(libs.adventureBukkit) | ||||||
| } | } | ||||||
|  |  | ||||||
| tasks.processResources { | tasks.processResources { | ||||||
|   | |||||||
| @@ -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()); | ||||||
| @@ -551,7 +550,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl | |||||||
|         this.startMetrics(); |         this.startMetrics(); | ||||||
|  |  | ||||||
|         if (Settings.Enabled_Components.WORLDS) { |         if (Settings.Enabled_Components.WORLDS) { | ||||||
|             TaskManager.getPlatformImplementation().taskRepeat(this::unload, TaskTime.seconds(1L)); |             TaskManager.getPlatformImplementation().taskRepeat(this::unload, TaskTime.seconds(10L)); | ||||||
|             try { |             try { | ||||||
|                 singleWorldListener = injector().getInstance(SingleWorldListener.class); |                 singleWorldListener = injector().getInstance(SingleWorldListener.class); | ||||||
|                 Bukkit.getPluginManager().registerEvents(singleWorldListener, this); |                 Bukkit.getPluginManager().registerEvents(singleWorldListener, this); | ||||||
|   | |||||||
| @@ -44,6 +44,10 @@ public class TranslationUpdateManager { | |||||||
|         String minheightReplacement = "minheight"; |         String minheightReplacement = "minheight"; | ||||||
|         String maxHeight = "maxHeight"; |         String maxHeight = "maxHeight"; | ||||||
|         String maxheightReplacement = "maxheight"; |         String maxheightReplacement = "maxheight"; | ||||||
|  |         String usedGrants = "usedGrants"; | ||||||
|  |         String usedGrantsReplacement = "used_grants"; | ||||||
|  |         String remainingGrants = "remainingGrants"; | ||||||
|  |         String rremainingGrantsReplacement = "remaining_grants"; | ||||||
|  |  | ||||||
|         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 | ||||||
| @@ -53,6 +57,8 @@ public class TranslationUpdateManager { | |||||||
|                         replaceInFile(p, suggestCommand, suggestCommandReplacement); |                         replaceInFile(p, suggestCommand, suggestCommandReplacement); | ||||||
|                         replaceInFile(p, minHeight, minheightReplacement); |                         replaceInFile(p, minHeight, minheightReplacement); | ||||||
|                         replaceInFile(p, maxHeight, maxheightReplacement); |                         replaceInFile(p, maxHeight, maxheightReplacement); | ||||||
|  |                         replaceInFile(p, usedGrants, usedGrantsReplacement); | ||||||
|  |                         replaceInFile(p, remainingGrants, rremainingGrantsReplacement); | ||||||
|                     }); |                     }); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -1,76 +0,0 @@ | |||||||
| # Contributor Covenant Code of Conduct |  | ||||||
|  |  | ||||||
| ## Our Pledge |  | ||||||
|  |  | ||||||
| In the interest of fostering an open and welcoming environment, we as |  | ||||||
| contributors and maintainers pledge to making participation in our project and |  | ||||||
| our community a harassment-free experience for everyone, regardless of age, body |  | ||||||
| size, disability, ethnicity, sex characteristics, gender identity and expression, |  | ||||||
| level of experience, education, socio-economic status, nationality, personal |  | ||||||
| appearance, race, religion, or sexual identity and orientation. |  | ||||||
|  |  | ||||||
| ## Our Standards |  | ||||||
|  |  | ||||||
| Examples of behavior that contributes to creating a positive environment |  | ||||||
| include: |  | ||||||
|  |  | ||||||
| * Using welcoming and inclusive language |  | ||||||
| * Being respectful of differing viewpoints and experiences |  | ||||||
| * Gracefully accepting constructive criticism |  | ||||||
| * Focusing on what is best for the community |  | ||||||
| * Showing empathy towards other community members |  | ||||||
|  |  | ||||||
| Examples of unacceptable behavior by participants include: |  | ||||||
|  |  | ||||||
| * The use of sexualized language or imagery and unwelcome sexual attention or |  | ||||||
|   advances |  | ||||||
| * Trolling, insulting/derogatory comments, and personal or political attacks |  | ||||||
| * Public or private harassment |  | ||||||
| * Publishing others' private information, such as a physical or electronic |  | ||||||
|   address, without explicit permission |  | ||||||
| * Other conduct which could reasonably be considered inappropriate in a |  | ||||||
|   professional setting |  | ||||||
|  |  | ||||||
| ## Our Responsibilities |  | ||||||
|  |  | ||||||
| Project maintainers are responsible for clarifying the standards of acceptable |  | ||||||
| behavior and are expected to take appropriate and fair corrective action in |  | ||||||
| response to any instances of unacceptable behavior. |  | ||||||
|  |  | ||||||
| Project maintainers have the right and responsibility to remove, edit, or |  | ||||||
| reject comments, commits, code, wiki edits, issues, and other contributions |  | ||||||
| that are not aligned to this Code of Conduct, or to ban temporarily or |  | ||||||
| permanently any contributor for other behaviors that they deem inappropriate, |  | ||||||
| threatening, offensive, or harmful. |  | ||||||
|  |  | ||||||
| ## Scope |  | ||||||
|  |  | ||||||
| This Code of Conduct applies both within project spaces and in public spaces |  | ||||||
| when an individual is representing the project or its community. Examples of |  | ||||||
| representing a project or community include using an official project e-mail |  | ||||||
| address, posting via an official social media account, or acting as an appointed |  | ||||||
| representative at an online or offline event. Representation of a project may be |  | ||||||
| further defined and clarified by project maintainers. |  | ||||||
|  |  | ||||||
| ## Enforcement |  | ||||||
|  |  | ||||||
| Instances of abusive, harassing, or otherwise unacceptable behavior may be |  | ||||||
| reported by contacting the project team at contact<at>intellectualsites.com. All |  | ||||||
| complaints will be reviewed and investigated and will result in a response that |  | ||||||
| is deemed necessary and appropriate to the circumstances. The project team is |  | ||||||
| obligated to maintain confidentiality with regard to the reporter of an incident. |  | ||||||
| Further details of specific enforcement policies may be posted separately. |  | ||||||
|  |  | ||||||
| Project maintainers who do not follow or enforce the Code of Conduct in good |  | ||||||
| faith may face temporary or permanent repercussions as determined by other |  | ||||||
| members of the project's leadership. |  | ||||||
|  |  | ||||||
| ## Attribution |  | ||||||
|  |  | ||||||
| This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, |  | ||||||
| available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html |  | ||||||
|  |  | ||||||
| [homepage]: https://www.contributor-covenant.org |  | ||||||
|  |  | ||||||
| For answers to common questions about this code of conduct, see |  | ||||||
| https://www.contributor-covenant.org/faq |  | ||||||
| @@ -2,18 +2,18 @@ import java.time.format.DateTimeFormatter | |||||||
|  |  | ||||||
| dependencies { | dependencies { | ||||||
|     // Expected everywhere. |     // Expected everywhere. | ||||||
|     compileOnlyApi("org.checkerframework:checker-qual") |     compileOnlyApi(libs.checkerqual) | ||||||
|  |  | ||||||
|     // Minecraft expectations |     // Minecraft expectations | ||||||
|     compileOnlyApi("com.google.code.gson:gson") |     compileOnlyApi(libs.gson) | ||||||
|     compileOnly("com.google.guava:guava") |     compileOnly(libs.guava) | ||||||
|  |  | ||||||
|     // Platform expectations |     // Platform expectations | ||||||
|     compileOnlyApi("org.yaml:snakeyaml") |     compileOnlyApi(libs.snakeyaml) | ||||||
|  |  | ||||||
|     // Adventure |     // Adventure | ||||||
|     api("net.kyori:adventure-api") |     api(libs.adventureApi) | ||||||
|     api("net.kyori:adventure-text-minimessage") |     api(libs.adventureMiniMessage) | ||||||
|  |  | ||||||
|     // Guice |     // Guice | ||||||
|     api(libs.guice) { |     api(libs.guice) { | ||||||
| @@ -31,19 +31,19 @@ dependencies { | |||||||
|         exclude(group = "dummypermscompat") |         exclude(group = "dummypermscompat") | ||||||
|     } |     } | ||||||
|     testImplementation(libs.worldeditCore) |     testImplementation(libs.worldeditCore) | ||||||
|     compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core") { isTransitive = false } |     compileOnly(libs.faweBukkit) { isTransitive = false } | ||||||
|     testImplementation("com.fastasyncworldedit:FastAsyncWorldEdit-Core") { isTransitive = false } |     testImplementation(libs.faweCore) { isTransitive = false } | ||||||
|  |  | ||||||
|     // Logging |     // Logging | ||||||
|     compileOnlyApi("org.apache.logging.log4j:log4j-api") |     compileOnlyApi(libs.log4j) | ||||||
|  |  | ||||||
|     // Other libraries |     // Other libraries | ||||||
|     api(libs.prtree) |     api(libs.prtree) | ||||||
|     api(libs.aopalliance) |     api(libs.aopalliance) | ||||||
|     api(libs.cloudServices) |     api(libs.cloudServices) | ||||||
|     api(libs.arkitektonika) |     api(libs.arkitektonika) | ||||||
|     api("com.intellectualsites.paster:Paster") |     api(libs.paster) | ||||||
|     api("com.intellectualsites.informative-annotations:informative-annotations") |     api(libs.informativeAnnotations) | ||||||
| } | } | ||||||
|  |  | ||||||
| tasks.processResources { | tasks.processResources { | ||||||
|   | |||||||
| @@ -131,8 +131,8 @@ public class Auto extends SubCommand { | |||||||
|                         player.sendMessage( |                         player.sendMessage( | ||||||
|                                 TranslatableCaption.of("economy.removed_granted_plot"), |                                 TranslatableCaption.of("economy.removed_granted_plot"), | ||||||
|                                 TagResolver.builder() |                                 TagResolver.builder() | ||||||
|                                         .tag("usedGrants", Tag.inserting(Component.text(grantedPlots - left))) |                                         .tag("used_grants", Tag.inserting(Component.text(grantedPlots - left))) | ||||||
|                                         .tag("remainingGrants", Tag.inserting(Component.text(left))) |                                         .tag("remaining_grants", Tag.inserting(Component.text(left))) | ||||||
|                                         .build() |                                         .build() | ||||||
|                         ); |                         ); | ||||||
|                     } |                     } | ||||||
| @@ -294,7 +294,7 @@ public class Auto extends SubCommand { | |||||||
|                 return true; |                 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 costExp = plotarea.getPrices().get("claim"); | ||||||
|             PlotExpression mergeCostExp = plotarea.getPrices().get("merge"); |             PlotExpression mergeCostExp = plotarea.getPrices().get("merge"); | ||||||
|             int size = sizeX * sizeZ; |             int size = sizeX * sizeZ; | ||||||
|   | |||||||
| @@ -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"); |                 PlotExpression costExr = area.getPrices().get("claim"); | ||||||
|                 double cost = costExr.evaluate(currentPlots); |                 double cost = costExr.evaluate(currentPlots); | ||||||
|                 if (cost > 0d) { |                 if (cost > 0d) { | ||||||
| @@ -186,8 +186,8 @@ public class Claim extends SubCommand { | |||||||
|                 player.sendMessage( |                 player.sendMessage( | ||||||
|                         TranslatableCaption.of("economy.removed_granted_plot"), |                         TranslatableCaption.of("economy.removed_granted_plot"), | ||||||
|                         TagResolver.builder() |                         TagResolver.builder() | ||||||
|                                 .tag("usedGrants", Tag.inserting(Component.text(grants - 1))) |                                 .tag("used_grants", Tag.inserting(Component.text(grants - 1))) | ||||||
|                                 .tag("remainingGrants", Tag.inserting(Component.text(grants))) |                                 .tag("remaining_grants", Tag.inserting(Component.text(grants))) | ||||||
|                                 .build() |                                 .build() | ||||||
|                 ); |                 ); | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -96,6 +96,7 @@ public class DebugRoadRegen extends SubCommand { | |||||||
|         PlotArea area = location.getPlotArea(); |         PlotArea area = location.getPlotArea(); | ||||||
|         if (area == null) { |         if (area == null) { | ||||||
|             player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world")); |             player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world")); | ||||||
|  |             return false; | ||||||
|         } |         } | ||||||
|         Plot plot = player.getCurrentPlot(); |         Plot plot = player.getCurrentPlot(); | ||||||
|         if (plot == null) { |         if (plot == null) { | ||||||
|   | |||||||
| @@ -183,7 +183,7 @@ public class MainCommand extends Command { | |||||||
|                     if (cmd.hasConfirmation(player)) { |                     if (cmd.hasConfirmation(player)) { | ||||||
|                         CmdConfirm.addPending(player, cmd.getUsage(), () -> { |                         CmdConfirm.addPending(player, cmd.getUsage(), () -> { | ||||||
|                             PlotArea area = player.getApplicablePlotArea(); |                             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 = |                                 PlotExpression priceEval = | ||||||
|                                         area.getPrices().get(cmd.getFullId()); |                                         area.getPrices().get(cmd.getFullId()); | ||||||
|                                 double price = priceEval != null ? priceEval.evaluate(0d) : 0d; |                                 double price = priceEval != null ? priceEval.evaluate(0d) : 0d; | ||||||
| @@ -201,7 +201,7 @@ public class MainCommand extends Command { | |||||||
|                         return; |                         return; | ||||||
|                     } |                     } | ||||||
|                     PlotArea area = player.getApplicablePlotArea(); |                     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()); |                         PlotExpression priceEval = area.getPrices().get(cmd.getFullId()); | ||||||
|                         double price = priceEval != null ? priceEval.evaluate(0d) : 0d; |                         double price = priceEval != null ? priceEval.evaluate(0d) : 0d; | ||||||
|                         if (price != 0d && econHandler.getMoney(player) < price) { |                         if (price != 0d && econHandler.getMoney(player) < price) { | ||||||
|   | |||||||
| @@ -178,7 +178,7 @@ public class Merge extends SubCommand { | |||||||
|                 return true; |                 return true; | ||||||
|             } |             } | ||||||
|             if (plot.getPlotModificationManager().autoMerge(Direction.ALL, maxSize, uuid, player, terrain)) { |             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); |                     this.econHandler.withdrawMoney(player, price); | ||||||
|                     player.sendMessage( |                     player.sendMessage( | ||||||
|                             TranslatableCaption.of("economy.removed_balance"), |                             TranslatableCaption.of("economy.removed_balance"), | ||||||
| @@ -196,8 +196,8 @@ public class Merge extends SubCommand { | |||||||
|             player.sendMessage(TranslatableCaption.of("merge.no_available_automerge")); |             player.sendMessage(TranslatableCaption.of("merge.no_available_automerge")); | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
|         if (!force && this.econHandler.isEnabled(plotArea) && price > 0d |         if (!force && this.econHandler.isEnabled(plotArea) && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON) && price > 0d && this.econHandler.getMoney( | ||||||
|                 && this.econHandler.getMoney(player) < price) { |                 player) < price) { | ||||||
|             player.sendMessage( |             player.sendMessage( | ||||||
|                     TranslatableCaption.of("economy.cannot_afford_merge"), |                     TranslatableCaption.of("economy.cannot_afford_merge"), | ||||||
|                     TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) |                     TagResolver.resolver("money", Tag.inserting(Component.text(this.econHandler.format(price)))) | ||||||
| @@ -218,7 +218,7 @@ public class Merge extends SubCommand { | |||||||
|             return true; |             return true; | ||||||
|         } |         } | ||||||
|         if (plot.getPlotModificationManager().autoMerge(direction, maxSize - size, uuid, player, terrain)) { |         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); |                 this.econHandler.withdrawMoney(player, price); | ||||||
|                 player.sendMessage( |                 player.sendMessage( | ||||||
|                         TranslatableCaption.of("economy.removed_balance"), |                         TranslatableCaption.of("economy.removed_balance"), | ||||||
| @@ -259,7 +259,7 @@ public class Merge extends SubCommand { | |||||||
|                     accepter.sendMessage(TranslatableCaption.of("merge.merge_not_valid")); |                     accepter.sendMessage(TranslatableCaption.of("merge.merge_not_valid")); | ||||||
|                     return; |                     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) { |                     if (!force && this.econHandler.getMoney(player) < price) { | ||||||
|                         player.sendMessage( |                         player.sendMessage( | ||||||
|                                 TranslatableCaption.of("economy.cannot_afford_merge"), |                                 TranslatableCaption.of("economy.cannot_afford_merge"), | ||||||
| @@ -303,7 +303,7 @@ public class Merge extends SubCommand { | |||||||
|                         player, |                         player, | ||||||
|                         terrain |                         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) { |                         if (!force && this.econHandler.getMoney(player) < price) { | ||||||
|                             player.sendMessage( |                             player.sendMessage( | ||||||
|                                     TranslatableCaption.of("economy.cannot_afford_merge"), |                                     TranslatableCaption.of("economy.cannot_afford_merge"), | ||||||
|   | |||||||
| @@ -206,7 +206,7 @@ public class ComponentPresetManager { | |||||||
|                     return false; |                     return false; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 if (componentPreset.cost() > 0.0D) { |                 if (componentPreset.cost() > 0.0D && !player.hasPermission(Permission.PERMISSION_ADMIN_BYPASS_ECON)) { | ||||||
|                     if (!econHandler.isEnabled(plot.getArea())) { |                     if (!econHandler.isEnabled(plot.getArea())) { | ||||||
|                         getPlayer().sendMessage( |                         getPlayer().sendMessage( | ||||||
|                                 TranslatableCaption.of("preset.economy_disabled"), |                                 TranslatableCaption.of("preset.economy_disabled"), | ||||||
|   | |||||||
| @@ -77,6 +77,10 @@ public class HybridUtils { | |||||||
|     private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + HybridUtils.class.getSimpleName()); |     private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + HybridUtils.class.getSimpleName()); | ||||||
|     private static final BlockState AIR = BlockTypes.AIR.getDefaultState(); |     private static final BlockState AIR = BlockTypes.AIR.getDefaultState(); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Deprecated and likely to be removed in a future release. | ||||||
|  |      */ | ||||||
|  |     @Deprecated(forRemoval = true, since = "7.0.0") | ||||||
|     public static HybridUtils manager; |     public static HybridUtils manager; | ||||||
|     public static Set<BlockVector2> regions; |     public static Set<BlockVector2> regions; | ||||||
|     public static int height; |     public static int height; | ||||||
|   | |||||||
| @@ -66,7 +66,7 @@ public final class UncheckedWorldLocation extends Location { | |||||||
|      * @param world World |      * @param world World | ||||||
|      * @param loc   Coordinates |      * @param loc   Coordinates | ||||||
|      * @return New location |      * @return New location | ||||||
|      * @since TODO |      * @since 7.0.0 | ||||||
|      */ |      */ | ||||||
|     @DoNotUse |     @DoNotUse | ||||||
|     public static @NonNull UncheckedWorldLocation at(final @NonNull String world, BlockVector3 loc) { |     public static @NonNull UncheckedWorldLocation at(final @NonNull String world, BlockVector3 loc) { | ||||||
|   | |||||||
| @@ -201,7 +201,8 @@ public enum Permission implements ComponentLike { | |||||||
|     PERMISSION_RATE("plots.rate"), |     PERMISSION_RATE("plots.rate"), | ||||||
|     PERMISSION_ADMIN_FLIGHT("plots.admin.flight"), |     PERMISSION_ADMIN_FLIGHT("plots.admin.flight"), | ||||||
|     PERMISSION_ADMIN_COMPONENTS_OTHER("plots.admin.component.other"), |     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"); | ||||||
|     //</editor-fold> |     //</editor-fold> | ||||||
|  |  | ||||||
|     private final String text; |     private final String text; | ||||||
|   | |||||||
| @@ -25,9 +25,9 @@ import java.util.UUID; | |||||||
| public interface OfflinePlotPlayer extends PermissionHolder { | public interface OfflinePlotPlayer extends PermissionHolder { | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Gets the {@code UUID} of this player |      * Returns the UUID of the player. | ||||||
|      * |      * | ||||||
|      * @return the player {@link UUID} |      * @return the UUID of the player | ||||||
|      */ |      */ | ||||||
|     UUID getUUID(); |     UUID getUUID(); | ||||||
|  |  | ||||||
| @@ -39,9 +39,9 @@ public interface OfflinePlotPlayer extends PermissionHolder { | |||||||
|     long getLastPlayed(); |     long getLastPlayed(); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Gets the name of this player. |      * Returns the name of the player. | ||||||
|      * |      * | ||||||
|      * @return the player name |      * @return the name of the player | ||||||
|      */ |      */ | ||||||
|     String getName(); |     String getName(); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -273,8 +273,9 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer, | |||||||
|         return this.meta == null ? null : this.meta.remove(key); |         return this.meta == null ? null : this.meta.remove(key); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * This player's name. |      * Returns the name of the player. | ||||||
|      * |      * | ||||||
|      * @return the name of the player |      * @return the name of the player | ||||||
|      */ |      */ | ||||||
|   | |||||||
| @@ -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); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -67,14 +67,25 @@ public class PlotItemStack { | |||||||
|         return this.type; |         return this.type; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Returns the number of items in this stack. | ||||||
|  |      * Valid values range from 1-255. | ||||||
|  |      * | ||||||
|  |      * @return the amount of items in this stack | ||||||
|  |      */ | ||||||
|     public int getAmount() { |     public int getAmount() { | ||||||
|         return amount; |         return amount; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Returns the given name of this stack of items. The name is displayed when | ||||||
|  |      * hovering over the item. | ||||||
|  |      * | ||||||
|  |      * @return the given name of this stack of items | ||||||
|  |      */ | ||||||
|     public String getName() { |     public String getName() { | ||||||
|         return name; |         return name; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public String[] getLore() { |     public String[] getLore() { | ||||||
|         return lore; |         return lore; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -891,7 +891,6 @@ public final class PlotModificationManager { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * /** |  | ||||||
|      * Sets components such as border, wall, floor. |      * Sets components such as border, wall, floor. | ||||||
|      * (components are generator specific) |      * (components are generator specific) | ||||||
|      * |      * | ||||||
|   | |||||||
| @@ -18,9 +18,25 @@ | |||||||
|  */ |  */ | ||||||
| package com.plotsquared.core.plot; | package com.plotsquared.core.plot; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * The different types of weather that can be set for a Plot. | ||||||
|  |  */ | ||||||
| public enum PlotWeather { | public enum PlotWeather { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Rainy weather conditions | ||||||
|  |      */ | ||||||
|     RAIN, |     RAIN, | ||||||
|  |     /** | ||||||
|  |      * Clear weather conditions | ||||||
|  |      */ | ||||||
|     CLEAR, |     CLEAR, | ||||||
|  |     /** | ||||||
|  |      * Use the weather of the world the plot is in | ||||||
|  |      */ | ||||||
|     WORLD, |     WORLD, | ||||||
|  |     /** | ||||||
|  |      * Turn off weather for the plot | ||||||
|  |      */ | ||||||
|     OFF |     OFF | ||||||
| } | } | ||||||
|   | |||||||
| @@ -124,7 +124,7 @@ | |||||||
|   "economy.cannot_afford_merge": "<prefix><red>You cannot afford to merge the plots. It costs <gold><money></gold>.</red>", |   "economy.cannot_afford_merge": "<prefix><red>You cannot afford to merge the plots. It costs <gold><money></gold>.</red>", | ||||||
|   "economy.added_balance": "<prefix><gold><money> </gold><gray>has been added to your balance.</gray>", |   "economy.added_balance": "<prefix><gold><money> </gold><gray>has been added to your balance.</gray>", | ||||||
|   "economy.removed_balance": "<prefix><gold><money> </gold><gray>has been taken from your balance.</gray>", |   "economy.removed_balance": "<prefix><gold><money> </gold><gray>has been taken from your balance.</gray>", | ||||||
|   "economy.removed_granted_plot": "<prefix><gray>You used <usedGrants> plot grant(s), you've got </gray><gold><remainingGrants></gold> <gray>left.</gray>", |   "economy.removed_granted_plot": "<prefix><gray>You used <used_grants> plot grant(s), you've got </gray><gold><remaining_grants></gold> <gray>left.</gray>", | ||||||
|   "setup.choose_generator": "<gold>What generator do you want?</gold>", |   "setup.choose_generator": "<gold>What generator do you want?</gold>", | ||||||
|   "setup.setup_not_started": "<prefix><gold>No setup started.</gold>", |   "setup.setup_not_started": "<prefix><gold>No setup started.</gold>", | ||||||
|   "setup.setup_init": "<prefix><gold>Usage: </gold><gray>/plot setup <value></gray>", |   "setup.setup_init": "<prefix><gold>Usage: </gold><gray>/plot setup <value></gray>", | ||||||
|   | |||||||
| @@ -17,11 +17,11 @@ plugins { | |||||||
|     eclipse |     eclipse | ||||||
|     idea |     idea | ||||||
|  |  | ||||||
|     id("xyz.jpenilla.run-paper") version "2.1.0" |     alias(libs.plugins.runPaper) | ||||||
| } | } | ||||||
|  |  | ||||||
| group = "com.intellectualsites.plotsquared" | group = "com.intellectualsites.plotsquared" | ||||||
| version = "7.0.0-SNAPSHOT" | version = "7.0.1-SNAPSHOT" | ||||||
|  |  | ||||||
| if (!File("$rootDir/.git").exists()) { | if (!File("$rootDir/.git").exists()) { | ||||||
|     logger.lifecycle(""" |     logger.lifecycle(""" | ||||||
| @@ -76,10 +76,6 @@ subprojects { | |||||||
|         plugin<IdeaPlugin>() |         plugin<IdeaPlugin>() | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     dependencies { |  | ||||||
|         implementation(platform("com.intellectualsites.bom:bom-newest:1.34")) |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     dependencies { |     dependencies { | ||||||
|         // Tests |         // Tests | ||||||
|         testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") |         testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") | ||||||
|   | |||||||
| @@ -1,13 +1,22 @@ | |||||||
| [versions] | [versions] | ||||||
| # Platform expectations | # Platform expectations | ||||||
|  | paper = "1.20.1-R0.1-SNAPSHOT" | ||||||
| guice = "7.0.0" | guice = "7.0.0" | ||||||
| spotbugs = "4.7.3" | 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 | # Plugins | ||||||
| worldedit = "7.2.15" | worldedit = "7.2.15" | ||||||
|  | fawe = "2.7.1" | ||||||
| placeholderapi = "2.11.3" | placeholderapi = "2.11.3" | ||||||
| luckperms = "5.4" | luckperms = "5.4" | ||||||
| essentialsx = "2.20.0" | essentialsx = "2.20.1" | ||||||
| mvdwapi = "3.1.1" | mvdwapi = "3.1.1" | ||||||
|  |  | ||||||
| # Third party | # Third party | ||||||
| @@ -16,18 +25,34 @@ aopalliance = "1.0" | |||||||
| cloud-services = "1.8.3" | cloud-services = "1.8.3" | ||||||
| arkitektonika = "2.1.2" | arkitektonika = "2.1.2" | ||||||
| squirrelid = "0.3.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.4" | ||||||
|  |  | ||||||
| # Gradle plugins | # Gradle plugins | ||||||
| shadow = "8.1.1" | shadow = "8.1.1" | ||||||
| grgit = "4.1.1" | grgit = "4.1.1" | ||||||
| spotless = "6.20.0" | spotless = "6.21.0" | ||||||
| nexus = "1.3.0" | nexus = "1.3.0" | ||||||
|  | runPaper = "2.1.0" | ||||||
|  |  | ||||||
| [libraries] | [libraries] | ||||||
| # Platform expectations | # Platform expectations | ||||||
|  | paper = { group = "io.papermc.paper", name = "paper-api", version.ref = "paper" } | ||||||
| guice = { group = "com.google.inject", name = "guice", version.ref = "guice" } | guice = { group = "com.google.inject", name = "guice", version.ref = "guice" } | ||||||
| guiceassistedinject = { group = "com.google.inject.extensions", name = "guice-assistedinject", 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" } | 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 | # Plugins | ||||||
| worldeditCore = { group = "com.sk89q.worldedit", name = "worldedit-core", version.ref = "worldedit" } | 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" } | placeholderapi = { group = "me.clip", name = "placeholderapi", version.ref = "placeholderapi" } | ||||||
| luckperms = { group = "net.luckperms", name = "api", version.ref = "luckperms" } | luckperms = { group = "net.luckperms", name = "api", version.ref = "luckperms" } | ||||||
| essentialsx = { group = "net.essentialsx", name = "EssentialsX", version.ref = "essentialsx" } | 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 | # Third party | ||||||
| prtree = { group = "com.intellectualsites.prtree", name = "PRTree", version.ref = "prtree" } | 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" } | mvdwapi = { group = "com.intellectualsites.mvdwplaceholderapi", name = "MVdWPlaceholderAPI", version.ref = "mvdwapi" } | ||||||
| squirrelid = { group = "org.enginehub", name = "squirrelid", version.ref = "squirrelid" } | squirrelid = { group = "org.enginehub", name = "squirrelid", version.ref = "squirrelid" } | ||||||
| arkitektonika = { group = "com.intellectualsites.arkitektonika", name = "Arkitektonika-Client", version.ref = "arkitektonika" } | 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] | [plugins] | ||||||
| shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } | shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } | ||||||
| grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" } | grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" } | ||||||
| spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } | spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } | ||||||
| nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus" } | nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus" } | ||||||
|  | runPaper = { id = "xyz.jpenilla.run-paper", version.ref = "runPaper" } | ||||||
|   | |||||||
							
								
								
									
										
											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.2.1-bin.zip | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip | ||||||
| networkTimeout=10000 | networkTimeout=10000 | ||||||
| validateDistributionUrl=true | validateDistributionUrl=true | ||||||
| zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							| @@ -83,7 +83,8 @@ done | |||||||
| # This is normally unused | # This is normally unused | ||||||
| # shellcheck disable=SC2034 | # shellcheck disable=SC2034 | ||||||
| APP_BASE_NAME=${0##*/} | APP_BASE_NAME=${0##*/} | ||||||
| APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) | ||||||
|  | APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit | ||||||
|  |  | ||||||
| # 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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user