From 8cf9341aaf899c50b9e8fc34938234ffd7e9a4f8 Mon Sep 17 00:00:00 2001 From: Dart2112 Date: Tue, 24 Sep 2024 15:19:17 +0930 Subject: [PATCH] Added an overload to stopAFK to allow silent stops --- .idea/modules.xml | 2 +- .../benja.IdeaProjects.AFKPlus.main.iml | 13 +++++++++++++ .../afkplus/playerdata/AFKPlusPlayer.java | 18 +++++++++++++++--- 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 .idea/modules/benja.IdeaProjects.AFKPlus.main.iml diff --git a/.idea/modules.xml b/.idea/modules.xml index 6f25e6e..d5c06a6 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,9 +2,9 @@ - + diff --git a/.idea/modules/benja.IdeaProjects.AFKPlus.main.iml b/.idea/modules/benja.IdeaProjects.AFKPlus.main.iml new file mode 100644 index 0000000..a589521 --- /dev/null +++ b/.idea/modules/benja.IdeaProjects.AFKPlus.main.iml @@ -0,0 +1,13 @@ + + + + + + + SPIGOT + + 1 + + + + \ No newline at end of file diff --git a/src/main/java/net/lapismc/afkplus/playerdata/AFKPlusPlayer.java b/src/main/java/net/lapismc/afkplus/playerdata/AFKPlusPlayer.java index 38cbd39..5870309 100644 --- a/src/main/java/net/lapismc/afkplus/playerdata/AFKPlusPlayer.java +++ b/src/main/java/net/lapismc/afkplus/playerdata/AFKPlusPlayer.java @@ -204,10 +204,20 @@ public void forceStartAFK() { } /** - * Stops AFK for this player with a broadcast, Use {@link #forceStopAFK()} for a silent stop + * Stops AFK for this player with a broadcast, Use {@link #forceStopAFK()} or {@link #stopAFK(boolean)} for a silent stop * This can be cancelled with {@link AFKStopEvent} */ public void stopAFK() { + stopAFK(false); + } + + /** + * Stops AFK for this player with a broadcast, Use {@link #forceStopAFK()} for a silent stop + * This can be cancelled with {@link AFKStopEvent} + * + * @param silent Skips broadcasting when true, used to cleanly exit afk when a player disconnects + */ + public void stopAFK(boolean silent) { if (Bukkit.getPlayer(getUUID()) == null) { //Player isn't online, stop here return; @@ -227,8 +237,10 @@ public void stopAFK() { //This will replace the {TIME} variable, if present String afkTime = plugin.prettyTime.formatDuration(plugin.reduceDurationList (plugin.prettyTime.calculatePreciseDuration(new Date(afkStart)))); - broadcastOthers(event.getBroadcastMessage().replace("{PLAYER}", getName()).replace("{TIME}", afkTime)); - selfMessage(event.getSelfMessage().replace("{PLAYER}", getName()).replace("{TIME}", afkTime)); + if (!silent) { + broadcastOthers(event.getBroadcastMessage().replace("{PLAYER}", getName()).replace("{TIME}", afkTime)); + selfMessage(event.getSelfMessage().replace("{PLAYER}", getName()).replace("{TIME}", afkTime)); + } //Stop the AFK status forceStopAFK(); }