package com.walrusone.skywars.menus;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import com.google.common.collect.Lists;
import com.walrusone.skywars.SkyWarsReloaded;
import com.walrusone.skywars.game.GamePlayer;
import com.walrusone.skywars.utilities.IconMenu;
import com.walrusone.skywars.utilities.Messaging;
public class LobbyMainMenu {
private static final int menuSlotsPerRow = 9;
private static final int menuSize = 36;
private static final String optionsMenuName = new Messaging.MessageFormatter().format("menu.lobbymenu-menu-title");
public LobbyMainMenu(final GamePlayer gamePlayer) {
int rowCount = menuSlotsPerRow;
while (rowCount < 36 && rowCount < menuSize) {
rowCount += menuSlotsPerRow;
}
SkyWarsReloaded.getIC().create(gamePlayer.getP(), optionsMenuName, rowCount, new IconMenu.OptionClickEventHandler() {
@Override
public void onOptionClick(IconMenu.OptionClickEvent event) {
if (gamePlayer.inGame()) {
gamePlayer.getP().closeInventory();
return;
}
String option = ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', event.getName()));
event.setWillClose(false);
event.setWillDestroy(false);
if (option.equalsIgnoreCase(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', new Messaging.MessageFormatter().format("menu.permkit-item-name"))))) {
if (hasPermKitPermission(gamePlayer.getP())) {
gamePlayer.getP().closeInventory();
SkyWarsReloaded.get().getServer().getScheduler().scheduleSyncDelayedTask(SkyWarsReloaded.get(), new Runnable() {
@Override
public void run() {
new PermKitMenu(gamePlayer);
}
}, 2);
} else {
return;
}
} else if (option.equalsIgnoreCase(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', new Messaging.MessageFormatter().format("menu.buycolor-item-name"))))) {
if (hasColorPermission(gamePlayer.getP())) {
gamePlayer.getP().closeInventory();
SkyWarsReloaded.get().getServer().getScheduler().scheduleSyncDelayedTask(SkyWarsReloaded.get(), new Runnable() {
@Override
public void run() {
new BuyColorMenu(gamePlayer);
}
}, 2);
} else {
return;
}
} else if (option.equalsIgnoreCase(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', new Messaging.MessageFormatter().format("menu.buyeffect-item-name"))))) {
if (hasEffectPermission(gamePlayer.getP())) {
gamePlayer.getP().closeInventory();
SkyWarsReloaded.get().getServer().getScheduler().scheduleSyncDelayedTask(SkyWarsReloaded.get(), new Runnable() {
@Override
public void run() {
new BuyEffectMenu(gamePlayer);
}
}, 2);
} else {
return;
}
} else if (option.equalsIgnoreCase(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', new Messaging.MessageFormatter().format("menu.buyprojeffect-item-name"))))) {
if (hasEffectPermission(gamePlayer.getP())) {
gamePlayer.getP().closeInventory();
SkyWarsReloaded.get().getServer().getScheduler().scheduleSyncDelayedTask(SkyWarsReloaded.get(), new Runnable() {
@Override
public void run() {
new BuyProjEffectMenu(gamePlayer);
}
}, 2);
} else {
return;
}
} else if (option.equalsIgnoreCase(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', new Messaging.MessageFormatter().format("menu.exit-lobby-menu"))))) {
gamePlayer.getP().closeInventory();
} else {
return;
}
}
});
List<String> kitLore = Lists.newLinkedList();
if (hasPermKitPermission(gamePlayer.getP())) {
} else {
kitLore.add(new Messaging.MessageFormatter().format("error.no-permission-permkits"));
}
List<String> colorLore = Lists.newLinkedList();
if (hasColorPermission(gamePlayer.getP())) {
} else {
colorLore.add(new Messaging.MessageFormatter().format("error.no-permission-color-shop"));
}
List<String> particleLore = Lists.newLinkedList();
if (hasEffectPermission(gamePlayer.getP())) {
} else {
particleLore.add(new Messaging.MessageFormatter().format("error.no-permission-effect-shop"));
}
List<String> projectEffectLore = Lists.newLinkedList();
if (hasProjEffectPermission(gamePlayer.getP())) {
} else {
projectEffectLore.add(new Messaging.MessageFormatter().format("error.no-permission-projeffect-shop"));
}
if (gamePlayer.getP() != null && !gamePlayer.inGame()) {
if (SkyWarsReloaded.getCfg().purchasePermanentKitsEnabled()) {
SkyWarsReloaded.getIC().setOption(
gamePlayer.getP(),
SkyWarsReloaded.getCfg().getKitPermMenuItemSlot(),
SkyWarsReloaded.getCfg().getPermKitMenuItem(),
new Messaging.MessageFormatter().format("menu.permkit-item-name"),
kitLore.toArray(new String[kitLore.size()]));
}
if (SkyWarsReloaded.getCfg().purchaseColorClassEnabled()) {
SkyWarsReloaded.getIC().setOption(
gamePlayer.getP(),
SkyWarsReloaded.getCfg().getGlassLobbyMenuSlot(),
SkyWarsReloaded.getCfg().getGlassMenuItem(),
new Messaging.MessageFormatter().format("menu.buycolor-item-name"),
colorLore.toArray(new String[colorLore.size()]));
}
if (SkyWarsReloaded.getCfg().purchaseParticlesEnabled()) {
SkyWarsReloaded.getIC().setOption(
gamePlayer.getP(),
SkyWarsReloaded.getCfg().getParticleLobbyMenuSlot(),
SkyWarsReloaded.getCfg().getparticleMenuItem(),
new Messaging.MessageFormatter().format("menu.buyeffect-item-name"),
particleLore.toArray(new String[particleLore.size()]));
}
if (SkyWarsReloaded.getCfg().purchaseTrailEffectsEnabled()) {
SkyWarsReloaded.getIC().setOption(
gamePlayer.getP(),
SkyWarsReloaded.getCfg().getTrailEffectLobbyMenuSlot(),
SkyWarsReloaded.getCfg().getTrailEffectsMenuItem(),
new Messaging.MessageFormatter().format("menu.buyprojeffect-item-name"),
projectEffectLore.toArray(new String[projectEffectLore.size()]));
}
List<String> loreList5 = Lists.newLinkedList();
SkyWarsReloaded.getIC().setOption(
gamePlayer.getP(),
35,
new ItemStack(Material.TORCH, 1),
new Messaging.MessageFormatter().format("menu.exit-lobby-menu"),
loreList5.toArray(new String[loreList5.size()]));
if (!gamePlayer.inGame()) {
SkyWarsReloaded.getIC().show(gamePlayer.getP());
}
}
}
public boolean hasEffectPermission(Player player) {
return player.isOp() || player.hasPermission("swr.effectshop");
}
public boolean hasProjEffectPermission(Player player) {
return player.isOp() || player.hasPermission("swr.projeffectshop");
}
public boolean hasColorPermission(Player player) {
return player.isOp() || player.hasPermission("swr.colorshop");
}
public boolean hasPermKitPermission(Player player) {
return player.isOp() || player.hasPermission("swr.permkits");
}
}