package be.isach.ultracosmetics.menu.menus;
import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.config.MessageManager;
import be.isach.ultracosmetics.menu.ClickData;
import be.isach.ultracosmetics.menu.ClickRunnable;
import be.isach.ultracosmetics.menu.Menu;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.ItemFactory;
import be.isach.ultracosmetics.util.PurchaseData;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
/**
* Created by sacha on 04/04/2017.
*/
public class MenuPurchase extends Menu {
private String name;
private PurchaseData purchaseData;
public MenuPurchase(UltraCosmetics ultraCosmetics, String name, PurchaseData purchaseData) {
super(ultraCosmetics);
this.name = name;
this.purchaseData = purchaseData;
}
@Override
protected void putItems(Inventory inventory, UltraPlayer player) {
// Showcase Item
putItem(inventory, 13, purchaseData.getShowcaseItem(), data -> {});
// Purchase Item
ItemStack purchaseItem = ItemFactory.create(Material.EMERALD_BLOCK, MessageManager.getMessage("Purchase"));
ClickRunnable purchaseClickRunnable = data -> {
getUltraCosmetics().getEconomy().withdrawPlayer(player.getBukkitPlayer(), purchaseData.getPrice());
purchaseData.getOnPurchase().run();
player.getBukkitPlayer().closeInventory();
};
for(int i = 27; i < 30; i++) {
for(int j = i; j <= i + 18; j += 9) {
putItem(inventory, j, purchaseItem, purchaseClickRunnable);
}
}
// Cancel Item
ItemStack cancelItem = ItemFactory.create(Material.REDSTONE_BLOCK, MessageManager.getMessage("Cancel"));
ClickRunnable cancelClickRunnable = data -> player.getBukkitPlayer().closeInventory();
for(int i = 33; i < 36; i++) {
for(int j = i; j <= i + 18; j += 9) {
putItem(inventory, j, cancelItem, cancelClickRunnable);
}
}
}
@Override
protected int getSize() {
return 54;
}
@Override
protected String getName() {
return name == null ? "Purchase" : name;
}
}