From 42714ff8afa4e60a1a862f086162e89948d5e8af Mon Sep 17 00:00:00 2001 From: triagonal Date: Sun, 30 Dec 2018 20:38:34 +1100 Subject: [PATCH 1/3] implement config toggle for afk users bypassing sleep --- .../src/com/earth2me/essentials/ISettings.java | 2 ++ Essentials/src/com/earth2me/essentials/Settings.java | 12 ++++++++++++ Essentials/src/com/earth2me/essentials/User.java | 2 +- Essentials/src/config.yml | 4 ++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index bf2c2be75..8fee70a12 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -181,6 +181,8 @@ public interface ISettings extends IConf { boolean cancelAfkOnInteract(); + boolean bypassSleepWhenAfk(); + boolean isAfkListName(); String getAfkListName(); diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index b10133119..074563978 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -494,6 +494,7 @@ public class Settings implements net.ess3.api.ISettings { cancelAfkOnInteract = _cancelAfkOnInteract(); cancelAfkOnMove = _cancelAfkOnMove(); getFreezeAfkPlayers = _getFreezeAfkPlayers(); + bypassSleepWhenAfk = _bypassSleepWhenAfk(); afkListName = _getAfkListName(); isAfkListName = !afkListName.equalsIgnoreCase("none"); itemSpawnBl = _getItemSpawnBlacklist(); @@ -870,6 +871,17 @@ public class Settings implements net.ess3.api.ISettings { return config.getBoolean("cancel-afk-on-interact", true); } + private boolean bypassSleepWhenAfk; + + @Override + public boolean bypassSleepWhenAfk() { + return bypassSleepWhenAfk; + } + + private boolean _bypassSleepWhenAfk() { + return config.getBoolean("bypass-sleep-when-afk", true); + } + private String afkListName; private boolean isAfkListName; diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index f6f502b17..20d0712be 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -457,7 +457,7 @@ public class User extends UserData implements Comparable, IMessageRecipien return; } - this.getBase().setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : set); + this.getBase().setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") || set && ess.getSettings().bypassSleepWhenAfk()); if (set && !isAfk()) { afkPosition = this.getLocation(); this.afkSince = System.currentTimeMillis(); diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index f379d7486..d4e3ebfc7 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -396,6 +396,10 @@ cancel-afk-on-interact: true # Disable this to reduce server lag. cancel-afk-on-move: true +# When a player is AFK, should they be taken into account when other players are trying to sleep? +# Set this to true when you want AFK players to be ignored when sleeping attempts to skip the night. +bypass-sleep-when-afk: false + # Set the player's list name when they are AFK. This is none by default which specifies that Essentials # should not interfere with the AFK player's list name. # You may use color codes, use {USERNAME} the player's name or {PLAYER} for the player's displayname. From d1bbebad3a2b09a43a936dd2488ca546df367709 Mon Sep 17 00:00:00 2001 From: triagonal Date: Sun, 30 Dec 2018 20:49:58 +1100 Subject: [PATCH 2/3] updated config comments --- Essentials/src/config.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index d4e3ebfc7..4c8ff6f06 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -396,9 +396,10 @@ cancel-afk-on-interact: true # Disable this to reduce server lag. cancel-afk-on-move: true -# When a player is AFK, should they be taken into account when other players are trying to sleep? -# Set this to true when you want AFK players to be ignored when sleeping attempts to skip the night. -bypass-sleep-when-afk: false +# Should AFK players be ignored when other players are trying to sleep? +# When this setting is false, players won't be able to skip the night if some players are AFK. +# Users with the permission node essentials.sleepingignored will always be ignored. +bypass-sleep-when-afk: true # Set the player's list name when they are AFK. This is none by default which specifies that Essentials # should not interfere with the AFK player's list name. From 3d004d2a811dd586fa1fad43b1ca9cfed8e6236c Mon Sep 17 00:00:00 2001 From: triagonal Date: Mon, 31 Dec 2018 16:42:42 +1100 Subject: [PATCH 3/3] change config setting name --- .../src/com/earth2me/essentials/ISettings.java | 2 +- Essentials/src/com/earth2me/essentials/Settings.java | 12 ++++++------ Essentials/src/com/earth2me/essentials/User.java | 2 +- Essentials/src/config.yml | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 8fee70a12..1112ef78d 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -181,7 +181,7 @@ public interface ISettings extends IConf { boolean cancelAfkOnInteract(); - boolean bypassSleepWhenAfk(); + boolean sleepIgnoresAfkPlayers(); boolean isAfkListName(); diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 074563978..5e2ba09df 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -494,7 +494,7 @@ public class Settings implements net.ess3.api.ISettings { cancelAfkOnInteract = _cancelAfkOnInteract(); cancelAfkOnMove = _cancelAfkOnMove(); getFreezeAfkPlayers = _getFreezeAfkPlayers(); - bypassSleepWhenAfk = _bypassSleepWhenAfk(); + sleepIgnoresAfkPlayers = _sleepIgnoresAfkPlayers(); afkListName = _getAfkListName(); isAfkListName = !afkListName.equalsIgnoreCase("none"); itemSpawnBl = _getItemSpawnBlacklist(); @@ -871,15 +871,15 @@ public class Settings implements net.ess3.api.ISettings { return config.getBoolean("cancel-afk-on-interact", true); } - private boolean bypassSleepWhenAfk; + private boolean sleepIgnoresAfkPlayers; @Override - public boolean bypassSleepWhenAfk() { - return bypassSleepWhenAfk; + public boolean sleepIgnoresAfkPlayers() { + return sleepIgnoresAfkPlayers; } - private boolean _bypassSleepWhenAfk() { - return config.getBoolean("bypass-sleep-when-afk", true); + private boolean _sleepIgnoresAfkPlayers() { + return config.getBoolean("sleep-ignores-afk-players", true); } private String afkListName; diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 20d0712be..b2ff83123 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -457,7 +457,7 @@ public class User extends UserData implements Comparable, IMessageRecipien return; } - this.getBase().setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") || set && ess.getSettings().bypassSleepWhenAfk()); + this.getBase().setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") || set && ess.getSettings().sleepIgnoresAfkPlayers()); if (set && !isAfk()) { afkPosition = this.getLocation(); this.afkSince = System.currentTimeMillis(); diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 4c8ff6f06..e3714f830 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -399,7 +399,7 @@ cancel-afk-on-move: true # Should AFK players be ignored when other players are trying to sleep? # When this setting is false, players won't be able to skip the night if some players are AFK. # Users with the permission node essentials.sleepingignored will always be ignored. -bypass-sleep-when-afk: true +sleep-ignores-afk-players: true # Set the player's list name when they are AFK. This is none by default which specifies that Essentials # should not interfere with the AFK player's list name.