From 3a8b888e7cf1c5a14f9c1251d07d75b97aa54214 Mon Sep 17 00:00:00 2001 From: ementalo Date: Sat, 2 Jul 2011 23:53:54 +0100 Subject: [PATCH] fixes #475. User is no longer afk if they move. others can set afk /afk playername. needs essentials.afk.others --- .../essentials/EssentialsPlayerListener.java | 6 ++++++ .../essentials/commands/Commandafk.java | 20 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 044560bfe..611b479bb 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -91,6 +91,12 @@ public class EssentialsPlayerListener extends PlayerListener } final User user = ess.getUser(event.getPlayer()); + if(user.isAfk()) + { + user.setAfk(false); + ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName())); + } + if (!ess.getSettings().getNetherPortalsEnabled()) { return; diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandafk.java b/Essentials/src/com/earth2me/essentials/commands/Commandafk.java index 24ff9758b..03950966c 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandafk.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandafk.java @@ -17,11 +17,29 @@ public class Commandafk extends EssentialsCommand { charge(user); + if (args.length > 0 && user.isAuthorized("essentials.afk.others")) + { + User afkUser = ess.getUser(ess.getServer().matchPlayer(args[0])); + if (afkUser != null) + { + toggleAfk(afkUser); + } + } + else + { + toggleAfk(user); + } + } + + private final void toggleAfk(User user) + { if (!user.toggleAfk()) { user.sendMessage(Util.i18n("markedAsNotAway")); ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName())); - } else { + } + else + { user.sendMessage(Util.i18n("markedAsAway")); ess.broadcastMessage(user.getName(), Util.format("userIsAway", user.getDisplayName())); }