From dd8a3cfa4ff24b581b5f04e640cf021aa488e921 Mon Sep 17 00:00:00 2001 From: ementalo Date: Mon, 18 Jun 2012 11:21:28 +0100 Subject: [PATCH] Allow syntax: /god --- .../com/earth2me/essentials/api/IUser.java | 6 ++-- .../essentials/commands/Commandgod.java | 30 +++++++++++++++---- .../com/earth2me/essentials/user/User.java | 12 +------- .../earth2me/essentials/user/UserBase.java | 6 ++-- Essentials/src/plugin.yml | 4 +-- 5 files changed, 32 insertions(+), 26 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/api/IUser.java b/Essentials/src/com/earth2me/essentials/api/IUser.java index d9811a9af..e18a4470e 100644 --- a/Essentials/src/com/earth2me/essentials/api/IUser.java +++ b/Essentials/src/com/earth2me/essentials/api/IUser.java @@ -75,9 +75,7 @@ public interface IUser extends Player, IStorageObjectHolder, IReload, void setIgnoredPlayer(String name, boolean set); Location getAfkPosition(); - - boolean toggleGodModeEnabled(); - + void dispose(); void updateCompass(); @@ -124,4 +122,6 @@ public interface IUser extends Player, IStorageObjectHolder, IReload, void update(final Player base); + void setGodModeEnabled(boolean set); + } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgod.java b/Essentials/src/com/earth2me/essentials/commands/Commandgod.java index 037c8cb50..e23553036 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandgod.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandgod.java @@ -17,7 +17,7 @@ public class Commandgod extends EssentialsCommand throw new NotEnoughArgumentsException(); } - godOtherPlayers(sender, args[0]); + godOtherPlayers(sender, args); } @Override @@ -25,23 +25,41 @@ public class Commandgod extends EssentialsCommand { if (args.length > 0 && !args[0].trim().isEmpty() && Permissions.GOD_OTHERS.isAuthorized(user)) { - godOtherPlayers(user, args[0]); + godOtherPlayers(user, args); return; } - user.sendMessage(_("godMode", (user.toggleGodModeEnabled() ? _("enabled") : _("disabled")))); + user.setGodModeEnabled(!user.isGodModeEnabled()); + user.sendMessage(_("godMode", (user.isGodModeEnabled() ? _("enabled") : _("disabled")))); } - private void godOtherPlayers(final CommandSender sender, final String name) + private void godOtherPlayers(final CommandSender sender, final String[] args) { - for (Player matchPlayer : server.matchPlayer(name)) + for (Player matchPlayer : server.matchPlayer(args[0])) { final IUser player = ess.getUser(matchPlayer); if (player.isHidden()) { continue; } - final boolean enabled = player.toggleGodModeEnabled(); + + if (args.length > 1) + { + if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1")) + { + player.setGodModeEnabled(true); + } + else + { + player.setGodModeEnabled(false); + } + } + else + { + player.setGodModeEnabled(!player.isGodModeEnabled()); + } + + final boolean enabled = player.isGodModeEnabled(); player.sendMessage(_("godMode", (enabled ? _("enabled") : _("disabled")))); sender.sendMessage(_("godMode", _(enabled ? "godEnabledFor" : "godDisabledFor", matchPlayer.getDisplayName()))); } diff --git a/Essentials/src/com/earth2me/essentials/user/User.java b/Essentials/src/com/earth2me/essentials/user/User.java index fcb601c9a..82797ba8e 100644 --- a/Essentials/src/com/earth2me/essentials/user/User.java +++ b/Essentials/src/com/earth2me/essentials/user/User.java @@ -523,17 +523,7 @@ public class User extends UserBase implements IUser public Location getAfkPosition() { return afkPosition; - } - - @Override - public boolean toggleGodModeEnabled() - { - if (!isGodModeEnabled()) - { - setFoodLevel(20); - } - return super.toggleGodmode(); - } + } @Override public boolean isGodModeEnabled() diff --git a/Essentials/src/com/earth2me/essentials/user/UserBase.java b/Essentials/src/com/earth2me/essentials/user/UserBase.java index 7daeba0c6..5b444e962 100644 --- a/Essentials/src/com/earth2me/essentials/user/UserBase.java +++ b/Essentials/src/com/earth2me/essentials/user/UserBase.java @@ -272,14 +272,12 @@ public abstract class UserBase extends AsyncStorageObjectHolder implem } } - public boolean toggleGodmode() + public void setGodModeEnabled(boolean set) { acquireWriteLock(); try { - boolean ret = !getData().isGodmode(); - getData().setGodmode(ret); - return ret; + getData().setGodmode(set); } finally { diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index 5a157046c..271330f41 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -105,7 +105,7 @@ commands: aliases: [efeed,eat,eeat] fly: description: Take off, and soar! - usage: / [player] + usage: / [player] [on|off] aliases: [efly] itemdb: description: Searches for an item. @@ -133,7 +133,7 @@ commands: aliases: [egive] god: description: Enables your godly powers. - usage: / [player] + usage: / [player] [on|off] aliases: [tgm,godmode,egod,etgm,egodmode] hat: description: Get some cool new headgear