Added Silent AFK, and made the Seen Module show how long someone's been
afk for.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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<UUID, JSONArray> 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!");
|
||||
|
||||
Reference in New Issue
Block a user