package nl.sugcube.crystalquest.economy;
import nl.sugcube.crystalquest.CrystalQuest;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.ArrayList;
import java.util.List;
/**
* @author SugarCaney
*/
public class ShopMainMenu implements Listener {
public static CrystalQuest plugin;
public static Economy economy;
public ShopMainMenu(CrystalQuest instance, Economy eco) {
plugin = instance;
economy = eco;
}
/**
* Shows the main menu of the CrystalQuest-Shop.
*
* @param p
* (Player) The player to show the menu to.
*/
public void showMenu(Player p) {
p.closeInventory();
Inventory inv = Bukkit.createInventory(null, 9, ChatColor.LIGHT_PURPLE + "CrystalQuest Shop:" + ChatColor.GOLD +
" Menu");
ItemStack[] contents = inv.getContents();
contents[0] = getItemClass();
contents[1] = getItemPowerUp();
contents[2] = getItemCrystals();
contents[8] = economy.getItemBalance(p);
inv.setContents(contents);
p.openInventory(inv);
}
/*
* Inventory handling for the main menu
*/
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
Inventory inv = e.getInventory();
if (inv.getName().equalsIgnoreCase(ChatColor.LIGHT_PURPLE + "CrystalQuest Shop:" + ChatColor.GOLD + " Menu")) {
if (e.getCurrentItem() != null) {
ItemStack item = e.getCurrentItem();
if (item.hasItemMeta()) {
ItemMeta im = item.getItemMeta();
if (im.hasDisplayName()) {
String name = im.getDisplayName();
/*
* POWERUP MENU
*/
if (name.equalsIgnoreCase(ChatColor.GREEN + "Power-Up-Grades")) {
economy.getPowerupMenu().showMenu((Player)e.getWhoClicked());
}
/*
* CRYSTALS MENU
*/
else if (name.equalsIgnoreCase(ChatColor.AQUA + "More Crystals")) {
economy.getCrystalMenu().showMenu((Player)e.getWhoClicked());
}
/*
* CLASSES MENU
*/
else if (name.equalsIgnoreCase(ChatColor.GOLD + "Buy Classes")) {
economy.getClassesMenu().showMenu((Player)e.getWhoClicked());
}
}
}
}
e.setCancelled(true);
}
}
/**
* Gets the item linking to the More Crystals-Menu
*
* @return (ItemStack)
*/
public ItemStack getItemCrystals() {
ItemStack is = new ItemStack(Material.DIAMOND, 1);
ItemMeta im = is.getItemMeta();
im.setDisplayName(ChatColor.AQUA + "More Crystals");
is.addUnsafeEnchantment(Enchantment.SILK_TOUCH, 1);
List<String> lore = new ArrayList<String>();
lore.add(ChatColor.GRAY + "" + ChatColor.ITALIC + "Gimme money!");
im.setLore(lore);
is.setItemMeta(im);
return is;
}
/**
* Gets the item linking to the Power-Up-Grade-Menu
*
* @return (ItemStack)
*/
public ItemStack getItemPowerUp() {
ItemStack is = new ItemStack(Material.SLIME_BALL, 1);
ItemMeta im = is.getItemMeta();
im.setDisplayName(ChatColor.GREEN + "Power-Up-Grades");
List<String> lore = new ArrayList<String>();
lore.add(ChatColor.GRAY + "" + ChatColor.ITALIC + "Upgrade your Power-Ups");
im.setLore(lore);
is.setItemMeta(im);
return is;
}
/**
* Gets the item linking to the Buy Class-Menu
*
* @return (ItemStack)
*/
public ItemStack getItemClass() {
ItemStack is = new ItemStack(Material.GOLD_SWORD, 1);
ItemMeta im = is.getItemMeta();
im.setDisplayName(ChatColor.GOLD + "Buy Classes");
List<String> lore = new ArrayList<String>();
lore.add(ChatColor.GRAY + "" + ChatColor.ITALIC + "Buy extra classes to play with!");
im.setLore(lore);
is.setItemMeta(im);
return is;
}
}