diff options
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/signs/SignBuy.java')
-rw-r--r-- | Essentials/src/com/earth2me/essentials/signs/SignBuy.java | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBuy.java b/Essentials/src/com/earth2me/essentials/signs/SignBuy.java index f0200cace..21dc7683e 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignBuy.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignBuy.java @@ -1,12 +1,9 @@ package com.earth2me.essentials.signs; -import com.earth2me.essentials.Charge; +import com.earth2me.essentials.Trade; import com.earth2me.essentials.ChargeException; import com.earth2me.essentials.IEssentials; -import com.earth2me.essentials.InventoryWorkaround; import com.earth2me.essentials.User; -import java.util.Map; -import org.bukkit.inventory.ItemStack; public class SignBuy extends EssentialsSign @@ -19,26 +16,18 @@ public class SignBuy extends EssentialsSign @Override protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException { - validateInteger(sign, 1); - validateItem(sign, 2, true); - validateCharge(sign, 3); + validateTrade(sign, 1, 2, player, ess); + validateTrade(sign, 3, ess); return true; } @Override protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException { - final ItemStack item = getItemStack(sign.getLine(2)); - final int amount = Math.min(getInteger(sign.getLine(1)), item.getType().getMaxStackSize()*player.getInventory().getSize()); - item.setAmount(amount); - final Charge charge = getCharge(sign, 3, ess); + final Trade items = getTrade(sign, 1, 2, player, ess); + final Trade charge = getTrade(sign, 3, ess); charge.isAffordableFor(player); - final Map<Integer, ItemStack> leftOver = InventoryWorkaround.addItem(player.getInventory(), true, item); - for (ItemStack itemStack : leftOver.values()) - { - InventoryWorkaround.dropItem(player.getLocation(), itemStack); - } - player.updateInventory(); + items.pay(player); charge.charge(player); return true; } |