From 50f51126bbe77845b9b7ce6180597cf210b59640 Mon Sep 17 00:00:00 2001 From: LunarAkai Date: Thu, 16 May 2024 12:52:48 +0200 Subject: [PATCH] field resets when group creator is too far away, still spaghetti --- .../minecleaner/MinecleanerGroupManager.java | 2 -- .../minecleaner/MinecleanerListener.java | 23 ++++++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerGroupManager.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerGroupManager.java index 94444bf..851d63d 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerGroupManager.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerGroupManager.java @@ -94,11 +94,9 @@ public class MinecleanerGroupManager { } } - private UUID groupCreator; private final Set groups; public MinecleanerGroupManager() { - this.groupCreator = null; this.groups = new HashSet<>(); } diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java index 9921d2b..92cb081 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java @@ -201,6 +201,26 @@ public class MinecleanerListener implements Listener { }; 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 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()).getOwner().equals(e.getPlayer())) { Player[] players = new Player[plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().size()]; + int i = 0; for(Iterator iterator = plugin.getGroupManager().getGroup(e.getPlayer()).getPlayers().iterator(); iterator.hasNext();) { Player iteratorPlayer = Bukkit.getPlayer(iterator.next()); - Arrays.fill(players, iteratorPlayer); + players[i] = iteratorPlayer; } plugin.getManager().leaveArena(players, false, true); return;