From 09006ced4f86350bca441672ee88f81c552450b8 Mon Sep 17 00:00:00 2001 From: snowleo Date: Fri, 1 Apr 2011 23:06:44 +0000 Subject: [PATCH] [trunk] Prevent scam (air, zero items) signs and prevent stacks size lower than 1 with /give and /item git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1087 e251c2fe-e539-e718-e476-b85c1f46cddb --- .../essentials/EssentialsEcoBlockListener.java | 10 ++++++++-- .../com/earth2me/essentials/commands/Commandgive.java | 9 ++++++--- .../com/earth2me/essentials/commands/Commanditem.java | 6 ++++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsEcoBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsEcoBlockListener.java index d2d0def15..82f08c7f9 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsEcoBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsEcoBlockListener.java @@ -78,7 +78,10 @@ public class EssentialsEcoBlockListener extends BlockListener { event.setLine(0, "§1[Buy]"); event.setLine(1, "" + Math.abs(Integer.parseInt(event.getLine(1)))); - ItemDb.get(event.getLine(2)); + ItemStack is = ItemDb.get(event.getLine(2)); + if (is.getTypeId() == 0 || Math.abs(Integer.parseInt(event.getLine(1))) == 0) { + throw new Exception("Don't sell air."); + } event.setLine(3, "$" + Integer.parseInt(event.getLine(3).replaceAll("[^0-9]", ""))); } catch (Throwable ex) @@ -98,7 +101,10 @@ public class EssentialsEcoBlockListener extends BlockListener { event.setLine(0, "§1[Sell]"); event.setLine(1, "" + Math.abs(Integer.parseInt(event.getLine(1)))); - ItemDb.get(event.getLine(2)); + ItemStack is = ItemDb.get(event.getLine(2)); + if (is.getTypeId() == 0 || Math.abs(Integer.parseInt(event.getLine(1))) == 0) { + throw new Exception("Don't buy air."); + } event.setLine(3, "$" + Integer.parseInt(event.getLine(3).replaceAll("[^0-9]", ""))); } catch (Throwable ex) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java index 559fc5c32..534fe8641 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java @@ -34,15 +34,18 @@ public class Commandgive extends EssentialsCommand sender.sendMessage(ChatColor.RED + "You are not allowed to spawn that item"); return; } - if (itemArgs.length > 1) + if (itemArgs.length > 1) { stack.setDurability(Short.parseShort(itemArgs[1])); - if (args.length > 2) + } + if (args.length > 2 && Integer.parseInt(args[2]) > 0) { stack.setAmount(Integer.parseInt(args[2])); + } User giveTo = getPlayer(server, args, 0); String itemName = stack.getType().name().toLowerCase().replace('_', ' '); - if (sender instanceof Player) + if (sender instanceof Player) { User.get(sender).charge(this); + } sender.sendMessage(ChatColor.BLUE + "Giving " + stack.getAmount() + " of " + itemName + " to " + giveTo.getDisplayName() + "."); giveTo.getInventory().addItem(stack); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java index 97d1d2218..3331a8985 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java @@ -31,11 +31,13 @@ public class Commanditem extends EssentialsCommand user.sendMessage(ChatColor.RED + "You are not allowed to spawn that item"); return; } - if (itemArgs.length > 1) + if (itemArgs.length > 1) { stack.setDurability(Short.parseShort(itemArgs[1])); + } - if (args.length > 1) + if (args.length > 1 && Integer.parseInt(args[1]) > 0) { stack.setAmount(Integer.parseInt(args[1])); + } String itemName = stack.getType().name().toLowerCase().replace('_', ' '); user.charge(this);