From 3aa85c751ea93b422b8825f85cd77dd9a173f3ad Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Tue, 30 Jan 2024 11:45:52 +0100 Subject: [PATCH] feat: Adds previous island owner to `IslandOwnershipTransferEvent` (#14) Instead of resolving the previous owner and risk a potential web/api request getting triggert, although the previous owner might never be used, I decided on just providing the UUID we already have. The plugins can then still find the (Offline)Player themselves when needed. --- .../island/IslandOwnershipTransferEvent.java | 18 +++++++++++++----- .../skyblock/island/IslandManager.java | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/api/event/island/IslandOwnershipTransferEvent.java b/src/main/java/com/craftaro/skyblock/api/event/island/IslandOwnershipTransferEvent.java index 5b247a0b..878db924 100644 --- a/src/main/java/com/craftaro/skyblock/api/event/island/IslandOwnershipTransferEvent.java +++ b/src/main/java/com/craftaro/skyblock/api/event/island/IslandOwnershipTransferEvent.java @@ -5,26 +5,34 @@ import org.bukkit.OfflinePlayer; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + public class IslandOwnershipTransferEvent extends IslandEvent { private static final HandlerList HANDLERS = new HandlerList(); private final OfflinePlayer owner; + private final UUID previousOwnerId; - public IslandOwnershipTransferEvent(Island island, OfflinePlayer owner) { + public IslandOwnershipTransferEvent(Island island, OfflinePlayer owner, UUID previousOwnerId) { super(island); this.owner = owner; - } - - public static HandlerList getHandlerList() { - return HANDLERS; + this.previousOwnerId = previousOwnerId; } public OfflinePlayer getOwner() { return this.owner; } + public UUID getPreviousOwnerId() { + return this.previousOwnerId; + } + @Override public @NotNull HandlerList getHandlers() { return HANDLERS; } + + public static HandlerList getHandlerList() { + return HANDLERS; + } } diff --git a/src/main/java/com/craftaro/skyblock/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/island/IslandManager.java index c660c334..363f00eb 100644 --- a/src/main/java/com/craftaro/skyblock/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/island/IslandManager.java @@ -520,7 +520,7 @@ public class IslandManager { removeIsland(uuid2); this.islandStorage.put(player.getUniqueId(), island); - Bukkit.getServer().getPluginManager().callEvent(new IslandOwnershipTransferEvent(island.getAPIWrapper(), player)); + Bukkit.getServer().getPluginManager().callEvent(new IslandOwnershipTransferEvent(island.getAPIWrapper(), player, uuid2)); ArrayList islandMembers = new ArrayList<>(); islandMembers.addAll(island.getRole(IslandRole.MEMBER));