mirror of
https://github.com/amalthea-mc/ShopChest.git
synced 2024-11-09 20:21:07 +00:00
Fixed admin shops
This commit is contained in:
parent
f511ff66a0
commit
efaec3cd93
@ -435,9 +435,9 @@ public class ShopInteractListener implements Listener {
|
|||||||
Block b = shop.getLocation().getBlock();
|
Block b = shop.getLocation().getBlock();
|
||||||
Chest c = (Chest) b.getState();
|
Chest c = (Chest) b.getState();
|
||||||
|
|
||||||
int amountForChestSpace = Utils.getAmount(c.getInventory(), shop.getProduct());
|
int amountForChestItems = Utils.getAmount(c.getInventory(), shop.getProduct());
|
||||||
|
|
||||||
if (amountForChestSpace == 0 && config.auto_calculate_item_amount) {
|
if (amountForChestItems == 0 && config.auto_calculate_item_amount && shop.getShopType() != ShopType.ADMIN) {
|
||||||
executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.OUT_OF_STOCK));
|
executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.OUT_OF_STOCK));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -447,17 +447,23 @@ public class ShopInteractListener implements Listener {
|
|||||||
|
|
||||||
int freeSpace = Utils.getFreeSpaceForItem(inventory, product);
|
int freeSpace = Utils.getFreeSpaceForItem(inventory, product);
|
||||||
|
|
||||||
int amountForPlayerInvSpace = (freeSpace >= product.getAmount() ? product.getAmount() : freeSpace);
|
if (freeSpace == 0 && config.auto_calculate_item_amount) {
|
||||||
|
|
||||||
if (amountForPlayerInvSpace == 0 && config.auto_calculate_item_amount) {
|
|
||||||
executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.NOT_ENOUGH_INVENTORY_SPACE));
|
executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.NOT_ENOUGH_INVENTORY_SPACE));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int newAmount = Math.min(Math.min(amountForMoney, amountForChestSpace), amountForPlayerInvSpace);
|
int newAmount = product.getAmount();
|
||||||
if (newAmount > shop.getProduct().getAmount()) newAmount = shop.getProduct().getAmount();
|
|
||||||
|
|
||||||
double newPrice = (shop.getBuyPrice() / shop.getProduct().getAmount()) * newAmount;
|
if (config.auto_calculate_item_amount) {
|
||||||
|
if (shop.getShopType() == ShopType.ADMIN)
|
||||||
|
newAmount = Math.min(amountForMoney, freeSpace);
|
||||||
|
else
|
||||||
|
newAmount = Math.min(Math.min(amountForMoney, amountForChestItems), freeSpace);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newAmount > product.getAmount()) newAmount = product.getAmount();
|
||||||
|
|
||||||
|
double newPrice = (shop.getBuyPrice() / product.getAmount()) * newAmount;
|
||||||
|
|
||||||
if (freeSpace >= product.getAmount() || (config.auto_calculate_item_amount && freeSpace >= newAmount)) {
|
if (freeSpace >= product.getAmount() || (config.auto_calculate_item_amount && freeSpace >= newAmount)) {
|
||||||
plugin.debug(executor.getName() + " has enough inventory space for " + freeSpace + " items (#" + shop.getID() + ")");
|
plugin.debug(executor.getName() + " has enough inventory space for " + freeSpace + " items (#" + shop.getID() + ")");
|
||||||
@ -542,7 +548,7 @@ public class ShopInteractListener implements Listener {
|
|||||||
|
|
||||||
plugin.debug("Vendor has enough money for " + amountForMoney + " item(s) (#" + shop.getID() + ")");
|
plugin.debug("Vendor has enough money for " + amountForMoney + " item(s) (#" + shop.getID() + ")");
|
||||||
|
|
||||||
if (amountForMoney == 0 && config.auto_calculate_item_amount) {
|
if (amountForMoney == 0 && config.auto_calculate_item_amount && shop.getShopType() != ShopType.ADMIN) {
|
||||||
executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.VENDOR_NOT_ENOUGH_MONEY));
|
executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.VENDOR_NOT_ENOUGH_MONEY));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -564,15 +570,23 @@ public class ShopInteractListener implements Listener {
|
|||||||
|
|
||||||
int amountForChestSpace = (freeSpace >= product.getAmount() ? product.getAmount() : freeSpace);
|
int amountForChestSpace = (freeSpace >= product.getAmount() ? product.getAmount() : freeSpace);
|
||||||
|
|
||||||
if (amountForChestSpace == 0 && config.auto_calculate_item_amount) {
|
if (amountForChestSpace == 0 && config.auto_calculate_item_amount && shop.getShopType() != ShopType.ADMIN) {
|
||||||
executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.CHEST_NOT_ENOUGH_INVENTORY_SPACE));
|
executor.sendMessage(LanguageUtils.getMessage(LocalizedMessage.Message.CHEST_NOT_ENOUGH_INVENTORY_SPACE));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int newAmount = Math.min(Math.min(amountForMoney, amountForItemCount), amountForChestSpace);
|
int newAmount = product.getAmount();
|
||||||
if (newAmount > shop.getProduct().getAmount()) newAmount = shop.getProduct().getAmount();
|
|
||||||
|
|
||||||
double newPrice = (shop.getSellPrice() / shop.getProduct().getAmount()) * newAmount;
|
if (config.auto_calculate_item_amount) {
|
||||||
|
if (shop.getShopType() == ShopType.ADMIN)
|
||||||
|
newAmount = amountForItemCount;
|
||||||
|
else
|
||||||
|
newAmount = Math.min(Math.min(amountForMoney, amountForItemCount), amountForChestSpace);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newAmount > product.getAmount()) newAmount = product.getAmount();
|
||||||
|
|
||||||
|
double newPrice = (shop.getSellPrice() / product.getAmount()) * newAmount;
|
||||||
|
|
||||||
if (freeSpace >= product.getAmount() || (config.auto_calculate_item_amount && freeSpace >= newAmount)) {
|
if (freeSpace >= product.getAmount() || (config.auto_calculate_item_amount && freeSpace >= newAmount)) {
|
||||||
plugin.debug("Chest has enough inventory space for " + freeSpace + " items (#" + shop.getID() + ")");
|
plugin.debug("Chest has enough inventory space for " + freeSpace + " items (#" + shop.getID() + ")");
|
||||||
|
Loading…
Reference in New Issue
Block a user