Archived
0

Added Silent AFK, and made the Seen Module show how long someone's been

afk for.
This commit is contained in:
Minenash
2018-09-23 23:03:35 -04:00
parent 648e05bcfa
commit a306f10d51
3 changed files with 31 additions and 14 deletions

View File

@@ -6,8 +6,12 @@ command afk {
run afk; run afk;
perm utils.afk; perm utils.afk;
} }
[string:reason...] { [optional:-s] {
run afk2 reason; run afks -s;
perm utils.afk;
}
[optional:-s] [string:reason...] {
run afk2 -s reason;
perm utils.afk; perm utils.afk;
} }
} }

View File

@@ -30,7 +30,7 @@ import com.redstoner.modules.datamanager.DataManager;
@Commands(CommandHolderType.File) @Commands(CommandHolderType.File)
@AutoRegisterListener @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 public class AFK implements Module, Listener
{ {
private CustomListener listener; private CustomListener listener;
@@ -78,24 +78,27 @@ public class AFK implements Module, Listener
@Command(hook = "afk") @Command(hook = "afk")
public boolean afk(CommandSender sender) public boolean afk(CommandSender sender)
{ {
return afk(sender, ""); return afk(sender, false, "");
}
@Command(hook = "afks")
public boolean afk(CommandSender sender, boolean silent)
{
return afk(sender, silent, "");
} }
@Command(hook = "afk2") @Command(hook = "afk2")
public boolean afk(CommandSender sender, String reason) public boolean afk(CommandSender sender, boolean silent, String reason)
{
return afk(sender, reason, false);
}
public boolean afk(CommandSender sender, String reason, boolean silent)
{ {
if (isafk(sender)) if (isafk(sender))
{ {
unafk(sender); unafk(sender, silent);
} }
else else
{ {
DataManager.setData(sender, "afk_time", System.currentTimeMillis());
DataManager.setData(sender, "afk_reason", reason); DataManager.setData(sender, "afk_reason", reason);
DataManager.setState(sender, "afk_silent", silent);
DataManager.setState(sender, "afk", true); DataManager.setState(sender, "afk", true);
if (!silent) if (!silent)
Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is now AFK", null); Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is now AFK", null);
@@ -103,9 +106,10 @@ public class AFK implements Module, Listener
return true; return true;
} }
public void unafk(CommandSender sender) public void unafk(CommandSender sender, boolean silent)
{ {
DataManager.setState(sender, "afk", false); DataManager.setState(sender, "afk", false);
if (!silent)
Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null); Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null);
} }
@@ -200,6 +204,7 @@ class CustomListener implements Listener, EventExecutor
public void unafk(CommandSender sender) public void unafk(CommandSender sender)
{ {
DataManager.setState(sender, "afk", false); DataManager.setState(sender, "afk", false);
if ( !isSilent(sender) )
Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null); Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null);
} }
@@ -208,6 +213,11 @@ class CustomListener implements Listener, EventExecutor
return DataManager.getState(sender, "afk"); return DataManager.getState(sender, "afk");
} }
public boolean isSilent(CommandSender sender)
{
return DataManager.getState(sender, "afk_silent");
}
public boolean isVanished(Player player) public boolean isVanished(Player player)
{ {
return DataManager.getState(player, "vanished"); return DataManager.getState(player, "vanished");

View File

@@ -36,7 +36,7 @@ import net.nemez.chatapi.click.Message;
@AutoRegisterListener @AutoRegisterListener
@Commands(CommandHolderType.File) @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 public class Seen implements Module, Listener
{ {
HashMap<UUID, JSONArray> names = new HashMap<>(); HashMap<UUID, JSONArray> names = new HashMap<>();
@@ -101,8 +101,11 @@ public class Seen implements Module, Listener
{ {
message.add("They're currently &eAFK&7:"); message.add("They're currently &eAFK&7:");
String reason = (String) DataManager.getOrDefault(p.getUniqueId().toString(), "AFK", "afk_reason", ""); 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) if (reason.length() >= 1)
message.add(" &3- " + reason); message.add(" &9Reason: " + reason);
} }
if (DataManager.getState((Player) p, "vanished")) if (DataManager.getState((Player) p, "vanished"))
message.add("They're currently &evanished&7!"); message.add("They're currently &evanished&7!");