mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-10-25 15:43:44 +02:00 
			
		
		
		
	Compare commits
	
		
			9 Commits
		
	
	
		
			feat/v7/be
			...
			fix/contex
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 5b3c7a2934 | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | b7b25252c6 | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | 7123f51bb5 | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | 897afa894e | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | 2238609551 | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | 255959232b | ||
|   | 622c9f1d13 | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | e7aff3982e | ||
| ![renovate[bot]](/assets/img/avatar_default.png)  | db7ea780f9 | 
							
								
								
									
										2
									
								
								.github/workflows/build-pr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/build-pr.yml
									
									
									
									
										vendored
									
									
								
							| @@ -11,7 +11,7 @@ jobs: | ||||
|       - name: Checkout Repository | ||||
|         uses: actions/checkout@v5 | ||||
|       - name: Validate Gradle Wrapper | ||||
|         uses: gradle/actions/wrapper-validation@v4 | ||||
|         uses: gradle/actions/wrapper-validation@v5 | ||||
|       - name: Setup Java | ||||
|         uses: actions/setup-java@v5 | ||||
|         with: | ||||
|   | ||||
							
								
								
									
										2
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -11,7 +11,7 @@ jobs: | ||||
|       - name: Checkout Repository | ||||
|         uses: actions/checkout@v5 | ||||
|       - name: Validate Gradle Wrapper | ||||
|         uses: gradle/actions/wrapper-validation@v4 | ||||
|         uses: gradle/actions/wrapper-validation@v5 | ||||
|       - name: Setup Java | ||||
|         uses: actions/setup-java@v5 | ||||
|         with: | ||||
|   | ||||
							
								
								
									
										6
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
								
							| @@ -27,10 +27,10 @@ jobs: | ||||
|           distribution: temurin | ||||
|           java-version: 21 | ||||
|       - name: Initialize CodeQL | ||||
|         uses: github/codeql-action/init@v3 | ||||
|         uses: github/codeql-action/init@v4 | ||||
|         with: | ||||
|           languages: ${{ matrix.language }} | ||||
|       - name: Autobuild | ||||
|         uses: github/codeql-action/autobuild@v3 | ||||
|         uses: github/codeql-action/autobuild@v4 | ||||
|       - name: Perform CodeQL Analysis | ||||
|         uses: github/codeql-action/analyze@v3 | ||||
|         uses: github/codeql-action/analyze@v4 | ||||
|   | ||||
| @@ -160,7 +160,7 @@ public class EntityEventListener implements Listener { | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|             case "REINFORCEMENTS", "NATURAL", "MOUNT", "PATROL", "RAID", "SHEARED", "SILVERFISH_BLOCK", "ENDER_PEARL", | ||||
|             case "REINFORCEMENTS", "NATURAL", "MOUNT", "PATROL", "RAID", "SILVERFISH_BLOCK", "ENDER_PEARL", | ||||
|                  "TRAP", "VILLAGE_DEFENSE", "VILLAGE_INVASION", "BEEHIVE", "CHUNK_GEN", "NETHER_PORTAL", | ||||
|                  "FROZEN", "SPELL", "DEFAULT" -> { | ||||
|                 if (!area.isMobSpawning()) { | ||||
|   | ||||
| @@ -202,7 +202,7 @@ public class PaperListener implements Listener { | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|             case "REINFORCEMENTS", "NATURAL", "MOUNT", "PATROL", "RAID", "SHEARED", "SILVERFISH_BLOCK", "ENDER_PEARL", "TRAP", "VILLAGE_DEFENSE", "VILLAGE_INVASION", "BEEHIVE", "CHUNK_GEN" -> { | ||||
|             case "REINFORCEMENTS", "NATURAL", "MOUNT", "PATROL", "RAID", "SILVERFISH_BLOCK", "ENDER_PEARL", "TRAP", "VILLAGE_DEFENSE", "VILLAGE_INVASION", "BEEHIVE", "CHUNK_GEN" -> { | ||||
|                 if (!area.isMobSpawning()) { | ||||
|                     event.setShouldAbortSpawn(true); | ||||
|                     event.setCancelled(true); | ||||
|   | ||||
| @@ -23,8 +23,6 @@ import com.plotsquared.core.PlotSquared; | ||||
| import com.plotsquared.core.configuration.Settings; | ||||
| import com.plotsquared.core.configuration.caption.TranslatableCaption; | ||||
| import com.plotsquared.core.database.DBFunc; | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.events.Result; | ||||
| import com.plotsquared.core.permissions.Permission; | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
| @@ -153,41 +151,20 @@ public class Add extends Command { | ||||
|                         return; | ||||
|                     } | ||||
|                     // Success | ||||
|                     confirm.run( | ||||
|                             this, () -> { | ||||
|                                 for (UUID uuid : uuids) { | ||||
|                                     if (this.eventDispatcher.callPlayerAdd( | ||||
|                                             player, | ||||
|                                             plot, | ||||
|                                             uuid, | ||||
|                                             PlayerPlotAddRemoveEvent.Reason.COMMAND | ||||
|                                     ).getEventResult() == Result.DENY) { | ||||
|                                         player.sendMessage( | ||||
|                                                 TranslatableCaption.of("events.event_denied"), | ||||
|                                                 TagResolver.resolver("value", Tag.inserting(Component.text("Add"))) | ||||
|                                         ); | ||||
|                                         continue; | ||||
|                     confirm.run(this, () -> { | ||||
|                         for (UUID uuid : uuids) { | ||||
|                             if (uuid != DBFunc.EVERYONE) { | ||||
|                                 if (!plot.removeTrusted(uuid)) { | ||||
|                                     if (plot.getDenied().contains(uuid)) { | ||||
|                                         plot.removeDenied(uuid); | ||||
|                                     } | ||||
|                                     if (uuid != DBFunc.EVERYONE) { | ||||
|                                         if (!plot.removeTrusted(uuid)) { | ||||
|                                             if (plot.getDenied().contains(uuid)) { | ||||
|                                                 plot.removeDenied(uuid); | ||||
|                                             } | ||||
|                                         } | ||||
|                                     } | ||||
|                                     plot.addMember(uuid); | ||||
|                                     this.eventDispatcher.callMember(player, plot, uuid, true); | ||||
|                                     this.eventDispatcher.callPostAdded( | ||||
|                                             player, | ||||
|                                             plot, | ||||
|                                             uuid, | ||||
|                                             false, | ||||
|                                             PlayerPlotAddRemoveEvent.Reason.COMMAND | ||||
|                                     ); | ||||
|                                     player.sendMessage(TranslatableCaption.of("member.member_added")); | ||||
|                                 } | ||||
|                             }, null | ||||
|                     ); | ||||
|                             } | ||||
|                             plot.addMember(uuid); | ||||
|                             this.eventDispatcher.callMember(player, plot, uuid, true); | ||||
|                             player.sendMessage(TranslatableCaption.of("member.member_added")); | ||||
|                         } | ||||
|                     }, null); | ||||
|                 } catch (final Throwable exception) { | ||||
|                     future.completeExceptionally(exception); | ||||
|                     return; | ||||
|   | ||||
| @@ -90,7 +90,7 @@ public class DebugRoadRegen extends SubCommand { | ||||
|     } | ||||
|  | ||||
|     public boolean regenPlot(PlotPlayer<?> player) { | ||||
|         PlotArea area = player.getCurrentPlot().getArea(); | ||||
|         PlotArea area = player.getContextualPlotArea(); | ||||
|         if (area == null) { | ||||
|             player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world")); | ||||
|             return false; | ||||
| @@ -145,9 +145,10 @@ public class DebugRoadRegen extends SubCommand { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         PlotArea area = player.getCurrentPlot().getArea(); | ||||
|         PlotArea area = player.getContextualPlotArea(); | ||||
|         if (area == null) { | ||||
|             player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world")); | ||||
|             return false; | ||||
|         } | ||||
|         Plot plot = player.getCurrentPlot(); | ||||
|         PlotManager manager = area.getPlotManager(); | ||||
|   | ||||
| @@ -23,8 +23,6 @@ import com.plotsquared.core.PlotSquared; | ||||
| import com.plotsquared.core.configuration.Settings; | ||||
| import com.plotsquared.core.configuration.caption.TranslatableCaption; | ||||
| import com.plotsquared.core.database.DBFunc; | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.events.Result; | ||||
| import com.plotsquared.core.events.TeleportCause; | ||||
| import com.plotsquared.core.location.Location; | ||||
| import com.plotsquared.core.permissions.Permission; | ||||
| @@ -126,29 +124,21 @@ public class Deny extends SubCommand { | ||||
|                         ); | ||||
|                         return; | ||||
|                     } else { | ||||
|                         if (this.eventDispatcher | ||||
|                                 .callPlayerDeny(player, plot, uuid, PlayerPlotAddRemoveEvent.Reason.COMMAND) | ||||
|                                 .getEventResult() == Result.DENY) { | ||||
|                             player.sendMessage( | ||||
|                                     TranslatableCaption.of("events.event_denied"), | ||||
|                                     TagResolver.resolver("value", Tag.inserting(Component.text("Deny"))) | ||||
|                             ); | ||||
|                             continue; | ||||
|                         } | ||||
|                         if (uuid != DBFunc.EVERYONE) { | ||||
|                             plot.removeMember(uuid); | ||||
|                             plot.removeTrusted(uuid); | ||||
|                         } | ||||
|                         plot.addDenied(uuid); | ||||
|                         this.eventDispatcher.callDenied(player, plot, uuid, true); | ||||
|                         this.eventDispatcher.callPostDenied(player, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                         if (!uuid.equals(DBFunc.EVERYONE)) { | ||||
|                             handleKick(PlotSquared.platform().playerManager().getPlayerIfExists(uuid), plot); | ||||
|                         } else { | ||||
|                             for (PlotPlayer<?> plotPlayer : plot.getPlayersInPlot()) { | ||||
|                                 if (plot.isDenied(plotPlayer.getUUID())) { | ||||
|                                     handleKick(plotPlayer, plot); | ||||
|                                 // Ignore plot-owners | ||||
|                                 if (plot.isAdded(plotPlayer.getUUID())) { | ||||
|                                     continue; | ||||
|                                 } | ||||
|                                 handleKick(plotPlayer, plot); | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|   | ||||
| @@ -20,8 +20,6 @@ package com.plotsquared.core.command; | ||||
|  | ||||
| import com.google.inject.Inject; | ||||
| import com.plotsquared.core.configuration.caption.TranslatableCaption; | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.events.Result; | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
| import com.plotsquared.core.util.EventDispatcher; | ||||
| @@ -63,22 +61,11 @@ public class Leave extends Command { | ||||
|         } else { | ||||
|             UUID uuid = player.getUUID(); | ||||
|             if (plot.isAdded(uuid)) { | ||||
|                 if (this.eventDispatcher | ||||
|                         .callPlayerRemove(player, plot, uuid, PlayerPlotAddRemoveEvent.Reason.COMMAND) | ||||
|                         .getEventResult() == Result.DENY) { | ||||
|                     player.sendMessage( | ||||
|                             TranslatableCaption.of("events.event_denied"), | ||||
|                             TagResolver.resolver("value", Tag.inserting(Component.text("Leave"))) | ||||
|                     ); | ||||
|                     return  CompletableFuture.completedFuture(true); | ||||
|                 } | ||||
|                 if (plot.removeTrusted(uuid)) { | ||||
|                     this.eventDispatcher.callTrusted(player, plot, uuid, false); | ||||
|                     this.eventDispatcher.callPostTrusted(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                 } | ||||
|                 if (plot.removeMember(uuid)) { | ||||
|                     this.eventDispatcher.callMember(player, plot, uuid, false); | ||||
|                     this.eventDispatcher.callPostAdded(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                 } | ||||
|                 player.sendMessage( | ||||
|                         TranslatableCaption.of("member.plot_left"), | ||||
|   | ||||
| @@ -150,8 +150,8 @@ public class ListCmd extends SubCommand { | ||||
|             page = 0; | ||||
|         } | ||||
|  | ||||
|         String world = player.getCurrentPlot().getWorldName(); | ||||
|         PlotArea area = player.getCurrentPlot().getArea(); | ||||
|         PlotArea area = player.getContextualPlotArea(); | ||||
|         String world = area != null ? area.getWorldName() : ""; | ||||
|         String arg = args[0].toLowerCase(); | ||||
|         final boolean[] sort = new boolean[]{true}; | ||||
|  | ||||
|   | ||||
| @@ -68,11 +68,6 @@ public class Load extends SubCommand { | ||||
|  | ||||
|     @Override | ||||
|     public boolean onCommand(final PlotPlayer<?> player, final String[] args) { | ||||
|         final String world = player.getCurrentPlot().getWorldName(); | ||||
|         if (!this.plotAreaManager.hasPlotArea(world)) { | ||||
|             player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world")); | ||||
|             return false; | ||||
|         } | ||||
|         final Plot plot = player.getCurrentPlot(); | ||||
|         if (plot == null) { | ||||
|             player.sendMessage(TranslatableCaption.of("errors.not_in_plot")); | ||||
|   | ||||
| @@ -21,9 +21,6 @@ package com.plotsquared.core.command; | ||||
| import com.google.inject.Inject; | ||||
| import com.plotsquared.core.configuration.caption.TranslatableCaption; | ||||
| import com.plotsquared.core.database.DBFunc; | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.events.Result; | ||||
| import com.plotsquared.core.location.Location; | ||||
| import com.plotsquared.core.permissions.Permission; | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
| @@ -85,48 +82,33 @@ public class Remove extends SubCommand { | ||||
|                 return; | ||||
|             } else if (!uuids.isEmpty()) { | ||||
|                 for (UUID uuid : uuids) { | ||||
|                     if (this.eventDispatcher | ||||
|                             .callPlayerRemove(player, plot, uuid, PlayerPlotAddRemoveEvent.Reason.COMMAND) | ||||
|                             .getEventResult() == Result.DENY) { | ||||
|                         player.sendMessage( | ||||
|                                 TranslatableCaption.of("events.event_denied"), | ||||
|                                 TagResolver.resolver("value", Tag.inserting(Component.text("Remove"))) | ||||
|                         ); | ||||
|                         continue; | ||||
|                     } | ||||
|                     if (plot.getTrusted().contains(uuid)) { | ||||
|                         if (plot.removeTrusted(uuid)) { | ||||
|                             this.eventDispatcher.callTrusted(player, plot, uuid, false); | ||||
|                             this.eventDispatcher.callPostTrusted(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                             count++; | ||||
|                         } | ||||
|                     } else if (plot.getMembers().contains(uuid)) { | ||||
|                         if (plot.removeMember(uuid)) { | ||||
|                             this.eventDispatcher.callMember(player, plot, uuid, false); | ||||
|                             this.eventDispatcher.callPostAdded(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                             count++; | ||||
|                         } | ||||
|                     } else if (plot.getDenied().contains(uuid)) { | ||||
|                         if (plot.removeDenied(uuid)) { | ||||
|                             this.eventDispatcher.callDenied(player, plot, uuid, false); | ||||
|                             this.eventDispatcher.callPostDenied(player, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                             count++; | ||||
|                         } | ||||
|                     } else if (uuid == DBFunc.EVERYONE) { | ||||
|                         count += plot.getTrusted().size(); | ||||
|                         if (plot.removeTrusted(uuid)) { | ||||
|                             this.eventDispatcher.callTrusted(player, plot, uuid, false); | ||||
|                             this.eventDispatcher.callPostTrusted(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                         } | ||||
|                         count += plot.getMembers().size(); | ||||
|                         if (plot.removeMember(uuid)) { | ||||
|                             this.eventDispatcher.callMember(player, plot, uuid, false); | ||||
|                             this.eventDispatcher.callPostAdded(player, plot, uuid, false, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                         } | ||||
|                         count += plot.getDenied().size(); | ||||
|                         if (plot.removeDenied(uuid)) { | ||||
|                             this.eventDispatcher.callDenied(player, plot, uuid, false); | ||||
|                             this.eventDispatcher.callPostDenied(player, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.COMMAND); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|   | ||||
| @@ -78,7 +78,7 @@ public class Set extends SubCommand { | ||||
|  | ||||
|             @Override | ||||
|             public boolean set(PlotPlayer<?> player, final Plot plot, String value) { | ||||
|                 final PlotArea plotArea = player.getCurrentPlot().getArea(); | ||||
|                 final PlotArea plotArea = player.getContextualPlotArea(); | ||||
|                 if (plotArea == null) { | ||||
|                     return false; | ||||
|                 } | ||||
|   | ||||
| @@ -23,8 +23,6 @@ import com.plotsquared.core.PlotSquared; | ||||
| import com.plotsquared.core.configuration.Settings; | ||||
| import com.plotsquared.core.configuration.caption.TranslatableCaption; | ||||
| import com.plotsquared.core.database.DBFunc; | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.events.Result; | ||||
| import com.plotsquared.core.permissions.Permission; | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
| @@ -152,43 +150,23 @@ public class Trust extends Command { | ||||
|                     return; | ||||
|                 } | ||||
|                 // Success | ||||
|                 confirm.run( | ||||
|                         this, () -> { | ||||
|                             for (UUID uuid : uuids) { | ||||
|                                 if (this.eventDispatcher | ||||
|                                         .callPlayerTrust(player, currentPlot, uuid, PlayerPlotAddRemoveEvent.Reason.COMMAND) | ||||
|                                         .getEventResult() == Result.DENY) { | ||||
|                                     player.sendMessage( | ||||
|                                             TranslatableCaption.of("events.event_denied"), | ||||
|                                             TagResolver.resolver("value", Tag.inserting(Component.text("Trust"))) | ||||
|                                     ); | ||||
|                                     return; | ||||
|                 confirm.run(this, () -> { | ||||
|                     for (UUID uuid : uuids) { | ||||
|                         if (uuid != DBFunc.EVERYONE) { | ||||
|                             if (!currentPlot.removeMember(uuid)) { | ||||
|                                 if (currentPlot.getDenied().contains(uuid)) { | ||||
|                                     currentPlot.removeDenied(uuid); | ||||
|                                 } | ||||
|  | ||||
|                                 if (uuid != DBFunc.EVERYONE) { | ||||
|                                     if (!currentPlot.removeMember(uuid)) { | ||||
|                                         if (currentPlot.getDenied().contains(uuid)) { | ||||
|                                             currentPlot.removeDenied(uuid); | ||||
|                                         } | ||||
|                                     } | ||||
|                                 } | ||||
|                                 currentPlot.addTrusted(uuid); | ||||
|                                 this.eventDispatcher.callTrusted(player, currentPlot, uuid, true); | ||||
|                                 this.eventDispatcher.callPostTrusted( | ||||
|                                         player, | ||||
|                                         currentPlot, | ||||
|                                         uuid, | ||||
|                                         false, | ||||
|                                         PlayerPlotAddRemoveEvent.Reason.COMMAND | ||||
|                                 ); | ||||
|                                 player.sendMessage(TranslatableCaption.of("trusted.trusted_added")); | ||||
|                             } | ||||
|                         }, null | ||||
|                 ); | ||||
|                         } | ||||
|                         currentPlot.addTrusted(uuid); | ||||
|                         this.eventDispatcher.callTrusted(player, currentPlot, uuid, true); | ||||
|                         player.sendMessage(TranslatableCaption.of("trusted.trusted_added")); | ||||
|                     } | ||||
|                 }, null); | ||||
|             } | ||||
|                     future.complete(true); | ||||
|                 } | ||||
|         ); | ||||
|             future.complete(true); | ||||
|         }); | ||||
|         return CompletableFuture.completedFuture(true); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -1,45 +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.events; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Called when a player is going to be added to a plot | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public class PlayerPlotAddEvent extends PlayerPlotAddRemoveCancellableEvent { | ||||
|  | ||||
|     /** | ||||
|      * Called when a player will be added to a plot | ||||
|      * | ||||
|      * @param initiator Player that initiated the event | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that will be added | ||||
|      * @param reason    The reason for the add | ||||
|      */ | ||||
|     public PlayerPlotAddEvent(PlotPlayer<?> initiator, Plot plot, UUID player, Reason reason) { | ||||
|         super(initiator, plot, player, reason); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,55 +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.events; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
| import org.checkerframework.checker.nullness.qual.Nullable; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Parent class for the varies events regarding a player being added/removed/denied/trusted | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public class PlayerPlotAddRemoveCancellableEvent extends PlayerPlotAddRemoveEvent implements CancellablePlotEvent { | ||||
|  | ||||
|     private Result eventResult; | ||||
|  | ||||
|     protected PlayerPlotAddRemoveCancellableEvent( | ||||
|             final PlotPlayer<?> initiator, | ||||
|             Plot plot, | ||||
|             final UUID player, | ||||
|             final Reason reason | ||||
|     ) { | ||||
|         super(initiator, plot, player, reason); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public @Nullable Result getEventResult() { | ||||
|         return eventResult; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void setEventResult(@Nullable final Result eventResult) { | ||||
|         this.eventResult = eventResult; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,88 +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.events; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
| import org.checkerframework.checker.nullness.qual.Nullable; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Parent class for the varies events regarding a player being added/removed/denied/trusted | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public class PlayerPlotAddRemoveEvent extends PlotEvent { | ||||
|  | ||||
|     private final Reason reason; | ||||
|     private final PlotPlayer<?> initiator; | ||||
|     private final UUID player; | ||||
|  | ||||
|     protected PlayerPlotAddRemoveEvent(final PlotPlayer<?> initiator, Plot plot, final UUID player, final Reason reason) { | ||||
|         super(plot); | ||||
|         this.initiator = initiator; | ||||
|         this.player = player; | ||||
|         this.reason = reason; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * The player to be added/denied/removed/trusted. | ||||
|      * | ||||
|      * @return UUID | ||||
|      */ | ||||
|     public UUID getPlayer() { | ||||
|         return this.player; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * The player initiating the action. May be null (if a player, or a {@link com.plotsquared.core.player.ConsolePlayer}. | ||||
|      * | ||||
|      * @return PlotPlayer | ||||
|      */ | ||||
|     @Nullable | ||||
|     public PlotPlayer<?> getInitiator() { | ||||
|         return this.initiator; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get the reason the player is being added/removed/denied/trusted | ||||
|      * | ||||
|      * @return Reason | ||||
|      */ | ||||
|     public Reason getReason() { | ||||
|         return this.reason; | ||||
|     } | ||||
|  | ||||
|     public enum Reason { | ||||
|         /** | ||||
|          * If a plot merge caused the player to be added/removed/denied/trusted | ||||
|          */ | ||||
|         MERGE, | ||||
|         /** | ||||
|          * If a command caused the player to be added/removed/denied/trusted | ||||
|          */ | ||||
|         COMMAND, | ||||
|         /** | ||||
|          * If something unknown caused the player to be added/removed/denied/trusted | ||||
|          */ | ||||
|         UNKNOWN | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -23,10 +23,6 @@ import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent} | ||||
|  */ | ||||
| @Deprecated(forRemoval = true, since = "TODO") | ||||
| public class PlayerPlotDeniedEvent extends PlotEvent { | ||||
|  | ||||
|     private final PlotPlayer<?> initiator; | ||||
| @@ -40,9 +36,7 @@ public class PlayerPlotDeniedEvent extends PlotEvent { | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that was denied/un-denied | ||||
|      * @param added     {@code true} of add to deny list, {@code false} if removed | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlayerPlotDeniedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) { | ||||
|         super(plot); | ||||
|         this.initiator = initiator; | ||||
| @@ -54,9 +48,7 @@ public class PlayerPlotDeniedEvent extends PlotEvent { | ||||
|      * If a user was added. | ||||
|      * | ||||
|      * @return boolean | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public boolean wasAdded() { | ||||
|         return this.added; | ||||
|     } | ||||
| @@ -65,9 +57,7 @@ public class PlayerPlotDeniedEvent extends PlotEvent { | ||||
|      * The player added/removed. | ||||
|      * | ||||
|      * @return UUID | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public UUID getPlayer() { | ||||
|         return this.player; | ||||
|     } | ||||
| @@ -76,9 +66,7 @@ public class PlayerPlotDeniedEvent extends PlotEvent { | ||||
|      * The player initiating the action. | ||||
|      * | ||||
|      * @return PlotPlayer | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlotPlayer<?> getInitiator() { | ||||
|         return this.initiator; | ||||
|     } | ||||
|   | ||||
| @@ -1,45 +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.events; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Called when a player is going to be denied from a plot | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public class PlayerPlotDenyEvent extends PlayerPlotAddRemoveCancellableEvent { | ||||
|  | ||||
|     /** | ||||
|      * Called when a player will be denied from a plot | ||||
|      * | ||||
|      * @param initiator Player that initiated the event | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that will be denied | ||||
|      * @param reason    The reason for the deny | ||||
|      */ | ||||
|     public PlayerPlotDenyEvent(PlotPlayer<?> initiator, Plot plot, UUID player, Reason reason) { | ||||
|         super(initiator, plot, player, reason); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -24,9 +24,8 @@ import com.plotsquared.core.plot.Plot; | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent} | ||||
|  * | ||||
|  */ | ||||
| @Deprecated(forRemoval = true, since = "TODO") | ||||
| public class PlayerPlotHelperEvent extends PlotEvent { | ||||
|  | ||||
|     private final PlotPlayer<?> initiator; | ||||
| @@ -40,9 +39,7 @@ public class PlayerPlotHelperEvent extends PlotEvent { | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that was added/removed from the helper list | ||||
|      * @param added     {@code true} if the player was added, {@code false} if the player was removed | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlayerPlotHelperEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) { | ||||
|         super(plot); | ||||
|         this.initiator = initiator; | ||||
| @@ -54,9 +51,7 @@ public class PlayerPlotHelperEvent extends PlotEvent { | ||||
|      * If a player was added | ||||
|      * | ||||
|      * @return boolean | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public boolean wasAdded() { | ||||
|         return this.added; | ||||
|     } | ||||
| @@ -65,9 +60,7 @@ public class PlayerPlotHelperEvent extends PlotEvent { | ||||
|      * The UUID added/removed | ||||
|      * | ||||
|      * @return UUID | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public UUID getPlayer() { | ||||
|         return this.player; | ||||
|     } | ||||
| @@ -76,9 +69,7 @@ public class PlayerPlotHelperEvent extends PlotEvent { | ||||
|      * The player initiating the action | ||||
|      * | ||||
|      * @return PlotPlayer | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotAddedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlotPlayer<?> getInitiator() { | ||||
|         return this.initiator; | ||||
|     } | ||||
|   | ||||
| @@ -1,45 +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.events; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Called when a player is going to be removed from a plot (could be removed from added, trusted, or denied) | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public class PlayerPlotRemoveEvent extends PlayerPlotAddRemoveCancellableEvent { | ||||
|  | ||||
|     /** | ||||
|      * Called when a player is going to be removed from a plot (could be removed from added, trusted, or denied) | ||||
|      * | ||||
|      * @param initiator Player that initiated the event | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that will be removed | ||||
|      * @param reason    The reason for the remove | ||||
|      */ | ||||
|     public PlayerPlotRemoveEvent(PlotPlayer<?> initiator, Plot plot, UUID player, Reason reason) { | ||||
|         super(initiator, plot, player, reason); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,45 +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.events; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Called when a player is going to be trusted to a plot | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public class PlayerPlotTrustEvent extends PlayerPlotAddRemoveCancellableEvent { | ||||
|  | ||||
|     /** | ||||
|      * Called when a player will be trusted to a plot | ||||
|      * | ||||
|      * @param initiator Player that initiated the event | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that will be trusted | ||||
|      * @param reason    The reason for the trust | ||||
|      */ | ||||
|     public PlayerPlotTrustEvent(PlotPlayer<?> initiator, Plot plot, UUID player, Reason reason) { | ||||
|         super(initiator, plot, player, reason); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -23,10 +23,6 @@ import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent} | ||||
|  */ | ||||
| @Deprecated(forRemoval = true, since = "TODO") | ||||
| public class PlayerPlotTrustedEvent extends PlotEvent { | ||||
|  | ||||
|     private final PlotPlayer<?> initiator; | ||||
| @@ -40,9 +36,7 @@ public class PlayerPlotTrustedEvent extends PlotEvent { | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that was added/removed from the trusted list | ||||
|      * @param added     {@code true} if the player was added, {@code false} if the player was removed | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlayerPlotTrustedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added) { | ||||
|         super(plot); | ||||
|         this.initiator = initiator; | ||||
| @@ -54,9 +48,7 @@ public class PlayerPlotTrustedEvent extends PlotEvent { | ||||
|      * If a player was added | ||||
|      * | ||||
|      * @return boolean | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public boolean wasAdded() { | ||||
|         return this.added; | ||||
|     } | ||||
| @@ -65,9 +57,7 @@ public class PlayerPlotTrustedEvent extends PlotEvent { | ||||
|      * The UUID added/removed | ||||
|      * | ||||
|      * @return UUID | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public UUID getPlayer() { | ||||
|         return this.player; | ||||
|     } | ||||
| @@ -76,9 +66,7 @@ public class PlayerPlotTrustedEvent extends PlotEvent { | ||||
|      * The player initiating the action | ||||
|      * | ||||
|      * @return PlotPlayer | ||||
|      * @deprecated Use {@link com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent} | ||||
|      */ | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlotPlayer<?> getInitiator() { | ||||
|         return this.initiator; | ||||
|     } | ||||
|   | ||||
| @@ -1,56 +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.events.post; | ||||
|  | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Parent class for events covering players being added/removed to added/trusted/denied lists. | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public sealed class PostPlayerPlotAddRemoveEvent extends PlayerPlotAddRemoveEvent permits PostPlayerPlotAddedEvent, | ||||
|         PostPlayerPlotDeniedEvent, PostPlayerPlotTrustedEvent { | ||||
|  | ||||
|     private final boolean added; | ||||
|  | ||||
|     protected PostPlayerPlotAddRemoveEvent( | ||||
|             final PlotPlayer<?> initiator, | ||||
|             final Plot plot, | ||||
|             final UUID player, | ||||
|             final Reason reason, | ||||
|             boolean added | ||||
|     ) { | ||||
|         super(initiator, plot, player, reason); | ||||
|         this.added = added; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get if the player was added to a list, or removed. | ||||
|      */ | ||||
|     public boolean added() { | ||||
|         return added; | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -1,46 +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.events.post; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Called when a player is added to a plot | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public final class PostPlayerPlotAddedEvent extends PostPlayerPlotAddRemoveEvent { | ||||
|  | ||||
|     /** | ||||
|      * PlayerPlotHelperEvent: Called when a player is added to a plot | ||||
|      * | ||||
|      * @param initiator Player that initiated the event | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that was added/removed from the helper list | ||||
|      * @param added     {@code true} if the player was added, {@code false} if the player was removed | ||||
|      * @param reason    The reason for the add/remove | ||||
|      */ | ||||
|     public PostPlayerPlotAddedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, Reason reason) { | ||||
|         super(initiator, plot, player, reason, added); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,46 +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.events.post; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Called when a player is denied from a plot | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public final class PostPlayerPlotDeniedEvent extends PostPlayerPlotAddRemoveEvent { | ||||
|  | ||||
|     /** | ||||
|      * PlayerPlotDeniedEvent: Called when the denied UUID list is modified for a plot. | ||||
|      * | ||||
|      * @param initiator Player that initiated the event | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that was denied/un-denied | ||||
|      * @param added     {@code true} of add to deny list, {@code false} if removed | ||||
|      * @param reason    The reason for the deny/remove | ||||
|      */ | ||||
|     public PostPlayerPlotDeniedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, Reason reason) { | ||||
|         super(initiator, plot, player, reason, added); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,46 +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.events.post; | ||||
|  | ||||
| import com.plotsquared.core.player.PlotPlayer; | ||||
| import com.plotsquared.core.plot.Plot; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| /** | ||||
|  * Called when a plot trusted user is added/removed | ||||
|  * | ||||
|  * @since TODO | ||||
|  */ | ||||
| public final class PostPlayerPlotTrustedEvent extends PostPlayerPlotAddRemoveEvent { | ||||
|  | ||||
|     /** | ||||
|      * PlayerPlotTrustedEvent: Called when a plot trusted user is added/removed | ||||
|      * | ||||
|      * @param initiator Player that initiated the event | ||||
|      * @param plot      Plot in which the event occurred | ||||
|      * @param player    Player that was added/removed from the trusted list | ||||
|      * @param added     {@code true} if the player was added, {@code false} if the player was removed | ||||
|      * @param reason    The reason for the trust/remove | ||||
|      */ | ||||
|     public PostPlayerPlotTrustedEvent(PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, Reason reason) { | ||||
|         super(initiator, plot, player, reason, added); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -290,8 +290,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer, | ||||
|      * | ||||
|      * @return the plot the player is standing on or null if standing on a road or not in a {@link PlotArea} | ||||
|      */ | ||||
|     @Nullable | ||||
|     public Plot getCurrentPlot() { | ||||
|     public @Nullable Plot getCurrentPlot() { | ||||
|         try (final MetaDataAccess<Plot> lastPlotAccess = | ||||
|                      this.accessTemporaryMetaData(PlayerMetaDataKeys.TEMPORARY_LAST_PLOT)) { | ||||
|             if (lastPlotAccess.get().orElse(null) == null && !Settings.Enabled_Components.EVENTS) { | ||||
| @@ -320,7 +319,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer, | ||||
|      */ | ||||
|     public int getPlotCount() { | ||||
|         if (!Settings.Limit.GLOBAL) { | ||||
|             return getPlotCount(getCurrentPlot().getWorldName()); | ||||
|             return getPlotCount(getContextualWorldName()); | ||||
|         } | ||||
|         final AtomicInteger count = new AtomicInteger(0); | ||||
|         final UUID uuid = getUUID(); | ||||
| @@ -340,7 +339,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer, | ||||
|  | ||||
|     public int getClusterCount() { | ||||
|         if (!Settings.Limit.GLOBAL) { | ||||
|             return getClusterCount(getCurrentPlot().getWorldName()); | ||||
|             return getClusterCount(getContextualWorldName()); | ||||
|         } | ||||
|         final AtomicInteger count = new AtomicInteger(0); | ||||
|         this.plotAreaManager.forEachPlotArea(value -> { | ||||
| @@ -353,6 +352,34 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer, | ||||
|         return count.get(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * {@return the world name at the player's contextual position} | ||||
|      * The contextual position can be affected when using a command with | ||||
|      * an explicit plot override, e.g., `/plot <id> info`. | ||||
|      */ | ||||
|     private @NonNull String getContextualWorldName() { | ||||
|         Plot current = getCurrentPlot(); | ||||
|         if (current != null) { | ||||
|             return current.getWorldName(); | ||||
|         } | ||||
|         return getLocation().getWorldName(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * {@return the plot area at the player's contextual position} | ||||
|      * The contextual position can be affected when using a command with | ||||
|      * an explicit plot override, e.g., `/plot <id> info`. | ||||
|      * | ||||
|      * @since TODO | ||||
|      */ | ||||
|     public @Nullable PlotArea getContextualPlotArea() { | ||||
|         Plot current = getCurrentPlot(); | ||||
|         if (current != null) { | ||||
|             return current.getArea(); | ||||
|         } | ||||
|         return getLocation().getPlotArea(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get the number of plots this player owns in the world. | ||||
|      * | ||||
| @@ -683,86 +710,87 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer, | ||||
|  | ||||
|     public void populatePersistentMetaMap() { | ||||
|         if (Settings.Enabled_Components.PERSISTENT_META) { | ||||
|             DBFunc.getPersistentMeta(getUUID(), new RunnableVal<>() { | ||||
|                 @Override | ||||
|                 public void run(Map<String, byte[]> value) { | ||||
|                     try { | ||||
|                         PlotPlayer.this.metaMap = value; | ||||
|                         if (value.isEmpty()) { | ||||
|                             return; | ||||
|                         } | ||||
|  | ||||
|                         if (PlotPlayer.this.getAttribute("debug")) { | ||||
|                             debugModeEnabled.add(PlotPlayer.this); | ||||
|                         } | ||||
|  | ||||
|                         if (!Settings.Teleport.ON_LOGIN) { | ||||
|                             return; | ||||
|                         } | ||||
|                         PlotAreaManager manager = PlotPlayer.this.plotAreaManager; | ||||
|  | ||||
|                         if (!(manager instanceof SinglePlotAreaManager)) { | ||||
|                             return; | ||||
|                         } | ||||
|                         PlotArea area = ((SinglePlotAreaManager) manager).getArea(); | ||||
|                         boolean V2 = false; | ||||
|                         byte[] arr = PlotPlayer.this.getPersistentMeta("quitLoc"); | ||||
|                         if (arr == null) { | ||||
|                             arr = PlotPlayer.this.getPersistentMeta("quitLocV2"); | ||||
|                             if (arr == null) { | ||||
|                                 return; | ||||
|                             } | ||||
|                             V2 = true; | ||||
|                             removePersistentMeta("quitLocV2"); | ||||
|                         } else { | ||||
|                             removePersistentMeta("quitLoc"); | ||||
|                         } | ||||
|  | ||||
|                         if (!getMeta("teleportOnLogin", true)) { | ||||
|                             return; | ||||
|                         } | ||||
|                         ByteBuffer quitWorld = ByteBuffer.wrap(arr); | ||||
|                         final int plotX = quitWorld.getShort(); | ||||
|                         final int plotZ = quitWorld.getShort(); | ||||
|                         PlotId id = PlotId.of(plotX, plotZ); | ||||
|                         int x = quitWorld.getInt(); | ||||
|                         int y = V2 ? quitWorld.getShort() : (quitWorld.get() & 0xFF); | ||||
|                         int z = quitWorld.getInt(); | ||||
|                         Plot plot = area.getOwnedPlot(id); | ||||
|  | ||||
|                         if (plot == null) { | ||||
|                             return; | ||||
|                         } | ||||
|  | ||||
|                         final Location location = Location.at(plot.getWorldName(), x, y, z); | ||||
|                         if (plot.isLoaded()) { | ||||
|                             TaskManager.runTask(() -> { | ||||
|                                 if (getMeta("teleportOnLogin", true)) { | ||||
|                                     teleport(location, TeleportCause.LOGIN); | ||||
|                                     sendMessage( | ||||
|                                             TranslatableCaption.of("teleport.teleported_to_plot")); | ||||
|             DBFunc.getPersistentMeta( | ||||
|                     getUUID(), new RunnableVal<>() { | ||||
|                         @Override | ||||
|                         public void run(Map<String, byte[]> value) { | ||||
|                             try { | ||||
|                                 PlotPlayer.this.metaMap = value; | ||||
|                                 if (value.isEmpty()) { | ||||
|                                     return; | ||||
|                                 } | ||||
|                             }); | ||||
|                         } else if (!PlotSquared.get().isMainThread(Thread.currentThread())) { | ||||
|                             if (getMeta("teleportOnLogin", true)) { | ||||
|                                 plot.teleportPlayer( | ||||
|                                         PlotPlayer.this, | ||||
|                                         result -> TaskManager.runTask(() -> { | ||||
|                                             if (getMeta("teleportOnLogin", true)) { | ||||
|                                                 if (plot.isLoaded()) { | ||||
|                                                     teleport(location, TeleportCause.LOGIN); | ||||
|                                                     sendMessage(TranslatableCaption | ||||
|                                                             .of("teleport.teleported_to_plot")); | ||||
|                                                 } | ||||
|                                             } | ||||
|                                         }) | ||||
|                                 ); | ||||
|  | ||||
|                                 if (PlotPlayer.this.getAttribute("debug")) { | ||||
|                                     debugModeEnabled.add(PlotPlayer.this); | ||||
|                                 } | ||||
|  | ||||
|                                 if (!Settings.Teleport.ON_LOGIN) { | ||||
|                                     return; | ||||
|                                 } | ||||
|                                 PlotAreaManager manager = PlotPlayer.this.plotAreaManager; | ||||
|  | ||||
|                                 if (!(manager instanceof SinglePlotAreaManager)) { | ||||
|                                     return; | ||||
|                                 } | ||||
|                                 PlotArea area = ((SinglePlotAreaManager) manager).getArea(); | ||||
|                                 boolean V2 = false; | ||||
|                                 byte[] arr = PlotPlayer.this.getPersistentMeta("quitLoc"); | ||||
|                                 if (arr == null) { | ||||
|                                     arr = PlotPlayer.this.getPersistentMeta("quitLocV2"); | ||||
|                                     if (arr == null) { | ||||
|                                         return; | ||||
|                                     } | ||||
|                                     V2 = true; | ||||
|                                     removePersistentMeta("quitLocV2"); | ||||
|                                 } else { | ||||
|                                     removePersistentMeta("quitLoc"); | ||||
|                                 } | ||||
|  | ||||
|                                 if (!getMeta("teleportOnLogin", true)) { | ||||
|                                     return; | ||||
|                                 } | ||||
|                                 ByteBuffer quitWorld = ByteBuffer.wrap(arr); | ||||
|                                 final int plotX = quitWorld.getShort(); | ||||
|                                 final int plotZ = quitWorld.getShort(); | ||||
|                                 PlotId id = PlotId.of(plotX, plotZ); | ||||
|                                 int x = quitWorld.getInt(); | ||||
|                                 int y = V2 ? quitWorld.getShort() : (quitWorld.get() & 0xFF); | ||||
|                                 int z = quitWorld.getInt(); | ||||
|                                 Plot plot = area.getOwnedPlot(id); | ||||
|  | ||||
|                                 if (plot == null) { | ||||
|                                     return; | ||||
|                                 } | ||||
|  | ||||
|                                 final Location location = Location.at(plot.getWorldName(), x, y, z); | ||||
|                                 if (plot.isLoaded()) { | ||||
|                                     TaskManager.runTask(() -> { | ||||
|                                         if (getMeta("teleportOnLogin", true)) { | ||||
|                                             teleport(location, TeleportCause.LOGIN); | ||||
|                                             sendMessage( | ||||
|                                                     TranslatableCaption.of("teleport.teleported_to_plot")); | ||||
|                                         } | ||||
|                                     }); | ||||
|                                 } else if (!PlotSquared.get().isMainThread(Thread.currentThread())) { | ||||
|                                     if (getMeta("teleportOnLogin", true)) { | ||||
|                                         plot.teleportPlayer( | ||||
|                                                 PlotPlayer.this, | ||||
|                                                 result -> TaskManager.runTask(() -> { | ||||
|                                                     if (getMeta("teleportOnLogin", true)) { | ||||
|                                                         if (plot.isLoaded()) { | ||||
|                                                             teleport(location, TeleportCause.LOGIN); | ||||
|                                                             sendMessage(TranslatableCaption | ||||
|                                                                     .of("teleport.teleported_to_plot")); | ||||
|                                                         } | ||||
|                                                     } | ||||
|                                                 }) | ||||
|                                         ); | ||||
|                                     } | ||||
|                                 } | ||||
|                             } catch (Throwable e) { | ||||
|                                 LOGGER.error("Error populating persistent meta for player {}", PlotPlayer.this.getName(), e); | ||||
|                             } | ||||
|                         } | ||||
|                     } catch (Throwable e) { | ||||
|                         LOGGER.error("Error populating persistent meta for player {}", PlotPlayer.this.getName(), e); | ||||
|                     } | ||||
|                 } | ||||
|                     } | ||||
|             ); | ||||
|         } | ||||
| @@ -832,7 +860,8 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer, | ||||
|     } | ||||
|  | ||||
|     @SuppressWarnings("unchecked") | ||||
|     @Nullable <T> T getPersistentMeta(final @NonNull MetaDataKey<T> key) { | ||||
|     @Nullable | ||||
|     <T> T getPersistentMeta(final @NonNull MetaDataKey<T> key) { | ||||
|         final byte[] value = this.getPersistentMeta(key.toString()); | ||||
|         if (value == null) { | ||||
|             return null; | ||||
| @@ -1002,9 +1031,11 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer, | ||||
|             if (throwable != null) { | ||||
|                 sendMessage( | ||||
|                         TranslatableCaption.of("errors.error"), | ||||
|                         TagResolver.resolver("value", Tag.inserting( | ||||
|                                 Component.text("Failed to resolve asynchronous caption replacements") | ||||
|                         )) | ||||
|                         TagResolver.resolver( | ||||
|                                 "value", Tag.inserting( | ||||
|                                         Component.text("Failed to resolve asynchronous caption replacements") | ||||
|                                 ) | ||||
|                         ) | ||||
|                 ); | ||||
|                 LOGGER.error("Failed to resolve asynchronous tagresolver(s) for " + caption, throwable); | ||||
|             } else { | ||||
|   | ||||
| @@ -29,7 +29,6 @@ import com.plotsquared.core.configuration.caption.CaptionUtility; | ||||
| import com.plotsquared.core.configuration.caption.StaticCaption; | ||||
| import com.plotsquared.core.configuration.caption.TranslatableCaption; | ||||
| import com.plotsquared.core.database.DBFunc; | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.events.PlayerTeleportToPlotEvent; | ||||
| import com.plotsquared.core.events.Result; | ||||
| import com.plotsquared.core.events.TeleportCause; | ||||
| @@ -542,7 +541,7 @@ public class Plot { | ||||
|      * | ||||
|      * @return World name | ||||
|      */ | ||||
|     public @Nullable String getWorldName() { | ||||
|     public @NonNull String getWorldName() { | ||||
|         return area.getWorldName(); | ||||
|     } | ||||
|  | ||||
| @@ -975,10 +974,7 @@ public class Plot { | ||||
|      * Sets the denied users for this plot. | ||||
|      * | ||||
|      * @param uuids uuids to deny | ||||
|      * @deprecated Use {@link Plot#addDenied(UUID)} (UUID)} calling | ||||
|      *         {@link EventDispatcher#callPlayerDeny(PlotPlayer, Plot, UUID, PlayerPlotAddRemoveEvent.Reason)} for each. | ||||
|      */ | ||||
|     @Deprecated | ||||
|     public void setDenied(final @NonNull Set<UUID> uuids) { | ||||
|         boolean larger = uuids.size() > getDenied().size(); | ||||
|         HashSet<UUID> intersection; | ||||
| @@ -1019,10 +1015,7 @@ public class Plot { | ||||
|      * Sets the trusted users for this plot. | ||||
|      * | ||||
|      * @param uuids uuids to trust | ||||
|      * @deprecated Use {@link Plot#addTrusted(UUID)} calling | ||||
|      *         {@link EventDispatcher#callPlayerTrust(PlotPlayer, Plot, UUID, PlayerPlotAddRemoveEvent.Reason)} for each. | ||||
|      */ | ||||
|     @Deprecated | ||||
|     public void setTrusted(final @NonNull Set<UUID> uuids) { | ||||
|         boolean larger = uuids.size() > getTrusted().size(); | ||||
|         HashSet<UUID> intersection = new HashSet<>(larger ? getTrusted() : uuids); | ||||
| @@ -1054,10 +1047,7 @@ public class Plot { | ||||
|      * Sets the members for this plot. | ||||
|      * | ||||
|      * @param uuids uuids to set member status for | ||||
|      * @deprecated Use {@link Plot#addMember(UUID)} (UUID)} (UUID)} calling | ||||
|      *         {@link EventDispatcher#callPlayerAdd(PlotPlayer, Plot, UUID, PlayerPlotAddRemoveEvent.Reason)} for each. | ||||
|      */ | ||||
|     @Deprecated | ||||
|     public void setMembers(final @NonNull Set<UUID> uuids) { | ||||
|         boolean larger = uuids.size() > getMembers().size(); | ||||
|         HashSet<UUID> intersection = new HashSet<>(larger ? getMembers() : uuids); | ||||
| @@ -2312,53 +2302,23 @@ public class Plot { | ||||
|             this.setAlias(plot.getAlias()); | ||||
|         } | ||||
|         for (UUID uuid : this.getTrusted()) { | ||||
|             if (eventDispatcher | ||||
|                     .callPlayerTrust(null, plot, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE) | ||||
|                     .getEventResult() != Result.DENY) { | ||||
|                 plot.addTrusted(uuid); | ||||
|                 eventDispatcher.callPostTrusted(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|             } | ||||
|             plot.addTrusted(uuid); | ||||
|         } | ||||
|         for (UUID uuid : plot.getTrusted()) { | ||||
|             if (eventDispatcher | ||||
|                     .callPlayerTrust(null, this, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE) | ||||
|                     .getEventResult() != Result.DENY) { | ||||
|                 this.addTrusted(uuid); | ||||
|                 eventDispatcher.callPostTrusted(null, this, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|             } | ||||
|             this.addTrusted(uuid); | ||||
|         } | ||||
|         for (UUID uuid : this.getMembers()) { | ||||
|             if (eventDispatcher | ||||
|                     .callPlayerAdd(null, plot, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE) | ||||
|                     .getEventResult() != Result.DENY) { | ||||
|                 plot.addMember(uuid); | ||||
|                 eventDispatcher.callPostAdded(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|             } | ||||
|             plot.addMember(uuid); | ||||
|         } | ||||
|         for (UUID uuid : plot.getMembers()) { | ||||
|             if (eventDispatcher | ||||
|                     .callPlayerAdd(null, this, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE) | ||||
|                     .getEventResult() != Result.DENY) { | ||||
|                 this.addMember(uuid); | ||||
|                 eventDispatcher.callPostAdded(null, this, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|             } | ||||
|             this.addMember(uuid); | ||||
|         } | ||||
|  | ||||
|         for (UUID uuid : this.getDenied()) { | ||||
|             if (eventDispatcher | ||||
|                     .callPlayerDeny(null, plot, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE) | ||||
|                     .getEventResult() != Result.DENY) { | ||||
|                 plot.addDenied(uuid); | ||||
|                 eventDispatcher.callPostDenied(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|             } | ||||
|             plot.addDenied(uuid); | ||||
|         } | ||||
|         for (UUID uuid : plot.getDenied()) { | ||||
|             if (eventDispatcher | ||||
|                     .callPlayerDeny(null, this, uuid, PlayerPlotAddRemoveEvent.Reason.MERGE) | ||||
|                     .getEventResult() != Result.DENY) { | ||||
|                 this.addDenied(uuid); | ||||
|                 eventDispatcher.callPostDenied(null, this, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|             } | ||||
|             this.addDenied(uuid); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -21,7 +21,6 @@ package com.plotsquared.core.plot; | ||||
| import com.google.common.collect.ImmutableMap; | ||||
| import com.google.common.collect.ImmutableSet; | ||||
| import com.google.common.collect.Lists; | ||||
| import com.google.inject.Inject; | ||||
| import com.plotsquared.core.PlotSquared; | ||||
| import com.plotsquared.core.collection.QuadMap; | ||||
| import com.plotsquared.core.configuration.ConfigurationNode; | ||||
| @@ -30,8 +29,6 @@ import com.plotsquared.core.configuration.ConfigurationUtil; | ||||
| import com.plotsquared.core.configuration.Settings; | ||||
| import com.plotsquared.core.configuration.caption.TranslatableCaption; | ||||
| import com.plotsquared.core.configuration.file.YamlConfiguration; | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.events.Result; | ||||
| import com.plotsquared.core.generator.GridPlotWorld; | ||||
| import com.plotsquared.core.generator.IndependentPlotGenerator; | ||||
| import com.plotsquared.core.inject.annotations.WorldConfig; | ||||
| @@ -50,7 +47,6 @@ import com.plotsquared.core.plot.flag.PlotFlag; | ||||
| import com.plotsquared.core.plot.flag.implementations.DoneFlag; | ||||
| import com.plotsquared.core.queue.GlobalBlockQueue; | ||||
| import com.plotsquared.core.queue.QueueCoordinator; | ||||
| import com.plotsquared.core.util.EventDispatcher; | ||||
| import com.plotsquared.core.util.MathMan; | ||||
| import com.plotsquared.core.util.PlotExpression; | ||||
| import com.plotsquared.core.util.RegionUtil; | ||||
| @@ -159,9 +155,6 @@ public abstract class PlotArea implements ComponentLike { | ||||
|     private QuadMap<PlotCluster> clusters; | ||||
|     private String signMaterial = "OAK_WALL_SIGN"; | ||||
|     private String legacySignMaterial = "WALL_SIGN"; | ||||
|     // These will be injected | ||||
|     @Inject | ||||
|     private EventDispatcher eventDispatcher; | ||||
|  | ||||
|     public PlotArea( | ||||
|             final @NonNull String worldName, final @Nullable String id, | ||||
| @@ -1111,44 +1104,9 @@ public abstract class PlotArea implements ComponentLike { | ||||
|                 final PlotId id = PlotId.of(x, y); | ||||
|                 final Plot plot = getPlotAbs(id); | ||||
|  | ||||
|                 Set<UUID> currentlyTrusted = plot.getTrusted(); | ||||
|                 trusted.forEach(uuid -> { | ||||
|                     if (!currentlyTrusted.contains(uuid) && eventDispatcher.callPlayerTrust( | ||||
|                             null, | ||||
|                             plot, | ||||
|                             uuid, | ||||
|                             PlayerPlotAddRemoveEvent.Reason.MERGE | ||||
|                     ).getEventResult() != Result.DENY) { | ||||
|                         plot.addTrusted(uuid); | ||||
|                         eventDispatcher.callPostTrusted(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|                     } | ||||
|                 }); | ||||
|  | ||||
|                 Set<UUID> currentlyAdded = plot.getMembers(); | ||||
|                 members.forEach(uuid -> { | ||||
|                     if (!currentlyAdded.contains(uuid) && eventDispatcher.callPlayerAdd( | ||||
|                             null, | ||||
|                             plot, | ||||
|                             uuid, | ||||
|                             PlayerPlotAddRemoveEvent.Reason.MERGE | ||||
|                     ).getEventResult() != Result.DENY) { | ||||
|                         plot.addMember(uuid); | ||||
|                         eventDispatcher.callPostAdded(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|                     } | ||||
|                 }); | ||||
|  | ||||
|                 Set<UUID> currentlyDenied = plot.getDenied(); | ||||
|                 denied.forEach(uuid -> { | ||||
|                     if (!currentlyDenied.contains(uuid) && eventDispatcher.callPlayerDeny( | ||||
|                             null, | ||||
|                             plot, | ||||
|                             uuid, | ||||
|                             PlayerPlotAddRemoveEvent.Reason.MERGE | ||||
|                     ).getEventResult() != Result.DENY) { | ||||
|                         plot.addDenied(uuid); | ||||
|                         eventDispatcher.callPostDenied(null, plot, uuid, true, PlayerPlotAddRemoveEvent.Reason.MERGE); | ||||
|                     } | ||||
|                 }); | ||||
|                 plot.setTrusted(trusted); | ||||
|                 plot.setMembers(members); | ||||
|                 plot.setDenied(denied); | ||||
|  | ||||
|                 Plot plot2; | ||||
|                 if (lx) { | ||||
|   | ||||
| @@ -58,7 +58,7 @@ public class SinglePlot extends Plot { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String getWorldName() { | ||||
|     public @NonNull String getWorldName() { | ||||
|         return getId().toUnderscoreSeparatedString(); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -29,14 +29,9 @@ import com.plotsquared.core.events.PlayerBuyPlotEvent; | ||||
| import com.plotsquared.core.events.PlayerClaimPlotEvent; | ||||
| import com.plotsquared.core.events.PlayerEnterPlotEvent; | ||||
| import com.plotsquared.core.events.PlayerLeavePlotEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotAddEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotAddRemoveEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotDeniedEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotDenyEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotHelperEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotLimitEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotRemoveEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotTrustEvent; | ||||
| import com.plotsquared.core.events.PlayerPlotTrustedEvent; | ||||
| import com.plotsquared.core.events.PlayerTeleportToPlotEvent; | ||||
| import com.plotsquared.core.events.PlotAutoMergeEvent; | ||||
| @@ -56,9 +51,6 @@ import com.plotsquared.core.events.RemoveRoadEntityEvent; | ||||
| import com.plotsquared.core.events.TeleportCause; | ||||
| import com.plotsquared.core.events.post.PostPlayerAutoPlotEvent; | ||||
| import com.plotsquared.core.events.post.PostPlayerBuyPlotEvent; | ||||
| import com.plotsquared.core.events.post.PostPlayerPlotAddedEvent; | ||||
| import com.plotsquared.core.events.post.PostPlayerPlotDeniedEvent; | ||||
| import com.plotsquared.core.events.post.PostPlayerPlotTrustedEvent; | ||||
| import com.plotsquared.core.events.post.PostPlotChangeOwnerEvent; | ||||
| import com.plotsquared.core.events.post.PostPlotClearEvent; | ||||
| import com.plotsquared.core.events.post.PostPlotDeleteEvent; | ||||
| @@ -266,7 +258,6 @@ public class EventDispatcher { | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlayerPlotDeniedEvent callDenied( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, | ||||
|             boolean added | ||||
| @@ -276,7 +267,6 @@ public class EventDispatcher { | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlayerPlotTrustedEvent callTrusted( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, | ||||
|             boolean added | ||||
| @@ -286,7 +276,6 @@ public class EventDispatcher { | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     @Deprecated(forRemoval = true, since = "TODO") | ||||
|     public PlayerPlotHelperEvent callMember( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, | ||||
|             boolean added | ||||
| @@ -296,62 +285,6 @@ public class EventDispatcher { | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     public PostPlayerPlotDeniedEvent callPostDenied( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, PlayerPlotAddRemoveEvent.Reason reason | ||||
|     ) { | ||||
|         PostPlayerPlotDeniedEvent event = new PostPlayerPlotDeniedEvent(initiator, plot, player, added, reason); | ||||
|         callEvent(event); | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     public PostPlayerPlotTrustedEvent callPostTrusted( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, PlayerPlotAddRemoveEvent.Reason reason | ||||
|     ) { | ||||
|         PostPlayerPlotTrustedEvent event = new PostPlayerPlotTrustedEvent(initiator, plot, player, added, reason); | ||||
|         callEvent(event); | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     public PostPlayerPlotAddedEvent callPostAdded( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, boolean added, PlayerPlotAddRemoveEvent.Reason reason | ||||
|     ) { | ||||
|         PostPlayerPlotAddedEvent event = new PostPlayerPlotAddedEvent(initiator, plot, player, added, reason); | ||||
|         callEvent(event); | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     public PlayerPlotDenyEvent callPlayerDeny( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, PlayerPlotAddRemoveEvent.Reason reason | ||||
|     ) { | ||||
|         PlayerPlotDenyEvent event = new PlayerPlotDenyEvent(initiator, plot, player, reason); | ||||
|         callEvent(event); | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     public PlayerPlotTrustEvent callPlayerTrust( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, PlayerPlotAddRemoveEvent.Reason reason | ||||
|     ) { | ||||
|         PlayerPlotTrustEvent event = new PlayerPlotTrustEvent(initiator, plot, player, reason); | ||||
|         callEvent(event); | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     public PlayerPlotAddEvent callPlayerAdd( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, PlayerPlotAddRemoveEvent.Reason reason | ||||
|     ) { | ||||
|         PlayerPlotAddEvent event = new PlayerPlotAddEvent(initiator, plot, player, reason); | ||||
|         callEvent(event); | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     public PlayerPlotRemoveEvent callPlayerRemove( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID player, PlayerPlotAddRemoveEvent.Reason reason | ||||
|     ) { | ||||
|         PlayerPlotRemoveEvent event = new PlayerPlotRemoveEvent(initiator, plot, player, reason); | ||||
|         callEvent(event); | ||||
|         return event; | ||||
|     } | ||||
|  | ||||
|     public PlotChangeOwnerEvent callOwnerChange( | ||||
|             PlotPlayer<?> initiator, Plot plot, UUID oldOwner, | ||||
|             UUID newOwner, boolean hasOldOwner | ||||
|   | ||||
| @@ -65,10 +65,16 @@ subprojects { | ||||
|         plugin<IdeaPlugin>() | ||||
|     } | ||||
|  | ||||
|     configurations.matching { it.name == "signatures" }.configureEach { | ||||
|         attributes { | ||||
|             attribute(Attribute.of("signatures-unique", String::class.java), "true") | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     dependencies { | ||||
|         // Tests | ||||
|         testImplementation("org.junit.jupiter:junit-jupiter:5.14.0") | ||||
|         testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.14.0") | ||||
|         testImplementation("org.junit.jupiter:junit-jupiter:6.0.0") | ||||
|         testRuntimeOnly("org.junit.platform:junit-platform-launcher:6.0.0") | ||||
|     } | ||||
|  | ||||
|     plugins.withId("java") { | ||||
| @@ -95,9 +101,15 @@ subprojects { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     val javaComponent = components["java"] as AdhocComponentWithVariants | ||||
|     javaComponent.withVariantsFromConfiguration(configurations["shadowRuntimeElements"]) { | ||||
|         skip() | ||||
|     afterEvaluate { | ||||
|         val javaComponent = components["java"] as AdhocComponentWithVariants | ||||
|         configurations.findByName("shadowRuntimeElements")?.let { shadowRuntimeElements -> | ||||
|             javaComponent.withVariantsFromConfiguration(shadowRuntimeElements) { | ||||
|                 skip() | ||||
|             } | ||||
|         } ?: run { | ||||
|             logger.warn("Configuration 'shadowRuntimeElements' does not exist.") | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     signing { | ||||
|   | ||||
| @@ -7,7 +7,7 @@ checkerqual = "3.51.1" | ||||
| gson = "2.10" | ||||
| guava = "31.1-jre" | ||||
| snakeyaml = "2.0" | ||||
| adventure = "4.24.0" | ||||
| adventure = "4.25.0" | ||||
| adventure-bukkit = "4.4.1" | ||||
| log4j = "2.19.0" | ||||
|  | ||||
| @@ -33,11 +33,11 @@ vault = "1.7.1" | ||||
| serverlib = "2.3.7" | ||||
|  | ||||
| # Gradle plugins | ||||
| shadow = "8.3.9" | ||||
| shadow = "9.2.2" | ||||
| grgit = "4.1.1" | ||||
| spotless = "8.0.0" | ||||
| publish = "0.34.0" | ||||
| runPaper = "3.0.1" | ||||
| runPaper = "3.0.2" | ||||
|  | ||||
| [libraries] | ||||
| # Platform expectations | ||||
|   | ||||
							
								
								
									
										
											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 | ||||
| distributionPath=wrapper/dists | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip | ||||
| networkTimeout=10000 | ||||
| validateDistributionUrl=true | ||||
| zipStoreBase=GRADLE_USER_HOME | ||||
|   | ||||
							
								
								
									
										5
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,7 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # | ||||
| # Copyright © 2015-2021 the original authors. | ||||
| # Copyright © 2015 the original authors. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| @@ -114,7 +114,6 @@ case "$( uname )" in                #( | ||||
|   NONSTOP* )        nonstop=true ;; | ||||
| esac | ||||
|  | ||||
| CLASSPATH="\\\"\\\"" | ||||
|  | ||||
|  | ||||
| # Determine the Java command to use to start the JVM. | ||||
| @@ -172,7 +171,6 @@ fi | ||||
| # For Cygwin or MSYS, switch paths to Windows format before running java | ||||
| if "$cygwin" || "$msys" ; then | ||||
|     APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) | ||||
|     CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) | ||||
|  | ||||
|     JAVACMD=$( cygpath --unix "$JAVACMD" ) | ||||
|  | ||||
| @@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' | ||||
|  | ||||
| set -- \ | ||||
|         "-Dorg.gradle.appname=$APP_BASE_NAME" \ | ||||
|         -classpath "$CLASSPATH" \ | ||||
|         -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ | ||||
|         "$@" | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								gradlew.bat
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								gradlew.bat
									
									
									
									
										vendored
									
									
								
							| @@ -70,11 +70,10 @@ goto fail | ||||
| :execute | ||||
| @rem Setup the command line | ||||
|  | ||||
| set CLASSPATH= | ||||
|  | ||||
|  | ||||
| @rem Execute Gradle | ||||
| "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* | ||||
| "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* | ||||
|  | ||||
| :end | ||||
| @rem End local scope for the variables with windows NT shell | ||||
|   | ||||
		Reference in New Issue
	
	Block a user