package org.arkham.cs.commands;
import java.util.List;
import org.arkham.cs.CosmeticSuite;
import org.arkham.cs.cosmetics.BlockTrail;
import org.arkham.cs.cosmetics.CustomEffect;
import org.arkham.cs.cosmetics.Hat;
import org.arkham.cs.cosmetics.HeroKit;
import org.arkham.cs.cosmetics.SuperHeroKit;
import org.arkham.cs.gui.Category;
import org.arkham.cs.gui.GUIManager;
import org.arkham.cs.gui.GUIPage;
import org.arkham.cs.handler.PlayerHandler;
import org.arkham.cs.handler.PurchaseHandler;
import org.arkham.cs.utils.PlayerMetaDataUtil;
import org.arkham.cs.utils.Rank;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class CosmeticCommand implements CommandExecutor {
public CosmeticCommand(){
CosmeticSuite cs = CosmeticSuite.getInstance();
cs.getCommand("cosmetics").setExecutor(this);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
return true;
}
Player player = (Player) sender;
if (args.length == 0) {
player.openInventory(CosmeticSuite.getInstance().getGuiManager().getMain(player));
PlayerMetaDataUtil.setInGUI(player);
return true;
}
if (args.length == 1) {
switch (args[0].toLowerCase()) {
case "-e":
openEffects(player);
break;
case "-h":
openHats(player);
break;
case "-bt":
openWalkingBlocks(player);
break;
case "help":
sendHelp(player);
break;
default:
player.openInventory(CosmeticSuite.getInstance().getGuiManager().getMain(player));
break;
}
return true;
}
return false;
}
public void sendHelp(Player player){
String[] help = {
ChatColor.GREEN + "==============================================",
ChatColor.GOLD + "/cosmetics - " + ChatColor.GRAY + " Opens the main GUI.",
ChatColor.GOLD + "Arguments: ",
" " + ChatColor.RED + "-h | " + ChatColor.GRAY + "Open the Hat's GUI",
" " + ChatColor.RED + "-e | " + ChatColor.GRAY + "Open the Effects's GUI",
" " + ChatColor.RED + "-bt | " + ChatColor.GRAY + "Open the Block Trail's GUI",
ChatColor.GREEN + "=============================================="
};
player.sendMessage(help);
}
public void openEffects(Player player) {
PlayerMetaDataUtil.setInGUI(player);
GUIManager manager = CosmeticSuite.getInstance().getGuiManager();
List<GUIPage> pages = manager.getPages(Category.EFFECTS);
GUIPage page = pages.get(0);
if(page == null){
return;
}
if(PlayerHandler.isNothingSpecial(player)){
player.sendMessage(CosmeticSuite.PREFIX + "Purchase HERO or SUPERHERO at " + ChatColor.UNDERLINE + "buy.arkhamnetwork.org" + ChatColor.YELLOW + " to unlock effects!");
player.closeInventory();
// player.openInventory(page.getInv());
return;
}
Rank rank = PlayerHandler.getRank(player);
for(CustomEffect hat : CustomEffect.getEffects(rank)){
if(!PurchaseHandler.hasPurchased(player, hat)){
PurchaseHandler.addPurchase(player, hat);
}
GUIPage.addButton(hat, Category.EFFECTS, player);
}
player.openInventory(page.getInv());
return;
}
public void openHats(Player player) {
PlayerMetaDataUtil.setInGUI(player);
GUIManager manager = CosmeticSuite.getInstance().getGuiManager();
List<GUIPage> pages = manager.getPages(Category.HATS);
GUIPage page = pages.get(0);
if(page == null){
return;
}
if(PlayerHandler.isNothingSpecial(player)){
player.sendMessage(CosmeticSuite.PREFIX + "Purchase HERO or SUPERHERO at " + ChatColor.UNDERLINE + "buy.arkhamnetwork.org" + ChatColor.YELLOW + " to unlock hats!");
player.closeInventory();
// player.openInventory(page.getInv());
return;
}
Rank rank = PlayerHandler.getRank(player);
for(Hat hat : Hat.getHats(rank)){
if(!PurchaseHandler.hasPurchased(player, hat)){
PurchaseHandler.addPurchase(player, hat);
}
GUIPage.addButton(hat, Category.HATS, player);
}
player.openInventory(page.getInv());
}
public void openWalkingBlocks(Player player) {
PlayerMetaDataUtil.setInGUI(player);
GUIManager manager = CosmeticSuite.getInstance().getGuiManager();
List<GUIPage> pages = manager.getPages(Category.CURSE_BLOCKS);
GUIPage page = pages.get(0);
if(page == null){
return;
}
if(PlayerHandler.isNothingSpecial(player)){
// player.openInventory(page.getInv());
player.sendMessage(CosmeticSuite.PREFIX + "Purchase HERO or SUPERHERO at " + ChatColor.UNDERLINE + "buy.arkhamnetwork.org" + ChatColor.YELLOW + " to unlock block trails!");
player.closeInventory();
return;
}
Rank rank = PlayerHandler.getRank(player);
for(BlockTrail hat : BlockTrail.getByRank(rank)){
if(!PurchaseHandler.hasPurchased(player, hat)){
PurchaseHandler.addPurchase(player, hat);
}
GUIPage.addButton(hat, Category.CURSE_BLOCKS, player);
}
player.openInventory(page.getInv());
}
public void openKits(Player player){
PlayerMetaDataUtil.setInGUI(player);
GUIManager manager = CosmeticSuite.getInstance().getGuiManager();
List<GUIPage> pages = manager.getPages(Category.KITS);
GUIPage page = pages.get(0);
if(page == null){
return;
}
SuperHeroKit shk = manager.getSuperHeroKit();
HeroKit hk = manager.getHeroKit();
GUIPage.addButton(hk, Category.KITS, player);
GUIPage.addButton(shk, Category.KITS, player);
player.openInventory(page.getInv());
}
}