summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnowleo <snowleo@e251c2fe-e539-e718-e476-b85c1f46cddb>2011-05-08 22:45:10 +0000
committersnowleo <snowleo@e251c2fe-e539-e718-e476-b85c1f46cddb>2011-05-08 22:45:10 +0000
commit871494916963505c4b8c5a1528450f4632a3dcca (patch)
tree102ff1987ea48e844522e40f5855176e7f0a0249
parent531acfd5bba4df7ed796dbd5f0c781f95d019513 (diff)
downloadEssentials-871494916963505c4b8c5a1528450f4632a3dcca.tar
Essentials-871494916963505c4b8c5a1528450f4632a3dcca.tar.gz
Essentials-871494916963505c4b8c5a1528450f4632a3dcca.tar.lz
Essentials-871494916963505c4b8c5a1528450f4632a3dcca.tar.xz
Essentials-871494916963505c4b8c5a1528450f4632a3dcca.zip
[trunk] warp sign: Only charge the user, if he is authorized to use the sign.
git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1377 e251c2fe-e539-e718-e476-b85c1f46cddb
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java66
1 files changed, 37 insertions, 29 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
index df6b013d1..c2975e3c6 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
@@ -454,44 +454,18 @@ public class EssentialsPlayerListener extends PlayerListener
}
if (sign.getLine(0).equals("§1[Warp]"))
{
- if (!sign.getLine(3).isEmpty())
- {
- String[] l1 = sign.getLine(3).split("[ :-]+");
- boolean m1 = l1[0].matches("\\$[0-9]+");
- int q1 = Integer.parseInt(m1 ? l1[0].substring(1) : l1[0]);
- if (q1 < 1)
- {
- throw new Exception("Quantities must be greater than 0.");
- }
- if (m1)
- {
- if (user.getMoney() < q1)
- {
- throw new Exception("You do not have sufficient funds.");
- }
- user.takeMoney(q1);
- user.sendMessage("$" + q1 + " taken from your bank account.");
- }
- else
- {
- ItemStack i = ItemDb.get(l1[1], q1);
- if (!InventoryWorkaround.containsItem(user.getInventory(), true, i))
- {
- throw new Exception("You do not have " + q1 + "x " + l1[1] + ".");
- }
- InventoryWorkaround.removeItem(user.getInventory(), true, i);
- user.updateInventory();
- }
- }
+
if (!sign.getLine(2).isEmpty())
{
if (sign.getLine(2).equals("§2Everyone"))
{
+ chargeUserForWarp(sign, user);
user.getTeleport().warp(sign.getLine(1), "warpsign");
return;
}
if (user.inGroup(sign.getLine(2)))
{
+ chargeUserForWarp(sign, user);
user.getTeleport().warp(sign.getLine(1), "warpsign");
return;
}
@@ -499,6 +473,7 @@ public class EssentialsPlayerListener extends PlayerListener
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");
}
return;
@@ -509,6 +484,39 @@ public class EssentialsPlayerListener extends PlayerListener
user.sendMessage("§cError: " + ex.getMessage());
}
}
+
+ private void chargeUserForWarp(Sign sign, User user) throws Exception
+ {
+ if (!sign.getLine(3).isEmpty())
+ {
+ String[] l1 = sign.getLine(3).split("[ :-]+");
+ boolean m1 = l1[0].matches("\\$[0-9]+");
+ int q1 = Integer.parseInt(m1 ? l1[0].substring(1) : l1[0]);
+ if (q1 < 1)
+ {
+ throw new Exception("Quantities must be greater than 0.");
+ }
+ if (m1)
+ {
+ if (user.getMoney() < q1)
+ {
+ throw new Exception("You do not have sufficient funds.");
+ }
+ user.takeMoney(q1);
+ user.sendMessage("$" + q1 + " taken from your bank account.");
+ }
+ else
+ {
+ ItemStack i = ItemDb.get(l1[1], q1);
+ if (!InventoryWorkaround.containsItem(user.getInventory(), true, i))
+ {
+ throw new Exception("You do not have " + q1 + "x " + l1[1] + ".");
+ }
+ InventoryWorkaround.removeItem(user.getInventory(), true, i);
+ user.updateInventory();
+ }
+ }
+ }
@Override
public void onPlayerEggThrow(PlayerEggThrowEvent event)