Skip to content

Commit

Permalink
Fix to avoid admins becoming subowners when registering an island.
Browse files Browse the repository at this point in the history
  • Loading branch information
tastybento committed Jan 8, 2024
1 parent 0e0c502 commit 54a7b8b
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ private boolean register(User user, String targetName, UUID targetUUID, Optional
// Register island if it exists
if (!island.map(i -> {
// Island exists
getIslands().setOwner(user, targetUUID, i);
getIslands().setOwner(user, targetUUID, i, RanksManager.VISITOR_RANK);
if (i.isSpawn()) {
getIslands().clearSpawn(i.getWorld());
}
Expand Down Expand Up @@ -111,7 +111,7 @@ private boolean register(User user, String targetName, UUID targetUUID, Optional
user.sendMessage("commands.admin.register.cannot-make-island");
return;
}
getIslands().setOwner(user, targetUUID, i);
getIslands().setOwner(user, targetUUID, i, RanksManager.VISITOR_RANK);
i.setReserved(true);
i.getCenter().getBlock().setType(Material.BEDROCK);
user.sendMessage("commands.admin.register.reserved-island", TextVariables.XYZ, Util.xyz(i.getCenter().toVector()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1515,9 +1515,9 @@ public void removePlayersFromIsland(Island island) {
Location sp = spawn.get(w).getSpawnPoint(w.getEnvironment());
if (sp != null) {
PaperLib.teleportAsync(p, sp);
} else {
} else {
plugin.logWarning("Spawn exists but its location is null!");
}
}
}
}
});
Expand Down Expand Up @@ -1630,7 +1630,7 @@ public boolean inTeam(World world, @NonNull UUID playerUUID) {
* owner
*/
public void setOwner(World world, User user, UUID targetUUID) {
setOwner(user, targetUUID, getIsland(world, user.getUniqueId()));
setOwner(user, targetUUID, getIsland(world, user.getUniqueId()), RanksManager.SUB_OWNER_RANK);
}

/**
Expand All @@ -1639,11 +1639,14 @@ public void setOwner(World world, User user, UUID targetUUID) {
* @param user previous owner
* @param targetUUID new owner
* @param island island to register
* @param rank rank to which to set old owner.
*/
public void setOwner(User user, UUID targetUUID, Island island) {
public void setOwner(User user, UUID targetUUID, Island island, int rank) {
islandCache.setOwner(island, targetUUID);
// Set old owner as sub-owner on island.
island.setRank(user, RanksManager.SUB_OWNER_RANK);
if (rank > RanksManager.VISITOR_RANK) {
island.setRank(user, rank);
}

user.sendMessage("commands.island.team.setowner.name-is-the-owner", "[name]",
plugin.getPlayers().getName(targetUUID));
Expand Down

0 comments on commit 54a7b8b

Please sign in to comment.