From 5ae48481bd230051407bf4d33f23a1fadd652b21 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 22 May 2011 18:53:23 +0000 Subject: Refactoring: New Charge class user.canAfford(String), user.canAfford(EssentialsCommand), user.charge(String), user.charge(EssentialsCommand) have been removed. Teleport class has been changed to use the Charge class. This also fixes some bugs, like the one with warp signs. git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1512 e251c2fe-e539-e718-e476-b85c1f46cddb --- Essentials/src/com/earth2me/essentials/Charge.java | 104 +++++++++++++++++++++ .../essentials/EssentialsPlayerListener.java | 32 +++---- .../src/com/earth2me/essentials/Teleport.java | 29 +++--- Essentials/src/com/earth2me/essentials/User.java | 36 ------- .../earth2me/essentials/commands/Commandback.java | 6 +- .../earth2me/essentials/commands/Commandhome.java | 8 +- .../earth2me/essentials/commands/Commandjump.java | 6 +- .../earth2me/essentials/commands/Commandkit.java | 8 +- .../essentials/commands/Commandlightning.java | 8 +- .../earth2me/essentials/commands/Commandnick.java | 3 +- .../essentials/commands/Commandrealname.java | 2 +- .../essentials/commands/Commandthunder.java | 2 +- .../earth2me/essentials/commands/Commandtop.java | 3 +- .../earth2me/essentials/commands/Commandtp.java | 6 +- .../earth2me/essentials/commands/Commandtpa.java | 12 +-- .../essentials/commands/Commandtpaccept.java | 15 ++- .../essentials/commands/Commandtpahere.java | 2 +- .../essentials/commands/Commandtpdeny.java | 2 +- .../essentials/commands/Commandtphere.java | 3 +- .../earth2me/essentials/commands/Commandtppos.java | 6 +- .../earth2me/essentials/commands/Commandtree.java | 2 +- .../earth2me/essentials/commands/Commandwarp.java | 8 +- .../essentials/commands/Commandweather.java | 2 +- .../earth2me/essentials/commands/Commandworld.java | 6 +- .../earth2me/essentials/commands/Commandworth.java | 2 +- .../essentials/commands/EssentialsCommand.java | 4 +- .../earth2me/essentials/spawn/Commandsetspawn.java | 2 +- .../earth2me/essentials/spawn/Commandspawn.java | 6 +- 28 files changed, 208 insertions(+), 117 deletions(-) create mode 100644 Essentials/src/com/earth2me/essentials/Charge.java diff --git a/Essentials/src/com/earth2me/essentials/Charge.java b/Essentials/src/com/earth2me/essentials/Charge.java new file mode 100644 index 000000000..d1dbcebc0 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/Charge.java @@ -0,0 +1,104 @@ +package com.earth2me.essentials; + +import com.earth2me.essentials.commands.EssentialsCommand; +import org.bukkit.inventory.ItemStack; + + +public class Charge +{ + private String command = null; + private Double costs = null; + private ItemStack items = null; + private Essentials ess = Essentials.getStatic(); + + public Charge(String command) + { + this.command = command; + } + + public Charge(double money) + { + this.costs = money; + } + + public Charge(ItemStack items) + { + this.items = items; + } + + public Charge(EssentialsCommand command) + { + this.command = command.getName(); + } + + public void isAffordableFor(User user) throws Exception + { + double mon = user.getMoney(); + if (costs != null) + { + if (mon < costs && !user.isAuthorized("essentials.eco.loan")) + { + throw new Exception(Util.i18n("notEnoughMoney")); + } + } + if (items != null) + { + if (!InventoryWorkaround.containsItem(user.getInventory(), true, items)) + { + throw new Exception(Util.format("missingItems", items.getAmount(), items.getType().toString().toLowerCase().replace("_", " "))); + } + } + if (command != null && !command.isEmpty()) + { + if (user.isAuthorized("essentials.nocommandcost.all") + || user.isAuthorized("essentials.nocommandcost." + command)) + { + return; + } + double cost = ess.getSettings().getCommandCost(command.startsWith("/") ? command.substring(1) : command); + if (mon < cost && !user.isAuthorized("essentials.eco.loan")) + { + throw new Exception(Util.i18n("notEnoughMoney")); + } + } + } + + public void charge(User user) throws Exception + { + double mon = user.getMoney(); + if (costs != null) + { + if (mon < costs && !user.isAuthorized("essentials.eco.loan")) + { + throw new Exception(Util.i18n("notEnoughMoney")); + } + user.takeMoney(costs); + user.sendMessage(Util.format("moneyTaken", Util.formatCurrency(costs))); + } + if (items != null) + { + if (!InventoryWorkaround.containsItem(user.getInventory(), true, items)) + { + throw new Exception(Util.format("missingItems", items.getAmount(), items.getType().toString().toLowerCase().replace("_", " "))); + } + InventoryWorkaround.removeItem(user.getInventory(), true, items); + user.updateInventory(); + } + if (command != null && !command.isEmpty()) + { + if (user.isAuthorized("essentials.nocommandcost.all") + || user.isAuthorized("essentials.nocommandcost." + command)) + { + return; + } + + double cost = ess.getSettings().getCommandCost(command.startsWith("/") ? command.substring(1) : command); + if (mon < cost && !user.isAuthorized("essentials.eco.loan")) + { + throw new Exception(Util.i18n("notEnoughMoney")); + } + user.takeMoney(cost); + user.sendMessage(Util.format("moneyTaken", Util.formatCurrency(cost))); + } + } +} diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 35c607e02..f0b4941b7 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -2,7 +2,6 @@ package com.earth2me.essentials; import java.util.Iterator; import java.util.List; -import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import net.minecraft.server.InventoryPlayer; @@ -163,7 +162,7 @@ public class EssentialsPlayerListener extends PlayerListener event.setTo(loc); try { - user.getTeleport().teleport(loc, "portal"); + user.getTeleport().teleport(loc, new Charge("portal")); } catch (Exception ex) { @@ -456,22 +455,22 @@ public class EssentialsPlayerListener extends PlayerListener { if (sign.getLine(2).equals("§2Everyone")) { - chargeUserForWarp(sign, user); - user.getTeleport().warp(sign.getLine(1), "warpsign"); + Charge charge = chargeUserForWarp(sign, user); + user.getTeleport().warp(sign.getLine(1), charge); return; } if (user.inGroup(sign.getLine(2))) { - chargeUserForWarp(sign, user); - user.getTeleport().warp(sign.getLine(1), "warpsign"); + Charge charge = chargeUserForWarp(sign, user); + user.getTeleport().warp(sign.getLine(1), charge); return; } } if (user.isAuthorized("essentials.signs.warp.use") && (!ess.getSettings().getPerWarpPermission() || user.isAuthorized("essentials.warp." + sign.getLine(1)))) { - chargeUserForWarp(sign, user); - user.getTeleport().warp(sign.getLine(1), "warpsign"); + Charge charge = chargeUserForWarp(sign, user); + user.getTeleport().warp(sign.getLine(1), charge); } return; } @@ -482,7 +481,7 @@ public class EssentialsPlayerListener extends PlayerListener } } - private void chargeUserForWarp(Sign sign, User user) throws Exception + private Charge chargeUserForWarp(Sign sign, User user) throws Exception { if (!sign.getLine(3).isEmpty()) { @@ -495,24 +494,15 @@ public class EssentialsPlayerListener extends PlayerListener } if (m1) { - if (user.getMoney() < q1) - { - throw new Exception(Util.i18n("notEnoughMoney")); - } - user.takeMoney(q1); - user.sendMessage(Util.format("moneyTaken", Util.formatCurrency(q1))); + return new Charge(q1); } else { ItemStack i = ItemDb.get(l1[1], (int)q1); - if (!InventoryWorkaround.containsItem(user.getInventory(), true, i)) - { - throw new Exception(Util.format("missingItems", (int)q1, l1[1])); - } - InventoryWorkaround.removeItem(user.getInventory(), true, i); - user.updateInventory(); + return new Charge(i); } } + return new Charge("warpsign"); } @Override diff --git a/Essentials/src/com/earth2me/essentials/Teleport.java b/Essentials/src/com/earth2me/essentials/Teleport.java index 9b16dd6b9..a618e3eab 100644 --- a/Essentials/src/com/earth2me/essentials/Teleport.java +++ b/Essentials/src/com/earth2me/essentials/Teleport.java @@ -44,10 +44,10 @@ public class Teleport implements Runnable private long initY; private long initZ; private Target teleportTarget; - private String chargeFor; + private Charge chargeFor; private Essentials ess; - private void initTimer(long delay, Target target, String chargeFor) + private void initTimer(long delay, Target target, Charge chargeFor) { this.started = System.currentTimeMillis(); this.delay = delay; @@ -91,7 +91,7 @@ public class Teleport implements Runnable now(teleportTarget); if (chargeFor != null) { - user.charge(chargeFor); + chargeFor.charge(user); } } catch (Throwable ex) @@ -113,12 +113,12 @@ public class Teleport implements Runnable this.ess = ess; } - public void respawn(Spawn spawn, String chargeFor) throws Exception + public void respawn(Spawn spawn, Charge chargeFor) throws Exception { teleport(new Target(spawn.getSpawn(user.getGroup())), chargeFor); } - public void warp(String warp, String chargeFor) throws Exception + public void warp(String warp, Charge chargeFor) throws Exception { Location loc = Essentials.getWarps().getWarp(warp); teleport(new Target(loc), chargeFor); @@ -172,27 +172,28 @@ public class Teleport implements Runnable cancel(false); } - public void teleport(Location loc, String name) throws Exception + public void teleport(Location loc, Charge chargeFor) throws Exception { - teleport(new Target(loc), name); + teleport(new Target(loc), chargeFor); } - public void teleport(Entity entity, String name) throws Exception + public void teleport(Entity entity, Charge chargeFor) throws Exception { - teleport(new Target(entity), name); + teleport(new Target(entity), chargeFor); } - private void teleport(Target target, String chargeFor) throws Exception + private void teleport(Target target, Charge chargeFor) throws Exception { double delay = ess.getSettings().getTeleportDelay(); + chargeFor.isAffordableFor(user); cooldown(true); if (delay <= 0 || user.isAuthorized("essentials.teleport.timer.bypass")) { now(target); if (chargeFor != null) { - user.charge(chargeFor); + chargeFor.charge(user); } return; } @@ -224,7 +225,7 @@ public class Teleport implements Runnable now(new Target(entity)); } - public void back(final String chargeFor) throws Exception + public void back(final Charge chargeFor) throws Exception { teleport(new Target(user.getLastLocation()), chargeFor); } @@ -234,12 +235,12 @@ public class Teleport implements Runnable back(null); } - public void home(String chargeFor) throws Exception + public void home(Charge chargeFor) throws Exception { home(user, chargeFor); } - public void home(User user, String chargeFor) throws Exception + public void home(User user, Charge chargeFor) throws Exception { Location loc = user.getHome(this.user.getLocation()); if (loc == null) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 26279171f..c8ef473c0 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -117,32 +117,6 @@ public class User extends UserData implements Comparable, IReplyTo sendMessage(Util.format("takenFromAccount", Util.formatCurrency(value))); } - public void charge(String cmd) throws Exception - { - if (isAuthorized("essentials.nocommandcost.all") - || isAuthorized("essentials.nocommandcost." + cmd)) - { - return; - } - double mon = getMoney(); - double cost = ess.getSettings().getCommandCost(cmd.startsWith("/") ? cmd.substring(1) : cmd); - if (mon < cost && !isAuthorized("essentials.eco.loan")) - { - throw new Exception(Util.i18n("notEnoughMoney")); - } - takeMoney(cost); - } - - public void canAfford(String cmd) throws Exception - { - double mon = getMoney(); - double cost = ess.getSettings().getCommandCost(cmd.startsWith("/") ? cmd.substring(1) : cmd); - if (mon < cost && !isAuthorized("essentials.eco.loan")) - { - throw new Exception(Util.i18n("notEnoughMoney")); - } - } - public boolean canAfford(double cost) { double mon = getMoney(); @@ -156,21 +130,11 @@ public class User extends UserData implements Comparable, IReplyTo } } - public void canAfford(IEssentialsCommand cmd) throws Exception - { - canAfford(cmd.getName()); - } - public void dispose() { this.base = new OfflinePlayer(getName()); } - public void charge(IEssentialsCommand cmd) throws Exception - { - charge(cmd.getName()); - } - public boolean getJustPortaled() { return justPortaled; diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandback.java b/Essentials/src/com/earth2me/essentials/commands/Commandback.java index f9a45857b..a244a4e3a 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandback.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandback.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; import org.bukkit.Server; @@ -15,8 +16,9 @@ public class Commandback extends EssentialsCommand @Override protected void run(Server server, User user, String commandLabel, String[] args) throws Exception { - user.canAfford(this); + Charge charge = new Charge(this); + charge.isAffordableFor(user); user.sendMessage(Util.i18n("backUsageMsg")); - user.getTeleport().back(this.getName()); + user.getTeleport().back(charge); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandhome.java b/Essentials/src/com/earth2me/essentials/commands/Commandhome.java index f82b12421..a5cde8d3f 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandhome.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandhome.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import org.bukkit.Server; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; @@ -15,7 +16,8 @@ public class Commandhome extends EssentialsCommand @Override public void run(Server server, User user, String commandLabel, String[] args) throws Exception { - user.canAfford(this); + Charge charge = new Charge(this); + charge.isAffordableFor(user); if(args.length > 0 && user.isAuthorized("essentials.home.others")) { User u; @@ -31,9 +33,9 @@ public class Commandhome extends EssentialsCommand { throw new Exception(Util.i18n("playerNotFound")); } - user.getTeleport().home(u, this.getName()); + user.getTeleport().home(u, charge); return; } - user.getTeleport().home(this.getName()); + user.getTeleport().home(charge); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandjump.java b/Essentials/src/com/earth2me/essentials/commands/Commandjump.java index cd1953ece..d1dd5c763 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandjump.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandjump.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import org.bukkit.Location; import org.bukkit.Server; import com.earth2me.essentials.TargetBlock; @@ -35,7 +36,8 @@ public class Commandjump extends EssentialsCommand throw new Exception(Util.i18n("jumpError"), ex); } - user.canAfford(this); - user.getTeleport().teleport(loc, this.getName()); + Charge charge = new Charge(this); + charge.isAffordableFor(user); + user.getTeleport().teleport(loc, charge); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java index 8065234ab..2badf51fc 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import java.util.Calendar; import java.util.HashMap; import java.util.List; @@ -109,9 +110,10 @@ public class Commandkit extends EssentialsCommand items = (List)kit; } + Charge charge = new Charge("kit-" + kitName); try { - user.canAfford("kit-" + kitName); + charge.isAffordableFor(user); } catch (Exception ex) { @@ -139,8 +141,8 @@ public class Commandkit extends EssentialsCommand } try { - user.charge(this); - user.charge("kit-" + kitName); + charge(user); + charge.charge(user); } catch (Exception ex) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandlightning.java b/Essentials/src/com/earth2me/essentials/commands/Commandlightning.java index 35d8ee755..794fd81f1 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandlightning.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandlightning.java @@ -28,7 +28,7 @@ public class Commandlightning extends EssentialsCommand if (args.length < 1 & user != null) { user.getWorld().strikeLightning(user.getTargetBlock(null, 600).getLocation()); - user.charge(this); + charge(user); return; } @@ -38,6 +38,10 @@ public class Commandlightning extends EssentialsCommand return; } + if (user != null) + { + charge(user); + } for (Player p : server.matchPlayer(args[0])) { sender.sendMessage(Util.format("lightningUse", p.getDisplayName())); @@ -48,7 +52,5 @@ public class Commandlightning extends EssentialsCommand p.sendMessage(Util.i18n("lightningSmited")); } } - if (user != null) - user.charge(this); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java index e959157ec..e9431ddf3 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java @@ -2,7 +2,6 @@ package com.earth2me.essentials.commands; import org.bukkit.Server; import org.bukkit.command.CommandSender; -import com.earth2me.essentials.Essentials; import org.bukkit.entity.Player; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; @@ -67,7 +66,7 @@ public class Commandnick extends EssentialsCommand } } - user.charge(this); + charge(user); user.setDisplayName(ess.getConfiguration().getString("nickname-prefix", "~") + nick); user.setNickname(nick); user.sendMessage(Util.format("nickSet", user.getDisplayName() + "§7.")); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandrealname.java b/Essentials/src/com/earth2me/essentials/commands/Commandrealname.java index 99139ef6c..4d5ad8e9b 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandrealname.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandrealname.java @@ -21,7 +21,7 @@ public class Commandrealname extends EssentialsCommand throw new NotEnoughArgumentsException(); } String whois = args[0].toLowerCase(); - user.charge(this); + charge(user); for (Player p : server.getOnlinePlayers()) { User u = ess.getUser(p); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandthunder.java b/Essentials/src/com/earth2me/essentials/commands/Commandthunder.java index 59e9a1dd2..b1ffd3f7f 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandthunder.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandthunder.java @@ -22,7 +22,7 @@ public class Commandthunder extends EssentialsCommand throw new NotEnoughArgumentsException(); } - user.charge(this); + charge(user); World world = user.getWorld(); boolean setThunder = args[0].equalsIgnoreCase("true"); if (args.length > 1) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtop.java b/Essentials/src/com/earth2me/essentials/commands/Commandtop.java index 2cb2695b1..22360753c 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtop.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtop.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import org.bukkit.Location; import org.bukkit.Server; import com.earth2me.essentials.User; @@ -20,7 +21,7 @@ public class Commandtop extends EssentialsCommand int topZ = user.getLocation().getBlockZ(); int topY = user.getWorld().getHighestBlockYAt(topX, topZ); charge(user); - user.getTeleport().teleport(new Location(user.getWorld(), user.getLocation().getX(), topY + 1, user.getLocation().getZ()), this.getName()); + user.getTeleport().teleport(new Location(user.getWorld(), user.getLocation().getX(), topY + 1, user.getLocation().getZ()), new Charge(this)); user.sendMessage(Util.i18n("teleportTop")); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java index f5393e7c9..52b868da4 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import com.earth2me.essentials.Console; import org.bukkit.Server; import com.earth2me.essentials.User; @@ -29,8 +30,9 @@ public class Commandtp extends EssentialsCommand throw new Exception(Util.format("teleportDisabled", p.getDisplayName())); } user.sendMessage(Util.i18n("teleporting")); - user.canAfford(this); - user.getTeleport().teleport(p, this.getName()); + Charge charge = new Charge(this); + charge.isAffordableFor(user); + user.getTeleport().teleport(p, charge); break; case 2: diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpa.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpa.java index 77a510438..f3b7ae505 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtpa.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpa.java @@ -13,7 +13,7 @@ public class Commandtpa extends EssentialsCommand } @Override - public void run(Server server, User player, String commandLabel, String[] args) throws Exception + public void run(Server server, User user, String commandLabel, String[] args) throws Exception { if (args.length < 1) { @@ -25,14 +25,14 @@ public class Commandtpa extends EssentialsCommand { throw new Exception(Util.format("teleportDisabled", p.getDisplayName())); } - player.charge(this); - if (!p.isIgnoredPlayer(player.getName())) + charge(user); + if (!p.isIgnoredPlayer(user.getName())) { - p.requestTeleport(player, false); - p.sendMessage(Util.format("teleportRequest", player.getDisplayName())); + p.requestTeleport(user, false); + p.sendMessage(Util.format("teleportRequest", user.getDisplayName())); p.sendMessage(Util.i18n("typeTpaccept")); p.sendMessage(Util.i18n("typeTpdeny")); } - player.sendMessage(Util.format("requestSent", p.getDisplayName())); + user.sendMessage(Util.format("requestSent", p.getDisplayName())); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java index 752ac7ac2..921b9bc89 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import org.bukkit.Server; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; @@ -22,17 +23,25 @@ public class Commandtpaccept extends EssentialsCommand throw new Exception(Util.i18n("noPendingRequest")); } - user.canAfford(this); + Charge charge = new Charge(this); + if (user.isTeleportRequestHere()) + { + charge.isAffordableFor(user); + } + else + { + charge.isAffordableFor(p); + } user.sendMessage(Util.i18n("requestAccepted")); p.sendMessage(Util.i18n("requestAccepted")); if (user.isTeleportRequestHere()) { - user.getTeleport().teleport(p, this.getName()); + user.getTeleport().teleport(p, charge); } else { - p.getTeleport().teleport(user, this.getName()); + p.getTeleport().teleport(user, charge); } user.requestTeleport(null, false); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpahere.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpahere.java index 414a5b28f..2003bbf73 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtpahere.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpahere.java @@ -25,7 +25,7 @@ public class Commandtpahere extends EssentialsCommand { throw new Exception(Util.format("teleportDisabled", p.getDisplayName())); } - user.charge(this); + charge(user); p.requestTeleport(user, true); p.sendMessage(Util.format("teleportHereRequest", user.getDisplayName())); p.sendMessage(Util.i18n("typeTpaccept")); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpdeny.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpdeny.java index f5b7f5801..097ea1fdd 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtpdeny.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpdeny.java @@ -21,7 +21,7 @@ public class Commandtpdeny extends EssentialsCommand throw new Exception(Util.i18n("noPendingRequest")); } - user.charge(this); + charge(user); user.sendMessage(Util.i18n("requestDenied")); p.sendMessage(Util.i18n("requestDenied")); user.requestTeleport(null, false); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtphere.java b/Essentials/src/com/earth2me/essentials/commands/Commandtphere.java index f0c206ff3..d10ba4e78 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtphere.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtphere.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import org.bukkit.Server; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; @@ -20,7 +21,7 @@ public class Commandtphere extends EssentialsCommand { throw new Exception(Util.format("teleportDisabled", p.getDisplayName())); } - p.getTeleport().teleport(user, commandLabel); + p.getTeleport().teleport(user, new Charge(this)); user.sendMessage(Util.i18n("teleporting")); p.sendMessage(Util.i18n("teleporting")); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java b/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java index 2f32237a1..ee03479d1 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import org.bukkit.Location; import org.bukkit.Server; import com.earth2me.essentials.User; @@ -25,8 +26,9 @@ public class Commandtppos extends EssentialsCommand int y = Integer.parseInt(args[1]); int z = Integer.parseInt(args[2]); Location l = new Location(user.getWorld(), x, y, z); - user.canAfford(this); + Charge charge = new Charge(this); + charge.isAffordableFor(user); user.sendMessage(Util.i18n("teleporting")); - user.getTeleport().teleport(l, this.getName()); + user.getTeleport().teleport(l, charge); } } \ No newline at end of file diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtree.java b/Essentials/src/com/earth2me/essentials/commands/Commandtree.java index 6c90a8b7f..8e3b567b4 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtree.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtree.java @@ -66,7 +66,7 @@ public class Commandtree extends EssentialsCommand boolean success = user.getWorld().generateTree(safeLocation, (TreeType)tree); if (success) { - user.charge(this); + charge(user); user.sendMessage(Util.i18n("treeSpawned")); } else diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandwarp.java b/Essentials/src/com/earth2me/essentials/commands/Commandwarp.java index 6429892ff..6c3aef64d 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandwarp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandwarp.java @@ -1,11 +1,11 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import org.bukkit.Server; import com.earth2me.essentials.Essentials; import com.earth2me.essentials.User; import com.earth2me.essentials.Util; import com.earth2me.essentials.Warps; -import org.bukkit.command.CommandSender; public class Commandwarp extends EssentialsCommand @@ -74,16 +74,18 @@ public class Commandwarp extends EssentialsCommand private void warpUser(User user, String name) throws Exception { + Charge charge = new Charge(this); + charge.isAffordableFor(user); if (ess.getSettings().getPerWarpPermission()) { if (user.isAuthorized("essentials.warp." + name)) { - user.getTeleport().warp(name, this.getName()); + user.getTeleport().warp(name, charge); return; } user.sendMessage(Util.i18n("warpUsePermission")); return; } - user.getTeleport().warp(name, this.getName()); + user.getTeleport().warp(name, charge); } } \ No newline at end of file diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandweather.java b/Essentials/src/com/earth2me/essentials/commands/Commandweather.java index 6e846dab9..eec1d9575 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandweather.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandweather.java @@ -23,7 +23,7 @@ public class Commandweather extends EssentialsCommand boolean isStorm = args[0].equalsIgnoreCase("storm"); World world = user.getWorld(); - user.charge(this); + charge(user); if (args.length > 1) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandworld.java b/Essentials/src/com/earth2me/essentials/commands/Commandworld.java index a2f7d15d6..fbd53da05 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandworld.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandworld.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import java.util.List; import org.bukkit.Location; import org.bukkit.Server; @@ -68,7 +69,8 @@ public class Commandworld extends EssentialsCommand Location loc = user.getLocation(); loc = new Location(world, loc.getBlockX() * factor + .5, loc.getBlockY(), loc.getBlockZ() * factor + .5); - user.canAfford(this); - user.getTeleport().teleport(loc, this.getName()); + Charge charge = new Charge(this); + charge.isAffordableFor(user); + user.getTeleport().teleport(loc, charge); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandworth.java b/Essentials/src/com/earth2me/essentials/commands/Commandworth.java index af86e5bec..02f915bb1 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandworth.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandworth.java @@ -45,7 +45,7 @@ public class Commandworth extends EssentialsCommand throw new Exception(Util.i18n("itemCannotBeSold")); } - user.charge(this); + charge(user); user.sendMessage(is.getDurability() != 0 ? Util.format("worthMeta", is.getType().toString().toLowerCase().replace("_", ""), diff --git a/Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java b/Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java index 3091e3fcb..d1c268c6d 100644 --- a/Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java +++ b/Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import com.earth2me.essentials.Charge; import java.util.List; import org.bukkit.Server; import org.bukkit.command.Command; @@ -83,7 +84,8 @@ public abstract class EssentialsCommand implements IEssentialsCommand { if (sender instanceof Player) { - ess.getUser((Player)sender).charge(this); + Charge charge = new Charge(this); + charge.charge(ess.getUser((Player)sender)); } } } diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandsetspawn.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandsetspawn.java index 6d2dfc467..a19fa3d9a 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandsetspawn.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandsetspawn.java @@ -17,7 +17,7 @@ public class Commandsetspawn extends EssentialsCommand @Override public void run(Server server, User user, String commandLabel, String[] args) throws Exception { - user.charge(this); + charge(user); String group = args.length > 0 ? getFinalArg(args, 0) : "default"; Essentials.getSpawn().setSpawn(user.getLocation(), group); user.sendMessage(Util.format("spawnSet", group)); diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java index 36af5740b..f36b284e3 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.spawn; +import com.earth2me.essentials.Charge; import org.bukkit.Server; import com.earth2me.essentials.Essentials; import com.earth2me.essentials.User; @@ -16,7 +17,8 @@ public class Commandspawn extends EssentialsCommand @Override public void run(Server server, User user, String commandLabel, String[] args) throws Exception { - user.canAfford(this); - user.getTeleport().respawn(Essentials.getSpawn(), this.getName()); + Charge charge = new Charge(this); + charge.isAffordableFor(user); + user.getTeleport().respawn(Essentials.getSpawn(), charge); } } -- cgit v1.2.3