1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-20 13:31:25 +02:00

Allow syntax: /god <player> <on/off>

This commit is contained in:
ementalo
2012-06-18 11:21:28 +01:00
parent 3a38e4102a
commit dd8a3cfa4f
5 changed files with 32 additions and 26 deletions

View File

@@ -76,8 +76,6 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload,
Location getAfkPosition();
boolean toggleGodModeEnabled();
void dispose();
void updateCompass();
@@ -124,4 +122,6 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload,
void update(final Player base);
void setGodModeEnabled(boolean set);
}

View File

@@ -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())));
}

View File

@@ -525,16 +525,6 @@ public class User extends UserBase implements IUser
return afkPosition;
}
@Override
public boolean toggleGodModeEnabled()
{
if (!isGodModeEnabled())
{
setFoodLevel(20);
}
return super.toggleGodmode();
}
@Override
public boolean isGodModeEnabled()
{

View File

@@ -272,14 +272,12 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
}
}
public boolean toggleGodmode()
public void setGodModeEnabled(boolean set)
{
acquireWriteLock();
try
{
boolean ret = !getData().isGodmode();
getData().setGodmode(ret);
return ret;
getData().setGodmode(set);
}
finally
{

View File

@@ -105,7 +105,7 @@ commands:
aliases: [efeed,eat,eeat]
fly:
description: Take off, and soar!
usage: /<command> [player]
usage: /<command> [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: /<command> [player]
usage: /<command> [player] [on|off]
aliases: [tgm,godmode,egod,etgm,egodmode]
hat:
description: Get some cool new headgear