1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-16 11:37:30 +02:00

Revert "Possible sign refactor?"

This reverts commit 897571db7d.
This commit is contained in:
KHobbits
2012-01-04 18:56:36 +00:00
parent 897571db7d
commit a46f6fd73d
4 changed files with 28 additions and 14 deletions

View File

@@ -96,32 +96,38 @@ public class Trade
} }
public void pay(final IUser user) public void pay(final IUser user)
{ {
try pay(user, true);
{
pay(user, true);
}
catch (ChargeException ex)
{
//This should never ever get here... true above means items get dropped.
user.sendMessage(ex.getMessage());
}
} }
public void pay(final IUser user, final boolean dropItems) throws ChargeException public boolean pay(final IUser user, final boolean dropItems)
{ {
boolean success = true;
if (getMoney() != null && getMoney() > 0) if (getMoney() != null && getMoney() > 0)
{ {
user.giveMoney(getMoney()); user.giveMoney(getMoney());
} }
if (getItemStack() != null) if (getItemStack() != null)
{ {
user.giveItems(itemStack, dropItems); if (dropItems)
{
final Map<Integer, ItemStack> leftOver = InventoryWorkaround.addItem(user.getInventory(), true, getItemStack());
for (ItemStack itemStack : leftOver.values())
{
InventoryWorkaround.dropItem(user.getLocation(), itemStack);
}
}
else
{
success = InventoryWorkaround.addAllItems(user.getInventory(), true, getItemStack());
}
user.updateInventory();
} }
if (getExperience() != null) if (getExperience() != null)
{ {
SetExpFix.setTotalExperience(user, SetExpFix.getTotalExperience(user) + getExperience()); SetExpFix.setTotalExperience(user, SetExpFix.getTotalExperience(user) + getExperience());
} }
return success;
} }
public void charge(final IUser user) throws ChargeException public void charge(final IUser user) throws ChargeException

View File

@@ -661,6 +661,7 @@ public class User extends UserBase implements IUser
{ {
sendMessage(_("InvFull")); sendMessage(_("InvFull"));
} }
updateInventory();
} }
@Override @Override
@@ -678,6 +679,7 @@ public class User extends UserBase implements IUser
{ {
sendMessage(_("InvFull")); sendMessage(_("InvFull"));
} }
updateInventory();
} }
private boolean giveItemStack(ItemStack itemStack, Boolean canSpew) throws ChargeException private boolean giveItemStack(ItemStack itemStack, Boolean canSpew) throws ChargeException

View File

@@ -27,7 +27,10 @@ public class SignBuy extends EssentialsSign
final Trade items = getTrade(sign, 1, 2, player, ess); final Trade items = getTrade(sign, 1, 2, player, ess);
final Trade charge = getTrade(sign, 3, ess); final Trade charge = getTrade(sign, 3, ess);
charge.isAffordableFor(player); charge.isAffordableFor(player);
items.pay(player, false); if (!items.pay(player, false))
{
throw new ChargeException("Inventory full");
}
charge.charge(player); charge.charge(player);
Trade.log("Sign", "Buy", "Interact", username, charge, username, items, sign.getBlock().getLocation(), ess); Trade.log("Sign", "Buy", "Interact", username, charge, username, items, sign.getBlock().getLocation(), ess);
return true; return true;

View File

@@ -55,7 +55,10 @@ public class SignTrade extends EssentialsSign
final Trade charge = getTrade(sign, 1, false, false, ess); final Trade charge = getTrade(sign, 1, false, false, ess);
final Trade trade = getTrade(sign, 2, false, true, ess); final Trade trade = getTrade(sign, 2, false, true, ess);
charge.isAffordableFor(player); charge.isAffordableFor(player);
trade.pay(player, false); if (!trade.pay(player, false))
{
throw new ChargeException("Full inventory");
}
substractAmount(sign, 2, trade, ess); substractAmount(sign, 2, trade, ess);
addAmount(sign, 1, charge, ess); addAmount(sign, 1, charge, ess);
charge.charge(player); charge.charge(player);