package de.fanta.challenges.guis.settingsgui;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.guis.challengesettingsguis.BackPackSettingsGui;
import de.fanta.challenges.utils.ChatUtil;
import de.fanta.challenges.utils.Config;
import de.fanta.challenges.utils.ItemUtils;
import de.iani.cubesideutils.bukkit.inventory.AbstractWindow;
import de.iani.cubesideutils.bukkit.items.CustomHeads;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
public class OtherSettingsGui extends AbstractWindow {
private static final Challenges plugin = Challenges.getPlugin();
public static final int INVENTORY_SIZE = 45;
private static final int BACK_INDEX = 7;
private static final int CLOSE_IDEX = 8;
private static final int VILLAGER_TRADE_LIMITS_INDEX = 19;
private static final int DAMAGE_IN_CHAT_INDEX = 20;
private static final int TELEPORT_COMMAND_INDEX = 21;
private static final int HP_ON_TAB_INDEX = 22;
private static final int SMELT_ORES_ON_BREAK_INDEX = 23;
private static final int FAST_FURNACE_INDEX = 24; //TODO: SPEED SETTING
private static final int BACKPACK_INDEX = 25;
private static final int GRAVESTONE_INDEX = 28;
public OtherSettingsGui(Player player) {
super(player, Bukkit.createInventory(null, INVENTORY_SIZE, plugin.getGUIPREFIX() + " >> Other Settings"));
}
@Override
public void onItemClicked(InventoryClickEvent event) {
Player player = getPlayer();
if (!mayAffectThisInventory(event)) {
return;
}
event.setCancelled(true);
if (!getInventory().equals(event.getClickedInventory())) {
return;
}
int slot = event.getSlot();
switch (slot) {
case VILLAGER_TRADE_LIMITS_INDEX -> {
if (Config.getBoolean("disablevillagertradelimits")) {
ChatUtil.sendTitleToAll("Einstellungen", "Villager Trade Limits aktiviert", ChatUtil.RED);
Config.setValue("disablevillagertradelimits", false);
} else {
ChatUtil.sendTitleToAll("Einstellungen", "Villager Trade Limits deaktiviert (Default)", ChatUtil.GREEN);
Config.setValue("disablevillagertradelimits", true);
}
}
case DAMAGE_IN_CHAT_INDEX -> {
if (Config.getBoolean("dmginchat")) {
ChatUtil.sendTitleToAll("Einstellungen", "Schaden im Chat anzeigen deaktiviert", ChatUtil.RED);
Config.setValue("dmginchat", false);
} else {
ChatUtil.sendTitleToAll("Einstellungen", "Schaden im Chat anzeigen aktiviert", ChatUtil.GREEN);
Config.setValue("dmginchat", true);
}
}
case TELEPORT_COMMAND_INDEX -> {
if (Config.getBoolean("teleportcommand")) {
ChatUtil.sendTitleToAll("Einstellungen", "Teleport Command deaktiviert", ChatUtil.RED);
Config.setValue("teleportcommand", false);
} else {
ChatUtil.sendTitleToAll("Einstellungen", "Teleport Command aktiviert", ChatUtil.GREEN);
Config.setValue("teleportcommand", true);
}
}
case HP_ON_TAB_INDEX -> {
if (Config.getBoolean("tabhp")) {
ChatUtil.sendTitleToAll("Einstellungen", "Herzen in der Tablist anzeigen deaktiviert", ChatUtil.RED);
Config.setValue("tabhp", false);
} else {
ChatUtil.sendTitleToAll("Einstellungen", "Herzen in der Tablist anzeigen aktiviert", ChatUtil.GREEN);
Config.setValue("tabhp", true);
}
plugin.getSBManager().updateTabHP();
}
case SMELT_ORES_ON_BREAK_INDEX -> {
if (Config.getBoolean("silkore")) {
ChatUtil.sendTitleToAll("Einstellungen", "Abgebaute Erze droppen Barren deaktiviert", ChatUtil.RED);
Config.setValue("silkore", false);
} else {
ChatUtil.sendTitleToAll("Einstellungen", "Abgebaute Erze droppen Barren aktiviert", ChatUtil.GREEN);
Config.setValue("silkore", true);
}
}
case FAST_FURNACE_INDEX -> {
if (Config.getBoolean("speedfurnace")) {
ChatUtil.sendTitleToAll("Einstellungen", "Schneller Ofen deaktiviert", ChatUtil.RED);
Config.setValue("speedfurnace", false);
} else {
ChatUtil.sendTitleToAll("Einstellungen", "Schneller Ofen aktiviert", ChatUtil.GREEN);
Config.setValue("speedfurnace", true);
}
}
case BACKPACK_INDEX -> {
if (event.isRightClick()) {
new BackPackSettingsGui(player).open();
}
}
case GRAVESTONE_INDEX -> {
if (Config.getBoolean("gravestone")) {
ChatUtil.sendTitleToAll("Einstellungen", "Grabsteine deaktiviert", ChatUtil.RED);
Config.setValue("gravestone", false);
} else {
ChatUtil.sendTitleToAll("Einstellungen", "Grabsteine aktiviert", ChatUtil.GREEN);
Config.setValue("gravestone", true);
}
}
default -> {
}
}
rebuildInventory();
switch (slot) {
case BACK_INDEX -> new MainGui(player).open();
case CLOSE_IDEX -> player.closeInventory();
}
}
@Override
protected void rebuildInventory() {
for (int i = 0; i < INVENTORY_SIZE; i++) {
ItemStack item;
switch (i) {
case BACK_INDEX -> item = CustomHeads.RAINBOW_ARROW_BACKWARD_II.getHead(ChatUtil.RED + "Zurück");
case CLOSE_IDEX -> item = CustomHeads.RAINBOW_X.getHead(ChatUtil.RED + "Menü verlassen");
case VILLAGER_TRADE_LIMITS_INDEX -> {
if (Config.getBoolean("disablevillagertradelimits")) {
item = ItemUtils.createGuiItem(Material.EMERALD, ChatUtil.GREEN + "Villager Trade Limits aktiviert ", true);
} else {
item = ItemUtils.createGuiItem(Material.EMERALD, ChatUtil.RED + "Villager Trade Limits deaktiviert (Default)");
}
}
case DAMAGE_IN_CHAT_INDEX -> {
if (Config.getBoolean("dmginchat")) {
item = ItemUtils.createGuiItem(Material.PAPER, ChatUtil.GREEN + "Schaden im Chat anzeigen aktiviert", true);
} else {
item = ItemUtils.createGuiItem(Material.PAPER, ChatUtil.RED + "Schaden im Chat anzeigen deaktiviert");
}
}
case TELEPORT_COMMAND_INDEX -> {
if (Config.getBoolean("teleportcommand")) {
item = ItemUtils.createGuiItem(Material.ENDER_PEARL, ChatUtil.GREEN + "Teleport Command aktiviert", true, ChatUtil.GREEN + "Deaktiviert den \"/challenges tp\" command");
} else {
item = ItemUtils.createGuiItem(Material.ENDER_PEARL, ChatUtil.RED + "Teleport Command deaktiviert", ChatUtil.RED + "Aktiviert den \"/challenges tp\" command");
}
}
case HP_ON_TAB_INDEX -> {
if (Config.getBoolean("tabhp")) {
item = ItemUtils.createGuiItem(Material.HEART_OF_THE_SEA, ChatUtil.GREEN + "Herzen in der Tablist anzeigen aktiviert", true);
} else {
item = ItemUtils.createGuiItem(Material.HEART_OF_THE_SEA, ChatUtil.RED + "Herzen in der Tablist anzeigen deaktiviert");
}
}
case SMELT_ORES_ON_BREAK_INDEX -> {
if (Config.getBoolean("silkore")) {
item = ItemUtils.createGuiItem(Material.IRON_INGOT, ChatUtil.GREEN + "Abgebaute Erze droppen Barren aktiviert", true);
} else {
item = ItemUtils.createGuiItem(Material.IRON_INGOT, ChatUtil.RED + "Abgebaute Erze droppen Barren deaktiviert");
}
}
case FAST_FURNACE_INDEX -> {
if (Config.getBoolean("speedfurnace")) {
item = ItemUtils.createGuiItem(Material.FURNACE, ChatUtil.GREEN + "Schneller Ofen aktiviert", true);
} else {
item = ItemUtils.createGuiItem(Material.FURNACE, ChatUtil.RED + "Schneller Ofen deaktiviert");
}
}
case BACKPACK_INDEX -> {
if (plugin.getProtocolVersion() > 754) {
item = ItemUtils.createGuiItem(Material.BUNDLE, ChatUtil.GREEN + "Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6", ChatUtil.GREEN + "Rechtsklick = Einstellungen");
} else {
item = ItemUtils.createGuiItem(Material.CHEST, ChatUtil.GREEN + "Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6", ChatUtil.GREEN + "Rechtsklick = Einstellungen");
}
}
case GRAVESTONE_INDEX -> {
if (Config.getBoolean("gravestone")) {
item = ItemUtils.createGuiItem(Material.HOPPER, ChatUtil.GREEN + "Grabstein aktiviert", true);
} else {
item = ItemUtils.createGuiItem(Material.HOPPER, ChatUtil.RED + "Grabstein deaktiviert");
}
}
default -> item = ItemUtils.EMPTY_ICON;
}
this.getInventory().setItem(i, item);
}
}
}