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.
This commit is contained in:
Christian Koop 2024-01-30 11:45:52 +01:00
parent 0b685b31df
commit 3aa85c751e
No known key found for this signature in database
GPG Key ID: 89A8181384E010A3
2 changed files with 14 additions and 6 deletions

View File

@ -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;
}
}

View File

@ -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<UUID> islandMembers = new ArrayList<>();
islandMembers.addAll(island.getRole(IslandRole.MEMBER));