Add permission: essentials.msg.multiple and essentials.pay.multiple

Message permission will allow rough nick matches and wildcards, while pay will only allow wildcards.
This commit is contained in:
KHobbits 2013-12-28 22:35:55 +00:00
parent 58440dd594
commit 46691871ad
10 changed files with 21 additions and 18 deletions

View File

@ -40,7 +40,7 @@ public class Commandeco extends EssentialsLoopCommand
throw new NotEnoughArgumentsException(ex); throw new NotEnoughArgumentsException(ex);
} }
loopOfflinePlayers(server, sender, false, args[1], args); loopOfflinePlayers(server, sender, false, true, args[1], args);
if (cmd == Commandeco.EcoCommands.RESET || cmd == Commandeco.EcoCommands.SET) if (cmd == Commandeco.EcoCommands.RESET || cmd == Commandeco.EcoCommands.SET)
{ {

View File

@ -22,7 +22,7 @@ public class Commandext extends EssentialsLoopCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
loopOnlinePlayers(server, sender, true, args[0], null); loopOnlinePlayers(server, sender, true, true, args[0], null);
} }
@Override @Override
@ -35,7 +35,7 @@ public class Commandext extends EssentialsLoopCommand
return; return;
} }
loopOnlinePlayers(server, user.getSource(), true, args[0], null); loopOnlinePlayers(server, user.getSource(), true, true, args[0], null);
} }
@Override @Override

View File

@ -25,7 +25,7 @@ public class Commandfeed extends EssentialsLoopCommand
if (args.length > 0 && user.isAuthorized("essentials.feed.others")) if (args.length > 0 && user.isAuthorized("essentials.feed.others"))
{ {
loopOnlinePlayers(server, user.getSource(), true, args[0], null); loopOnlinePlayers(server, user.getSource(), true, true, args[0], null);
return; return;
} }
@ -41,7 +41,7 @@ public class Commandfeed extends EssentialsLoopCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
loopOnlinePlayers(server, sender, true, args[0], null); loopOnlinePlayers(server, sender, true, true, args[0], null);
} }
@Override @Override

View File

@ -27,7 +27,7 @@ public class Commandheal extends EssentialsLoopCommand
if (args.length > 0 && user.isAuthorized("essentials.heal.others")) if (args.length > 0 && user.isAuthorized("essentials.heal.others"))
{ {
loopOnlinePlayers(server, user.getSource(), true, args[0], null); loopOnlinePlayers(server, user.getSource(), true, true, args[0], null);
return; return;
} }
@ -42,7 +42,7 @@ public class Commandheal extends EssentialsLoopCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
loopOnlinePlayers(server, sender, true, args[0], null); loopOnlinePlayers(server, sender, true, true, args[0], null);
} }
@Override @Override

View File

@ -23,7 +23,7 @@ public class Commandkill extends EssentialsLoopCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
loopOnlinePlayers(server, sender, true, args[0], null); loopOnlinePlayers(server, sender, true, true, args[0], null);
} }
@Override @Override

View File

@ -40,7 +40,7 @@ public class Commandlightning extends EssentialsLoopCommand
{ {
} }
} }
loopOnlinePlayers(server, sender, true, args[0], null); loopOnlinePlayers(server, sender, true, true, args[0], null);
} }
@Override @Override

View File

@ -29,6 +29,7 @@ public class Commandmsg extends EssentialsLoopCommand
} }
String message = getFinalArg(args, 1); String message = getFinalArg(args, 1);
boolean canWildcard;
if (sender.isPlayer()) if (sender.isPlayer())
{ {
User user = ess.getUser(sender.getPlayer()); User user = ess.getUser(sender.getPlayer());
@ -37,10 +38,12 @@ public class Commandmsg extends EssentialsLoopCommand
throw new Exception(_("voiceSilenced")); throw new Exception(_("voiceSilenced"));
} }
message = FormatUtil.formatMessage(user, "essentials.msg", message); message = FormatUtil.formatMessage(user, "essentials.msg", message);
canWildcard = user.isAuthorized("essentials.msg.multiple");
} }
else else
{ {
message = FormatUtil.replaceFormat(message); message = FormatUtil.replaceFormat(message);
canWildcard = true;
} }
if (args[0].equalsIgnoreCase(Console.NAME)) if (args[0].equalsIgnoreCase(Console.NAME))
@ -56,7 +59,7 @@ public class Commandmsg extends EssentialsLoopCommand
return; return;
} }
loopOnlinePlayers(server, sender, false, args[0], new String[]{message}); loopOnlinePlayers(server, sender, canWildcard, canWildcard, args[0], new String[]{message});
} }
@Override @Override

View File

@ -32,7 +32,7 @@ public class Commandnick extends EssentialsLoopCommand
if (args.length > 1 && user.isAuthorized("essentials.nick.others")) if (args.length > 1 && user.isAuthorized("essentials.nick.others"))
{ {
final String[] nickname = formatNickname(user, args[1]).split(" "); final String[] nickname = formatNickname(user, args[1]).split(" ");
loopOfflinePlayers(server, user.getSource(), false, args[0], nickname); loopOfflinePlayers(server, user.getSource(), false, true, args[0], nickname);
user.sendMessage(_("nickChanged")); user.sendMessage(_("nickChanged"));
} }
else else
@ -54,7 +54,7 @@ public class Commandnick extends EssentialsLoopCommand
throw new Exception(_("nickDisplayName")); throw new Exception(_("nickDisplayName"));
} }
final String[] nickname = formatNickname(null, args[1]).split(" "); final String[] nickname = formatNickname(null, args[1]).split(" ");
loopOfflinePlayers(server, sender, false, args[0], nickname); loopOfflinePlayers(server, sender, false, true, args[0], nickname);
sender.sendMessage(_("nickChanged")); sender.sendMessage(_("nickChanged"));
} }

View File

@ -26,7 +26,7 @@ public class Commandpay extends EssentialsLoopCommand
} }
amount = new BigDecimal(args[1].replaceAll("[^0-9\\.]", "")); amount = new BigDecimal(args[1].replaceAll("[^0-9\\.]", ""));
loopOnlinePlayers(server, user.getSource(), false, args[0], args); loopOnlinePlayers(server, user.getSource(), false, user.isAuthorized("essentials.pay.multiple"), args[0], args);
} }
@Override @Override

View File

@ -15,7 +15,7 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
super(command); super(command);
} }
protected void loopOfflinePlayers(final Server server, final CommandSource sender, final boolean multipleStringMatches, final String searchTerm, final String[] commandArgs) protected void loopOfflinePlayers(final Server server, final CommandSource sender, final boolean multipleStringMatches, boolean matchWildcards, final String searchTerm, final String[] commandArgs)
throws PlayerNotFoundException, NotEnoughArgumentsException, PlayerExemptException, ChargeException throws PlayerNotFoundException, NotEnoughArgumentsException, PlayerExemptException, ChargeException
{ {
if (searchTerm.isEmpty()) if (searchTerm.isEmpty())
@ -23,7 +23,7 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
throw new PlayerNotFoundException(); throw new PlayerNotFoundException();
} }
if (searchTerm.contentEquals("**")) if (matchWildcards && searchTerm.contentEquals("**"))
{ {
for (String sUser : ess.getUserMap().getAllUniqueUsers()) for (String sUser : ess.getUserMap().getAllUniqueUsers())
{ {
@ -31,7 +31,7 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
updatePlayer(server, sender, matchedUser, commandArgs); updatePlayer(server, sender, matchedUser, commandArgs);
} }
} }
else if (searchTerm.contentEquals("*")) else if (matchWildcards && searchTerm.contentEquals("*"))
{ {
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact"); boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
@ -69,7 +69,7 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
} }
} }
protected void loopOnlinePlayers(final Server server, final CommandSource sender, final boolean multipleStringMatches, final String searchTerm, final String[] commandArgs) protected void loopOnlinePlayers(final Server server, final CommandSource sender, final boolean multipleStringMatches, boolean matchWildcards, final String searchTerm, final String[] commandArgs)
throws PlayerNotFoundException, NotEnoughArgumentsException, PlayerExemptException, ChargeException throws PlayerNotFoundException, NotEnoughArgumentsException, PlayerExemptException, ChargeException
{ {
if (searchTerm.isEmpty()) if (searchTerm.isEmpty())
@ -79,7 +79,7 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact"); boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
if (searchTerm.contentEquals("**") || searchTerm.contentEquals("*")) if (matchWildcards && (searchTerm.contentEquals("**") || searchTerm.contentEquals("*")))
{ {
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {