summaryrefslogtreecommitdiffstats
path: root/Essentials/src/com/earth2me/essentials/signs/SignBuy.java
diff options
context:
space:
mode:
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/signs/SignBuy.java')
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignBuy.java23
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;
}