package de.fanta.challenges.guis;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.utils.guiutils.GUIUtils;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.GameRule;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.World;
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;
public class TimerGui implements Listener {
private static final Challenges plugin = Challenges.getPlugin();
public static final int INVENTORY_SIZE = 27;
public static final Inventory TIMER_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Timer");
private static final int SHOWTIMER_INDEX = 13;
public static void createTimerGUI(Player p) {
if (plugin.getTimer().isReverse()) {
TIMER_GUI.setItem(11, GUIUtils.createGuiItem(Material.MAGENTA_GLAZED_TERRACOTTA, ChatColor.AQUA + "Timer Richtung - rückwärts"));
} else {
TIMER_GUI.setItem(11, GUIUtils.createGuiItem(Material.MAGENTA_GLAZED_TERRACOTTA, ChatColor.GREEN + "Timer Richtung - vorwärts"));
}
if (plugin.getConfig().getBoolean("showtimer")) {
TIMER_GUI.setItem(SHOWTIMER_INDEX, GUIUtils.createGuiItem(Material.OBSERVER, ChatColor.GREEN + "Timer wird angezeigt!", true));
} else {
TIMER_GUI.setItem(SHOWTIMER_INDEX, GUIUtils.createGuiItem(Material.OBSERVER, ChatColor.RED + "Timer wird nicht angezeigt!", false));
}
if (plugin.getTimer().isRunning()) {
TIMER_GUI.setItem(15, GUIUtils.createGuiItem(Material.CLOCK, ChatColor.GREEN + "Timer gestartet", true));
} else {
TIMER_GUI.setItem(15, GUIUtils.createGuiItem(Material.CLOCK, ChatColor.RED + "Timer pausiert"));
}
for (int i = 0; i < INVENTORY_SIZE; i++) {
if (TIMER_GUI.getItem(i) == null || TIMER_GUI.getItem(i).getType() == Material.AIR) {
TIMER_GUI.setItem(i, GUIUtils.EMPTY_ICON);
}
}
p.openInventory(TIMER_GUI);
}
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
int slot = e.getRawSlot();
World world = Bukkit.getWorld("world");
Player p = (Player) e.getWhoClicked();
if (e.getInventory() == TIMER_GUI) {
if (slot == 15) {
if (plugin.getTimer().isRunning()) {
plugin.getTimer().stopTimer();
for (Player pp : Bukkit.getOnlinePlayers()) {
pp.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F);
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false);
pp.sendTitle(ChatColor.of("#0ddead") + "Timer", ChatColor.RED + "Der Timer wurde pausiert.", 10, 40, 10);
}
} else {
plugin.getTimer().startTimer();
for (Player pp : Bukkit.getOnlinePlayers()) {
pp.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F);
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, true);
pp.sendTitle(ChatColor.of("#0ddead") + "Timer", ChatColor.GREEN + "Der Timer wurde gestartet.", 10, 60, 10);
}
}
p.closeInventory();
} else if (slot == 11) {
if (plugin.getTimer().isReverse()) {
plugin.getTimer().reverseTimer();
GUIUtils.sendTitleToAll("Timer", "Der Timer läuft jetzt vorwärts.", ChatColor.GREEN);
} else {
plugin.getTimer().reverseTimer();
GUIUtils.sendTitleToAll("Timer", "Der Timer läuft jetzt rückwärts.", ChatColor.AQUA);
}
p.closeInventory();
} else if (slot == SHOWTIMER_INDEX) {
if (plugin.getConfig().getBoolean("showtimer")) {
plugin.getConfig().set("showtimer", false);
GUIUtils.sendTitleToAll("Timer", "Der Timer wird jetzt nicht mehr angezeigt!", ChatColor.RED);
} else {
plugin.getConfig().set("showtimer", true);
GUIUtils.sendTitleToAll("Timer", "Der Timer wird jetzt wieder angezeigt!", ChatColor.GREEN);
}
createTimerGUI(p);
}
e.setCancelled(true);
}
}
}