field resets when group creator is too far away, still spaghetti

This commit is contained in:
LunarAkai 2024-05-16 12:52:48 +02:00
commit 50f51126bb
2 changed files with 22 additions and 3 deletions

View file

@ -94,11 +94,9 @@ public class MinecleanerGroupManager {
} }
} }
private UUID groupCreator;
private final Set<MinecleanerGroup> groups; private final Set<MinecleanerGroup> groups;
public MinecleanerGroupManager() { public MinecleanerGroupManager() {
this.groupCreator = null;
this.groups = new HashSet<>(); this.groups = new HashSet<>();
} }

View file

@ -201,6 +201,26 @@ public class MinecleanerListener implements Listener {
}; };
plugin.getManager().leaveArena(players, false, true); plugin.getManager().leaveArena(players, false, true);
} }
} else {
Player ownerPlayer = Bukkit.getPlayer(plugin.getGroupManager().getGroup(player).getOwner());
if(ownerPlayer.equals(player)) {
if(arena.isTooFarAway(ownerPlayer)) {
for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(player).getPlayers().iterator(); iterator.hasNext();) {
Player iteratorPlayer = Bukkit.getPlayer(iterator.next());
if(iteratorPlayer == ownerPlayer) {
iteratorPlayer.sendMessage(Component.text("Du hast dich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen.", NamedTextColor.YELLOW));
continue;
}
assert iteratorPlayer != null;
iteratorPlayer.sendMessage(Component.text("Der Ersteller der Gruppe hat sich zu weit von der Arena entfernt. Das Spiel wurde abgebrochen.", NamedTextColor.YELLOW));
}
Player[] players = new Player[] {
ownerPlayer
};
plugin.getManager().leaveArena(players, false, true);
}
}
} }
} }
} }
@ -212,9 +232,10 @@ public class MinecleanerListener implements Listener {
if(plugin.getGroupManager().getGroup(e.getPlayer()) != null) { if(plugin.getGroupManager().getGroup(e.getPlayer()) != null) {
if(plugin.getGroupManager().getGroup(e.getPlayer()).getOwner().equals(e.getPlayer())) { if(plugin.getGroupManager().getGroup(e.getPlayer()).getOwner().equals(e.getPlayer())) {
Player[] players = new Player[plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().size()]; Player[] players = new Player[plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().size()];
int i = 0;
for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().iterator(); iterator.hasNext();) { for(Iterator<UUID> iterator = plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().iterator(); iterator.hasNext();) {
Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); Player iteratorPlayer = Bukkit.getPlayer(iterator.next());
Arrays.fill(players, iteratorPlayer); players[i] = iteratorPlayer;
} }
plugin.getManager().leaveArena(players, false, true); plugin.getManager().leaveArena(players, false, true);
return; return;