1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-01 18:53:27 +02:00

Added exempt/offline permissions to fly, god, gamemode and socialspy command. Added more options to socialspy

This commit is contained in:
snowleo
2012-10-16 22:04:56 +02:00
parent 3b32012a67
commit ef289cb309
8 changed files with 92 additions and 20 deletions

View File

@@ -39,7 +39,6 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
Location getHome(Location loc); Location getHome(Location loc);
//boolean isHidden(); //boolean isHidden();
ITeleport getTeleport(); ITeleport getTeleport();
void checkCooldown(UserData.TimestampType cooldownType, double cooldown, boolean set, IPermission bypassPermission) throws CooldownException; void checkCooldown(UserData.TimestampType cooldownType, double cooldown, boolean set, IPermission bypassPermission) throws CooldownException;
@@ -84,8 +83,6 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
void setMuted(boolean mute); void setMuted(boolean mute);
boolean toggleSocialSpy();
void requestTeleport(IUser user, boolean b); void requestTeleport(IUser user, boolean b);
boolean isTpRequestHere(); boolean isTpRequestHere();

View File

@@ -40,6 +40,11 @@ public class Commandfly extends EssentialsCommand
{ {
for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender))) for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{ {
if (Permissions.FLY_EXEMPT.isAuthorized(matchPlayer))
{
sender.sendMessage("Can't change fly mode for player " + matchPlayer.getName()); //TODO: I18n
continue;
}
if (args.length > 1) if (args.length > 1)
{ {
if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1")) if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
@@ -60,7 +65,9 @@ public class Commandfly extends EssentialsCommand
{ {
matchPlayer.getPlayer().setFlying(false); matchPlayer.getPlayer().setFlying(false);
} }
sender.sendMessage(_("flyMode", _(matchPlayer.getPlayer().getAllowFlight() ? "enabled" : "disabled"), matchPlayer.getPlayer().getDisplayName())); final String message = _("flyMode", _(matchPlayer.getPlayer().getAllowFlight() ? "enabled" : "disabled"), matchPlayer.getPlayer().getDisplayName());
matchPlayer.sendMessage(message);
sender.sendMessage(message);
} }
} }
} }

View File

@@ -38,6 +38,11 @@ public class Commandgamemode extends EssentialsCommand
{ {
for (IUser player : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender))) for (IUser player : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{ {
if (Permissions.GAMEMODE_EXEMPT.isAuthorized(player))
{
sender.sendMessage("Can't change gamemode for player " + player.getPlayer().getDisplayName()); //TODO: I18n
continue;
}
if (args.length > 1) if (args.length > 1)
{ {
if (args[1].contains("creat") || args[1].equalsIgnoreCase("1")) if (args[1].contains("creat") || args[1].equalsIgnoreCase("1"))

View File

@@ -36,6 +36,13 @@ public class Commandgod extends EssentialsCommand
{ {
for (IUser player : ess.getUserMap().matchUsers(args[0], true)) for (IUser player : ess.getUserMap().matchUsers(args[0], true))
{ {
if (player.isOnline()
? Permissions.GOD_EXEMPT.isAuthorized(player)
: !Permissions.GOD_OFFLINE.isAuthorized(sender))
{
sender.sendMessage("Can't change god mode for player " + player.getName()); //TODO: I18n
continue;
}
if (args.length > 1) if (args.length > 1)
{ {
if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1")) if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))

View File

@@ -2,13 +2,70 @@ package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender;
public class Commandsocialspy extends EssentialsCommand public class Commandsocialspy extends EssentialsCommand
{ {
@Override @Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
user.sendMessage("§7SocialSpy " + (user.toggleSocialSpy() ? _("enabled") : _("disabled"))); if (args.length < 1)
{
throw new NotEnoughArgumentsException();
}
socialspyOtherPlayers(sender, args);
}
@Override
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{
if (args.length > 0 && !args[0].trim().isEmpty() && Permissions.SOCIALSPY_OTHERS.isAuthorized(user))
{
socialspyOtherPlayers(user, args);
return;
}
user.getData().setSocialspy(!user.getData().isSocialspy());
user.queueSave();
user.sendMessage("§7SocialSpy " + (user.getData().isSocialspy() ? _("enabled") : _("disabled")));
}
private void socialspyOtherPlayers(final CommandSender sender, final String[] args)
{
for (IUser player : ess.getUserMap().matchUsers(args[0], true))
{
if (player.isOnline()
? Permissions.SOCIALSPY_EXEMPT.isAuthorized(player)
: !Permissions.SOCIALSPY_OFFLINE.isAuthorized(sender))
{
sender.sendMessage("Can't change socialspy for player " + player.getName()); //TODO: I18n
continue;
}
if (args.length > 1)
{
if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
{
player.getData().setSocialspy(true);
player.queueSave();
}
else
{
player.getData().setSocialspy(false);
player.queueSave();
}
}
else
{
player.getData().setSocialspy(!player.getData().isSocialspy());
player.queueSave();
}
final boolean enabled = player.getData().isSocialspy();
player.sendMessage("§7SocialSpy " + (enabled ? _("enabled") : _("disabled"))); //TODO:I18n
sender.sendMessage("§7SocialSpy " + (enabled ? _("enabled") : _("disabled")));
}
} }
} }

View File

@@ -36,11 +36,15 @@ public enum Permissions implements IPermission
EXP_SET_OTHERS, EXP_SET_OTHERS,
EXP_OTHERS, EXP_OTHERS,
FEED_OTHERS, FEED_OTHERS,
FLY_EXEMPT,
FLY_OTHERS, FLY_OTHERS,
GAMEMODE_EXEMPT,
GAMEMODE_OTHERS, GAMEMODE_OTHERS,
GEOIP_HIDE(PermissionDefault.FALSE), GEOIP_HIDE(PermissionDefault.FALSE),
GEOIP_SHOW(PermissionDefault.TRUE), GEOIP_SHOW(PermissionDefault.TRUE),
GETPOS_OTHERS, GETPOS_OTHERS,
GOD_EXEMPT,
GOD_OFFLINE,
GOD_OTHERS, GOD_OTHERS,
GIVE_ENCHANTED, GIVE_ENCHANTED,
GIVE_ENCHANTED_UNSAFE(PermissionDefault.FALSE), GIVE_ENCHANTED_UNSAFE(PermissionDefault.FALSE),
@@ -83,6 +87,9 @@ public enum Permissions implements IPermission
SPAWN_OTHERS, SPAWN_OTHERS,
SPEED_BYPASS, SPEED_BYPASS,
SPEED_OTHERS, SPEED_OTHERS,
SOCIALSPY_EXEMPT,
SOCIALSPY_OFFLINE,
SOCIALSPY_OTHERS,
SUDO_EXEMPT, SUDO_EXEMPT,
TELEPORT_COOLDOWN_BYPASS, TELEPORT_COOLDOWN_BYPASS,
TELEPORT_HIDDEN, TELEPORT_HIDDEN,

View File

@@ -230,14 +230,6 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
queueSave(); queueSave();
} }
public boolean toggleSocialSpy()
{
boolean ret = !getData().isSocialspy();
getData().setSocialspy(ret);
queueSave();
return ret;
}
public boolean toggleTeleportEnabled() public boolean toggleTeleportEnabled()
{ {
boolean ret = !getData().isTeleportEnabled(); boolean ret = !getData().isTeleportEnabled();

View File

@@ -320,7 +320,7 @@ commands:
aliases: [esetworth] aliases: [esetworth]
socialspy: socialspy:
description: Toggles if you can see msg/mail commands in chat. description: Toggles if you can see msg/mail commands in chat.
usage: /<command> usage: /<command> [player] [on|off]
aliases: [esocialspy] aliases: [esocialspy]
spawn: spawn:
description: Teleport to the spawnpoint. description: Teleport to the spawnpoint.