From c6a045fe94c2dc221256803d117c80266ca9018e Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Fri, 8 Sep 2023 08:55:03 +0200 Subject: [PATCH] Fix 30 Minute shutdown for empty server --- .../features/world/AFKStopperListener.java | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/world/AFKStopperListener.java b/BauSystem_Main/src/de/steamwar/bausystem/features/world/AFKStopperListener.java index dbb04aaf..52249a23 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/world/AFKStopperListener.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/world/AFKStopperListener.java @@ -34,42 +34,44 @@ public class AFKStopperListener implements Listener { // CPU > 50% // RAM > 60% - private int minutesAfk = 0; + private int afkTicks = 0; public AFKStopperListener() { Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), () -> { // System.out.println("CPU: " + load + " RAM: " + usage); - if (RamUsage.getLoad() < 50.0 && RamUsage.getUsage() < 0.6) { - minutesAfk = 0; - return; - } else if (Bukkit.getOnlinePlayers().isEmpty()) { - Bukkit.shutdown(); + if (Bukkit.getOnlinePlayers().isEmpty()) { + if (RamUsage.getLoad() >= 50.0 || RamUsage.getUsage() >= 0.6) { + Bukkit.shutdown(); + return; + } + } else if (RamUsage.getLoad() < 50.0 && RamUsage.getUsage() < 0.6) { + afkTicks = 0; return; } - switch (minutesAfk) { - case 30: + switch (afkTicks) { + case 90: Bukkit.shutdown(); break; - case 5: + case 15: for (Player p : Bukkit.getOnlinePlayers()) { p.kickPlayer(BauSystem.MESSAGE.parse("AFK_KICK_MESSAGE", p)); } - case 4: + case 12: BauSystem.MESSAGE.broadcast("AFK_WARNING_MESSAGE"); default: - minutesAfk++; + afkTicks++; } - }, 1200, 1200); //every minute + }, 20*60, 20*60); //every minute } @EventHandler public void onPlayerMove(PlayerMoveEvent event) { if (event.getTo() == null) return; if (event.getFrom().getPitch() != event.getTo().getPitch()) { - minutesAfk = 0; + afkTicks = 0; } if (event.getFrom().getYaw() != event.getTo().getYaw()) { - minutesAfk = 0; + afkTicks = 0; } }