Prevent accidentally buying more than you can fit

This commit is contained in:
Teriuihi 2022-01-05 21:43:12 +01:00
parent 149dd46eaf
commit 35030475aa

View File

@ -66,6 +66,25 @@ public class BuyGUI extends GUIMerchant {
return; return;
} }
var ref = new Object() {
int space = 0;
};
Arrays.stream(player.getInventory().getContents())
.filter(itemStack -> itemStack == null || itemStack.getType().equals(material))
.forEach(itemStack -> {
if (itemStack == null)
ref.space += material.getMaxStackSize();
else
ref.space += itemStack.getMaxStackSize() - itemStack.getAmount();
});
if (ref.space < amount) {
player.sendMiniMessage(Config.NOT_ENOUGH_SPACE, List.of(
Template.template("space", String.valueOf(ref.space)),
Template.template("amount", String.valueOf(amount))
));
return;
}
econ.withdrawPlayer(player, cost); econ.withdrawPlayer(player, cost);
econUser.addPoints(villagerType.getName(), transPts); econUser.addPoints(villagerType.getName(), transPts);
player.getInventory().addItem(new ItemStack(material, amount)); player.getInventory().addItem(new ItemStack(material, amount));