diff --git a/src/main/java/de/fanta/challenges/Timer.java b/src/main/java/de/fanta/challenges/Timer.java index dd39f1c..3b88ef8 100644 --- a/src/main/java/de/fanta/challenges/Timer.java +++ b/src/main/java/de/fanta/challenges/Timer.java @@ -43,9 +43,9 @@ idleActionBarTaskId = -1; } actionBarTaskId = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> { - int random = this.random.nextInt(750); + int random = this.random.nextInt(Config.getInt("mlg.maxtime")); MLGChallenge.timeSinceMLG++; - if (random == 638 || MLGChallenge.timeSinceMLG >= MLGChallenge.maxMLGTime) { + if (random == 0 || MLGChallenge.timeSinceMLG >= Config.getInt("mlg.maxtime")) { MLGChallenge.triggerMLG(); } diff --git a/src/main/java/de/fanta/challenges/challenges/BedrockWallChallenge.java b/src/main/java/de/fanta/challenges/challenges/BedrockWallChallenge.java index 6320543..e27c79e 100644 --- a/src/main/java/de/fanta/challenges/challenges/BedrockWallChallenge.java +++ b/src/main/java/de/fanta/challenges/challenges/BedrockWallChallenge.java @@ -35,6 +35,6 @@ Block block = loc.set(loc.getX(), y, loc.getZ()).getBlock(); block.setType(Material.BEDROCK); } - }, 20 * 10L); + }, 20L * Config.getInt("bedrockwalltime")); } } diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/BingoChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/BingoChallengeEvent.java index 99b4ba9..7f61468 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/BingoChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/BingoChallengeEvent.java @@ -2,7 +2,7 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.events.TimerChangedEvent; -import de.fanta.challenges.guis.eventgui.EventItemsGui; +import de.fanta.challenges.guis.eventgui.BingoItemsGui; import de.fanta.challenges.scoreboard.ChallengePlayer; import de.fanta.challenges.teams.ChallengeTeam; import de.fanta.challenges.teams.TeamUtils; @@ -77,7 +77,7 @@ @EventHandler public void onInventoryClick(InventoryClickEvent e) { Player player = (Player) e.getWhoClicked(); - Inventory playerInv = EventItemsGui.getPlayerInvs().get(player.getUniqueId()); + Inventory playerInv = BingoItemsGui.getPlayerInvs().get(player.getUniqueId()); if (e.getClickedInventory() == null) { return; } @@ -136,7 +136,7 @@ public void onActivation(TimerChangedEvent event) { if (Objects.equals(Config.getString("event.type"), "bingo")) { if (event.isRunning()) { - setMaterials(EventItemsGui.getEventItems()); + setMaterials(BingoItemsGui.getEventItems()); for (Player p : Bukkit.getOnlinePlayers()) { bossBar.setVisible(true); bossBar.addPlayer(p); diff --git a/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java b/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java index 25fd763..ba7b3eb 100644 --- a/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java +++ b/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java @@ -26,7 +26,6 @@ private static boolean mlgActive; public static int timeSinceMLG; // seconds - public static int maxMLGTime = Config.getInt("mlg.maxtime"); // seconds public static void checkMLGWorld() { World mlgWorld = Bukkit.getWorld("mlg_challenge"); diff --git a/src/main/java/de/fanta/challenges/challenges/ShareDamageChallenge.java b/src/main/java/de/fanta/challenges/challenges/ShareDamageChallenge.java index ec1aff2..a05d593 100644 --- a/src/main/java/de/fanta/challenges/challenges/ShareDamageChallenge.java +++ b/src/main/java/de/fanta/challenges/challenges/ShareDamageChallenge.java @@ -19,35 +19,21 @@ @EventHandler public void onDamage(EntityDamageEvent e) { if (e.getEntity() instanceof Player p) { - - if (!plugin.getVanish().isVanish(p)) { - if (Config.getBoolean("sharedmg") && plugin.getTimer().isRunning()) { - int rnd = new Random().nextInt(Bukkit.getOnlinePlayers().size()); - Player rp = (Player) Bukkit.getServer().getOnlinePlayers().toArray()[rnd]; - p.setHealth(rp.getHealth()); - } - } - if (Config.getBoolean("sharedmg") && plugin.getTimer().isRunning()) { for (Player pp : Bukkit.getOnlinePlayers()) { if (pp != p) { - if (!plugin.getVanish().isVanish(pp)) { + if (!plugin.getVanish().isVanish(pp) && pp.getGameMode() == GameMode.SURVIVAL) { double health = pp.getHealth() - e.getFinalDamage(); if (health < 0) { pp.setHealth(0); } else { - if (pp.getGameMode() == GameMode.SURVIVAL) { - pp.setHealth(health); - pp.getWorld().playSound(pp.getLocation(), Sound.ENTITY_PLAYER_HURT, 1, 1); - } - + pp.setHealth(health); } - + pp.getWorld().playSound(pp.getLocation(), Sound.ENTITY_PLAYER_HURT, 1, 1); } } } } } - } } diff --git a/src/main/java/de/fanta/challenges/challenges/WorldBorderLevelChallenge.java b/src/main/java/de/fanta/challenges/challenges/WorldBorderLevelChallenge.java index 7ffc109..e23b086 100644 --- a/src/main/java/de/fanta/challenges/challenges/WorldBorderLevelChallenge.java +++ b/src/main/java/de/fanta/challenges/challenges/WorldBorderLevelChallenge.java @@ -180,9 +180,10 @@ for (Player player : Bukkit.getOnlinePlayers()) { if (level > 0) { - worldBorder.setSize(level * 2); - netherBorder.setSize(level * 2); - endBorder.setSize(level * 2); + int borderMultiplayer = Config.getInt("worldborderlevelbordermultiplier"); + worldBorder.setSize(level * borderMultiplayer); + netherBorder.setSize(level * borderMultiplayer); + endBorder.setSize(level * borderMultiplayer); } else { worldBorder.setSize(1); netherBorder.setSize(1); diff --git a/src/main/java/de/fanta/challenges/commands/BingoCommand.java b/src/main/java/de/fanta/challenges/commands/BingoCommand.java index e00dad1..96b9aa0 100644 --- a/src/main/java/de/fanta/challenges/commands/BingoCommand.java +++ b/src/main/java/de/fanta/challenges/commands/BingoCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands; import de.fanta.challenges.Challenges; -import de.fanta.challenges.guis.eventgui.EventItemsGui; +import de.fanta.challenges.guis.eventgui.BingoItemsGui; import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.utils.Config; import de.iani.cubesideutils.bukkit.commands.SubCommand; @@ -35,10 +35,10 @@ ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!"); return true; } - EventItemsGui.openPlayerInv(player, (Player) sender); + BingoItemsGui.openPlayerInv(player, (Player) sender); } else { - EventItemsGui.openPlayerInv((Player) sender, (Player) sender); + BingoItemsGui.openPlayerInv((Player) sender, (Player) sender); } return true; } else { diff --git a/src/main/java/de/fanta/challenges/commands/challenges/CheckItemsCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/CheckItemsCommand.java index 6384bd2..3b15c64 100644 --- a/src/main/java/de/fanta/challenges/commands/challenges/CheckItemsCommand.java +++ b/src/main/java/de/fanta/challenges/commands/challenges/CheckItemsCommand.java @@ -34,7 +34,7 @@ reset = true; } - CheckItemsGUI.createCheckItemGUI(player); + new CheckItemsGUI(player).open(); return true; } diff --git a/src/main/java/de/fanta/challenges/commands/challenges/TeleportCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/TeleportCommand.java index b14ba9f..630e239 100644 --- a/src/main/java/de/fanta/challenges/commands/challenges/TeleportCommand.java +++ b/src/main/java/de/fanta/challenges/commands/challenges/TeleportCommand.java @@ -19,7 +19,7 @@ } if (Config.getBoolean("teleportcommand") || player.hasPermission("Challenges.editor.override")) { - TeleportGUI.buildTeleportInventory(player); + new TeleportGUI(player).open(); } else { ChatUtil.sendWarningMessage(player, "Teleport deaktiviert!"); } diff --git a/src/main/java/de/fanta/challenges/guis/CheckItemsGUI.java b/src/main/java/de/fanta/challenges/guis/CheckItemsGUI.java index f5cfcfb..b12ca19 100644 --- a/src/main/java/de/fanta/challenges/guis/CheckItemsGUI.java +++ b/src/main/java/de/fanta/challenges/guis/CheckItemsGUI.java @@ -3,25 +3,21 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.utils.Config; +import de.fanta.challenges.utils.guiutils.AbstractWindow; import de.fanta.challenges.utils.guiutils.GUIUtils; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import java.io.IOException; -import java.util.HashMap; import java.util.List; -import java.util.Map; -public class CheckItemsGUI implements Listener { +public class CheckItemsGUI extends AbstractWindow { private static final Challenges plugin = Challenges.getPlugin(); private static final int JA_INDEX = 0; @@ -30,62 +26,59 @@ public static final int INVENTORY_SIZE = 5; - private static final Map InventoryperPlayer = new HashMap<>(); - - public static void createCheckItemGUI(Player p) { - if (plugin.getMaterials().isEmpty()) { - p.closeInventory(); - ChatUtil.sendNormalMessage(p, "Lol fertig :>"); - return; - } - Inventory TEMP_GUI = Bukkit.createInventory(null, InventoryType.HOPPER, plugin.getGUIPREFIX() + " >> geht das?? (" + plugin.getMaterials().size() + ")"); - InventoryperPlayer.put(p, TEMP_GUI); - ItemStack stack = new ItemStack(plugin.getMaterials().get(0)); - try { - TEMP_GUI.setItem(JA_INDEX, GUIUtils.createGuiItem(Material.LIME_CONCRETE, "Ja", true)); - - Bukkit.getLogger().info("" + stack); - TEMP_GUI.setItem(ITEM_INDEX, GUIUtils.createGuiItem(stack.getType(), stack.getI18NDisplayName(), false)); - TEMP_GUI.setItem(NEIN_INDEX, GUIUtils.createGuiItem(Material.RED_CONCRETE, "Nein", true)); - for (int i = 0; i < INVENTORY_SIZE; i++) { - ItemStack item = TEMP_GUI.getItem(i); - if (item == null || item.getType() == Material.AIR) { - TEMP_GUI.setItem(i, GUIUtils.EMPTY_ICON); - } - } - p.openInventory(TEMP_GUI); - } catch (Exception e) { - Bukkit.getLogger().info("Skip " + stack); - plugin.getMaterials().remove(stack.getType()); - addItem(stack.getType()); - createCheckItemGUI(p); - } - - + public CheckItemsGUI(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.HOPPER, plugin.getGUIPREFIX() + " >> geht das?? (" + plugin.getMaterials().size() + ")")); } - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - Player player = (Player) e.getWhoClicked(); - if (InventoryperPlayer.isEmpty()) { + + @Override + protected void rebuildInventory() { + if (plugin.getMaterials().isEmpty()) { + getPlayer().closeInventory(); + ChatUtil.sendNormalMessage(getPlayer(), "Lol fertig :>"); return; } - if (InventoryperPlayer.get(player).equals(e.getClickedInventory())) { - int slot = e.getRawSlot(); - if (slot == JA_INDEX) { - plugin.getMaterials().remove(e.getClickedInventory().getItem(ITEM_INDEX).getType()); - player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); - createCheckItemGUI(player); + for (int i = 0; i < INVENTORY_SIZE; i++) { + ItemStack item; + ItemStack stack = new ItemStack(plugin.getMaterials().get(0)); + switch (i) { + case JA_INDEX -> item = GUIUtils.createGuiItem(Material.LIME_CONCRETE, ChatUtil.GREEN + "Ja", true); + case ITEM_INDEX -> item = stack; + case NEIN_INDEX -> item = GUIUtils.createGuiItem(Material.RED_CONCRETE, ChatUtil.RED + "Nein", true); + default -> item = GUIUtils.EMPTY_ICON; } - if (slot == NEIN_INDEX) { - Material material = e.getClickedInventory().getItem(ITEM_INDEX).getType(); + this.getInventory().setItem(i, item); + } + } + + @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 JA_INDEX -> { + plugin.getMaterials().remove(getInventory().getItem(ITEM_INDEX).getType()); + player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); + } + case NEIN_INDEX -> { + Material material = getInventory().getItem(ITEM_INDEX).getType(); addItem(material); plugin.getMaterials().remove(material); player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1.0F, 2.0F); - createCheckItemGUI(player); } - e.setCancelled(true); + default -> { + } } + rebuildInventory(); } public static void addItem(Material material) { diff --git a/src/main/java/de/fanta/challenges/guis/TeleportGUI.java b/src/main/java/de/fanta/challenges/guis/TeleportGUI.java index 85bbc44..5e37bd0 100644 --- a/src/main/java/de/fanta/challenges/guis/TeleportGUI.java +++ b/src/main/java/de/fanta/challenges/guis/TeleportGUI.java @@ -2,14 +2,13 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.guiutils.AbstractWindow; import de.fanta.challenges.utils.guiutils.GUIUtils; +import de.iani.cubesideutils.bukkit.items.CustomHeads; import org.bukkit.Bukkit; import org.bukkit.Material; 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; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; @@ -17,21 +16,23 @@ import java.util.HashMap; import java.util.Map; -public class TeleportGUI implements Listener { +public class TeleportGUI extends AbstractWindow { private static final Challenges plugin = Challenges.getPlugin(); private static final Map playerPerSlot = new HashMap<>(); - private static final Map InventoryperPlayer = new HashMap<>(); - private static int CLOSE_IDEX = 0; + private static final int INVENTORY_SIZE = 9 * (plugin.getVanish().getPlayerListWithoutVanishPlayers().size() / 7 + ((plugin.getVanish().getPlayerListWithoutVanishPlayers().size() % 7 > 0) ? 1 : 0)) + 18; + private static final int CLOSE_IDEX = INVENTORY_SIZE - 9; - public static void buildTeleportInventory(Player p) { - Inventory TELEPORT_UI = Bukkit.createInventory(p, 9 * (plugin.getVanish().getPlayerListWithoutVanishPlayers().size() / 7 + ((plugin.getVanish().getPlayerListWithoutVanishPlayers().size() % 7 > 0) ? 1 : 0)) + 18, plugin.getGUIPREFIX() + " >> Teleport to..."); - InventoryperPlayer.put(p, TELEPORT_UI); - CLOSE_IDEX = TELEPORT_UI.getSize() - 9; + public TeleportGUI(Player player) { + super(player, Bukkit.createInventory(player, INVENTORY_SIZE, plugin.getGUIPREFIX() + " >> Event Settings")); + } + + @Override + protected void rebuildInventory() { int row = 0; int cat = 0; if (plugin.getVanish().getPlayerListWithoutVanishPlayers().isEmpty()) { - ChatUtil.sendErrorMessage(p, "Keine Spieler Online"); + ChatUtil.sendErrorMessage(getPlayer(), "Keine Spieler Online"); return; } for (Player pp : plugin.getVanish().getPlayerListWithoutVanishPlayers()) { @@ -42,13 +43,12 @@ ItemStack stack = new ItemStack(Material.PLAYER_HEAD); SkullMeta skullMeta = (SkullMeta) stack.getItemMeta(); skullMeta.setOwner(pp.getName()); - //skullMeta.setPlayerProfile(pp.getPlayerProfile()); skullMeta.setDisplayName(ChatUtil.BLUE + pp.getName()); - metalore.add(ChatUtil.GREEN + "Linksklick: " + p.getName() + " -> " + pp.getName()); - metalore.add(ChatUtil.GREEN + "Rechtsklick: " + pp.getName() + " -> " + p.getName()); + metalore.add(ChatUtil.GREEN + "Linksklick: " + getPlayer().getName() + " -> " + pp.getName()); + metalore.add(ChatUtil.GREEN + "Rechtsklick: " + pp.getName() + " -> " + getPlayer().getName()); skullMeta.setLore(metalore); stack.setItemMeta(skullMeta); - TELEPORT_UI.setItem(slot, stack); + getInventory().setItem(slot, stack); playerPerSlot.put(slot, pp); if (cat < 6) { cat++; @@ -58,39 +58,42 @@ cat = 0; } - TELEPORT_UI.setItem(CLOSE_IDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatUtil.RED + "Menü verlassen!")); - for (int i = 0; i < TELEPORT_UI.getSize(); i++) { - if (TELEPORT_UI.getItem(i) == null || TELEPORT_UI.getItem(i).getType() == Material.AIR) { - TELEPORT_UI.setItem(i, GUIUtils.EMPTY_ICON); + getInventory().setItem(CLOSE_IDEX, CustomHeads.RAINBOW_X.getHead(ChatUtil.RED + "Menü verlassen")); + + for (int i = 0; i < getInventory().getSize(); i++) { + if (getInventory().getItem(i) == null || getInventory().getItem(i).getType() == Material.AIR) { + getInventory().setItem(i, GUIUtils.EMPTY_ICON); } } - p.openInventory(TELEPORT_UI); } - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - Player p = (Player) e.getWhoClicked(); - if (InventoryperPlayer.isEmpty()) { + @Override + public void onItemClicked(InventoryClickEvent event) { + Player player = getPlayer(); + if (!mayAffectThisInventory(event)) { return; } - if (e.getInventory() == InventoryperPlayer.get(p)) { - int slot = e.getRawSlot(); - Player pp = playerPerSlot.get(slot); - if (pp != null && pp.isOnline()) { - if (e.isLeftClick()) { - p.teleport(pp.getLocation()); - ChatUtil.sendNormalMessage(p, "Du wurdest zu " + pp.getName() + " teleportiert!"); - } else if (e.isRightClick()) { - pp.teleport(p.getLocation()); - ChatUtil.sendNormalMessage(p, pp.getName() + " wurde zu dir teleportiert!"); - } - p.closeInventory(); - } - if (slot == CLOSE_IDEX) { - p.closeInventory(); + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + int slot = event.getSlot(); + Player pp = playerPerSlot.get(slot); + if (pp != null && pp.isOnline()) { + if (event.isLeftClick()) { + player.teleport(pp.getLocation()); + ChatUtil.sendNormalMessage(player, "Du wurdest zu " + pp.getName() + " teleportiert!"); + } else if (event.isRightClick()) { + pp.teleport(player.getLocation()); + ChatUtil.sendNormalMessage(player, pp.getName() + " wurde zu dir teleportiert!"); } - e.setCancelled(true); + player.closeInventory(); + } + + + if (slot == CLOSE_IDEX) { + getPlayer().closeInventory(); } } } diff --git a/src/main/java/de/fanta/challenges/guis/TimerGui.java b/src/main/java/de/fanta/challenges/guis/TimerGui.java index d43b4f9..382b72e 100644 --- a/src/main/java/de/fanta/challenges/guis/TimerGui.java +++ b/src/main/java/de/fanta/challenges/guis/TimerGui.java @@ -58,8 +58,8 @@ ChatUtil.sendWarningMessage(plugin.getCurrentEditor(), "Diese Challenge wird nicht mehr als Speed Run gezählt, da du etwas am Timer geändert hast."); } } + rebuildInventory(); } - player.closeInventory(); } case SHOWTIMER_INDEX -> { if (Config.getBoolean("showtimer")) { @@ -69,7 +69,7 @@ Config.setValue("showtimer", true, false); ChatUtil.sendTitleToAll("Timer", "Der Timer wird jetzt wieder angezeigt!", ChatUtil.GREEN); } - new TimerGui(player).open(); + rebuildInventory(); } case START_INDEX -> { World world = Bukkit.getWorld("world"); diff --git a/src/main/java/de/fanta/challenges/guis/challengesettingsguis/BackPackSettingsGui.java b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/BackPackSettingsGui.java new file mode 100644 index 0000000..16228bb --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/BackPackSettingsGui.java @@ -0,0 +1,89 @@ +package de.fanta.challenges.guis.challengesettingsguis; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.guis.settingsgui.OtherSettingsGui; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.Config; +import de.fanta.challenges.utils.guiutils.AbstractWindow; +import de.fanta.challenges.utils.guiutils.GUIUtils; +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.event.inventory.InventoryType; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class BackPackSettingsGui extends AbstractWindow { + private static final Challenges plugin = Challenges.getPlugin(); + + private static final int ADD_SIZE_INDEX = 2; + private static final int SIZE_INDEX = 5; + private static final int REMOVE_SIZE_INDEX = 8; + + private static final int BACK_INDEX = 6; + + public BackPackSettingsGui(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> Backpack Settings")); + } + + @Override + public void onItemClicked(InventoryClickEvent event) { + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + int slot = event.getSlot(); + int size = plugin.getBackpack().getSize() / 9; + switch (slot) { + case ADD_SIZE_INDEX -> { + if (size <= 5) { + size++; + Config.setValue("backpack_size", size); + plugin.getBackpack().resize(size * 9); + rebuildInventory(); + } + } + case REMOVE_SIZE_INDEX -> { + if (size > 1) { + size--; + Config.setValue("backpack_size", size); + plugin.getBackpack().resize(size * 9); + rebuildInventory(); + } + } + case BACK_INDEX -> new OtherSettingsGui(getPlayer()).open(); + default -> { + } + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < 9; i++) { + ItemStack item; + int size = plugin.getBackpack().getSize() / 9; + switch (i) { + case ADD_SIZE_INDEX -> item = CustomHeads.RAINBOW_ARROW_UP.getHead(ChatUtil.GREEN + "Größe +1"); + case REMOVE_SIZE_INDEX -> item = CustomHeads.RAINBOW_ARROW_DOWN.getHead(ChatUtil.RED + "Größe -1"); + + case SIZE_INDEX -> { + ItemStack stack = new ItemStack(Material.STRUCTURE_VOID, size); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName(ChatUtil.GREEN + "Rucksack größe: " + size + "/6"); + stack.setItemMeta(meta); + item = stack; + } + case BACK_INDEX -> item = CustomHeads.RAINBOW_ARROW_BACKWARD_II.getHead(ChatUtil.GREEN + "Zurück"); + default -> item = GUIUtils.EMPTY_ICON; + } + this.getInventory().setItem(i, item); + } + } +} diff --git a/src/main/java/de/fanta/challenges/guis/challengesettingsguis/BedrockWallSettingsGui.java b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/BedrockWallSettingsGui.java new file mode 100644 index 0000000..a718349 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/BedrockWallSettingsGui.java @@ -0,0 +1,87 @@ +package de.fanta.challenges.guis.challengesettingsguis; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.guis.settingsgui.ChallengesGui; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.Config; +import de.fanta.challenges.utils.guiutils.AbstractWindow; +import de.fanta.challenges.utils.guiutils.GUIUtils; +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.event.inventory.InventoryType; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class BedrockWallSettingsGui extends AbstractWindow { + private static final Challenges plugin = Challenges.getPlugin(); + + private static final int ADD_TIME_INDEX = 2; + private static final int TIME_INDEX = 5; + private static final int REMOVE_TIME_INDEX = 8; + + private static final int BACK_INDEX = 6; + + public BedrockWallSettingsGui(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> Bedrock Wand Settings")); + } + + @Override + public void onItemClicked(InventoryClickEvent event) { + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + int slot = event.getSlot(); + int time = Config.getInt("bedrockwalltime"); + switch (slot) { + case ADD_TIME_INDEX -> { + if (time <= 63) { + time++; + Config.setValue("bedrockwalltime", time); + rebuildInventory(); + } + } + case REMOVE_TIME_INDEX -> { + if (time > 1) { + time--; + Config.setValue("bedrockwalltime", time); + rebuildInventory(); + } + } + case BACK_INDEX -> new ChallengesGui(getPlayer()).open(); + default -> { + } + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < 9; i++) { + ItemStack item; + int time = Config.getInt("bedrockwalltime"); + switch (i) { + case ADD_TIME_INDEX -> item = CustomHeads.RAINBOW_ARROW_UP.getHead(ChatUtil.GREEN + "+1 Sekunde"); + case REMOVE_TIME_INDEX -> item = CustomHeads.RAINBOW_ARROW_DOWN.getHead(ChatUtil.RED + "-1 Sekunde"); + + case TIME_INDEX -> { + ItemStack stack = new ItemStack(Material.CLOCK, time); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName("" + ChatUtil.BLUE + time + " Sekunden"); + stack.setItemMeta(meta); + item = stack; + } + case BACK_INDEX -> item = CustomHeads.RAINBOW_ARROW_BACKWARD_II.getHead(ChatUtil.GREEN + "Zurück"); + default -> item = GUIUtils.EMPTY_ICON; + } + this.getInventory().setItem(i, item); + } + } +} diff --git a/src/main/java/de/fanta/challenges/guis/challengesettingsguis/LevelBorderSettingsGui.java b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/LevelBorderSettingsGui.java new file mode 100644 index 0000000..f0ff9b2 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/LevelBorderSettingsGui.java @@ -0,0 +1,96 @@ +package de.fanta.challenges.guis.challengesettingsguis; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.challenges.WorldBorderLevelChallenge; +import de.fanta.challenges.guis.settingsgui.ChallengesGui; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.Config; +import de.fanta.challenges.utils.guiutils.AbstractWindow; +import de.fanta.challenges.utils.guiutils.GUIUtils; +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.event.inventory.InventoryType; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class LevelBorderSettingsGui extends AbstractWindow { + private static final Challenges plugin = Challenges.getPlugin(); + + private static final int ADD_MULTIPLAYER_INDEX = 2; + private static final int MULTIPLAYER_INDEX = 5; + private static final int REMOVE_MULTIPLAYER_INDEX = 8; + + private static final int BACK_INDEX = 6; + + public LevelBorderSettingsGui(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> World Border Level Settings")); + } + + @Override + public void onItemClicked(InventoryClickEvent event) { + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + int slot = event.getSlot(); + int multiplier = Config.getInt("worldborderlevelbordermultiplier"); + switch (slot) { + case ADD_MULTIPLAYER_INDEX -> { + if (multiplier <= 9) { + multiplier++; + Config.setValue("worldborderlevelbordermultiplier", multiplier); + if (Config.getBoolean("worldborderlevel")) { + WorldBorderLevelChallenge.borderSync(); + } + rebuildInventory(); + } + } + case REMOVE_MULTIPLAYER_INDEX -> { + if (multiplier > 1) { + multiplier--; + Config.setValue("worldborderlevelbordermultiplier", multiplier); + if (Config.getBoolean("worldborderlevel")) { + WorldBorderLevelChallenge.borderSync(); + } + rebuildInventory(); + } + } + case BACK_INDEX -> new ChallengesGui(getPlayer()).open(); + default -> { + } + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < 9; i++) { + ItemStack item; + int multiplayer = Config.getInt("worldborderlevelbordermultiplier"); + switch (i) { + case ADD_MULTIPLAYER_INDEX -> + item = CustomHeads.RAINBOW_ARROW_UP.getHead(ChatUtil.GREEN + "Multiplier +1"); + case REMOVE_MULTIPLAYER_INDEX -> + item = CustomHeads.RAINBOW_ARROW_DOWN.getHead(ChatUtil.RED + "Multiplier -1"); + + case MULTIPLAYER_INDEX -> { + ItemStack stack = new ItemStack(Material.STRUCTURE_VOID, multiplayer); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName(ChatUtil.GREEN + "World Boarder Multiplier: " + ChatUtil.BLUE + multiplayer); + stack.setItemMeta(meta); + item = stack; + } + case BACK_INDEX -> item = CustomHeads.RAINBOW_ARROW_BACKWARD_II.getHead(ChatUtil.GREEN + "Zurück"); + default -> item = GUIUtils.EMPTY_ICON; + } + this.getInventory().setItem(i, item); + } + } +} diff --git a/src/main/java/de/fanta/challenges/guis/challengesettingsguis/MLGSettingsGui.java b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/MLGSettingsGui.java new file mode 100644 index 0000000..c0b5dd7 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/MLGSettingsGui.java @@ -0,0 +1,95 @@ +package de.fanta.challenges.guis.challengesettingsguis; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.guis.settingsgui.ChallengesGui; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.Config; +import de.fanta.challenges.utils.guiutils.AbstractWindow; +import de.fanta.challenges.utils.guiutils.GUIUtils; +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.event.inventory.InventoryType; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class MLGSettingsGui extends AbstractWindow { + private static final Challenges plugin = Challenges.getPlugin(); + + private static final int ADD_TIME_INDEX = 2; + private static final int TIME_INDEX = 5; + private static final int REMOVE_TIME_INDEX = 8; + + private static final int BACK_INDEX = 6; + + public MLGSettingsGui(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> MLG Settings")); + } + + @Override + public void onItemClicked(InventoryClickEvent event) { + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + int slot = event.getSlot(); + int time = Config.getInt("mlg.maxtime"); + switch (slot) { + case ADD_TIME_INDEX -> { + if (event.isShiftClick()) { + time = time + 10; + } else { + time = time + 100; + } + Config.setValue("mlg.maxtime", time); + rebuildInventory(); + } + case REMOVE_TIME_INDEX -> { + if (event.isShiftClick()) { + time = time - 10; + } else { + time = time - 100; + } + if (time > 1) { + Config.setValue("mlg.maxtime", time); + rebuildInventory(); + } + } + case BACK_INDEX -> new ChallengesGui(getPlayer()).open(); + default -> { + } + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < 9; i++) { + ItemStack item; + int time = Config.getInt("mlg.maxtime"); + switch (i) { + case ADD_TIME_INDEX -> + item = CustomHeads.RAINBOW_ARROW_UP.getHead(ChatUtil.GREEN + "Zeit hinzufügen", ChatUtil.GREEN + "Klick = +100 Sekunden", ChatUtil.GREEN + "Shift + Klick = +10 Sekunden"); + case REMOVE_TIME_INDEX -> + item = CustomHeads.RAINBOW_ARROW_DOWN.getHead(ChatUtil.RED + "Zeit entfernen", ChatUtil.RED + "Klick = -100 Sekunden", ChatUtil.RED + "Shift + Klick = -10 Sekunden"); + + case TIME_INDEX -> { + ItemStack stack = new ItemStack(Material.CLOCK, Math.min(time, 64)); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName("" + ChatUtil.BLUE + time + " Sekunden"); + stack.setItemMeta(meta); + item = stack; + } + case BACK_INDEX -> item = CustomHeads.RAINBOW_ARROW_BACKWARD_II.getHead(ChatUtil.GREEN + "Zurück"); + default -> item = GUIUtils.EMPTY_ICON; + } + this.getInventory().setItem(i, item); + } + } +} diff --git a/src/main/java/de/fanta/challenges/guis/challengesettingsguis/NoSneakSettingsGui.java b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/NoSneakSettingsGui.java new file mode 100644 index 0000000..7d28733 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/NoSneakSettingsGui.java @@ -0,0 +1,94 @@ +package de.fanta.challenges.guis.challengesettingsguis; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.guis.settingsgui.ChallengesGui; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.Config; +import de.fanta.challenges.utils.guiutils.AbstractWindow; +import de.fanta.challenges.utils.guiutils.GUIUtils; +import de.iani.cubesideutils.bukkit.items.CustomHeads; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.attribute.Attribute; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class NoSneakSettingsGui extends AbstractWindow { + private static final Challenges plugin = Challenges.getPlugin(); + + private static final int ADD_DAMAGE_INDEX = 2; + private static final int DAMAGE_INDEX = 5; + private static final int REMOVE_DAMAGE_INDEX = 8; + + private static final int BACK_INDEX = 6; + + public NoSneakSettingsGui(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> No Sneak Settings")); + } + + @Override + public void onItemClicked(InventoryClickEvent event) { + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + int slot = event.getSlot(); + double damage = Config.getDouble("sneakdmg"); + double maxdamage; + if (plugin.getCurrentEditor() != null) { + maxdamage = plugin.getCurrentEditor().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue() - 1.0; + } else { + maxdamage = 20.0; + } + switch (slot) { + case ADD_DAMAGE_INDEX -> { + if (damage <= maxdamage) { + damage++; + Config.setValue("sneakdmg", damage); + rebuildInventory(); + } + } + case REMOVE_DAMAGE_INDEX -> { + if (damage > 1) { + damage--; + Config.setValue("sneakdmg", damage); + rebuildInventory(); + } + } + case BACK_INDEX -> new ChallengesGui(getPlayer()).open(); + default -> { + } + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < 9; i++) { + ItemStack item; + int damage = Config.getInt("sneakdmg"); + switch (i) { + case ADD_DAMAGE_INDEX -> item = CustomHeads.RAINBOW_ARROW_UP.getHead(ChatUtil.GREEN + "Damage +1"); + case REMOVE_DAMAGE_INDEX -> item = CustomHeads.RAINBOW_ARROW_DOWN.getHead(ChatUtil.RED + "Damage -1"); + + case DAMAGE_INDEX -> { + ItemStack stack = new ItemStack(Material.SMOOTH_STONE_SLAB, Math.min(damage, 64)); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName(ChatUtil.GREEN + "Damage: " + ChatUtil.BLUE + damage); + stack.setItemMeta(meta); + item = stack; + } + case BACK_INDEX -> item = CustomHeads.RAINBOW_ARROW_BACKWARD_II.getHead(ChatUtil.GREEN + "Zurück"); + default -> item = GUIUtils.EMPTY_ICON; + } + this.getInventory().setItem(i, item); + } + } +} diff --git a/src/main/java/de/fanta/challenges/guis/challengesettingsguis/TiedTogetherSettingsGui.java b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/TiedTogetherSettingsGui.java new file mode 100644 index 0000000..4103361 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/challengesettingsguis/TiedTogetherSettingsGui.java @@ -0,0 +1,95 @@ +package de.fanta.challenges.guis.challengesettingsguis; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.guis.settingsgui.ChallengesGui; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.Config; +import de.fanta.challenges.utils.guiutils.AbstractWindow; +import de.fanta.challenges.utils.guiutils.GUIUtils; +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.event.inventory.InventoryType; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class TiedTogetherSettingsGui extends AbstractWindow { + private static final Challenges plugin = Challenges.getPlugin(); + + private static final int ADD_RANGE_INDEX = 2; + private static final int RANGE_INDEX = 5; + private static final int REMOVE_RANGE_INDEX = 8; + + private static final int BACK_INDEX = 6; + + public TiedTogetherSettingsGui(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> Zusammengebunden Settings")); + } + + @Override + public void onItemClicked(InventoryClickEvent event) { + if (!mayAffectThisInventory(event)) { + return; + } + + event.setCancelled(true); + if (!getInventory().equals(event.getClickedInventory())) { + return; + } + + int slot = event.getSlot(); + double range = Config.getDouble("playerrange"); + switch (slot) { + case ADD_RANGE_INDEX -> { + if (event.isShiftClick()) { + range = range + 10; + } else { + range = range + 100; + } + Config.setValue("playerrange", range); + rebuildInventory(); + } + case REMOVE_RANGE_INDEX -> { + if (event.isShiftClick()) { + range = range - 10; + } else { + range = range - 100; + } + if (range > 1) { + Config.setValue("playerrange", range); + rebuildInventory(); + } + } + case BACK_INDEX -> new ChallengesGui(getPlayer()).open(); + default -> { + } + } + } + + @Override + protected void rebuildInventory() { + for (int i = 0; i < 9; i++) { + ItemStack item; + int range = Config.getInt("playerrange"); + switch (i) { + case ADD_RANGE_INDEX -> + item = CustomHeads.RAINBOW_ARROW_UP.getHead(ChatUtil.GREEN + "Range hinzufügen", ChatUtil.GREEN + "Klick = Range +100", ChatUtil.GREEN + "Shift + Klick = Range +10"); + case REMOVE_RANGE_INDEX -> + item = CustomHeads.RAINBOW_ARROW_DOWN.getHead(ChatUtil.RED + "Range entfernen", ChatUtil.RED + "Klick = Range -100", ChatUtil.RED + "Shift + Klick = Range -10"); + + case RANGE_INDEX -> { + ItemStack stack = new ItemStack(Material.COMPASS, Math.min(range, 64)); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName(ChatUtil.GREEN + "Maximale Range: " + ChatUtil.BLUE + range); + stack.setItemMeta(meta); + item = stack; + } + case BACK_INDEX -> item = CustomHeads.RAINBOW_ARROW_BACKWARD_II.getHead(ChatUtil.GREEN + "Zurück"); + default -> item = GUIUtils.EMPTY_ICON; + } + this.getInventory().setItem(i, item); + } + } +} diff --git a/src/main/java/de/fanta/challenges/guis/eventgui/BingoItemsGui.java b/src/main/java/de/fanta/challenges/guis/eventgui/BingoItemsGui.java new file mode 100644 index 0000000..2550275 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/eventgui/BingoItemsGui.java @@ -0,0 +1,74 @@ +package de.fanta.challenges.guis.eventgui; + +import de.fanta.challenges.challenges.ChallengeEvents.BingoChallengeEvent; +import de.fanta.challenges.Challenges; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.stream.Collectors; + +public class BingoItemsGui implements Listener { + + private static final Challenges plugin = Challenges.getPlugin(); + + public static final String TITLE = plugin.getGUIPREFIX() + " >> Event Items"; + private static final Inventory event_items = Bukkit.createInventory(null, InventoryType.DISPENSER, TITLE); + + private static final Map playerInvs = new HashMap<>(); + + public static void openEventGUI(Player p) { + p.openInventory(event_items); + } + + public static List getEventItems() { + return Arrays.stream(event_items.getContents()).filter(itemStack -> itemStack != null && !itemStack.getType().equals(Material.AIR)).map(ItemStack::getType).collect(Collectors.toList()); + } + + public static Map getPlayerInvs() { + return playerInvs; + } + + public static void openPlayerInv(Player player, Player sender) { + Inventory inventory = Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> Bingo"); + List playerMaterials = BingoChallengeEvent.getPlayerMaterials().getOrDefault(player.getUniqueId(), new ArrayList<>()); + BingoChallengeEvent.getMaterials().forEach(material -> { + ItemStack itemStack = new ItemStack(material); + if (playerMaterials.contains(material)) { + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.addEnchant(Enchantment.MENDING, 1, false); + itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + itemStack.setItemMeta(itemMeta); + } + inventory.addItem(itemStack); + }); + playerInvs.put(player.getUniqueId(), inventory); + sender.openInventory(inventory); + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + UUID uuid = e.getWhoClicked().getUniqueId(); + if (e.getInventory() == playerInvs.get(uuid)) { + e.setCancelled(true); + } + } +} + + + diff --git a/src/main/java/de/fanta/challenges/guis/eventgui/EventGui.java b/src/main/java/de/fanta/challenges/guis/eventgui/EventGui.java index e30483b..aa50de9 100644 --- a/src/main/java/de/fanta/challenges/guis/eventgui/EventGui.java +++ b/src/main/java/de/fanta/challenges/guis/eventgui/EventGui.java @@ -222,7 +222,7 @@ switch (slot) { case BINGO_ITEMS_INDEX -> { if (Objects.equals(Config.getString("event.type"), "bingo")) { - EventItemsGui.openEventGUI(p); + BingoItemsGui.openEventGUI(p); } } case SAMMEL_FIEBER_SETTINGS_INDEX -> { @@ -235,7 +235,7 @@ new ForceItemSettingsGui(p).open(); } } - case TEAM_INDEX -> TeamSettingsGUI.createTeamSettingsGUI(p); + case TEAM_INDEX -> new TeamSettingsGUI(p).open(); case EVENT_SETTINGS_INDEX -> new EventSettingsGui(p).open(); case CLOSE_IDEX -> p.closeInventory(); } diff --git a/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java b/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java deleted file mode 100644 index 0fb6461..0000000 --- a/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java +++ /dev/null @@ -1,74 +0,0 @@ -package de.fanta.challenges.guis.eventgui; - -import de.fanta.challenges.challenges.ChallengeEvents.BingoChallengeEvent; -import de.fanta.challenges.Challenges; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.stream.Collectors; - -public class EventItemsGui implements Listener { - - private static final Challenges plugin = Challenges.getPlugin(); - - public static final String TITLE = plugin.getGUIPREFIX() + " >> Event Items"; - private static final Inventory event_items = Bukkit.createInventory(null, InventoryType.DISPENSER, TITLE); - - private static final Map playerInvs = new HashMap<>(); - - public static void openEventGUI(Player p) { - p.openInventory(event_items); - } - - public static List getEventItems() { - return Arrays.stream(event_items.getContents()).filter(itemStack -> itemStack != null && !itemStack.getType().equals(Material.AIR)).map(ItemStack::getType).collect(Collectors.toList()); - } - - public static Map getPlayerInvs() { - return playerInvs; - } - - public static void openPlayerInv(Player player, Player sender) { - Inventory inventory = Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> Bingo"); - List playerMaterials = BingoChallengeEvent.getPlayerMaterials().getOrDefault(player.getUniqueId(), new ArrayList<>()); - BingoChallengeEvent.getMaterials().forEach(material -> { - ItemStack itemStack = new ItemStack(material); - if (playerMaterials.contains(material)) { - ItemMeta itemMeta = itemStack.getItemMeta(); - itemMeta.addEnchant(Enchantment.MENDING, 1, false); - itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); - itemStack.setItemMeta(itemMeta); - } - inventory.addItem(itemStack); - }); - playerInvs.put(player.getUniqueId(), inventory); - sender.openInventory(inventory); - } - - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - UUID uuid = e.getWhoClicked().getUniqueId(); - if (e.getInventory() == playerInvs.get(uuid)) { - e.setCancelled(true); - } - } -} - - - diff --git a/src/main/java/de/fanta/challenges/guis/eventgui/TeamSettingsGUI.java b/src/main/java/de/fanta/challenges/guis/eventgui/TeamSettingsGUI.java index 80c3c00..ed2fc8c 100644 --- a/src/main/java/de/fanta/challenges/guis/eventgui/TeamSettingsGUI.java +++ b/src/main/java/de/fanta/challenges/guis/eventgui/TeamSettingsGUI.java @@ -4,19 +4,16 @@ import de.fanta.challenges.teams.TeamUtils; import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.utils.Config; +import de.fanta.challenges.utils.guiutils.AbstractWindow; import de.fanta.challenges.utils.guiutils.GUIUtils; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; -import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -public class TeamSettingsGUI implements Listener { - +public class TeamSettingsGUI extends AbstractWindow { private static final Challenges plugin = Challenges.getPlugin(); private static final int TEAM_INDEX = 0; @@ -24,84 +21,97 @@ private static final int AUTOTEAM_BY_JOIN_INDEX = 4; public static final int INVENTORY_SIZE = 5; - public static final Inventory TEAM_SETTINGS_GUI = Bukkit.createInventory(null, InventoryType.HOPPER, plugin.getGUIPREFIX() + " >> Team Settings"); - public static void createTeamSettingsGUI(Player p) { - if (!Config.getBoolean("event.teams")) { - TEAM_SETTINGS_GUI.setItem(TEAM_INDEX, GUIUtils.createGuiItem(Material.RED_BED, ChatUtil.RED + "Teams deaktiviert")); - } else { - TEAM_SETTINGS_GUI.setItem(TEAM_INDEX, GUIUtils.createGuiItem(Material.LIME_BED, ChatUtil.GREEN + "Teams aktiviert", true)); - } - - if (!Config.getBoolean("event.teamselect")) { - TEAM_SETTINGS_GUI.setItem(TEAM_SELECT_INDEX, GUIUtils.createGuiItem(Material.RED_CONCRETE_POWDER, ChatUtil.RED + "Team auswahl deaktiviert")); - } else { - TEAM_SETTINGS_GUI.setItem(TEAM_SELECT_INDEX, GUIUtils.createGuiItem(Material.LIME_CONCRETE_POWDER, ChatUtil.GREEN + "Team auswahl aktiviert", true)); - } - - if (!Config.getBoolean("event.autoteams")) { - TEAM_SETTINGS_GUI.setItem(AUTOTEAM_BY_JOIN_INDEX, GUIUtils.createGuiItem(Material.RED_CONCRETE_POWDER, ChatUtil.RED + "Autoteams by Join deaktiviert")); - } else { - TEAM_SETTINGS_GUI.setItem(AUTOTEAM_BY_JOIN_INDEX, GUIUtils.createGuiItem(Material.LIME_CONCRETE_POWDER, ChatUtil.GREEN + "Autoteams by Join aktiviert", true)); - } - - - for (int i = 0; i < INVENTORY_SIZE; i++) { - ItemStack item = TEAM_SETTINGS_GUI.getItem(i); - if (item == null || item.getType() == Material.AIR) { - TEAM_SETTINGS_GUI.setItem(i, GUIUtils.EMPTY_ICON); - } - } - p.openInventory(TEAM_SETTINGS_GUI); + public TeamSettingsGUI(Player player) { + super(player, Bukkit.createInventory(player, InventoryType.HOPPER, plugin.getGUIPREFIX() + " >> Team Settings")); } - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - if (TEAM_SETTINGS_GUI.equals(e.getClickedInventory())) { - int slot = e.getRawSlot(); - Player p = (Player) e.getWhoClicked(); - switch (slot) { + @Override + protected void rebuildInventory() { + for (int i = 0; i < INVENTORY_SIZE; i++) { + ItemStack item; + switch (i) { case TEAM_INDEX -> { - if (TeamUtils.getTeams() != null && TeamUtils.getTeamSize() != 0) { - if (!Config.getBoolean("event.teams")) { - Config.setValue("event.teams", true); - ChatUtil.sendTitleToAll("Event", "Teams aktiviert", ChatUtil.GREEN); - plugin.getScoreManager().resetScores(); - plugin.getSBManager().updateEventScoreboard(); - } else { - Config.setValue("event.teams", false); - ChatUtil.sendTitleToAll("Event", "Teams deaktiviert", ChatUtil.RED); - for (Player pp : Bukkit.getOnlinePlayers()) { - pp.getInventory().removeItem(TeamUtils.selctItem()); - } - } + if (!Config.getBoolean("event.teams")) { + item = GUIUtils.createGuiItem(Material.RED_BED, ChatUtil.RED + "Teams deaktiviert"); } else { - ChatUtil.sendErrorMessage(p, "Du musst erst teams anlegen! /event createteams "); + item = GUIUtils.createGuiItem(Material.LIME_BED, ChatUtil.GREEN + "Teams aktiviert", true); } } - case TEAM_SELECT_INDEX -> { - if (TeamUtils.getTeams() != null && TeamUtils.getTeamSize() != 0) { - if (!Config.getBoolean("event.teamselect")) { - Config.setValue("event.teamselect", true); - ChatUtil.sendTitleToAll("Event", "Team auswahl aktiviert", ChatUtil.GREEN); - for (Player pp : Bukkit.getOnlinePlayers()) { - plugin.getSBManager().removeScoreboard(pp); - pp.getInventory().setItem(8, TeamUtils.selctItem()); - } - } else { - Config.setValue("event.teamselect", false); - ChatUtil.sendTitleToAll("Event", "Team auswahl deaktiviert", ChatUtil.RED); - for (Player pp : Bukkit.getOnlinePlayers()) { - pp.getInventory().removeItem(TeamUtils.selctItem()); - } - } + if (!Config.getBoolean("event.teamselect")) { + item = GUIUtils.createGuiItem(Material.RED_CONCRETE_POWDER, ChatUtil.RED + "Team auswahl deaktiviert"); } else { - ChatUtil.sendErrorMessage(p, "Du musst erst teams anlegen! /event createteams "); + item = GUIUtils.createGuiItem(Material.LIME_CONCRETE_POWDER, ChatUtil.GREEN + "Team auswahl aktiviert", true); } } - case AUTOTEAM_BY_JOIN_INDEX -> { + if (!Config.getBoolean("event.autoteams")) { + item = GUIUtils.createGuiItem(Material.RED_CONCRETE_POWDER, ChatUtil.RED + "Autoteams by Join deaktiviert"); + } else { + item = GUIUtils.createGuiItem(Material.LIME_CONCRETE_POWDER, ChatUtil.GREEN + "Autoteams by Join aktiviert", true); + } + } + default -> item = GUIUtils.EMPTY_ICON; + } + this.getInventory().setItem(i, item); + } + } + + @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 TEAM_INDEX -> { + if (TeamUtils.getTeams() != null && TeamUtils.getTeamSize() != 0) { + if (!Config.getBoolean("event.teams")) { + Config.setValue("event.teams", true); + ChatUtil.sendTitleToAll("Event", "Teams aktiviert", ChatUtil.GREEN); + plugin.getScoreManager().resetScores(); + plugin.getSBManager().updateEventScoreboard(); + } else { + Config.setValue("event.teams", false); + ChatUtil.sendTitleToAll("Event", "Teams deaktiviert", ChatUtil.RED); + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.getInventory().removeItem(TeamUtils.selctItem()); + } + } + } else { + ChatUtil.sendErrorMessage(player, "Du musst erst teams anlegen! /event createteams "); + } + } + case TEAM_SELECT_INDEX -> { + if (TeamUtils.getTeams() != null && TeamUtils.getTeamSize() != 0) { + if (!Config.getBoolean("event.teamselect")) { + Config.setValue("event.teamselect", true); + ChatUtil.sendTitleToAll("Event", "Team auswahl aktiviert", ChatUtil.GREEN); + for (Player pp : Bukkit.getOnlinePlayers()) { + plugin.getSBManager().removeScoreboard(pp); + pp.getInventory().setItem(8, TeamUtils.selctItem()); + } + } else { + Config.setValue("event.teamselect", false); + ChatUtil.sendTitleToAll("Event", "Team auswahl deaktiviert", ChatUtil.RED); + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.getInventory().removeItem(TeamUtils.selctItem()); + } + } + } else { + ChatUtil.sendErrorMessage(player, "Du musst erst teams anlegen! /event createteams "); + } + } + case AUTOTEAM_BY_JOIN_INDEX -> { + if (TeamUtils.getTeams() != null && TeamUtils.getTeamSize() != 0) { if (Config.getBoolean("event.autoteams")) { Config.setValue("event.autoteams", false); ChatUtil.sendTitleToAll("Event", "Autoteams by Join deaktiviert", ChatUtil.RED); @@ -109,10 +119,13 @@ Config.setValue("event.autoteams", true); ChatUtil.sendTitleToAll("Event", "Autoteams by Join aktiviert", ChatUtil.GREEN); } + } else { + ChatUtil.sendErrorMessage(player, "Du musst erst teams anlegen! /event createteams "); } } - createTeamSettingsGUI(p); - e.setCancelled(true); + default -> { + } } + rebuildInventory(); } } diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java index fa589a6..c03f06e 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java @@ -4,6 +4,11 @@ import de.fanta.challenges.challenges.AllAdvancementsChallenge; import de.fanta.challenges.challenges.AllItemsChallenge; import de.fanta.challenges.challenges.WorldBorderLevelChallenge; +import de.fanta.challenges.guis.challengesettingsguis.BedrockWallSettingsGui; +import de.fanta.challenges.guis.challengesettingsguis.LevelBorderSettingsGui; +import de.fanta.challenges.guis.challengesettingsguis.MLGSettingsGui; +import de.fanta.challenges.guis.challengesettingsguis.NoSneakSettingsGui; +import de.fanta.challenges.guis.challengesettingsguis.TiedTogetherSettingsGui; import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.utils.Config; import de.fanta.challenges.utils.guiutils.AbstractWindow; @@ -115,44 +120,58 @@ } } case BEDROCK_WALL_INDEX -> { - if (Config.getBoolean("bedrockwall")) { - Config.setValue("bedrockwall", false); - ChatUtil.sendTitleToAll("Challenge", "Bedrock Wand deaktiviert", ChatUtil.RED); - } else { - Config.setValue("bedrockwall", true); - ChatUtil.sendTitleToAll("Challenge", "Bedrock Wand aktiviert", ChatUtil.GREEN); + if (event.isLeftClick()) { + if (Config.getBoolean("bedrockwall")) { + Config.setValue("bedrockwall", false); + ChatUtil.sendTitleToAll("Challenge", "Bedrock Wand deaktiviert", ChatUtil.RED); + } else { + Config.setValue("bedrockwall", true); + ChatUtil.sendTitleToAll("Challenge", "Bedrock Wand aktiviert", ChatUtil.GREEN); + } + } else if (event.isRightClick()) { + new BedrockWallSettingsGui(player).open(); } } case MLG_INDEX -> { - if (Config.getBoolean("mlg.enabled")) { - Config.setValue("mlg.enabled", false); - ChatUtil.sendTitleToAll("Challenge", "MLG deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "MLG aktiviert", ChatUtil.GREEN); - Config.setValue("mlg.enabled", true); + if (event.isLeftClick()) { + if (Config.getBoolean("mlg.enabled")) { + Config.setValue("mlg.enabled", false); + ChatUtil.sendTitleToAll("Challenge", "MLG deaktiviert", ChatUtil.RED); + } else { + ChatUtil.sendTitleToAll("Challenge", "MLG aktiviert", ChatUtil.GREEN); + Config.setValue("mlg.enabled", true); + } + } else if (event.isRightClick()) { + new MLGSettingsGui(player).open(); } + } case WORLD_BORDER_LEVEL_INDEX -> { if (plugin.getProtocolVersion() < 759) { return; } - if (Config.getBoolean("worldborderlevel")) { - Config.setValue("worldborderlevel", false); - for (Player pp : Bukkit.getOnlinePlayers()) { - if (pp.getWorldBorder() != null) { - pp.getWorldBorder().reset(); + if (event.isLeftClick()) { + if (Config.getBoolean("worldborderlevel")) { + Config.setValue("worldborderlevel", false); + for (Player pp : Bukkit.getOnlinePlayers()) { + if (pp.getWorldBorder() != null) { + pp.getWorldBorder().reset(); + } } + ChatUtil.sendTitleToAll("Challenge", "World Border Level deaktiviert", ChatUtil.RED); + } else { + Config.setValue("worldborderlevel", true); + new WorldBorderLevelChallenge(); + WorldBorderLevelChallenge.borderSync(); + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.teleport(pp.getWorld().getSpawnLocation()); + } + ChatUtil.sendTitleToAll("Challenge", "World Border Level aktiviert", ChatUtil.GREEN); } - ChatUtil.sendTitleToAll("Challenge", "World Border Level deaktiviert", ChatUtil.RED); - } else { - Config.setValue("worldborderlevel", true); - new WorldBorderLevelChallenge(); - WorldBorderLevelChallenge.borderSync(); - for (Player pp : Bukkit.getOnlinePlayers()) { - pp.teleport(pp.getWorld().getSpawnLocation()); - } - ChatUtil.sendTitleToAll("Challenge", "World Border Level aktiviert", ChatUtil.GREEN); + } else if (event.isRightClick()) { + new LevelBorderSettingsGui(player).open(); } + } case ALL_ITEMS_INDEX -> { if (Config.getBoolean("allitems")) { @@ -239,24 +258,29 @@ } } case DAMAGE_ON_SNEAK_INDEX -> { - if (Config.getBoolean("damageonsneak")) { - if (event.isRightClick()) { - //TODO: INV ÖFFNEN + if (event.isLeftClick()) { + if (Config.getBoolean("damageonsneak")) { + Config.setValue("damageonsneak", false); + ChatUtil.sendTitleToAll("Challenge", "Schaden bekommen beim Schleichen deaktiviert", ChatUtil.RED); + } else { + ChatUtil.sendTitleToAll("Challenge", "Schaden bekommen beim Schleichen aktiviert", ChatUtil.GREEN); + Config.setValue("damageonsneak", true); } - Config.setValue("damageonsneak", false); - ChatUtil.sendTitleToAll("Challenge", "Schaden bekommen beim Schleichen deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "Schaden bekommen beim Schleichen aktiviert", ChatUtil.GREEN); - Config.setValue("damageonsneak", true); + } else if (event.isRightClick()) { + new NoSneakSettingsGui(player).open(); } } case TIED_TOGETHER_INDEX -> { - if (Config.getBoolean("tiedtogether")) { - Config.setValue("tiedtogether", false); - ChatUtil.sendTitleToAll("Challenge", "Zusammengebunden deaktiviert", ChatUtil.RED); - } else { - Config.setValue("tiedtogether", true); - ChatUtil.sendTitleToAll("Challenge", "Zusammengebunden aktiviert", ChatUtil.GREEN); + if (event.isLeftClick()) { + if (Config.getBoolean("tiedtogether")) { + Config.setValue("tiedtogether", false); + ChatUtil.sendTitleToAll("Challenge", "Zusammengebunden deaktiviert", ChatUtil.RED); + } else { + Config.setValue("tiedtogether", true); + ChatUtil.sendTitleToAll("Challenge", "Zusammengebunden aktiviert", ChatUtil.GREEN); + } + } else if (event.isRightClick()) { + new TiedTogetherSettingsGui(player).open(); } } case MOB_REMOVE_WORLD_INDEX -> { @@ -282,7 +306,7 @@ default -> { } } - new ChallengesGui(player).open(); + rebuildInventory(); switch (slot) { case BACK_INDEX -> new MainGui(player).open(); @@ -335,23 +359,23 @@ } case BEDROCK_WALL_INDEX -> { if (Config.getBoolean("bedrockwall")) { - item = GUIUtils.createGuiItem(Material.BEDROCK, ChatUtil.GREEN + "Bedrock Wand aktiviert", true); + item = GUIUtils.createGuiItem(Material.BEDROCK, ChatUtil.GREEN + "Bedrock Wand aktiviert", true, ChatUtil.GREEN + "Linksklick = " + ChatUtil.RED + "Deaktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } else { - item = GUIUtils.createGuiItem(Material.BEDROCK, ChatUtil.RED + "Bedrock Wand deaktiviert"); + item = GUIUtils.createGuiItem(Material.BEDROCK, ChatUtil.RED + "Bedrock Wand deaktiviert", ChatUtil.GREEN + "Linksklick = Aktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } } case MLG_INDEX -> { if (Config.getBoolean("mlg.enabled")) { - item = GUIUtils.createGuiItem(Material.WATER_BUCKET, ChatUtil.GREEN + "MLG aktiviert", true); + item = GUIUtils.createGuiItem(Material.WATER_BUCKET, ChatUtil.GREEN + "MLG aktiviert", true, ChatUtil.GREEN + "Linksklick = " + ChatUtil.RED + "Deaktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } else { - item = GUIUtils.createGuiItem(Material.WATER_BUCKET, ChatUtil.RED + "MLG deaktiviert"); + item = GUIUtils.createGuiItem(Material.WATER_BUCKET, ChatUtil.RED + "MLG deaktiviert", ChatUtil.GREEN + "Linksklick = Aktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } } case WORLD_BORDER_LEVEL_INDEX -> { if (Config.getBoolean("worldborderlevel")) { - item = GUIUtils.createGuiItem(Material.STRUCTURE_VOID, ChatUtil.GREEN + "World Border Level aktiviert", true); + item = GUIUtils.createGuiItem(Material.STRUCTURE_VOID, ChatUtil.GREEN + "World Border Level aktiviert", true, ChatUtil.GREEN + "Linksklick = " + ChatUtil.RED + "Deaktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } else { - item = GUIUtils.createGuiItem(Material.STRUCTURE_VOID, ChatUtil.RED + "World Border Level deaktiviert"); + item = GUIUtils.createGuiItem(Material.STRUCTURE_VOID, ChatUtil.RED + "World Border Level deaktiviert", ChatUtil.GREEN + "Linksklick = Aktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } } case ALL_ITEMS_INDEX -> { @@ -421,17 +445,17 @@ } case DAMAGE_ON_SNEAK_INDEX -> { if (Config.getBoolean("damageonsneak")) { - item = GUIUtils.createGuiItem(Material.SMOOTH_STONE_SLAB, ChatUtil.GREEN + "Schaden beim Schleichen aktiviert", true, ChatUtil.GREEN + "Schaden beim Schleichen: " + Config.getDouble("sneakdmg"), ChatUtil.GREEN + "Rechtsklick zum Bearbeiten"); + item = GUIUtils.createGuiItem(Material.SMOOTH_STONE_SLAB, ChatUtil.GREEN + "Schaden beim Schleichen aktiviert", true, ChatUtil.GREEN + "Schaden beim Schleichen: " + Config.getDouble("sneakdmg"), ChatUtil.GREEN + "Linksklick = " + ChatUtil.RED + "Deaktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } else { - item = GUIUtils.createGuiItem(Material.SMOOTH_STONE_SLAB, ChatUtil.RED + "Schaden beim Schleichen deaktiviert"); + item = GUIUtils.createGuiItem(Material.SMOOTH_STONE_SLAB, ChatUtil.RED + "Schaden beim Schleichen deaktiviert", ChatUtil.GREEN + "Linksklick = " + ChatUtil.GREEN + "Aktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } } case TIED_TOGETHER_INDEX -> { if (Config.getBoolean("tiedtogether")) { - item = GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatUtil.GREEN + "Zusammengebunden aktiviert", true, ChatUtil.GREEN + "Maximale Entfernung der Spieler: " + Config.getDouble("playerrange"), ChatUtil.GREEN + "Rechtsklick zum Bearbeiten"); + item = GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatUtil.GREEN + "Zusammengebunden aktiviert", true, ChatUtil.GREEN + "Maximale Entfernung der Spieler: " + Config.getDouble("playerrange"), ChatUtil.GREEN + "Linksklick = " + ChatUtil.RED + "Deaktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } else { - item = GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatUtil.RED + "Zusammengebunden deaktiviert"); + item = GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatUtil.RED + "Zusammengebunden deaktiviert", ChatUtil.GREEN + "Linksklick = " + ChatUtil.GREEN + "Aktivieren", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } } case MOB_REMOVE_WORLD_INDEX -> { @@ -453,403 +477,4 @@ this.getInventory().setItem(i, item); } } -} - -/*public class ChallengesGui implements Listener { - - public static final int INVENTORY_SIZE = 54; - private static final Challenges plugin = Challenges.getPlugin(); - public static final Inventory SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, plugin.getGUIPREFIX() + " >> Challenges"); - - private static final int CRAFTING_TABLE_INDEX = 0; - private static final int TRADING_INDEX = 9; - - private static final int CLOSE_GUI_INDEX = 53; - private static final int BACK_BUTTON_INDEX = 45; - - private static final int XP_DEATH_INDEX = 37; - private static final int DEATH_ON_FALL_INDEX = 38; - private static final int DEATH_ON_SPRINT_INDEX = 39; - private static final int DEATH_ON_JUMP_INDEX = 40; - private static final int CLEANR_INV_BY_DAMAGE_INDEX = 41; - private static final int MLG_INDEX = 32; - private static final int RANDOM_DROP_INDEX = 8; - private static final int SHUFFLE_RANDOM_DROP_INDEX = 17; - private static final int TARGET_INDEX = 4; - private static final int SHARE_DMG_INDEX = 28; - private static final int LAVA_FLOOR_INDEX = 29; - private static final int CHUNK_RANDOM_EFFEKT_INDEX = 30; - - private static final int TIED_TOGETHER_INDEX = 16; - private static final int RANGE_ON_TIED_TOGETHER_ADD_INDEX = 7; - private static final int RANGE_ON_TIED_TOGETHER_REMOVE_INDEX = 25; - - private static final int DMG_ON_SNEAK_INDEX = 15; - private static final int DMG_ON_SNEAK_ADD_INDEX = 6; - private static final int DMG_ON_SNEAK_REMOVE_INDEX = 24; - - private static final int ICE_RUNNER_INDEX = 42; - private static final int RANDOM_MOB_INDEX = 43; - private static final int BEDROCK_WALL_INDEX = 31; - private static final int WORLD_BORDER_LEVEL_INDEX = 33; - private static final int ALL_ITEMS_INDEX = 34; - - public static void createSettingsGUI(Player p) { - if (Config.getBoolean("craftingtable")) { - SETTINGS_GUI.setItem(CRAFTING_TABLE_INDEX, GUIUtils.createGuiItem(Material.CRAFTING_TABLE, ChatUtil.GREEN + "Werkbank aktiviert", true)); - } else { - SETTINGS_GUI.setItem(CRAFTING_TABLE_INDEX, GUIUtils.createGuiItem(Material.CRAFTING_TABLE, ChatUtil.RED + "Werkbank deaktiviert")); - } - if (Config.getBoolean("allowtrading")) { - SETTINGS_GUI.setItem(TRADING_INDEX, GUIUtils.createGuiItem(Material.VILLAGER_SPAWN_EGG, ChatUtil.GREEN + "Handeln aktiviert", true)); - } else { - SETTINGS_GUI.setItem(TRADING_INDEX, GUIUtils.createGuiItem(Material.VILLAGER_SPAWN_EGG, ChatUtil.RED + "Handeln deaktiviert")); - } - if (Config.getBoolean("xpdeath")) { - SETTINGS_GUI.setItem(XP_DEATH_INDEX, GUIUtils.createGuiItem(Material.ENCHANTING_TABLE, ChatUtil.GREEN + "Sterben durch XP aktiviert", true, ChatUtil.GREEN + "Wenn ein Spieler XP einsammelt wird er sterben")); - } else { - SETTINGS_GUI.setItem(XP_DEATH_INDEX, GUIUtils.createGuiItem(Material.ENCHANTING_TABLE, ChatUtil.RED + "Sterben durch XP deaktiviert", ChatUtil.RED + "Wenn ein Spieler XP einsammelt wird er sterben")); - } - if (Config.getBoolean("deathonfall")) { - SETTINGS_GUI.setItem(DEATH_ON_FALL_INDEX, GUIUtils.createGuiItem(Material.NETHERITE_BOOTS, ChatUtil.GREEN + "Tod bei Fallschaden aktiviert", true)); - } else { - SETTINGS_GUI.setItem(DEATH_ON_FALL_INDEX, GUIUtils.createGuiItem(Material.NETHERITE_BOOTS, ChatUtil.RED + "Tod bei Fallschaden deaktiviert")); - } - if (Config.getBoolean("rnddrops")) { - SETTINGS_GUI.setItem(RANDOM_DROP_INDEX, GUIUtils.createGuiItem(Material.NETHERITE_PICKAXE, ChatUtil.GREEN + "Zufällige Drops aktiviert", true)); - } else { - SETTINGS_GUI.setItem(RANDOM_DROP_INDEX, GUIUtils.createGuiItem(Material.NETHERITE_PICKAXE, ChatUtil.RED + "Zufällige Drops deaktiviert")); - } - if (Config.getBoolean("deathonsprint")) { - SETTINGS_GUI.setItem(DEATH_ON_SPRINT_INDEX, GUIUtils.createGuiItem(Material.POTION, ChatUtil.GREEN + "Tod beim Sprinten aktiviert", true)); - } else { - SETTINGS_GUI.setItem(DEATH_ON_SPRINT_INDEX, GUIUtils.createGuiItem(Material.GLASS_BOTTLE, ChatUtil.RED + "Tod beim Sprinten deaktiviert")); - } - if (Config.getBoolean("deathonjump")) { - SETTINGS_GUI.setItem(DEATH_ON_JUMP_INDEX, GUIUtils.createGuiItem(Material.RABBIT_FOOT, ChatUtil.GREEN + "Tod beim Springen aktiviert", true)); - } else { - SETTINGS_GUI.setItem(DEATH_ON_JUMP_INDEX, GUIUtils.createGuiItem(Material.RABBIT_FOOT, ChatUtil.RED + "Tod beim Springen deaktiviert")); - } - if (Config.getBoolean("target")) { - SETTINGS_GUI.setItem(TARGET_INDEX, GUIUtils.createGuiItem(Material.DRAGON_HEAD, ChatUtil.GREEN + "Ziel: Enderdrachen töten")); - } else { - SETTINGS_GUI.setItem(TARGET_INDEX, GUIUtils.createGuiItem(Material.WITHER_SKELETON_SKULL, ChatUtil.GREEN + "Ziel: Wither töten")); - } - if (Config.getBoolean("clinvdmg")) { - SETTINGS_GUI.setItem(CLEANR_INV_BY_DAMAGE_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatUtil.GREEN + "Alle Inventare löschen wenn ein Spieler Schaden bekommt aktiviert", true)); - } else { - SETTINGS_GUI.setItem(CLEANR_INV_BY_DAMAGE_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatUtil.RED + "Alle Inventare löschen wenn ein Spieler Schaden bekommt deaktiviert")); - } - if (Config.getBoolean("damageonsneak")) { - SETTINGS_GUI.setItem(DMG_ON_SNEAK_INDEX, GUIUtils.createGuiItem(Material.SMOOTH_STONE_SLAB, ChatUtil.GREEN + "Schaden beim Schleichen aktiviert", true, ChatUtil.GREEN + "Schaden beim Schleichen: " + Config.getDouble("sneakdmg"))); - SETTINGS_GUI.setItem(DMG_ON_SNEAK_ADD_INDEX, CustomHeads.QUARTZ_ARROW_UP.getHead()); - SETTINGS_GUI.setItem(DMG_ON_SNEAK_REMOVE_INDEX, CustomHeads.QUARTZ_ARROW_DOWN.getHead()); - - } else { - SETTINGS_GUI.setItem(DMG_ON_SNEAK_INDEX, GUIUtils.createGuiItem(Material.SMOOTH_STONE_SLAB, ChatUtil.RED + "Schaden beim Schleichen deaktiviert")); - SETTINGS_GUI.setItem(DMG_ON_SNEAK_ADD_INDEX, GUIUtils.EMPTY_ICON); - SETTINGS_GUI.setItem(DMG_ON_SNEAK_REMOVE_INDEX, GUIUtils.EMPTY_ICON); - } - if (Config.getBoolean("mlg.enabled")) { - SETTINGS_GUI.setItem(MLG_INDEX, GUIUtils.createGuiItem(Material.WATER_BUCKET, ChatUtil.GREEN + "MLG aktiviert", true)); - } else { - SETTINGS_GUI.setItem(MLG_INDEX, GUIUtils.createGuiItem(Material.WATER_BUCKET, ChatUtil.RED + "MLG deaktiviert")); - } - if (Config.getBoolean("sharedmg")) { - SETTINGS_GUI.setItem(SHARE_DMG_INDEX, GUIUtils.createGuiItem(Material.MELON_SLICE, ChatUtil.GREEN + "Geteilter Schaden aktiviert", true)); - } else { - SETTINGS_GUI.setItem(SHARE_DMG_INDEX, GUIUtils.createGuiItem(Material.MELON_SLICE, ChatUtil.RED + "Geteilter Schaden deaktiviert")); - } - if (Config.getBoolean("lavafloor")) { - SETTINGS_GUI.setItem(LAVA_FLOOR_INDEX, GUIUtils.createGuiItem(Material.MAGMA_BLOCK, ChatUtil.GREEN + "Der Boden ist Lava aktiviert", true)); - } else { - SETTINGS_GUI.setItem(LAVA_FLOOR_INDEX, GUIUtils.createGuiItem(Material.MAGMA_BLOCK, ChatUtil.RED + "Der Boden ist Lava deaktiviert")); - } - if (Config.getBoolean("randomeffect")) { - SETTINGS_GUI.setItem(CHUNK_RANDOM_EFFEKT_INDEX, GUIUtils.createGuiItem(Material.SPLASH_POTION, ChatUtil.GREEN + "Chunk Random Effekt aktiviert", true)); - } else { - SETTINGS_GUI.setItem(CHUNK_RANDOM_EFFEKT_INDEX, GUIUtils.createGuiItem(Material.SPLASH_POTION, ChatUtil.RED + "Chunk Random Effekt deaktiviert")); - } - if (Config.getBoolean("tiedtogether")) { - SETTINGS_GUI.setItem(TIED_TOGETHER_INDEX, GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatUtil.GREEN + "Zusammengebunden aktiviert", true, ChatUtil.GREEN + "Maximale Entfernung der Spieler: " + Config.getDouble("playerrange"))); - SETTINGS_GUI.setItem(RANGE_ON_TIED_TOGETHER_ADD_INDEX, CustomHeads.QUARTZ_ARROW_UP.getHead()); - SETTINGS_GUI.setItem(RANGE_ON_TIED_TOGETHER_REMOVE_INDEX, CustomHeads.QUARTZ_ARROW_DOWN.getHead()); - } else { - SETTINGS_GUI.setItem(TIED_TOGETHER_INDEX, GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatUtil.RED + "Zusammengebunden deaktiviert")); - SETTINGS_GUI.setItem(RANGE_ON_TIED_TOGETHER_ADD_INDEX, GUIUtils.EMPTY_ICON); - SETTINGS_GUI.setItem(RANGE_ON_TIED_TOGETHER_REMOVE_INDEX, GUIUtils.EMPTY_ICON); - } - if (Config.getBoolean("icerunner")) { - SETTINGS_GUI.setItem(ICE_RUNNER_INDEX, GUIUtils.createGuiItem(Material.BLUE_ICE, ChatUtil.GREEN + "Ice-Runner aktiviert", true)); - } else { - SETTINGS_GUI.setItem(ICE_RUNNER_INDEX, GUIUtils.createGuiItem(Material.BLUE_ICE, ChatUtil.RED + "Ice-Runner deaktiviert")); - } - if (Config.getBoolean("randommobs")) { - SETTINGS_GUI.setItem(RANDOM_MOB_INDEX, GUIUtils.createGuiItem(Material.PARROT_SPAWN_EGG, ChatUtil.GREEN + "Random Mobs aktiviert", true)); - } else { - SETTINGS_GUI.setItem(RANDOM_MOB_INDEX, GUIUtils.createGuiItem(Material.PARROT_SPAWN_EGG, ChatUtil.RED + "Random Mobs deaktiviert")); - } - if (Config.getBoolean("bedrockwall")) { - SETTINGS_GUI.setItem(BEDROCK_WALL_INDEX, GUIUtils.createGuiItem(Material.BEDROCK, ChatUtil.GREEN + "Bedrock Wand aktiviert", true)); - } else { - SETTINGS_GUI.setItem(BEDROCK_WALL_INDEX, GUIUtils.createGuiItem(Material.BEDROCK, ChatUtil.RED + "Bedrock Wand deaktiviert")); - } - if (Config.getBoolean("worldborderlevel")) { - SETTINGS_GUI.setItem(WORLD_BORDER_LEVEL_INDEX, GUIUtils.createGuiItem(Material.STRUCTURE_VOID, ChatUtil.GREEN + "World Border Level aktiviert", true)); - } else { - SETTINGS_GUI.setItem(WORLD_BORDER_LEVEL_INDEX, GUIUtils.createGuiItem(Material.STRUCTURE_VOID, ChatUtil.RED + "World Border Level deaktiviert")); - } - if (Config.getBoolean("allitems")) { - SETTINGS_GUI.setItem(ALL_ITEMS_INDEX, GUIUtils.createGuiItem(Material.ITEM_FRAME, ChatUtil.GREEN + "All Items aktiviert", true, ChatUtil.GREEN + "/skipitem um ein Item zu überspringen", ChatUtil.RED + "KANN AKTUELL NICHT GESPEICHERT WERDEN!")); - } else { - SETTINGS_GUI.setItem(ALL_ITEMS_INDEX, GUIUtils.createGuiItem(Material.ITEM_FRAME, ChatUtil.RED + "All Items deaktiviert", ChatUtil.GREEN + "/skipitem um ein Item zu überspringen", ChatUtil.RED + "KANN AKTUELL NICHT GESPEICHERT WERDEN!")); - } - SETTINGS_GUI.setItem(SHUFFLE_RANDOM_DROP_INDEX, GUIUtils.createGuiItem(Material.CHORUS_FLOWER, ChatUtil.GREEN + "Zufällige Drops neu mischen")); - SETTINGS_GUI.setItem(CLOSE_GUI_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatUtil.RED + "Menü verlassen!")); - SETTINGS_GUI.setItem(BACK_BUTTON_INDEX, GUIUtils.createGuiItem(Material.ARROW, ChatUtil.GREEN + "Zurück")); - for (int i = 0; i < INVENTORY_SIZE; i++) { - if (SETTINGS_GUI.getItem(i) == null || SETTINGS_GUI.getItem(i).getType() == Material.AIR) { - SETTINGS_GUI.setItem(i, GUIUtils.EMPTY_ICON); - } - } - p.openInventory(SETTINGS_GUI); - } - - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - if (e.getInventory() == SETTINGS_GUI) { - int slot = e.getRawSlot(); - Player p = (Player) e.getWhoClicked(); - switch (slot) { - case CRAFTING_TABLE_INDEX: - if (Config.getBoolean("craftingtable")) { - Config.setValue("craftingtable", false); - ChatUtil.sendTitleToAll("Challenge", "Werkbank deaktiviert", ChatUtil.RED); - } else { - Config.setValue("craftingtable", true); - ChatUtil.sendTitleToAll("Challenge", "Werkbank aktiviert", ChatUtil.GREEN); - } - break; - - case TRADING_INDEX: - if (Config.getBoolean("allowtrading")) { - Config.setValue("allowtrading", false); - ChatUtil.sendTitleToAll("Challenge", "Handeln deaktiviert", ChatUtil.RED); - } else { - Config.setValue("allowtrading", true); - ChatUtil.sendTitleToAll("Challenge", "Handeln aktiviert", ChatUtil.GREEN); - } - break; - case XP_DEATH_INDEX: - if (Config.getBoolean("xpdeath")) { - Config.setValue("xpdeath", false); - ChatUtil.sendTitleToAll("Challenge", "Sterben durch Einsammeln von XP deaktiviert", ChatUtil.RED); - } else { - Config.setValue("xpdeath", true); - ChatUtil.sendTitleToAll("Challenge", "Sterben durch Einsammeln von XP aktiviert", ChatUtil.GREEN); - } - break; - case DEATH_ON_FALL_INDEX: - if (Config.getBoolean("deathonfall")) { - Config.setValue("deathonfall", false); - ChatUtil.sendTitleToAll("Challenge", "Sterben durch Fallschaden deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "Sterben durch Fallschaden aktiviert", ChatUtil.GREEN); - Config.setValue("deathonfall", true); - } - break; - case RANDOM_DROP_INDEX: - if (Config.getBoolean("rnddrops")) { - Config.setValue("rnddrops", false); - ChatUtil.sendTitleToAll("Challenge", "Zufällige Drops deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "Zufällige Drops aktiviert", ChatUtil.GREEN); - Config.setValue("rnddrops", true); - } - break; - case SHUFFLE_RANDOM_DROP_INDEX: - plugin.rndDrops.shuffleItems(); - plugin.rndDrops.saveItems(); - ChatUtil.sendTitleToAll("Challenge", "Zufällige Drops neu gemischt!", ChatUtil.GREEN); - break; - case DEATH_ON_SPRINT_INDEX: - if (Config.getBoolean("deathonsprint")) { - Config.setValue("deathonsprint", false); - ChatUtil.sendTitleToAll("Challenge", "Sterben durch Sprinten deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "Sterben durch Sprinten aktiviert", ChatUtil.GREEN); - Config.setValue("deathonsprint", true); - } - break; - case DEATH_ON_JUMP_INDEX: - if (Config.getBoolean("deathonjump")) { - Config.setValue("deathonjump", false); - ChatUtil.sendTitleToAll("Challenge", "Sterben durch Springen deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "Sterben durch Springen aktiviert", ChatUtil.GREEN); - Config.setValue("deathonjump", true); - } - break; - case TARGET_INDEX: - if (Config.getBoolean("target")) { - Config.setValue("target", false); - ChatUtil.sendTitleToAll("Challenge", "Ziel: Töte den Wither", ChatUtil.GREEN); - } else { - ChatUtil.sendTitleToAll("Challenge", "Ziel: Töte den Enderdrachen", ChatUtil.GREEN); - Config.setValue("target", true); - } - break; - case CLEANR_INV_BY_DAMAGE_INDEX: - if (Config.getBoolean("clinvdmg")) { - Config.setValue("clinvdmg", false); - ChatUtil.sendTitleToAll("Challenge", "Inventar von allen löschen wenn einer Schaden bekommt deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "Inventar von allen löschen wenn einer Schaden bekommt aktiviert", ChatUtil.GREEN); - Config.setValue("clinvdmg", true); - } - break; - case DMG_ON_SNEAK_INDEX: - if (Config.getBoolean("damageonsneak")) { - Config.setValue("damageonsneak", false); - ChatUtil.sendTitleToAll("Challenge", "Schaden bekommen beim Schleichen deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "Schaden bekommen beim Schleichen aktiviert", ChatUtil.GREEN); - Config.setValue("damageonsneak", true); - } - break; - case MLG_INDEX: - if (Config.getBoolean("mlg.enabled")) { - Config.setValue("mlg.enabled", false); - ChatUtil.sendTitleToAll("Challenge", "MLG deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendTitleToAll("Challenge", "MLG aktiviert", ChatUtil.GREEN); - Config.setValue("mlg.enabled", true); - } - break; - case DMG_ON_SNEAK_ADD_INDEX: - Config.setValue("sneakdmg", Config.getDouble("sneakdmg") + 0.5); - break; - case DMG_ON_SNEAK_REMOVE_INDEX: - if (Config.getDouble("sneakdmg") > 0) { - Config.setValue("sneakdmg", Config.getDouble("sneakdmg") - 0.5); - } - break; - case SHARE_DMG_INDEX: - if (Config.getBoolean("sharedmg")) { - Config.setValue("sharedmg", false); - ChatUtil.sendTitleToAll("Challenge", "Geteielter Schaden deaktiviert", ChatUtil.RED); - } else { - Config.setValue("sharedmg", true); - ChatUtil.sendTitleToAll("Challenge", "Geteielter Schaden aktiviert", ChatUtil.GREEN); - } - break; - case LAVA_FLOOR_INDEX: - if (Config.getBoolean("lavafloor")) { - Config.setValue("lavafloor", false); - ChatUtil.sendTitleToAll("Challenge", "Der Boden ist Lava deaktiviert", ChatUtil.RED); - } else { - Config.setValue("lavafloor", true); - ChatUtil.sendTitleToAll("Challenge", "Der Boden ist Lava aktiviert", ChatUtil.GREEN); - } - break; - case CHUNK_RANDOM_EFFEKT_INDEX: - if (Config.getBoolean("randomeffect")) { - Config.setValue("randomeffect", false); - ChatUtil.sendTitleToAll("Challenge", "Chunk Random Effekt deaktiviert", ChatUtil.RED); - } else { - Config.setValue("randomeffect", true); - ChatUtil.sendTitleToAll("Challenge", "Chunk Random Effekt aktiviert", ChatUtil.GREEN); - } - break; - case TIED_TOGETHER_INDEX: - if (Config.getBoolean("tiedtogether")) { - Config.setValue("tiedtogether", false); - ChatUtil.sendTitleToAll("Challenge", "Zusammengebunden deaktiviert", ChatUtil.RED); - } else { - Config.setValue("tiedtogether", true); - ChatUtil.sendTitleToAll("Challenge", "Zusammengebunden aktiviert", ChatUtil.GREEN); - } - break; - case RANGE_ON_TIED_TOGETHER_ADD_INDEX: - Config.setValue("playerrange", Config.getDouble("playerrange") + 1); - break; - case RANGE_ON_TIED_TOGETHER_REMOVE_INDEX: - if (Config.getDouble("playerrange") > 0) { - Config.setValue("playerrange", Config.getDouble("playerrange") - 1); - } - break; - case ICE_RUNNER_INDEX: - if (Config.getBoolean("icerunner")) { - Config.setValue("icerunner", false); - ChatUtil.sendTitleToAll("Challenge", "Ice-Runner deaktiviert", ChatUtil.RED); - } else { - Config.setValue("icerunner", true); - ChatUtil.sendTitleToAll("Challenge", "Ice-Runner aktiviert", ChatUtil.GREEN); - } - break; - case RANDOM_MOB_INDEX: - if (Config.getBoolean("randommobs")) { - Config.setValue("randommobs", false); - ChatUtil.sendTitleToAll("Challenge", "Random Mobs deaktiviert", ChatUtil.RED); - } else { - Config.setValue("randommobs", true); - ChatUtil.sendTitleToAll("Challenge", "Random Mobs aktiviert", ChatUtil.GREEN); - } - break; - case BEDROCK_WALL_INDEX: - if (Config.getBoolean("bedrockwall")) { - Config.setValue("bedrockwall", false); - ChatUtil.sendTitleToAll("Challenge", "Bedrock Wand deaktiviert", ChatUtil.RED); - } else { - Config.setValue("bedrockwall", true); - ChatUtil.sendTitleToAll("Challenge", "Bedrock Wand aktiviert", ChatUtil.GREEN); - } - break; - case WORLD_BORDER_LEVEL_INDEX: - if (plugin.getServer().getServicesManager().getRegistration(WorldBorderApi.class) == null) { - return; - } - RegisteredServiceProvider worldBorderAPI = plugin.getServer().getServicesManager().getRegistration(WorldBorderApi.class); - if (worldBorderAPI == null) { - return; - } - if (Config.getBoolean("worldborderlevel")) { - Config.setValue("worldborderlevel", false); - for (Player pp : Bukkit.getOnlinePlayers()) { - worldBorderAPI.getProvider().resetWorldBorderToGlobal(pp); - } - ChatUtil.sendTitleToAll("Challenge", "World Border Level deaktiviert", ChatUtil.RED); - } else { - Config.setValue("worldborderlevel", true); - for (Player pp : Bukkit.getOnlinePlayers()) { - worldBorderAPI.getProvider().setBorder(pp, 1, plugin.getServer().getWorld("world").getSpawnLocation()); - } - - for (Player pp : Bukkit.getOnlinePlayers()) { - pp.teleport(pp.getWorld().getSpawnLocation()); - } - ChatUtil.sendTitleToAll("Challenge", "World Border Level aktiviert", ChatUtil.GREEN); - } - break; - case ALL_ITEMS_INDEX: - if (Config.getBoolean("allitems")) { - Config.setValue("allitems", false); - ChatUtil.sendTitleToAll("Challenge", "All Items deaktiviert", ChatUtil.RED); - } else { - Config.setValue("allitems", true); - ChatUtil.sendTitleToAll("Challenge", "All Items aktiviert", ChatUtil.GREEN); - AllItemsChallenge.start(); - } - break; - default: - break; - } - createSettingsGUI(p); - switch (slot) { - case CLOSE_GUI_INDEX -> p.closeInventory(); - case BACK_BUTTON_INDEX -> new MainGui(p).open(); - } - e.setCancelled(true); - } - } -}*/ \ No newline at end of file +} \ No newline at end of file diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java index d6253b1..e95e1fc 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java @@ -1,6 +1,7 @@ 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.guiutils.AbstractWindow; @@ -106,7 +107,7 @@ } case BACKPACK_INDEX -> { if (event.isRightClick()) { - //TODO: INV ÖFFNEN + new BackPackSettingsGui(player).open(); } } @@ -122,7 +123,7 @@ default -> { } } - new OtherSettingsGui(player).open(); + rebuildInventory(); switch (slot) { case BACK_INDEX -> new MainGui(player).open(); @@ -182,9 +183,9 @@ } case BACKPACK_INDEX -> { if (plugin.getProtocolVersion() > 754) { - item = GUIUtils.createGuiItem(Material.BUNDLE, ChatUtil.GREEN + "Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6", ChatUtil.GREEN + "Rechtsklick zum Bearbeiten"); + item = GUIUtils.createGuiItem(Material.BUNDLE, ChatUtil.GREEN + "Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } else { - item = GUIUtils.createGuiItem(Material.CHEST, ChatUtil.GREEN + "Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6", ChatUtil.GREEN + "Rechtsklick zum Bearbeiten"); + item = GUIUtils.createGuiItem(Material.CHEST, ChatUtil.GREEN + "Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6", ChatUtil.GREEN + "Rechtsklick = Einstellungen"); } } diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/ServerSettingsGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/ServerSettingsGui.java index 7ba360b..6e05e8e 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/ServerSettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/ServerSettingsGui.java @@ -125,7 +125,7 @@ default -> { } } - new ServerSettingsGui(player).open(); + rebuildInventory(); switch (slot) { case BACK_INDEX -> new MainGui(player).open(); @@ -199,162 +199,4 @@ this.getInventory().setItem(i, item); } } -} - -/*public class ServerSettingsGui implements Listener { - - private static final Challenges plugin = Challenges.getPlugin(); - - public static final int INVENTORY_SIZE = 27; - public static final Inventory SERVER_SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, plugin.getGUIPREFIX() + " >> Server Settings"); - - private static final int DIFFICULTY_INDEX = 10; - private static final int KEEP_INVENTORY_INDEX = 11; - private static final int NATURAL_REGENERATION_INDEX = 12; - private static final int PVP_INDEX = 16; - private static final int BACK_INDEX = 18; - private static final int CLOSE_INDEX = 26; - private static final int ULTRA_HARDCORE_INDEX = 13; - private static final int ONE_LIFE_INDEX = 14; - private static final int RESPAWN_INDEX = 15; - - public static void createServerSettingsGUI(Player p) { - if (plugin.getDifficulty() == Difficulty.EASY) { - SERVER_SETTINGS_GUI.setItem(DIFFICULTY_INDEX, GUIUtils.createGuiItem(Material.IRON_SWORD, ChatUtil.BLUE + "Schwierigkeitsgrad Leicht")); - } else if (plugin.getDifficulty() == Difficulty.NORMAL) { - SERVER_SETTINGS_GUI.setItem(DIFFICULTY_INDEX, GUIUtils.createGuiItem(Material.DIAMOND_SWORD, ChatUtil.ORANGE + "Schwierigkeitsgrad Mittel")); - } else if (plugin.getDifficulty() == Difficulty.HARD) { - SERVER_SETTINGS_GUI.setItem(DIFFICULTY_INDEX, GUIUtils.createGuiItem(Material.NETHERITE_SWORD, ChatUtil.RED + "Schwierigkeitsgrad Schwer")); - } else if (plugin.getDifficulty() == Difficulty.PEACEFUL) { - SERVER_SETTINGS_GUI.setItem(DIFFICULTY_INDEX, GUIUtils.createGuiItem(Material.POPPY, ChatUtil.GREEN + "Schwierigkeitsgrad Friedlich")); - } - if (plugin.getServer().getWorld("world").getPVP()) { - SERVER_SETTINGS_GUI.setItem(PVP_INDEX, GUIUtils.createGuiItem(Material.WOODEN_SWORD, ChatUtil.GREEN + "PVP aktiviert", true)); - } else { - SERVER_SETTINGS_GUI.setItem(PVP_INDEX, GUIUtils.createGuiItem(Material.WOODEN_SWORD, ChatUtil.RED + "PVP deaktiviert")); - } - if (Config.getBoolean("onelife")) { - SERVER_SETTINGS_GUI.setItem(ONE_LIFE_INDEX, GUIUtils.createGuiItem(Material.SUNFLOWER, ChatUtil.GREEN + "Ein Leben für alle aktiviert", true)); - } else { - SERVER_SETTINGS_GUI.setItem(ONE_LIFE_INDEX, GUIUtils.createGuiItem(Material.SUNFLOWER, ChatUtil.RED + "Ein Leben für alle deaktiviert")); - } - if (Config.getBoolean("respawn")) { - SERVER_SETTINGS_GUI.setItem(RESPAWN_INDEX, GUIUtils.createGuiItem(Material.TOTEM_OF_UNDYING, ChatUtil.GREEN + "Wiederbeleben aktiviert", true)); - } else { - SERVER_SETTINGS_GUI.setItem(RESPAWN_INDEX, GUIUtils.createGuiItem(Material.TOTEM_OF_UNDYING, ChatUtil.RED + "Wiederbeleben deaktiviert")); - } - if (Config.getBoolean("ultrahardcore")) { - SERVER_SETTINGS_GUI.setItem(ULTRA_HARDCORE_INDEX, GUIUtils.createGuiItem(Material.SUSPICIOUS_STEW, ChatUtil.GREEN + "Ultra Hardcore aktiviert", true)); - } else { - SERVER_SETTINGS_GUI.setItem(ULTRA_HARDCORE_INDEX, GUIUtils.createGuiItem(Material.SUSPICIOUS_STEW, ChatUtil.RED + "Ultra Hardcore deaktiviert")); - } - if (plugin.getKeepInventory()) { - SERVER_SETTINGS_GUI.setItem(KEEP_INVENTORY_INDEX, GUIUtils.createGuiItem(Material.CHEST_MINECART,ChatUtil.GREEN + "Keep Inventory aktiviert", true)); - } else { - SERVER_SETTINGS_GUI.setItem(KEEP_INVENTORY_INDEX, GUIUtils.createGuiItem(Material.CHEST_MINECART,ChatUtil.RED + "Keep Inventory deaktiviert")); - } - if (plugin.getNaturalRegeneration()) { - SERVER_SETTINGS_GUI.setItem(NATURAL_REGENERATION_INDEX, GUIUtils.createGuiItem(Material.GOLDEN_APPLE,ChatUtil.GREEN + "Natürliche Regeneration aktiviert", true)); - } else { - SERVER_SETTINGS_GUI.setItem(NATURAL_REGENERATION_INDEX, GUIUtils.createGuiItem(Material.GOLDEN_APPLE,ChatUtil.RED + "Natürliche Regeneration deaktiviert")); - } - - SERVER_SETTINGS_GUI.setItem(CLOSE_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatUtil.RED + "Menü verlassen!")); - SERVER_SETTINGS_GUI.setItem(BACK_INDEX, GUIUtils.createGuiItem(Material.ARROW, ChatUtil.GREEN + "Zurück")); - for (int i = 0; i < INVENTORY_SIZE; i++) { - if (SERVER_SETTINGS_GUI.getItem(i) == null || SERVER_SETTINGS_GUI.getItem(i).getType() == Material.AIR) { - SERVER_SETTINGS_GUI.setItem(i, GUIUtils.EMPTY_ICON); - } - } - p.openInventory(SERVER_SETTINGS_GUI); - } - - @EventHandler - public void onInventoryClick(InventoryClickEvent e) { - if (e.getInventory() == SERVER_SETTINGS_GUI) { - int slot = e.getRawSlot(); - Player p = (Player) e.getWhoClicked(); - switch (slot) { - case DIFFICULTY_INDEX: - if (plugin.getDifficulty() == Difficulty.EASY) { - plugin.setDifficulty(Difficulty.NORMAL); - ChatUtil.sendTitleToAll("Server Einstellungen", "Schwierigkeitsgrad Mittel", ChatUtil.ORANGE); - } else if (plugin.getDifficulty() == Difficulty.NORMAL) { - plugin.setDifficulty(Difficulty.HARD); - ChatUtil.sendTitleToAll("Server Einstellungen", "Schwierigkeitsgrad Schwer", ChatUtil.RED); - } else if (plugin.getDifficulty() == Difficulty.HARD) { - plugin.setDifficulty(Difficulty.PEACEFUL); - ChatUtil.sendTitleToAll("Server Einstellungen", "Schwierigkeitsgrad Friedlich", ChatUtil.GREEN); - } else if (plugin.getDifficulty() == Difficulty.PEACEFUL) { - plugin.setDifficulty(Difficulty.EASY); - ChatUtil.sendTitleToAll("Server Einstellungen", "Schwierigkeitsgrad Leicht", ChatUtil.BLUE); - } - break; - case PVP_INDEX: - if (plugin.getPvP()) { - plugin.setPvP(false); - Config.setValue("pvp", false); - ChatUtil.sendTitleToAll("Server Einstellungen", "PVP deaktiviert", ChatUtil.RED); - } else { - plugin.setPvP(true); - Config.setValue("pvp", true); - ChatUtil.sendTitleToAll("Server Einstellungen", "PVP aktiviert", ChatUtil.GREEN); - } - break; - case ONE_LIFE_INDEX: - if (Config.getBoolean("onelife")) { - Config.setValue("onelife", false); - ChatUtil.sendTitleToAll("Server Einstellungen", "Ein Leben für alle deaktiviert", ChatUtil.RED); - } else { - Config.setValue("onelife", true); - ChatUtil.sendTitleToAll("Server Einstellungen", "Ein Leben für alle aktiviert", ChatUtil.GREEN); - } - break; - case RESPAWN_INDEX: - if (Config.getBoolean("respawn")) { - Config.setValue("respawn", false); - ChatUtil.sendTitleToAll("Server Einstellungen", "Wiederbeleben deaktiviert", ChatUtil.RED); - } else { - Config.setValue("respawn", true); - ChatUtil.sendTitleToAll("Server Einstellungen", "Wiederbeleben aktiviert", ChatUtil.GREEN); - } - break; - case ULTRA_HARDCORE_INDEX: - if (Config.getBoolean("ultrahardcore")) { - Config.setValue("ultrahardcore", false); - ChatUtil.sendTitleToAll("Server Einstellungen", "Ultra Hardcore deaktiviert", ChatUtil.RED); - } else { - Config.setValue("ultrahardcore", true); - ChatUtil.sendTitleToAll("Server Einstellungen", "Ultra Hardcore aktiviert", ChatUtil.GREEN); - } - break; - case KEEP_INVENTORY_INDEX: - if (plugin.getKeepInventory()) { - plugin.setKeepInventory(false); - ChatUtil.sendTitleToAll("Server Einstellungen", "Keep Inventory deaktiviert", ChatUtil.RED); - } else { - plugin.setKeepInventory(true); - ChatUtil.sendTitleToAll("Server Einstellungen", "Keep Inventory aktiviert", ChatUtil.GREEN); - } - break; - case NATURAL_REGENERATION_INDEX: - if (plugin.getNaturalRegeneration()) { - plugin.setNaturalRegeneration(false); - ChatUtil.sendTitleToAll("Server Einstellungen", "Natürliche Regeneration aktiviert", ChatUtil.GREEN); - } else { - plugin.setNaturalRegeneration(true); - ChatUtil.sendTitleToAll("Server Einstellungen", "Natürliche Regeneration deaktiviert", ChatUtil.RED); - } - break; - } - createServerSettingsGUI(p); - - switch (slot) { - case BACK_INDEX -> new MainGui(p).open(); - case CLOSE_INDEX -> p.closeInventory(); - } - e.setCancelled(true); - } - } -} -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java index ba58c2d..8fb0af6 100644 --- a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java +++ b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java @@ -28,14 +28,10 @@ import de.fanta.challenges.challenges.WorldBorderLevelChallenge; import de.fanta.challenges.challenges.XPChallenge; import de.fanta.challenges.gravestones.GravestoneListener; -import de.fanta.challenges.guis.CheckItemsGUI; -import de.fanta.challenges.guis.TeleportGUI; import de.fanta.challenges.guis.coordsgui.CoordsDeleteGUI; import de.fanta.challenges.guis.coordsgui.CoordsGUI; -import de.fanta.challenges.guis.eventgui.EventItemsGui; -import de.fanta.challenges.guis.eventgui.SammelFieberSettingsGui; +import de.fanta.challenges.guis.eventgui.BingoItemsGui; import de.fanta.challenges.guis.eventgui.TeamSelectGUI; -import de.fanta.challenges.guis.eventgui.TeamSettingsGUI; import de.fanta.challenges.teams.TeamListener; import de.fanta.challenges.utils.CoordsTargeter; import de.fanta.challenges.utils.guiutils.WindowManager; @@ -58,12 +54,10 @@ pM.registerEvents(new MinimapListener(), plugin); pM.registerEvents(new WindowManager(), plugin); - pM.registerEvents(new EventItemsGui(), plugin); + pM.registerEvents(new BingoItemsGui(), plugin); pM.registerEvents(new ContainerListener(), plugin); pM.registerEvents(new CommandBlockListener(), plugin); - pM.registerEvents(new TeleportGUI(), plugin); pM.registerEvents(new TeamSelectGUI(), plugin); - pM.registerEvents(new TeamSettingsGUI(), plugin); pM.registerEvents(new CoordsGUI(), plugin); pM.registerEvents(new CoordsDeleteGUI(), plugin); @@ -102,7 +96,5 @@ pM.registerEvents(new WorldBorderLevelChallenge(), plugin); pM.registerEvents(new CoordsTargeter(), plugin); } - - pM.registerEvents(new CheckItemsGUI(), plugin); } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index eaa5b92..0968c7f 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -22,12 +22,14 @@ playerrange: 30 icerunner: false bedrockwall: false +bedrockwalltime: 10 mobremoveworld: false alladvancements: false worldborderlevel: false worldborderlevelnether: false worldborderlevellevel: 0 worldborderlevelxp: 0 +worldborderlevelbordermultiplier: 2 disablevillagertradelimits: false teleportcommand: false gravestone: false @@ -37,7 +39,6 @@ backpack_size: 3 mlg: enabled: false - killall: false maxtime: 380 timertime: 0 firsttimerstart: false