From a306f10d51f913734118e8e4cf02a5dba44301e5 Mon Sep 17 00:00:00 2001 From: Minenash Date: Sun, 23 Sep 2018 23:03:35 -0400 Subject: [PATCH] Added Silent AFK, and made the Seen Module show how long someone's been afk for. --- src/com/redstoner/modules/afk/AFK.cmd | 8 +++++-- src/com/redstoner/modules/afk/AFK.java | 30 ++++++++++++++++-------- src/com/redstoner/modules/seen/Seen.java | 7 ++++-- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/com/redstoner/modules/afk/AFK.cmd b/src/com/redstoner/modules/afk/AFK.cmd index 45483da..6f9385d 100644 --- a/src/com/redstoner/modules/afk/AFK.cmd +++ b/src/com/redstoner/modules/afk/AFK.cmd @@ -6,8 +6,12 @@ command afk { run afk; perm utils.afk; } - [string:reason...] { - run afk2 reason; + [optional:-s] { + run afks -s; + perm utils.afk; + } + [optional:-s] [string:reason...] { + run afk2 -s reason; perm utils.afk; } } diff --git a/src/com/redstoner/modules/afk/AFK.java b/src/com/redstoner/modules/afk/AFK.java index 66cd506..810c0bb 100644 --- a/src/com/redstoner/modules/afk/AFK.java +++ b/src/com/redstoner/modules/afk/AFK.java @@ -30,7 +30,7 @@ import com.redstoner.modules.datamanager.DataManager; @Commands(CommandHolderType.File) @AutoRegisterListener -@Version(major = 4, minor = 0, revision = 5, compatible = 5) +@Version(major = 4, minor = 0, revision = 6, compatible = 5) public class AFK implements Module, Listener { private CustomListener listener; @@ -78,24 +78,27 @@ public class AFK implements Module, Listener @Command(hook = "afk") public boolean afk(CommandSender sender) { - return afk(sender, ""); + return afk(sender, false, ""); } - @Command(hook = "afk2") - public boolean afk(CommandSender sender, String reason) + @Command(hook = "afks") + public boolean afk(CommandSender sender, boolean silent) { - return afk(sender, reason, false); + return afk(sender, silent, ""); } - public boolean afk(CommandSender sender, String reason, boolean silent) + @Command(hook = "afk2") + public boolean afk(CommandSender sender, boolean silent, String reason) { if (isafk(sender)) { - unafk(sender); + unafk(sender, silent); } else { + DataManager.setData(sender, "afk_time", System.currentTimeMillis()); DataManager.setData(sender, "afk_reason", reason); + DataManager.setState(sender, "afk_silent", silent); DataManager.setState(sender, "afk", true); if (!silent) Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is now AFK", null); @@ -103,10 +106,11 @@ public class AFK implements Module, Listener return true; } - public void unafk(CommandSender sender) + public void unafk(CommandSender sender, boolean silent) { DataManager.setState(sender, "afk", false); - Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null); + if (!silent) + Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null); } public boolean isafk(CommandSender sender) @@ -200,7 +204,8 @@ class CustomListener implements Listener, EventExecutor public void unafk(CommandSender sender) { DataManager.setState(sender, "afk", false); - Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null); + if ( !isSilent(sender) ) + Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null); } public boolean isafk(CommandSender sender) @@ -208,6 +213,11 @@ class CustomListener implements Listener, EventExecutor return DataManager.getState(sender, "afk"); } + public boolean isSilent(CommandSender sender) + { + return DataManager.getState(sender, "afk_silent"); + } + public boolean isVanished(Player player) { return DataManager.getState(player, "vanished"); diff --git a/src/com/redstoner/modules/seen/Seen.java b/src/com/redstoner/modules/seen/Seen.java index 0948152..ed3324c 100644 --- a/src/com/redstoner/modules/seen/Seen.java +++ b/src/com/redstoner/modules/seen/Seen.java @@ -36,7 +36,7 @@ import net.nemez.chatapi.click.Message; @AutoRegisterListener @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 9, compatible = 4) +@Version(major = 4, minor = 0, revision = 10, compatible = 4) public class Seen implements Module, Listener { HashMap names = new HashMap<>(); @@ -101,8 +101,11 @@ public class Seen implements Module, Listener { message.add("They're currently &eAFK&7:"); String reason = (String) DataManager.getOrDefault(p.getUniqueId().toString(), "AFK", "afk_reason", ""); + Long timeAFK = (Long) DataManager.getOrDefault(p.getUniqueId().toString(), "AFK", "afk_time", 0L); + + message.add(" &9For: " + DateUtil.formatDateDiff(timeAFK)); if (reason.length() >= 1) - message.add(" &3- " + reason); + message.add(" &9Reason: " + reason); } if (DataManager.getState((Player) p, "vanished")) message.add("They're currently &evanished&7!");