EpicBuckets/EpicBuckets-Plugin/src/main/java/com/songoda/epicbuckets/gui/GUIBulk.java

99 lines
4.1 KiB
Java

package com.songoda.epicbuckets.gui;
import com.songoda.epicbuckets.EpicBuckets;
import com.songoda.epicbuckets.file.ConfigManager;
import com.songoda.epicbuckets.shop.Shop;
import com.songoda.epicbuckets.shop.ShopManager;
import com.songoda.epicbuckets.shop.SubShop;
import com.songoda.epicbuckets.utils.gui.AbstractGUI;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class GUIBulk extends AbstractGUI {
private EpicBuckets epicBuckets;
private ConfigManager configManager;
private ShopManager shopManager;
private int size;
private Shop shop;
private SubShop subShop;
public GUIBulk(Player player, Shop shop, SubShop subShop) {
super(player);
this.epicBuckets = EpicBuckets.getInstance();
configManager = epicBuckets.getConfigManager();
shopManager = epicBuckets.getShopManager();
this.size = shopManager.getBulkInventorySize() * 9;
this.shop = shop;
this.subShop = subShop;
init(EpicBuckets.getInstance().getShopManager().getBulkInventoryName().replace("{player}", player.getName()), size);
}
@Override
protected void constructGUI() {
if (shopManager.isBulkFillInventory()) {
int num = 0;
while (num != size) {
ItemStack glass = configManager.getFillItem();
inventory.setItem(num, glass);
num++;
}
}
if (shopManager.isUseBackButtons()) {
inventory.setItem(shopManager.getBulkBackButtonSlot(), configManager.getBackButton());
}
shopManager.getDecreaseSlots().forEach(i ->
createButton(i, shopManager.getDecreaseItem(), "&c-" + shopManager.getBulkAmounts().get(shopManager.getDecreaseSlots().indexOf(i))));
shopManager.getIncreaseSlots().forEach(i ->
createButton(i, shopManager.getIncreaseItem(), "&a+" + shopManager.getBulkAmounts().get(shopManager.getIncreaseSlots().indexOf(i))));
inventory.setItem(shopManager.getBulkMainItemSlot(), subShop.getShopItem());
inventory.setItem(shopManager.getPurchaseSlot(), shopManager.getPurchaseItem());
}
@Override
protected void registerClickables() {
epicBuckets.getShopManager().getShops().stream().filter(Shop::isEnabled).forEach(shop ->
registerClickable(shop.getSlot(), ((player1, inventory1, cursor, slot, type) -> new GUIShop(player, shop))));
if (shopManager.isUseBackButtons()) {
registerClickable(shopManager.getBulkBackButtonSlot(), ((player, inventory, cursor, slot, type) ->
new GUIShop(player, shop)));
}
shopManager.getDecreaseSlots().forEach(i ->
registerClickable(i, ((player1, inventory1, cursor, slot, type) -> {
ItemStack genbucket = inventory.getItem(shopManager.getBulkMainItemSlot());
int amount = shopManager.getBulkAmounts().get(shopManager.getDecreaseSlots().indexOf(i));
genbucket.setAmount(genbucket.getAmount() - amount < 1 ? 1 : genbucket.getAmount() - amount);
})));
shopManager.getIncreaseSlots().forEach(i ->
registerClickable(i, ((player1, inventory1, cursor, slot, type) -> {
ItemStack genbucket = inventory.getItem(shopManager.getBulkMainItemSlot());
int amount = shopManager.getBulkAmounts().get(shopManager.getIncreaseSlots().indexOf(i));
genbucket.setAmount(genbucket.getAmount() + amount > 64 ? 64 : genbucket.getAmount() + amount);
})));
registerClickable(shopManager.getPurchaseSlot(), ((player1, inventory1, cursor, slot, type) -> {
if (shopManager.hasEnoughFunds(player1, subShop, inventory.getItem(shopManager.getBulkMainItemSlot()).getAmount())
&& !shopManager.inventoryFull(player))
shopManager.buyFromShop(player, subShop, inventory.getItem(shopManager.getBulkMainItemSlot()).getAmount());
if (shopManager.isCloseAfterPurchase()) new GUIMain(player);
}));
}
@Override
protected void registerOnCloses() {
}
}