mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-08-05 03:53:41 +00:00
Extract user match looping
This commit is contained in:
parent
e6b76cadbc
commit
03368e45df
14 changed files with 381 additions and 386 deletions
|
@ -26,6 +26,7 @@ import com.earth2me.essentials.commands.EssentialsCommand;
|
||||||
import com.earth2me.essentials.commands.IEssentialsCommand;
|
import com.earth2me.essentials.commands.IEssentialsCommand;
|
||||||
import com.earth2me.essentials.commands.NoChargeException;
|
import com.earth2me.essentials.commands.NoChargeException;
|
||||||
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
|
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
|
||||||
|
import com.earth2me.essentials.commands.QuietAbortException;
|
||||||
import com.earth2me.essentials.metrics.Metrics;
|
import com.earth2me.essentials.metrics.Metrics;
|
||||||
import com.earth2me.essentials.metrics.MetricsListener;
|
import com.earth2me.essentials.metrics.MetricsListener;
|
||||||
import com.earth2me.essentials.metrics.MetricsStarter;
|
import com.earth2me.essentials.metrics.MetricsStarter;
|
||||||
|
@ -510,6 +511,10 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
catch (QuietAbortException ex)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
catch (NotEnoughArgumentsException ex)
|
catch (NotEnoughArgumentsException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(command.getDescription());
|
sender.sendMessage(command.getDescription());
|
||||||
|
|
|
@ -152,7 +152,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void payUser(final User reciever, final BigDecimal value) throws Exception
|
public void payUser(final User reciever, final BigDecimal value) throws ChargeException
|
||||||
{
|
{
|
||||||
if (value.signum() == 0)
|
if (value.signum() == 0)
|
||||||
{
|
{
|
||||||
|
@ -167,7 +167,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new Exception(_("notEnoughMoney"));
|
throw new ChargeException(_("notEnoughMoney"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.earth2me.essentials.commands;
|
package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.ChargeException;
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
import com.earth2me.essentials.utils.NumberUtil;
|
import com.earth2me.essentials.utils.NumberUtil;
|
||||||
|
@ -7,11 +8,13 @@ import java.math.BigDecimal;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
|
|
||||||
public class Commandeco extends EssentialsCommand
|
public class Commandeco extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
|
Commandeco.EcoCommands cmd;
|
||||||
|
BigDecimal amount;
|
||||||
|
|
||||||
public Commandeco()
|
public Commandeco()
|
||||||
{
|
{
|
||||||
super("eco");
|
super("eco");
|
||||||
|
@ -25,11 +28,8 @@ public class Commandeco extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
Commandeco.EcoCommands cmd;
|
|
||||||
BigDecimal startingBalance = ess.getSettings().getStartingBalance();
|
BigDecimal startingBalance = ess.getSettings().getStartingBalance();
|
||||||
BigDecimal amount;
|
|
||||||
BigDecimal broadcast = null;
|
|
||||||
BigDecimal broadcastAll = null;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
cmd = Commandeco.EcoCommands.valueOf(args[0].toUpperCase(Locale.ENGLISH));
|
cmd = Commandeco.EcoCommands.valueOf(args[0].toUpperCase(Locale.ENGLISH));
|
||||||
|
@ -40,83 +40,42 @@ public class Commandeco extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException(ex);
|
throw new NotEnoughArgumentsException(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[1].contentEquals("**"))
|
loopOfflinePlayers(server, sender, false, args[1], args);
|
||||||
|
|
||||||
|
if (cmd == Commandeco.EcoCommands.RESET || cmd == Commandeco.EcoCommands.SET)
|
||||||
{
|
{
|
||||||
for (String sUser : ess.getUserMap().getAllUniqueUsers())
|
if (args[1].contentEquals("**"))
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(sUser);
|
server.broadcastMessage(_("resetBalAll", NumberUtil.displayCurrency(amount, ess)));
|
||||||
switch (cmd)
|
|
||||||
{
|
|
||||||
case GIVE:
|
|
||||||
player.giveMoney(amount);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TAKE:
|
|
||||||
take(amount, player, null);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RESET:
|
|
||||||
case SET:
|
|
||||||
set(amount, player, null);
|
|
||||||
broadcastAll = amount;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
else if (args[1].contentEquals("*"))
|
||||||
else if (args[1].contentEquals("*"))
|
|
||||||
{
|
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(onlinePlayer);
|
server.broadcastMessage(_("resetBal", NumberUtil.displayCurrency(amount, ess)));
|
||||||
switch (cmd)
|
|
||||||
{
|
|
||||||
case GIVE:
|
|
||||||
player.giveMoney(amount);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TAKE:
|
|
||||||
take(amount, player, null);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RESET:
|
|
||||||
case SET:
|
|
||||||
set(amount, player, null);
|
|
||||||
broadcast = amount;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
final User player = getPlayer(server, args, 1, true, true);
|
|
||||||
switch (cmd)
|
|
||||||
{
|
|
||||||
case GIVE:
|
|
||||||
player.giveMoney(amount, sender);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TAKE:
|
|
||||||
take(amount, player, sender);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RESET:
|
|
||||||
case SET:
|
|
||||||
set(amount, player, sender);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (broadcast != null)
|
|
||||||
{
|
|
||||||
server.broadcastMessage(_("resetBal", NumberUtil.displayCurrency(broadcast, ess)));
|
|
||||||
}
|
|
||||||
if (broadcastAll != null)
|
|
||||||
{
|
|
||||||
server.broadcastMessage(_("resetBalAll", NumberUtil.displayCurrency(broadcastAll, ess)));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void take(BigDecimal amount, final User player, final CommandSender sender) throws Exception
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User player, final String[] args) throws NotEnoughArgumentsException, ChargeException
|
||||||
|
{
|
||||||
|
switch (cmd)
|
||||||
|
{
|
||||||
|
case GIVE:
|
||||||
|
player.giveMoney(amount, sender);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TAKE:
|
||||||
|
take(amount, player, sender);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RESET:
|
||||||
|
case SET:
|
||||||
|
set(amount, player, sender);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void take(BigDecimal amount, final User player, final CommandSender sender) throws ChargeException
|
||||||
{
|
{
|
||||||
BigDecimal money = player.getMoney();
|
BigDecimal money = player.getMoney();
|
||||||
BigDecimal minBalance = ess.getSettings().getMinMoney();
|
BigDecimal minBalance = ess.getSettings().getMinMoney();
|
||||||
|
@ -131,7 +90,7 @@ public class Commandeco extends EssentialsCommand
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new Exception(_("insufficientFunds"));
|
throw new ChargeException(_("insufficientFunds"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,12 @@ package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
import java.util.List;
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
public class Commandext extends EssentialsCommand
|
public class Commandext extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
public Commandext()
|
public Commandext()
|
||||||
{
|
{
|
||||||
|
@ -23,7 +22,7 @@ public class Commandext extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
extinguishPlayers(server, sender, args[0]);
|
loopOnlinePlayers(server, sender, true, args[0], null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -31,7 +30,7 @@ public class Commandext extends EssentialsCommand
|
||||||
{
|
{
|
||||||
if (args.length < 1)
|
if (args.length < 1)
|
||||||
{
|
{
|
||||||
user.setFireTicks(0);
|
extPlayer(user.getBase());
|
||||||
user.sendMessage(_("extinguish"));
|
user.sendMessage(_("extinguish"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -41,28 +40,18 @@ public class Commandext extends EssentialsCommand
|
||||||
throw new PlayerNotFoundException();
|
throw new PlayerNotFoundException();
|
||||||
}
|
}
|
||||||
|
|
||||||
extinguishPlayers(server, user.getBase(), args[0]);
|
loopOnlinePlayers(server, user.getBase(), true, args[0], null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void extinguishPlayers(final Server server, final CommandSender sender, final String name) throws Exception
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User player, final String[] args)
|
||||||
{
|
{
|
||||||
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
extPlayer(player.getBase());
|
||||||
boolean foundUser = false;
|
sender.sendMessage(_("extinguishOthers", player.getDisplayName()));
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(name);
|
}
|
||||||
for (Player matchPlayer : matchedPlayers)
|
|
||||||
{
|
private void extPlayer(final Player player)
|
||||||
final User player = ess.getUser(matchPlayer);
|
{
|
||||||
if (skipHidden && player.isHidden())
|
player.setFireTicks(0);
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
foundUser = true;
|
|
||||||
matchPlayer.setFireTicks(0);
|
|
||||||
sender.sendMessage(_("extinguishOthers", matchPlayer.getDisplayName()));
|
|
||||||
}
|
|
||||||
if (!foundUser)
|
|
||||||
{
|
|
||||||
throw new PlayerNotFoundException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,14 +2,13 @@ package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
import java.util.List;
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||||
|
|
||||||
|
|
||||||
public class Commandfeed extends EssentialsCommand
|
public class Commandfeed extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
public Commandfeed()
|
public Commandfeed()
|
||||||
{
|
{
|
||||||
|
@ -19,33 +18,18 @@ public class Commandfeed extends EssentialsCommand
|
||||||
@Override
|
@Override
|
||||||
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
if (args.length > 0 && user.isAuthorized("essentials.feed.others"))
|
|
||||||
{
|
|
||||||
if (args[0].trim().length() < 2)
|
|
||||||
{
|
|
||||||
throw new PlayerNotFoundException();
|
|
||||||
}
|
|
||||||
if (!user.isAuthorized("essentials.feed.cooldown.bypass"))
|
|
||||||
{
|
|
||||||
user.healCooldown();
|
|
||||||
}
|
|
||||||
feedOtherPlayers(server, user.getBase(), args[0]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!user.isAuthorized("essentials.feed.cooldown.bypass"))
|
if (!user.isAuthorized("essentials.feed.cooldown.bypass"))
|
||||||
{
|
{
|
||||||
user.healCooldown();
|
user.healCooldown();
|
||||||
}
|
}
|
||||||
try
|
|
||||||
|
if (args.length > 0 && user.isAuthorized("essentials.feed.others"))
|
||||||
{
|
{
|
||||||
feedPlayer(user.getBase(), user.getBase());
|
loopOnlinePlayers(server, user.getBase(), true, args[0], null);
|
||||||
}
|
return;
|
||||||
catch (QuietAbortException e)
|
|
||||||
{
|
|
||||||
//User does not need feeding.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
feedPlayer(user.getBase());
|
||||||
user.sendMessage(_("feed"));
|
user.sendMessage(_("feed"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,38 +41,24 @@ public class Commandfeed extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
feedOtherPlayers(server, sender, args[0]);
|
loopOnlinePlayers(server, sender, true, args[0], null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void feedOtherPlayers(final Server server, final CommandSender sender, final String name) throws PlayerNotFoundException
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User player, final String[] args) throws PlayerExemptException
|
||||||
{
|
{
|
||||||
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
try
|
||||||
boolean foundUser = false;
|
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(name);
|
|
||||||
for (Player matchPlayer : matchedPlayers)
|
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(matchPlayer);
|
feedPlayer(player.getBase());
|
||||||
if (skipHidden && player.isHidden())
|
sender.sendMessage(_("feedOther", player.getDisplayName()));
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
foundUser = true;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
feedPlayer(sender, matchPlayer);
|
|
||||||
}
|
|
||||||
catch (QuietAbortException e)
|
|
||||||
{
|
|
||||||
//User does not need feeding.
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!foundUser)
|
catch (QuietAbortException e)
|
||||||
{
|
{
|
||||||
throw new PlayerNotFoundException();
|
//Handle Quietly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void feedPlayer(CommandSender sender, Player player) throws QuietAbortException
|
private void feedPlayer(final Player player) throws QuietAbortException
|
||||||
{
|
{
|
||||||
final int amount = 30;
|
final int amount = 30;
|
||||||
|
|
||||||
|
@ -101,10 +71,5 @@ public class Commandfeed extends EssentialsCommand
|
||||||
|
|
||||||
player.setFoodLevel(flce.getFoodLevel() > 20 ? 20 : flce.getFoodLevel());
|
player.setFoodLevel(flce.getFoodLevel() > 20 ? 20 : flce.getFoodLevel());
|
||||||
player.setSaturation(10);
|
player.setSaturation(10);
|
||||||
|
|
||||||
if (!sender.equals(player))
|
|
||||||
{
|
|
||||||
sender.sendMessage(_("feedOther", player.getDisplayName()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
import java.util.List;
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -11,7 +10,7 @@ import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
|
|
||||||
public class Commandheal extends EssentialsCommand
|
public class Commandheal extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
public Commandheal()
|
public Commandheal()
|
||||||
{
|
{
|
||||||
|
@ -21,26 +20,18 @@ public class Commandheal extends EssentialsCommand
|
||||||
@Override
|
@Override
|
||||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
if (args.length > 0 && user.isAuthorized("essentials.heal.others"))
|
|
||||||
{
|
|
||||||
if (args[0].trim().length() < 2)
|
|
||||||
{
|
|
||||||
throw new PlayerNotFoundException();
|
|
||||||
}
|
|
||||||
if (!user.isAuthorized("essentials.heal.cooldown.bypass"))
|
|
||||||
{
|
|
||||||
user.healCooldown();
|
|
||||||
}
|
|
||||||
healOtherPlayers(server, user.getBase(), args[0]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!user.isAuthorized("essentials.heal.cooldown.bypass"))
|
if (!user.isAuthorized("essentials.heal.cooldown.bypass"))
|
||||||
{
|
{
|
||||||
user.healCooldown();
|
user.healCooldown();
|
||||||
}
|
}
|
||||||
healPlayer(user.getBase());
|
|
||||||
|
if (args.length > 0 && user.isAuthorized("essentials.heal.others"))
|
||||||
|
{
|
||||||
|
loopOnlinePlayers(server, user.getBase(), true, args[0], null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
healPlayer(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -51,43 +42,30 @@ public class Commandheal extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
healOtherPlayers(server, sender, args[0]);
|
loopOnlinePlayers(server, sender, true, args[0], null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void healOtherPlayers(final Server server, final CommandSender sender, final String name) throws Exception
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User player, final String[] args) throws PlayerExemptException
|
||||||
{
|
{
|
||||||
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
try
|
||||||
boolean foundUser = false;
|
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(name);
|
|
||||||
for (Player matchPlayer : matchedPlayers)
|
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(matchPlayer);
|
healPlayer(player);
|
||||||
if (skipHidden && player.isHidden())
|
sender.sendMessage(_("healOther", player.getDisplayName()));
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
foundUser = true;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
healPlayer(matchPlayer);
|
|
||||||
sender.sendMessage(_("healOther", matchPlayer.getDisplayName()));
|
|
||||||
}
|
|
||||||
catch (QuietAbortException e)
|
|
||||||
{
|
|
||||||
//Handle Quietly
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!foundUser)
|
catch (QuietAbortException e)
|
||||||
{
|
{
|
||||||
throw new PlayerNotFoundException();
|
//Handle Quietly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void healPlayer(final Player player) throws Exception
|
private void healPlayer(final User user) throws PlayerExemptException, QuietAbortException
|
||||||
{
|
{
|
||||||
|
final Player player = user.getBase();
|
||||||
|
|
||||||
if (player.getHealth() == 0)
|
if (player.getHealth() == 0)
|
||||||
{
|
{
|
||||||
throw new Exception(_("healDead"));
|
throw new PlayerExemptException(_("healDead"));
|
||||||
}
|
}
|
||||||
|
|
||||||
final double amount = player.getMaxHealth() - player.getHealth();
|
final double amount = player.getMaxHealth() - player.getHealth();
|
||||||
|
@ -107,7 +85,7 @@ public class Commandheal extends EssentialsCommand
|
||||||
player.setHealth(newAmount);
|
player.setHealth(newAmount);
|
||||||
player.setFoodLevel(20);
|
player.setFoodLevel(20);
|
||||||
player.setFireTicks(0);
|
player.setFireTicks(0);
|
||||||
player.sendMessage(_("heal"));
|
user.sendMessage(_("heal"));
|
||||||
for (PotionEffect effect : player.getActivePotionEffects())
|
for (PotionEffect effect : player.getActivePotionEffects())
|
||||||
{
|
{
|
||||||
player.removePotionEffect(effect.getType());
|
player.removePotionEffect(effect.getType());
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
package com.earth2me.essentials.commands;
|
package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import java.util.List;
|
import com.earth2me.essentials.User;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
|
||||||
|
|
||||||
public class Commandkill extends EssentialsCommand
|
public class Commandkill extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
public Commandkill()
|
public Commandkill()
|
||||||
{
|
{
|
||||||
|
@ -23,33 +23,30 @@ public class Commandkill extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: TL this
|
loopOnlinePlayers(server, sender, true, args[0], null);
|
||||||
if (args[0].trim().length() < 2)
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User user, final String[] args) throws PlayerExemptException
|
||||||
|
{
|
||||||
|
final Player matchPlayer = user.getBase();
|
||||||
|
if (sender instanceof Player && user.isAuthorized("essentials.kill.exempt") && !ess.getUser(sender).isAuthorized("essentials.kill.force"))
|
||||||
{
|
{
|
||||||
throw new NotEnoughArgumentsException("You need to specify a player to kill.");
|
throw new PlayerExemptException(_("killExempt", matchPlayer.getDisplayName()));
|
||||||
|
}
|
||||||
|
final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer, sender instanceof Player && ((Player)sender).getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE);
|
||||||
|
server.getPluginManager().callEvent(ede);
|
||||||
|
if (ede.isCancelled() && sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.kill.force"))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
matchPlayer.damage(Short.MAX_VALUE);
|
||||||
|
|
||||||
|
if (matchPlayer.getHealth() > 0)
|
||||||
|
{
|
||||||
|
matchPlayer.setHealth(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(args[0]);
|
sender.sendMessage(_("kill", matchPlayer.getDisplayName()));
|
||||||
for (Player matchPlayer : matchedPlayers)
|
|
||||||
{
|
|
||||||
if (sender instanceof Player && ess.getUser(matchPlayer).isAuthorized("essentials.kill.exempt") && !ess.getUser(sender).isAuthorized("essentials.kill.force"))
|
|
||||||
{
|
|
||||||
throw new Exception(_("killExempt", matchPlayer.getDisplayName()));
|
|
||||||
}
|
|
||||||
final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer, sender instanceof Player && ((Player)sender).getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE);
|
|
||||||
server.getPluginManager().callEvent(ede);
|
|
||||||
if (ede.isCancelled() && sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.kill.force"))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
matchPlayer.damage(Short.MAX_VALUE);
|
|
||||||
|
|
||||||
if (matchPlayer.getHealth() > 0)
|
|
||||||
{
|
|
||||||
matchPlayer.setHealth(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(_("kill", matchPlayer.getDisplayName()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,15 +2,16 @@ package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
import java.util.List;
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.LightningStrike;
|
import org.bukkit.entity.LightningStrike;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
public class Commandlightning extends EssentialsCommand
|
public class Commandlightning extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
|
int power = 5;
|
||||||
|
|
||||||
public Commandlightning()
|
public Commandlightning()
|
||||||
{
|
{
|
||||||
super("lightning");
|
super("lightning");
|
||||||
|
@ -19,7 +20,6 @@ public class Commandlightning extends EssentialsCommand
|
||||||
@Override
|
@Override
|
||||||
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
User user = null;
|
User user = null;
|
||||||
if (sender instanceof Player)
|
if (sender instanceof Player)
|
||||||
{
|
{
|
||||||
|
@ -31,7 +31,6 @@ public class Commandlightning extends EssentialsCommand
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int power = 5;
|
|
||||||
if (args.length > 1)
|
if (args.length > 1)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -42,28 +41,22 @@ public class Commandlightning extends EssentialsCommand
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
loopOnlinePlayers(server, sender, true, args[0], null);
|
||||||
|
}
|
||||||
|
|
||||||
if (args[0].trim().length() < 2)
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User matchUser, final String[] args)
|
||||||
|
{
|
||||||
|
sender.sendMessage(_("lightningUse", matchUser.getDisplayName()));
|
||||||
|
final LightningStrike strike = matchUser.getBase().getWorld().strikeLightningEffect(matchUser.getBase().getLocation());
|
||||||
|
|
||||||
|
if (!matchUser.isGodModeEnabled())
|
||||||
{
|
{
|
||||||
throw new PlayerNotFoundException();
|
matchUser.getBase().damage(power, strike);
|
||||||
}
|
}
|
||||||
|
if (ess.getSettings().warnOnSmite())
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(args[0]);
|
|
||||||
for (Player matchPlayer : matchedPlayers)
|
|
||||||
{
|
{
|
||||||
User matchUser = ess.getUser(matchPlayer);
|
matchUser.sendMessage(_("lightningSmited"));
|
||||||
sender.sendMessage(_("lightningUse", matchPlayer.getDisplayName()));
|
|
||||||
|
|
||||||
final LightningStrike strike = matchPlayer.getWorld().strikeLightningEffect(matchPlayer.getLocation());
|
|
||||||
|
|
||||||
if (!matchUser.isGodModeEnabled())
|
|
||||||
{
|
|
||||||
matchPlayer.damage(power, strike);
|
|
||||||
}
|
|
||||||
if (ess.getSettings().warnOnSmite())
|
|
||||||
{
|
|
||||||
matchUser.sendMessage(_("lightningSmited"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,15 +4,17 @@ import com.earth2me.essentials.Console;
|
||||||
import static com.earth2me.essentials.I18n._;
|
import static com.earth2me.essentials.I18n._;
|
||||||
import com.earth2me.essentials.IReplyTo;
|
import com.earth2me.essentials.IReplyTo;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
|
import static com.earth2me.essentials.commands.EssentialsCommand.getFinalArg;
|
||||||
import com.earth2me.essentials.utils.FormatUtil;
|
import com.earth2me.essentials.utils.FormatUtil;
|
||||||
import java.util.List;
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
public class Commandmsg extends EssentialsCommand
|
public class Commandmsg extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
|
final String translatedMe = _("me");
|
||||||
|
|
||||||
public Commandmsg()
|
public Commandmsg()
|
||||||
{
|
{
|
||||||
super("msg");
|
super("msg");
|
||||||
|
@ -41,13 +43,11 @@ public class Commandmsg extends EssentialsCommand
|
||||||
message = FormatUtil.replaceFormat(message);
|
message = FormatUtil.replaceFormat(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
final String translatedMe = _("me");
|
|
||||||
|
|
||||||
final IReplyTo replyTo = sender instanceof Player ? ess.getUser((Player)sender) : Console.getConsoleReplyTo();
|
|
||||||
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase(Console.NAME))
|
if (args[0].equalsIgnoreCase(Console.NAME))
|
||||||
{
|
{
|
||||||
|
final IReplyTo replyTo = sender instanceof Player ? ess.getUser(sender) : Console.getConsoleReplyTo();
|
||||||
|
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||||
|
|
||||||
sender.sendMessage(_("msgFormat", translatedMe, Console.NAME, message));
|
sender.sendMessage(_("msgFormat", translatedMe, Console.NAME, message));
|
||||||
CommandSender cs = Console.getCommandSender(server);
|
CommandSender cs = Console.getCommandSender(server);
|
||||||
cs.sendMessage(_("msgFormat", senderName, translatedMe, message));
|
cs.sendMessage(_("msgFormat", senderName, translatedMe, message));
|
||||||
|
@ -56,38 +56,28 @@ public class Commandmsg extends EssentialsCommand
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
loopOnlinePlayers(server, sender, true, args[0], new String[]{message});
|
||||||
boolean foundUser = false;
|
}
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(args[0]);
|
|
||||||
|
|
||||||
for (Player matchPlayer : matchedPlayers)
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User matchedUser, final String[] args)
|
||||||
|
{
|
||||||
|
final IReplyTo replyTo = sender instanceof Player ? ess.getUser(sender) : Console.getConsoleReplyTo();
|
||||||
|
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||||
|
|
||||||
|
if (matchedUser.isAfk())
|
||||||
{
|
{
|
||||||
final User matchedUser = ess.getUser(matchPlayer);
|
sender.sendMessage(_("userAFK", matchedUser.getDisplayName()));
|
||||||
|
|
||||||
if (skipHidden && matchedUser.isHidden())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
foundUser = true;
|
|
||||||
if (matchedUser.isAfk())
|
|
||||||
{
|
|
||||||
sender.sendMessage(_("userAFK", matchPlayer.getDisplayName()));
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(_("msgFormat", translatedMe, matchPlayer.getDisplayName(), message));
|
|
||||||
if (sender instanceof Player && matchedUser.isIgnoredPlayer(ess.getUser(sender)))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
matchedUser.sendMessage(_("msgFormat", senderName, translatedMe, message));
|
|
||||||
replyTo.setReplyTo(matchPlayer);
|
|
||||||
matchedUser.setReplyTo(sender);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!foundUser)
|
sender.sendMessage(_("msgFormat", translatedMe, matchedUser.getDisplayName(), args[0]));
|
||||||
|
if (sender instanceof Player && matchedUser.isIgnoredPlayer(ess.getUser(sender)))
|
||||||
{
|
{
|
||||||
throw new PlayerNotFoundException();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
matchedUser.sendMessage(_("msgFormat", senderName, translatedMe, args[0]));
|
||||||
|
replyTo.setReplyTo(matchedUser.getBase());
|
||||||
|
matchedUser.setReplyTo(sender);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
public class Commandnick extends EssentialsCommand
|
public class Commandnick extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
public Commandnick()
|
public Commandnick()
|
||||||
{
|
{
|
||||||
|
@ -27,14 +27,16 @@ public class Commandnick extends EssentialsCommand
|
||||||
{
|
{
|
||||||
throw new Exception(_("nickDisplayName"));
|
throw new Exception(_("nickDisplayName"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final String[] nickname = formatNickname(user, args[1]).split(" ");
|
||||||
if (args.length > 1 && user.isAuthorized("essentials.nick.others"))
|
if (args.length > 1 && user.isAuthorized("essentials.nick.others"))
|
||||||
{
|
{
|
||||||
setNickname(server, getPlayer(server, user, args, 0), formatNickname(user, args[1]));
|
loopOfflinePlayers(server, user.getBase(), false, args[0], nickname);
|
||||||
user.sendMessage(_("nickChanged"));
|
user.sendMessage(_("nickChanged"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setNickname(server, user, formatNickname(user, args[0]));
|
updatePlayer(server, user.getBase(), user, nickname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,54 +51,16 @@ public class Commandnick extends EssentialsCommand
|
||||||
{
|
{
|
||||||
throw new Exception(_("nickDisplayName"));
|
throw new Exception(_("nickDisplayName"));
|
||||||
}
|
}
|
||||||
if ((args[0].equalsIgnoreCase("*") || args[0].equalsIgnoreCase("all")) && args[1].equalsIgnoreCase("off"))
|
final String[] nickname = formatNickname(null, args[1]).split(" ");
|
||||||
{
|
loopOfflinePlayers(server, sender, false, args[0], nickname);
|
||||||
resetAllNicknames(server);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
setNickname(server, getPlayer(server, args, 0, true, false), formatNickname(null, args[1]));
|
|
||||||
}
|
|
||||||
sender.sendMessage(_("nickChanged"));
|
sender.sendMessage(_("nickChanged"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String formatNickname(final User user, final String nick)
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User target, final String[] args) throws NotEnoughArgumentsException
|
||||||
{
|
{
|
||||||
if (user == null)
|
final String nick = args[0];
|
||||||
{
|
if (target.getName().equalsIgnoreCase(nick))
|
||||||
return FormatUtil.replaceFormat(nick);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return FormatUtil.formatString(user, "essentials.nick", nick);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void resetAllNicknames(final Server server)
|
|
||||||
{
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
setNickname(server, ess.getUser(player), "off");
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setNickname(final Server server, final User target, final String nick) throws Exception
|
|
||||||
{
|
|
||||||
if (!nick.matches("^[a-zA-Z_0-9\u00a7]+$"))
|
|
||||||
{
|
|
||||||
throw new Exception(_("nickNamesAlpha"));
|
|
||||||
}
|
|
||||||
else if (nick.length() > ess.getSettings().getMaxNickLength())
|
|
||||||
{
|
|
||||||
throw new Exception(_("nickTooLong"));
|
|
||||||
}
|
|
||||||
else if (target.getName().equalsIgnoreCase(nick))
|
|
||||||
{
|
{
|
||||||
target.setNickname(nick);
|
target.setNickname(nick);
|
||||||
target.setDisplayNick();
|
target.setDisplayNick();
|
||||||
|
@ -108,26 +72,47 @@ public class Commandnick extends EssentialsCommand
|
||||||
target.setDisplayNick();
|
target.setDisplayNick();
|
||||||
target.sendMessage(_("nickNoMore"));
|
target.sendMessage(_("nickNoMore"));
|
||||||
}
|
}
|
||||||
|
else if (nickInUse(server, target, nick))
|
||||||
|
{
|
||||||
|
throw new NotEnoughArgumentsException(_("nickInUse"));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
|
||||||
{
|
|
||||||
if (target.getBase() == onlinePlayer)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
String displayName = onlinePlayer.getDisplayName().toLowerCase(Locale.ENGLISH);
|
|
||||||
String name = onlinePlayer.getName().toLowerCase(Locale.ENGLISH);
|
|
||||||
String lowerNick = nick.toLowerCase(Locale.ENGLISH);
|
|
||||||
if (lowerNick.equals(displayName) || lowerNick.equals(name))
|
|
||||||
{
|
|
||||||
throw new Exception(_("nickInUse"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
target.setNickname(nick);
|
target.setNickname(nick);
|
||||||
target.setDisplayNick();
|
target.setDisplayNick();
|
||||||
target.sendMessage(_("nickSet", target.getDisplayName() + "§7."));
|
target.sendMessage(_("nickSet", target.getDisplayName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String formatNickname(final User user, final String nick) throws Exception
|
||||||
|
{
|
||||||
|
String newNick = user == null ? FormatUtil.replaceFormat(nick) : FormatUtil.formatString(user, "essentials.nick", nick);
|
||||||
|
if (!newNick.matches("^[a-zA-Z_0-9\u00a7]+$"))
|
||||||
|
{
|
||||||
|
throw new Exception(_("nickNamesAlpha"));
|
||||||
|
}
|
||||||
|
else if (newNick.length() > ess.getSettings().getMaxNickLength())
|
||||||
|
{
|
||||||
|
throw new Exception(_("nickTooLong"));
|
||||||
|
}
|
||||||
|
return newNick;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean nickInUse(final Server server, final User target, String nick)
|
||||||
|
{
|
||||||
|
final String lowerNick = nick.toLowerCase(Locale.ENGLISH);
|
||||||
|
for (final Player onlinePlayer : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (target.getBase() == onlinePlayer)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (lowerNick.equals(onlinePlayer.getDisplayName().toLowerCase(Locale.ENGLISH))
|
||||||
|
|| lowerNick.equals(onlinePlayer.getName().toLowerCase(Locale.ENGLISH)))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,55 +1,39 @@
|
||||||
package com.earth2me.essentials.commands;
|
package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
import static com.earth2me.essentials.I18n._;
|
import com.earth2me.essentials.ChargeException;
|
||||||
import com.earth2me.essentials.Trade;
|
import com.earth2me.essentials.Trade;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
|
||||||
public class Commandpay extends EssentialsCommand
|
public class Commandpay extends EssentialsLoopCommand
|
||||||
{
|
{
|
||||||
|
BigDecimal amount;
|
||||||
|
|
||||||
public Commandpay()
|
public Commandpay()
|
||||||
{
|
{
|
||||||
super("pay");
|
super("pay");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
|
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
if (args.length < 2)
|
if (args.length < 2)
|
||||||
{
|
{
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: TL this.
|
amount = new BigDecimal(args[1].replaceAll("[^0-9\\.]", ""));
|
||||||
if (args[0].trim().length() < 2)
|
loopOnlinePlayers(server, user.getBase(), true, args[0], args);
|
||||||
{
|
}
|
||||||
throw new NotEnoughArgumentsException("You need to specify a player to pay.");
|
|
||||||
}
|
|
||||||
|
|
||||||
BigDecimal amount = new BigDecimal(args[1].replaceAll("[^0-9\\.]", ""));
|
@Override
|
||||||
|
protected void updatePlayer(final Server server, final CommandSender sender, final User player, final String[] args) throws ChargeException
|
||||||
boolean skipHidden = !user.isAuthorized("essentials.vanish.interact");
|
{
|
||||||
boolean foundUser = false;
|
User user = ess.getUser(sender);
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(args[0]);
|
user.payUser(player, amount);
|
||||||
for (Player matchPlayer : matchedPlayers)
|
Trade.log("Command", "Pay", "Player", user.getName(), new Trade(amount, ess), player.getName(), new Trade(amount, ess), user.getLocation(), ess);
|
||||||
{
|
|
||||||
User player = ess.getUser(matchPlayer);
|
|
||||||
if (skipHidden && player.isHidden())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
foundUser = true;
|
|
||||||
user.payUser(player, amount);
|
|
||||||
Trade.log("Command", "Pay", "Player", user.getName(), new Trade(amount, ess), player.getName(), new Trade(amount, ess), user.getLocation(), ess);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!foundUser)
|
|
||||||
{
|
|
||||||
throw new PlayerNotFoundException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,27 +43,30 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected User getPlayer(final Server server, final User user, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
|
// Get online players - only show vanished if source has permission
|
||||||
{
|
protected User getPlayer(final Server server, final CommandSender sender, final String[] args, final int pos) throws PlayerNotFoundException, NotEnoughArgumentsException
|
||||||
return getPlayer(server, user, args, pos, user.isAuthorized("essentials.vanish.interact"), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected User getPlayer(final Server server, final CommandSender sender, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
|
|
||||||
{
|
{
|
||||||
if (sender instanceof Player)
|
if (sender instanceof Player)
|
||||||
{
|
{
|
||||||
User user = ess.getUser(sender);
|
User user = ess.getUser(sender);
|
||||||
return getPlayer(server, user, args, pos);
|
return getPlayer(server, user, args, pos);
|
||||||
}
|
}
|
||||||
return getPlayer(server, null, args, pos, true, false);
|
return getPlayer(server, args, pos, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected User getPlayer(final Server server, final String[] args, final int pos, boolean getHidden, final boolean getOffline) throws NoSuchFieldException, NotEnoughArgumentsException
|
// Get online players - only show vanished if source has permission
|
||||||
|
protected User getPlayer(final Server server, final User user, final String[] args, final int pos) throws PlayerNotFoundException, NotEnoughArgumentsException
|
||||||
|
{
|
||||||
|
return getPlayer(server, user, args, pos, user.isAuthorized("essentials.vanish.interact"), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get online or offline players, this method allows for raw access
|
||||||
|
protected User getPlayer(final Server server, final String[] args, final int pos, boolean getHidden, final boolean getOffline) throws PlayerNotFoundException, NotEnoughArgumentsException
|
||||||
{
|
{
|
||||||
return getPlayer(server, null, args, pos, getHidden, getOffline);
|
return getPlayer(server, null, args, pos, getHidden, getOffline);
|
||||||
}
|
}
|
||||||
|
|
||||||
private User getPlayer(final Server server, final User sourceUser, final String[] args, final int pos, boolean getHidden, final boolean getOffline) throws NoSuchFieldException, NotEnoughArgumentsException
|
private User getPlayer(final Server server, final User sourceUser, final String[] args, final int pos, boolean getHidden, final boolean getOffline) throws PlayerNotFoundException, NotEnoughArgumentsException
|
||||||
{
|
{
|
||||||
if (args.length <= pos)
|
if (args.length <= pos)
|
||||||
{
|
{
|
||||||
|
@ -73,7 +76,19 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||||
{
|
{
|
||||||
throw new PlayerNotFoundException();
|
throw new PlayerNotFoundException();
|
||||||
}
|
}
|
||||||
final User user = ess.getUser(args[pos]);
|
return getPlayer(server, sourceUser, args[pos], getHidden, getOffline);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get online or offline players, this method allows for raw access
|
||||||
|
protected User getPlayer(final Server server, final String searchTerm, boolean getHidden, final boolean getOffline) throws PlayerNotFoundException
|
||||||
|
{
|
||||||
|
return getPlayer(server, null, searchTerm, getHidden, getOffline);
|
||||||
|
}
|
||||||
|
|
||||||
|
private User getPlayer(final Server server, final User sourceUser, final String searchTerm, boolean getHidden, final boolean getOffline) throws PlayerNotFoundException
|
||||||
|
{
|
||||||
|
|
||||||
|
final User user = ess.getUser(searchTerm);
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
if (!getOffline && !user.isOnline())
|
if (!getOffline && !user.isOnline())
|
||||||
|
@ -86,11 +101,11 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
final List<Player> matches = server.matchPlayer(args[pos]);
|
final List<Player> matches = server.matchPlayer(searchTerm);
|
||||||
|
|
||||||
if (matches.isEmpty())
|
if (matches.isEmpty())
|
||||||
{
|
{
|
||||||
final String matchText = args[pos].toLowerCase(Locale.ENGLISH);
|
final String matchText = searchTerm.toLowerCase(Locale.ENGLISH);
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final User userMatch = ess.getUser(onlinePlayer);
|
final User userMatch = ess.getUser(onlinePlayer);
|
||||||
|
@ -109,7 +124,7 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||||
for (Player player : matches)
|
for (Player player : matches)
|
||||||
{
|
{
|
||||||
final User userMatch = ess.getUser(player);
|
final User userMatch = ess.getUser(player);
|
||||||
if (userMatch.getDisplayName().startsWith(args[pos]) && (getHidden || !userMatch.isHidden() || userMatch.equals(sourceUser)))
|
if (userMatch.getDisplayName().startsWith(searchTerm) && (getHidden || !userMatch.isHidden() || userMatch.equals(sourceUser)))
|
||||||
{
|
{
|
||||||
return userMatch;
|
return userMatch;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,126 @@
|
||||||
|
package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
|
import com.earth2me.essentials.ChargeException;
|
||||||
|
import com.earth2me.essentials.User;
|
||||||
|
import java.util.List;
|
||||||
|
import org.bukkit.Server;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
|
public abstract class EssentialsLoopCommand extends EssentialsCommand
|
||||||
|
{
|
||||||
|
public EssentialsLoopCommand(String command)
|
||||||
|
{
|
||||||
|
super(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void loopOfflinePlayers(final Server server, final CommandSender sender, final boolean multipleStringMatches, final String searchTerm, final String[] commandArgs)
|
||||||
|
throws PlayerNotFoundException, NotEnoughArgumentsException, PlayerExemptException, ChargeException
|
||||||
|
{
|
||||||
|
if (searchTerm.isEmpty())
|
||||||
|
{
|
||||||
|
throw new PlayerNotFoundException();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (searchTerm.contentEquals("**"))
|
||||||
|
{
|
||||||
|
for (String sUser : ess.getUserMap().getAllUniqueUsers())
|
||||||
|
{
|
||||||
|
final User matchedUser = ess.getUser(sUser);
|
||||||
|
updatePlayer(server, sender, matchedUser, commandArgs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (searchTerm.contentEquals("*"))
|
||||||
|
{
|
||||||
|
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
||||||
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
final User onlineUser = ess.getUser(onlinePlayer);
|
||||||
|
if (skipHidden && onlineUser.isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
updatePlayer(server, sender, onlineUser, commandArgs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (multipleStringMatches)
|
||||||
|
{
|
||||||
|
if (searchTerm.trim().length() < 3)
|
||||||
|
{
|
||||||
|
throw new PlayerNotFoundException();
|
||||||
|
}
|
||||||
|
final List<Player> matchedPlayers = server.matchPlayer(searchTerm);
|
||||||
|
if (matchedPlayers.isEmpty())
|
||||||
|
{
|
||||||
|
final User matchedUser = getPlayer(server, searchTerm, true, true);
|
||||||
|
updatePlayer(server, sender, matchedUser, commandArgs);
|
||||||
|
}
|
||||||
|
for (Player matchPlayer : matchedPlayers)
|
||||||
|
{
|
||||||
|
final User matchedUser = ess.getUser(matchPlayer);
|
||||||
|
updatePlayer(server, sender, matchedUser, commandArgs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
final User user = getPlayer(server, searchTerm, true, true);
|
||||||
|
updatePlayer(server, sender, user, commandArgs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void loopOnlinePlayers(final Server server, final CommandSender sender, final boolean multipleStringMatches, final String searchTerm, final String[] commandArgs)
|
||||||
|
throws PlayerNotFoundException, NotEnoughArgumentsException, PlayerExemptException, ChargeException
|
||||||
|
{
|
||||||
|
if (searchTerm.isEmpty())
|
||||||
|
{
|
||||||
|
throw new PlayerNotFoundException();
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
||||||
|
|
||||||
|
if (searchTerm.contentEquals("**") || searchTerm.contentEquals("*"))
|
||||||
|
{
|
||||||
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
final User onlineUser = ess.getUser(onlinePlayer);
|
||||||
|
if (skipHidden && onlineUser.isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
updatePlayer(server, sender, onlineUser, commandArgs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (multipleStringMatches)
|
||||||
|
{
|
||||||
|
if (searchTerm.trim().length() < 2)
|
||||||
|
{
|
||||||
|
throw new PlayerNotFoundException();
|
||||||
|
}
|
||||||
|
boolean foundUser = false;
|
||||||
|
final List<Player> matchedPlayers = server.matchPlayer(searchTerm);
|
||||||
|
for (Player matchPlayer : matchedPlayers)
|
||||||
|
{
|
||||||
|
final User player = ess.getUser(matchPlayer);
|
||||||
|
if (skipHidden && player.isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
foundUser = true;
|
||||||
|
updatePlayer(server, sender, player, commandArgs);
|
||||||
|
}
|
||||||
|
if (!foundUser)
|
||||||
|
{
|
||||||
|
throw new PlayerNotFoundException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
final User player = getPlayer(server, searchTerm, skipHidden, false);
|
||||||
|
updatePlayer(server, sender, player, commandArgs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract void updatePlayer(Server server, CommandSender sender, User user, String[] args)
|
||||||
|
throws NotEnoughArgumentsException, PlayerExemptException, ChargeException;
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.earth2me.essentials.commands;
|
||||||
|
|
||||||
|
public class PlayerExemptException extends NoSuchFieldException
|
||||||
|
{
|
||||||
|
public PlayerExemptException(String message)
|
||||||
|
{
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue