package org.arkham.cs.gui;
import org.arkham.cs.CosmeticSuite;
import org.arkham.cs.cosmetics.BlockTrail;
import org.arkham.cs.cosmetics.CustomEffect;
import org.arkham.cs.utils.PlayerMetaDataUtil;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.DyeColor;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class BaseItems {
public static ClickableItem hats() {
return new ClickableItem(ItemFactory.create(Material.BUCKET, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Hats", ChatColor.AQUA + "Click to open the hat GUI")) {
@Override
public void doClick(Player player) {
PlayerMetaDataUtil.setSwitchPage(player);
CosmeticSuite.getInstance().getCommand().openHats(player);
}
};
}
public static ClickableItem effects() {
return new ClickableItem(ItemFactory.create(Material.PORTAL, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Effects", ChatColor.AQUA + "Click to open the effects GUI")) {
@Override
public void doClick(Player player) {
PlayerMetaDataUtil.setSwitchPage(player);
CosmeticSuite.getInstance().getCommand().openEffects(player);
}
};
}
public static ClickableItem back() {
return new ClickableItem(ItemFactory.create(Material.BLAZE_ROD, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Go Back")) {
@Override
public void doClick(Player player) {
GUIPage cpage = GUIPage.getCurrent(player);
GUIPage page = cpage.prev();
if (page == null) {
player.openInventory(CosmeticSuite.getInstance().getGuiManager().getMain(player));
return;
}
if (cpage.getCategory() != page.getCategory()) {
player.openInventory(CosmeticSuite.getInstance().getGuiManager().getMain(player));
return;
}
PlayerMetaDataUtil.setSwitchPage(player);
player.openInventory(page.getInv());
}
};
}
public static ClickableItem next() {
return new ClickableItem(ItemFactory.create(Material.ARROW, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Next Page")) {
@Override
public void doClick(Player player) {
GUIPage cpage = GUIPage.getCurrent(player);
GUIPage page = cpage.next();
if (page == null) {
player.openInventory(CosmeticSuite.getInstance().getGuiManager().getMain(player));
return;
}
if (cpage.getCategory() != page.getCategory()) {
player.openInventory(CosmeticSuite.getInstance().getGuiManager().getMain(player));
return;
}
PlayerMetaDataUtil.setSwitchPage(player);
player.openInventory(page.getInv());
}
};
}
public static ClickableItem blocks() {
return new ClickableItem(ItemFactory.create(Material.SEEDS, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Block Trails", ChatColor.AQUA + "Click to open the Blocks Trails GUI")) {
@Override
public void doClick(Player player) {
PlayerMetaDataUtil.setSwitchPage(player);
CosmeticSuite.getInstance().getCommand().openWalkingBlocks(player);
}
};
}
public static ClickableItem kits() {
return new ClickableItem(ItemFactory.create(Material.DIAMOND_CHESTPLATE, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Kits", ChatColor.AQUA + "Click to open the Kits GUI")) {
@Override
public void doClick(Player player) {
PlayerMetaDataUtil.setSwitchPage(player);
CosmeticSuite.getInstance().getCommand().openKits(player);
}
};
}
public static ClickableItem pets() {
return new ClickableItem(ItemFactory.create(Material.BONE, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Pets", ChatColor.AQUA + "Click to open the Pets GUI")) {
@Override
public void doClick(Player player) {
Bukkit.dispatchCommand(player, "pet select");
}
};
}
public static ClickableItem itemEdit() {
return new ClickableItem(ItemFactory.create(Material.BOOK_AND_QUILL, ChatColor.YELLOW + ChatColor.BOLD.toString() + "ItemEdit Command", ChatColor.AQUA + "Click to execute the /itemedit command.")) {
@Override
public void doClick(Player player) {
Bukkit.dispatchCommand(player, "itemedit");
player.closeInventory();
}
};
}
public static ClickableItem titleSelect() {
return new ClickableItem(ItemFactory.create(Material.WRITTEN_BOOK, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Title Command", ChatColor.AQUA + "Click to execute the /title command.")) {
@Override
public void doClick(Player player) {
Bukkit.dispatchCommand(player, "title");
player.closeInventory();
}
};
}
public static ClickableItem titleColorEdit() {
return new ClickableItem(ItemFactory.create(Material.CARPET, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Title Color Command", ChatColor.AQUA + "Click to execute the /titlecolor command.")) {
@Override
public void doClick(Player player) {
Bukkit.dispatchCommand(player, "titlecolor");
player.closeInventory();
}
};
}
public static ClickableItem color() {
return new ClickableItem(ItemFactory.create(Material.INK_SACK, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Color Command", ChatColor.AQUA + "Click to execute the /color command.")) {
@Override
public void doClick(Player player) {
Bukkit.dispatchCommand(player, "color");
player.closeInventory();
}
};
}
@SuppressWarnings("deprecation")
public static ClickableItem portal() {
return new ClickableItem(ItemFactory.create(Material.getMaterial(119), ChatColor.YELLOW + ChatColor.BOLD.toString() + "Portal Command", ChatColor.AQUA + "Click to execute the /portal command.")) {
@Override
public void doClick(Player player) {
PlayerMetaDataUtil.setSwitchPage(player);
Bukkit.dispatchCommand(player, "portal");
}
};
}
@SuppressWarnings("deprecation")
public static ClickableItem trail(Player player) {
ItemStack display = ItemFactory.create(Material.STAINED_GLASS_PANE, ChatColor.YELLOW + ChatColor.BOLD.toString() + "No Trail Active", 1, DyeColor.WHITE.getData(), "noLore");
CustomEffect effect = CosmeticSuite.getInstance().getEffectManager().getEffect(player);
boolean has = effect != null;
if (has) {
display = ItemFactory.create(Material.STAINED_GLASS_PANE, ChatColor.GREEN + ChatColor.BOLD.toString() + effect.getName(), 1, DyeColor.GREEN.getData(), ChatColor.AQUA + "Click to disable your trail.");
}
return new ClickableItem(display) {
@Override
public void doClick(Player player) {
// PlayerMetaDataUtil.setSwitchPage(player);
CosmeticSuite.getInstance().getEffectManager().setEffect(player, null);
player.sendMessage(CosmeticSuite.PREFIX + "Your trail effect has been disabled.");
player.closeInventory();
// Bukkit.dispatchCommand(player, "portal");
}
};
}
@SuppressWarnings("deprecation")
public static ClickableItem blockTrails(Player player) {
ItemStack display = ItemFactory.create(Material.STAINED_GLASS_PANE, ChatColor.YELLOW + ChatColor.BOLD.toString() + "No Block Trail Active", 1, DyeColor.WHITE.getData(), "noLore");
BlockTrail effect = BlockTrail.get(player);
boolean has = effect != null;
if (has) {
StringBuilder builder = new StringBuilder();
String name = effect.getPermission();
name = name.replace("cosmetics.cursedblocks.", "").replace("_", " ");
if(name.contains(" ")){
for(String s : name.split(" ")){
builder.append(s.substring(0, 1).toUpperCase());
builder.append(s.substring(1).toLowerCase());
builder.append(" ");
}
} else {
builder.append(name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase());
}
display = ItemFactory.create(Material.STAINED_GLASS_PANE, ChatColor.GREEN + ChatColor.BOLD.toString() + builder.toString(), 1, DyeColor.GREEN.getData(), ChatColor.AQUA + "Click to disable your trail.");
}
return new ClickableItem(display) {
@Override
public void doClick(Player player) {
// PlayerMetaDataUtil.setSwitchPage(player);
BlockTrail.blocks.remove(player.getUniqueId());
player.sendMessage(CosmeticSuite.PREFIX + "Your block trail effect has been disabled.");
player.closeInventory();
// Bukkit.dispatchCommand(player, "portal");
}
};
}
//Global Buffs
//Diamond Block
//Click - Purchase Global loot buffs @ website
public static ClickableItem globalBuff() {
return new ClickableItem(ItemFactory.create(Material.DIAMOND_BLOCK, ChatColor.YELLOW + ChatColor.BOLD.toString() + "Global Buffs", ChatColor.AQUA + "More treasure, less grind.")) {
@Override
public void doClick(Player player) {
player.closeInventory();
CosmeticSuite cs = CosmeticSuite.getInstance();
FileConfiguration config = cs.getConfig();
String link = config.getString("buy-link", CosmeticSuite.PREFIX + "Purchase Global Loot Buffs at " + ChatColor.UNDERLINE + "buy.arkhamnetwork.org");
link = ChatColor.translateAlternateColorCodes('&', link);
player.sendMessage(link);
}
};
}
}