From 78cd64c388a0f6c259d0d119d03db43613ee47f7 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sun, 6 May 2012 23:38:04 +0100 Subject: [PATCH] Revert "Revert "New config option 'cancel-afk-on-move' - Set to false you don't use afk." -- This should fix afk mode." This reverts commit 95e6db679775d7ecb95ece8192b350f4c87169cb. Another attempt at adding 'cancel-afk-on-move' toggle. --- .../essentials/EssentialsPlayerListener.java | 11 ++++---- .../com/earth2me/essentials/ISettings.java | 10 ++++--- .../src/com/earth2me/essentials/Settings.java | 26 ++++++++++++++++--- Essentials/src/config.yml | 5 ++++ 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 1b4f461c4..a2082238d 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -73,15 +73,15 @@ public class EssentialsPlayerListener implements Listener @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onPlayerMove(final PlayerMoveEvent event) { - if (event.getFrom().getBlockX() == event.getTo().getBlockX() - && event.getFrom().getBlockZ() == event.getTo().getBlockZ() - && event.getFrom().getBlockY() == event.getTo().getBlockY()) + if ((!ess.getSettings().cancelAfkOnMove() && !ess.getSettings().getFreezeAfkPlayers()) + || event.getFrom().getBlockX() == event.getTo().getBlockX() + && event.getFrom().getBlockZ() == event.getTo().getBlockZ() + && event.getFrom().getBlockY() == event.getTo().getBlockY()) { return; } final User user = ess.getUser(event.getPlayer()); - if (user.isAfk() && ess.getSettings().getFreezeAfkPlayers()) { final Location from = event.getFrom(); @@ -99,7 +99,6 @@ public class EssentialsPlayerListener implements Listener } return; } - final Location afk = user.getAfkPosition(); if (afk == null || !event.getTo().getWorld().equals(afk.getWorld()) || afk.distanceSquared(event.getTo()) > 9) { @@ -419,7 +418,7 @@ public class EssentialsPlayerListener implements Listener final User user = ess.getUser(event.getWhoClicked()); final User invOwner = ess.getUser(event.getView().getPlayer()); if (user.isInvSee() && (!user.isAuthorized("essentials.invsee.modify") - || invOwner.isAuthorized("essentials.invsee.preventmodify"))) + || invOwner.isAuthorized("essentials.invsee.preventmodify"))) { event.setCancelled(true); } diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 2c07ccd58..8eca8f06f 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -127,7 +127,7 @@ public interface ISettings extends IConf boolean removeGodOnDisconnect(); boolean changeDisplayName(); - + boolean changePlayerListName(); boolean isPlayerCommand(String string); @@ -146,6 +146,8 @@ public interface ISettings extends IConf boolean getFreezeAfkPlayers(); + boolean cancelAfkOnMove(); + boolean areDeathMessagesEnabled(); public void setDebug(boolean debug); @@ -165,12 +167,12 @@ public interface ISettings extends IConf EventPriority getRespawnPriority(); long getTpaAcceptCancellation(); - + boolean isMetricsEnabled(); - + void setMetricsEnabled(boolean metricsEnabled); long getTeleportInvulnerability(); - + boolean isTeleportInvulnerability(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 281280122..5d49c52b8 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -385,6 +385,8 @@ public class Settings implements ISettings teleportInvulnerability = _isTeleportInvulnerability(); disableItemPickupWhileAfk = _getDisableItemPickupWhileAfk(); registerBackInListener = _registerBackInListener(); + cancelAfkOnMove = _cancelAfkOnMove(); + getFreezeAfkPlayers = _getFreezeAfkPlayers(); itemSpawnBl = _getItemSpawnBlacklist(); kits = _getKits(); chatFormats.clear(); @@ -654,12 +656,30 @@ public class Settings implements ISettings { return config.getLong("auto-afk-kick", -1); } + private boolean getFreezeAfkPlayers; @Override public boolean getFreezeAfkPlayers() + { + return getFreezeAfkPlayers; + } + + private boolean _getFreezeAfkPlayers() { return config.getBoolean("freeze-afk-players", false); } + private boolean cancelAfkOnMove; + + @Override + public boolean cancelAfkOnMove() + { + return cancelAfkOnMove; + } + + private boolean _cancelAfkOnMove() + { + return config.getBoolean("cancel-afk-on-move", true); + } @Override public boolean areDeathMessagesEnabled() @@ -691,20 +711,18 @@ public class Settings implements ISettings { return config.getBoolean("world-teleport-permissions", false); } - private boolean registerBackInListener; - + @Override public boolean registerBackInListener() { return registerBackInListener; } - + private boolean _registerBackInListener() { return config.getBoolean("register-back-in-listener", false); } - private boolean disableItemPickupWhileAfk; @Override diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index e8378f77e..c7c9decb0 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -272,6 +272,11 @@ freeze-afk-players: false # Enable this, when you don't want people idling in mob traps. disable-item-pickup-while-afk: false +# Should we automatically remove afk status when the player moves? +# Player will be removed from afk on chat/command reguardless of this setting. +# Disable this to reduce server lag. +cancel-afk-on-move: true + # You can disable the death messages of minecraft here death-messages: true