summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner/modules/afk/AFK.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/redstoner/modules/afk/AFK.java')
-rw-r--r--src/main/java/com/redstoner/modules/afk/AFK.java49
1 files changed, 45 insertions, 4 deletions
diff --git a/src/main/java/com/redstoner/modules/afk/AFK.java b/src/main/java/com/redstoner/modules/afk/AFK.java
index ee96137..417f32e 100644
--- a/src/main/java/com/redstoner/modules/afk/AFK.java
+++ b/src/main/java/com/redstoner/modules/afk/AFK.java
@@ -15,7 +15,7 @@ import org.bukkit.event.HandlerList;
@Commands(CommandHolderType.File)
@AutoRegisterListener
-@Version(major = 5, minor = 0, revision = 0, compatible = 4)
+@Version(major = 5, minor = 1, revision = 0, compatible = 4)
public class AFK implements Module {
private AFKListener listener;
@@ -63,11 +63,52 @@ public class AFK implements Module {
return afk(sender, silent, "");
}
+ @Command(hook = "afkignore")
+ public boolean afk(CommandSender sender, boolean silent, boolean ignoreMovement) {
+ return afk(sender, silent, ignoreMovement, "");
+ }
+
@Command(hook = "afkreason")
public boolean afk(CommandSender sender, boolean silent, String reason) {
- if (AFKUtil.isAfk(sender)) {
+ if (silent == false && reason.equals("help"))
+ return false;
+
+ return afkmain(sender, silent, reason, false);
+ }
+
+ @Command(hook = "afkfull")
+ public boolean afk(CommandSender sender, boolean silent, boolean ignoreMovement, String reason) {
+ boolean oldIgnoringMovement = AFKUtil.isIgnoringMovement(sender);
+ DataManager.setState(sender, "afk_ignoreMovement", ignoreMovement);
+
+ if (AFKUtil.isAfk(sender) && oldIgnoringMovement != ignoreMovement) {
+ if (ignoreMovement)
+ getLogger().message(sender, "Your movements will now be ignored.");
+ else
+ getLogger().message(sender, "Your movements will no longer be ignored.");
+ return afkmain(sender, silent, reason, true);
+ }
+ else if (AFKUtil.isAfk(sender)) {
+ if (ignoreMovement)
+ getLogger().message(sender, "Your movements will still be ignored.");
+ else
+ getLogger().message(sender, "Your movements will still not be ignored.");
+ return afkmain(sender, silent, reason, true);
+ }
+ return afkmain(sender, silent, reason, false);
+ }
+
+ public boolean afkmain(CommandSender sender, boolean silent, String reason, boolean keepAFK) {
+ boolean isAFK = AFKUtil.isAfk(sender);
+
+ if ( isAFK && reason.equals("") && !keepAFK)
AFKUtil.unAfk(sender, silent);
- } else {
+
+ else if (isAFK && !reason.equals("")) {
+ DataManager.setData(sender, "afk_reason", reason);
+ getLogger().message(sender, "Your reason has been updated.");
+ }
+ else if (!keepAFK) {
DataManager.setData(sender, "afk_time", System.currentTimeMillis());
DataManager.setData(sender, "afk_reason", reason);
DataManager.setState(sender, "afk_silent", silent);
@@ -78,7 +119,7 @@ public class AFK implements Module {
return true;
}
-
+
private boolean getListenSetting(String name, String def) {
return DataManager.getConfigOrDefault(name, def).equals("listen");
}