summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnowleo <snowleo@e251c2fe-e539-e718-e476-b85c1f46cddb>2011-05-22 18:53:23 +0000
committersnowleo <snowleo@e251c2fe-e539-e718-e476-b85c1f46cddb>2011-05-22 18:53:23 +0000
commit805394ff5c86670dbc961f9cac6765ebfb2a1414 (patch)
treeaadcfba5d181eb3e41494335b7ae5c925d63fa19
parentfda91f3afc1831489c91231a58803bac799b9d51 (diff)
downloadEssentials-805394ff5c86670dbc961f9cac6765ebfb2a1414.tar
Essentials-805394ff5c86670dbc961f9cac6765ebfb2a1414.tar.gz
Essentials-805394ff5c86670dbc961f9cac6765ebfb2a1414.tar.lz
Essentials-805394ff5c86670dbc961f9cac6765ebfb2a1414.tar.xz
Essentials-805394ff5c86670dbc961f9cac6765ebfb2a1414.zip
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
-rw-r--r--Essentials/src/com/earth2me/essentials/Charge.java104
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java32
-rw-r--r--Essentials/src/com/earth2me/essentials/Teleport.java29
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java36
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandback.java6
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandhome.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandjump.java6
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandkit.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandlightning.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandnick.java3
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandrealname.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandthunder.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtop.java3
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtp.java6
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtpa.java12
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java15
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtpahere.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtpdeny.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtphere.java3
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtppos.java6
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtree.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandwarp.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandweather.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandworld.java6
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandworth.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java4
-rw-r--r--EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandsetspawn.java2
-rw-r--r--EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java6
28 files changed, 208 insertions, 117 deletions
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<User>, 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<User>, 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<String>)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);
}
}