diff --git a/pom.xml b/pom.xml index a7d5e80..413ad7b 100644 --- a/pom.xml +++ b/pom.xml @@ -33,12 +33,6 @@ 1.16-SNAPSHOT provided - - io.github.wolfyscript - wolfyutilities - 1.5.6.17 - provided - diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java index 5602ab9..218dad3 100644 --- a/src/main/java/de/fanta/challenges/Challenges.java +++ b/src/main/java/de/fanta/challenges/Challenges.java @@ -5,13 +5,14 @@ package de.fanta.challenges; -import de.fanta.challenges.commands.BackpackCommand; import de.fanta.challenges.challenges.RandomDrops; import de.fanta.challenges.challenges.SBManager; import de.fanta.challenges.commands.CommandRegistration; import de.fanta.challenges.events.PlayerCountChangedEvent; import de.fanta.challenges.events.ServerStatusChangedEvent; import de.fanta.challenges.events.TimerChangedEvent; +import de.fanta.challenges.guis.BackpackGui; +import de.fanta.challenges.guis.settingsgui.OtherSettingsGui; import de.fanta.challenges.guis.settingsgui.ServerSettingsGui; import de.fanta.challenges.listeners.BlockCreateListener; import de.fanta.challenges.listeners.BlockDestroyListener; @@ -25,14 +26,14 @@ import de.fanta.challenges.guis.TimerGui; import de.fanta.challenges.guis.settingsgui.MainGui; import de.fanta.challenges.guis.settingsgui.SettingsGui; -import de.fanta.challenges.utils.guiutils.InventoryHandler; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import me.wolfyscript.utilities.api.WolfyUtilities; +import de.fanta.challenges.utils.ChatUtil; +import org.bukkit.BanList; import org.bukkit.Bukkit; import org.bukkit.GameRule; import org.bukkit.Material; @@ -44,7 +45,6 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; @@ -52,7 +52,7 @@ public class Challenges extends JavaPlugin { private static Challenges plugin; - private File BackpackConfigFile; + private File backpackConfigFile; private FileConfiguration BackpackConfig; @@ -62,21 +62,17 @@ private Timer timer; - public BackpackCommand backpack; + private BackpackGui backpack; private SBManager sbManager; public RandomDrops rndDrops; - public static Inventory SettingsGUI = Bukkit.createInventory(null, 45, "§6Settings"); - - public static String GUIName = "§6Settings"; - public static Challenges getPlugin() { return plugin; } - public static final String PREFIX = ChatColor.of("#455aad") + "[" + ChatColor.of("#1FFF00") + "Challenge" + ChatColor.of("#455aad") + "]"; + public static final String PREFIX = ChatColor.of("#455aad") + "[" + ChatUtil.NORMAL + "Challenge" + ChatColor.of("#455aad") + "]"; public static final String GUIPREFIX = ChatColor.of("#2d8745") + "Challenge"; private Player currentEditor; @@ -86,17 +82,11 @@ @Override public void onEnable() { plugin = this; - WolfyUtilities wolfyUtilities = WolfyUtilities.getOrCreateAPI(this); - wolfyUtilities.setCHAT_PREFIX(PREFIX); - wolfyUtilities.setCONSOLE_PREFIX(PREFIX); this.timer = new Timer(this); this.rndDrops = new RandomDrops(); - InventoryHandler inventoryHandler = new InventoryHandler(this); - inventoryHandler.init(); - - this.backpack = new BackpackCommand(this); + this.backpack = new BackpackGui(getConfig().getInt("backpack_size") * 9); new CommandRegistration(this).registerCommands(); @@ -113,6 +103,7 @@ Bukkit.getPluginManager().registerEvents(new MainGui(), this); Bukkit.getPluginManager().registerEvents(new SettingsGui(), this); Bukkit.getPluginManager().registerEvents(new ServerSettingsGui(), this); + Bukkit.getPluginManager().registerEvents(new OtherSettingsGui(), this); saveDefaultConfig(); reloadConfig(); @@ -154,9 +145,13 @@ @Override public void onDisable() { - this.backpack.saveInventoryToConfig(); + Bukkit.getBanList(BanList.Type.NAME).getBanEntries().forEach(b -> Bukkit.getBanList(BanList.Type.NAME).pardon(b.getTarget())); + if (!getConfig().getBoolean("World_Reset")) { + this.backpack.saveInventoryToConfig();getConfig().set("backpack_size", backpack.getSize() / 9); + } else { + this.backpack.clearConfig(); + } try { - this.BackpackConfig.save(this.BackpackConfigFile); this.RndDropsConfig.save(this.RndDropsConfigFile); } catch (IOException e) { e.printStackTrace(); @@ -175,14 +170,14 @@ } private void createBackpackConfig() { - this.BackpackConfigFile = new File(getDataFolder(), "backpack.yml"); - if (!this.BackpackConfigFile.exists()) { - this.BackpackConfigFile.getParentFile().mkdirs(); + this.backpackConfigFile = new File(getDataFolder(), "backpack.yml"); + if (!this.backpackConfigFile.exists()) { + this.backpackConfigFile.getParentFile().mkdirs(); saveResource("backpack.yml", false); } this.BackpackConfig = new YamlConfiguration(); try { - this.BackpackConfig.load(this.BackpackConfigFile); + this.BackpackConfig.load(this.backpackConfigFile); } catch (InvalidConfigurationException | IOException e) { e.printStackTrace(); } @@ -264,4 +259,12 @@ public void setWaitingForShutdown(boolean waitingForShutdown) { this.waitingForShutdown = waitingForShutdown; } + + public BackpackGui getBackpack() { + return backpack; + } + + public File getBackpackConfigFile() { + return backpackConfigFile; + } } diff --git a/src/main/java/de/fanta/challenges/Timer.java b/src/main/java/de/fanta/challenges/Timer.java index 103c574..d0d398c 100644 --- a/src/main/java/de/fanta/challenges/Timer.java +++ b/src/main/java/de/fanta/challenges/Timer.java @@ -113,12 +113,12 @@ private void sendTimerActionBar(ChatColor color) { for (Player p : Bukkit.getOnlinePlayers()) { - p.sendActionBar(ChatColor.BOLD + "" + formatTime(color)); + p.sendActionBar(formatTime(color)); } } public String formatTime(ChatColor color) { - return color + StringUtil.formatTimespan((long) time * 1000L, " Tag/e ", "", "", "", color + ":", ":", false, true); + return color + StringUtil.formatTimespan((long) time * 1000L, " Tag/e ", "", "", "", ":", ":", false, true); } public void reverseTimer() { diff --git a/src/main/java/de/fanta/challenges/commands/BackpackCommand.java b/src/main/java/de/fanta/challenges/commands/BackpackCommand.java index c3e33e2..e653ab4 100644 --- a/src/main/java/de/fanta/challenges/commands/BackpackCommand.java +++ b/src/main/java/de/fanta/challenges/commands/BackpackCommand.java @@ -22,9 +22,6 @@ this.plugin = plugin; } - static int size = Challenges.getPlugin().getConfig().getInt("backpack_size") * 9; - public static Inventory Backpack = Bukkit.createInventory(null, size, "§6Backpack"); - @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { if (!(sender instanceof Player)) { @@ -32,42 +29,7 @@ return true; } Player p = (Player) sender; - p.openInventory(Backpack); + plugin.getBackpack().open(p); return true; } - - public void clearConfig() { - for (String main_path : this.plugin.getBackpackConfig().getKeys(false)) { - this.plugin.getBackpackConfig().set(main_path, null); - } - } - - public void saveInventoryToConfig() { - clearConfig(); - for (int slot = 0; slot < Backpack.getSize(); slot++) { - ItemStack stack = Backpack.getItem(slot); - if (stack != null && stack.getType() != Material.AIR) { - this.plugin.getBackpackConfig().set(String.valueOf(slot), stack.serialize()); - } - } - } - - public void loadInventoryFromConfig() { - for (Map.Entry stringObjectEntry : this.plugin.getBackpackConfig().getValues(false).entrySet()) { - int slot; - try { - slot = Integer.parseInt((String) ((Map.Entry) stringObjectEntry).getKey()); - } catch (NumberFormatException var6) { - Bukkit.broadcastMessage("Fehler! Slot: " + ((Map.Entry) stringObjectEntry).getKey()); - continue; - } - if (slot >= Backpack.getSize()) { - Bukkit.broadcastMessage(slot + " befindet sich außerhalb des Inventars!"); - continue; - } - MemorySection memorySection = (MemorySection) ((Map.Entry) stringObjectEntry).getValue(); - ItemStack deserialized = ItemStack.deserialize(memorySection.getValues(false)); - Backpack.setItem(slot, deserialized); - } - } } diff --git a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java index 0a90cc2..a857a1e 100644 --- a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java +++ b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java @@ -41,6 +41,7 @@ CommandRouter challengesRouter = new CommandRouter(plugin.getCommand("challenges")); challengesRouter.addCommandMapping(new ChallengesCommand(plugin)); challengesRouter.addCommandMapping(new ChallengesHelpCommand(plugin), "help"); + challengesRouter.addCommandMapping(new KickCommand(plugin), "kick"); CommandRouter resetRouter = new CommandRouter(plugin.getCommand("reset")); @@ -48,7 +49,7 @@ resetRouter.addCommandMapping(new ResetConfirmCommand(plugin), "confirm"); CommandRouter backpackRouter = new CommandRouter(plugin.getCommand("backpack")); - backpackRouter.addCommandMapping(plugin.backpack); + backpackRouter.addCommandMapping(new BackpackCommand(plugin)); CommandRouter coordsRouter = new CommandRouter(plugin.getCommand("coords")); coordsRouter.addCommandMapping(new CoordsCommand(plugin)); diff --git a/src/main/java/de/fanta/challenges/commands/KickCommand.java b/src/main/java/de/fanta/challenges/commands/KickCommand.java new file mode 100644 index 0000000..19376bf --- /dev/null +++ b/src/main/java/de/fanta/challenges/commands/KickCommand.java @@ -0,0 +1,62 @@ +package de.fanta.challenges.commands; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.ChatUtil; +import de.iani.cubesideutils.bukkit.commands.SubCommand; +import de.iani.cubesideutils.commands.ArgsParser; +import org.bukkit.BanList; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class KickCommand extends SubCommand { + private final Challenges plugin; + + public KickCommand(Challenges plugin) { + this.plugin = plugin; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { + if (!(sender instanceof Player)) { + ChatUtil.sendErrorMessage(sender, "You are not a Player :>"); + return true; + } + if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { + if (args.hasNext()) { + String playerName = args.getNext(); + Player player = Bukkit.getPlayer(playerName); + + if (player == sender) { + ChatUtil.sendErrorMessage(sender,"Du kannst dich nicht selbst kicken"); + return true; + } + + if (player == null) { + ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!"); + } else { + player.performCommand("tt challenge"); + ChatUtil.sendWarningMessage(player, "Du wurdest vom Editor gekickt!"); + ChatUtil.sendWarningMessage(player, "Du kannst in einer Minute wieder Joinen"); + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + player.banPlayer("Du wurdest vom Editor gekickt"); + }, 5L); + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + Bukkit.getBanList(BanList.Type.NAME).pardon(player.getName()); + }, 20 * 60); + } + return true; + } + return false; + } else if (plugin.getCurrentEditor() != null) { + ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! Nur " + plugin.getCurrentEditor().getName() + " kann spieler kicken"); + return true; + } else { + ChatUtil.sendErrorMessage(sender, "Aktuell gibt es keinen Editor!"); + ChatUtil.sendErrorMessage(sender, "Um selbst Editor zu werden musst du dir im Freebuild VIP Kaufen!"); + return true; + } + } +} diff --git a/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java b/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java index 83741b6..803db2b 100644 --- a/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java +++ b/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java @@ -39,9 +39,7 @@ plugin.setWaitingForShutdown(true); - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { - Bukkit.shutdown(); - }, 60); + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, Bukkit::shutdown, 60); } else if (plugin.getCurrentEditor() != null) { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! Nur" + plugin.getCurrentEditor().getName() + " kann die Map zurücksetzen!"); return true; diff --git a/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java b/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java index 2e2ecec..d51b29f 100644 --- a/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java +++ b/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java @@ -3,7 +3,6 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.guis.settingsgui.MainGui; import de.fanta.challenges.utils.ChatUtil; -import me.wolfyscript.utilities.api.WolfyUtilities; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -25,8 +24,6 @@ if (args.length == 0) { if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { MainGui.createMainGUI(p); - //Todo REMOVE WOLFYUTILITIS - //WolfyUtilities.getAPI(plugin).getInventoryAPI().openCluster(p, "none"); return true; } else { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); diff --git a/src/main/java/de/fanta/challenges/guis/BackpackGui.java b/src/main/java/de/fanta/challenges/guis/BackpackGui.java new file mode 100644 index 0000000..e7e030b --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/BackpackGui.java @@ -0,0 +1,102 @@ +package de.fanta.challenges.guis; + +import de.fanta.challenges.Challenges; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.configuration.MemorySection; +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.io.IOException; +import java.util.Map; +import java.util.logging.Level; + +public class BackpackGui { + + public static final String TITLE = Challenges.GUIPREFIX + " >> Backpack"; + private Inventory backpack; + + public BackpackGui(int size) { + this.backpack = Bukkit.createInventory(null, size, TITLE); + } + + public void resize(int newSize) { + if (newSize == backpack.getSize()) { + return; + } + + Inventory newBackpack = Bukkit.createInventory(backpack.getHolder(), newSize, TITLE); + if (newSize > backpack.getSize()) { + for (int i = 0; i < backpack.getSize(); i++) { + newBackpack.setItem(i, backpack.getItem(i)); + } + } else if (newSize < backpack.getSize()) { + for (int i = 0; i < newSize; i++) { + newBackpack.setItem(i, backpack.getItem(i)); + } + + for (int i = newSize; i < backpack.getSize(); i++) { + ItemStack item = backpack.getItem(i); + if (item != null && item.getType() != Material.AIR) { + if (!newBackpack.addItem(item).isEmpty()) { + Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.DARK_RED + " Backpack kann nicht verkleinert werden. Zu wenig Platz!"); // TODO COLOR + return; + } + } + } + } + for (HumanEntity player : backpack.getViewers()) { + player.closeInventory(); + } + this.backpack = newBackpack; + } + + public void open(Player player) { + player.openInventory(this.backpack); + } + + public int getSize() { + return this.backpack.getSize(); + } + + public void clearConfig() { + Challenges.getPlugin().getBackpackConfigFile().delete(); + } + + public void saveInventoryToConfig() { + clearConfig(); + for (int slot = 0; slot < backpack.getSize(); slot++) { + ItemStack stack = backpack.getItem(slot); + if (stack != null && stack.getType() != Material.AIR) { + Challenges.getPlugin().getBackpackConfig().set(String.valueOf(slot), stack.serialize()); + } + } + try { + Challenges.getPlugin().getBackpackConfig().save(Challenges.getPlugin().getBackpackConfigFile()); + } catch (IOException e) { + Bukkit.getLogger().log(Level.SEVERE, "Could not save backpack config", e); + } + } + + public void loadInventoryFromConfig() { + for (Map.Entry stringObjectEntry : Challenges.getPlugin().getBackpackConfig().getValues(false).entrySet()) { + int slot; + try { + slot = Integer.parseInt(stringObjectEntry.getKey()); + } catch (NumberFormatException e) { + Bukkit.getLogger().log(Level.SEVERE, "Fehler! Slot: " + stringObjectEntry.getKey(), e); + continue; + } + if (slot >= backpack.getSize()) { + Bukkit.getLogger().log(Level.SEVERE, "Slot " + slot + " befindet sich außerhalb des Inventars!"); + continue; + } + MemorySection memorySection = (MemorySection) stringObjectEntry.getValue(); + ItemStack deserialized = ItemStack.deserialize(memorySection.getValues(false)); + backpack.setItem(slot, deserialized); + } + } +} diff --git a/src/main/java/de/fanta/challenges/guis/SettingsGui.java b/src/main/java/de/fanta/challenges/guis/SettingsGui.java index eaf72fc..cf51761 100644 --- a/src/main/java/de/fanta/challenges/guis/SettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/SettingsGui.java @@ -1,10 +1,9 @@ -package de.fanta.challenges.guis; +/*package de.fanta.challenges.guis; import de.fanta.challenges.Challenges; import java.util.ArrayList; import java.util.List; -import de.fanta.challenges.utils.guiutils.SettingButton; import me.wolfyscript.utilities.api.inventory.GuiUpdateEvent; import me.wolfyscript.utilities.api.inventory.GuiWindow; import me.wolfyscript.utilities.api.inventory.InventoryAPI; @@ -34,6 +33,7 @@ registerButton(new SettingButton("deathonsprint", Material.DIAMOND_BOOTS, "Tod bei Sprinten", ChatColor.RED + "Spieler Stirbt beim Sprinten")); registerButton(new SettingButton("deathonjump", Material.LEATHER_BOOTS, "Tod bei Springen", ChatColor.RED + "Spieler Stirbt beim Springen")); registerButton(new SettingButton("clinvdmg", Material.BARRIER, "Inv Löschen bei DMG",ChatColor.RED + "Löscht das Inventar von allen wenn ein Spieler schaden bekommt!")); + registerButton(new SettingButton("tntdeath", Material.TNT, "Sterben durch TnT",ChatColor.RED + "Tötet dich mit tnt bei der nicht Springen Schleichen und Jumpen Challenge")); registerButton(new SettingButton("xpdeath", Material.ENCHANTING_TABLE, "Sterben durch XP", ChatColor.RED + "Tötet dich wenn du XP einsammelst")); registerButton(new SettingButton("mlg.enabled", Material.WATER_BUCKET, "MLG", "an aus")); @@ -46,11 +46,8 @@ @EventHandler public void onUpdate(GuiUpdateEvent event) { - event.setButton(36, "sharedmg"); - event.setButton(38, "respawn"); - event.setButton(37, "onelife"); - event.setButton(39, "dmginchat"); - event.setButton(26, "tntdeath"); + + //Other event.setButton(46, "mlg.killall"); } @@ -63,4 +60,4 @@ public List getHelpInformation() { return new ArrayList<>(); } -} +}*/ diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/MainGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/MainGui.java index e84d8d8..6eaed8b 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/MainGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/MainGui.java @@ -19,13 +19,15 @@ public static final Inventory MAIN_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Settings"); private static final int CHALLENGES_INDEX = 10; - private static final int SERVER_SETTINGS_INDEX = 13; + private static final int OTHER_SETTINGS_INDEX = 13; + private static final int SERVER_SETTINGS_INDEX = 16; private static final int CLOSE_IDEX = 26; public static void createMainGUI(Player p) { MAIN_GUI.setItem(CHALLENGES_INDEX, GUIUtils.createGuiItem(Material.REPEATER, ChatColor.GREEN + "Challenges")); MAIN_GUI.setItem(CLOSE_IDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.RED + "Menü Verlassen!")); - MAIN_GUI.setItem(SERVER_SETTINGS_INDEX, GUIUtils.createGuiItem(Material.COMMAND_BLOCK, ChatColor.GREEN+ "Server Einstellungen")); + MAIN_GUI.setItem(SERVER_SETTINGS_INDEX, GUIUtils.createGuiItem(Material.COMMAND_BLOCK, ChatColor.GREEN + "Server Einstellungen")); + MAIN_GUI.setItem(OTHER_SETTINGS_INDEX, GUIUtils.createGuiItem(Material.COMPARATOR, ChatColor.GREEN + "Andere Einstellungen")); for (int i = 0; i < INVENTORY_SIZE; i++) { if (MAIN_GUI.getItem(i) == null || MAIN_GUI.getItem(i).getType() == Material.AIR) { MAIN_GUI.setItem(i, GUIUtils.EMPTY_ICON); @@ -49,6 +51,9 @@ case SERVER_SETTINGS_INDEX: ServerSettingsGui.createServerSettingsGUI(p); break; + case OTHER_SETTINGS_INDEX: + OtherSettingsGui.createOtherSettingsGUI(p); + break; } e.setCancelled(true); } diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java new file mode 100644 index 0000000..6855e4e --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/OtherSettingsGui.java @@ -0,0 +1,113 @@ +package de.fanta.challenges.guis.settingsgui; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.commands.BackpackCommand; +import de.fanta.challenges.utils.guiutils.GUIUtils; +import de.iani.cubesideutils.bukkit.items.CustomHeads; +import de.iani.cubesideutils.plugin.CubesideUtils; +import net.md_5.bungee.api.ChatColor; +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; + +public class OtherSettingsGui implements Listener { + + private static final Challenges plugin = Challenges.getPlugin(); + + public static final int INVENTORY_SIZE = 27; + private static final int BACK_INDEX = 18; + private static final int BACKPACK_INDEX = 10; + private static final int DMG_INCHAT_INDEX = 11; + private static final int TNT_DEATH_INDEX = 12; + private static final int BACKPACK_ADD_INDEX = 1; + private static final int BACKPACK_REMOVE_INDEX = 19; + + public static final Inventory OTHER_SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Other Settings"); + + private static final int CLOSE_IDEX = 26; + + public static void createOtherSettingsGUI(Player p) { + OTHER_SETTINGS_GUI.setItem(BACKPACK_INDEX, GUIUtils.createGuiItem(Material.LIME_SHULKER_BOX, ChatColor.GREEN + "Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6")); + if (plugin.getBackpack().getSize() < 6 * 9) { + OTHER_SETTINGS_GUI.setItem(BACKPACK_ADD_INDEX, CustomHeads.QUARTZ_ARROW_UP.getHead()); + } else { + OTHER_SETTINGS_GUI.setItem(BACKPACK_ADD_INDEX, GUIUtils.EMPTY_ICON); + } + if (plugin.getBackpack().getSize() > 9) { + OTHER_SETTINGS_GUI.setItem(BACKPACK_REMOVE_INDEX, CustomHeads.QUARTZ_ARROW_DOWN.getHead()); + } else { + OTHER_SETTINGS_GUI.setItem(BACKPACK_REMOVE_INDEX, GUIUtils.EMPTY_ICON); + } + if (plugin.getConfig().getBoolean("dmginchat")) { + OTHER_SETTINGS_GUI.setItem(DMG_INCHAT_INDEX, GUIUtils.createGuiItem(Material.PAPER, ChatColor.GREEN + "Schaden im Chat anzeigen aktiviert", true)); + } else { + OTHER_SETTINGS_GUI.setItem(DMG_INCHAT_INDEX, GUIUtils.createGuiItem(Material.PAPER, ChatColor.RED + "Schaden im Chat anzeigen deaktiviert")); + } + if (plugin.getConfig().getBoolean("tntdeath")) { + OTHER_SETTINGS_GUI.setItem(TNT_DEATH_INDEX, GUIUtils.createGuiItem(Material.TNT, ChatColor.GREEN + "Sterben durch TnT aktiviert", true, ChatColor.GREEN + "Tötet dich mit TnT bei der nicht Springen Schleichen und Jumpen Challenge")); + } else { + OTHER_SETTINGS_GUI.setItem(TNT_DEATH_INDEX, GUIUtils.createGuiItem(Material.TNT, ChatColor.RED + "Sterben durch TnT deaktiviert", ChatColor.RED + "Tötet dich mit TnT bei der nicht Springen Schleichen und Jumpen Challenge")); + } + + OTHER_SETTINGS_GUI.setItem(BACK_INDEX, GUIUtils.createGuiItem(Material.ARROW, ChatColor.GREEN + "Zurück")); + OTHER_SETTINGS_GUI.setItem(CLOSE_IDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.RED + "Menü Verlassen!")); + for (int i = 0; i < INVENTORY_SIZE; i++) { + if (OTHER_SETTINGS_GUI.getItem(i) == null || OTHER_SETTINGS_GUI.getItem(i).getType() == Material.AIR) { + OTHER_SETTINGS_GUI.setItem(i, GUIUtils.EMPTY_ICON); + } + } + p.openInventory(OTHER_SETTINGS_GUI); + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + int slot = e.getRawSlot(); + Player p = (Player) e.getWhoClicked(); + if (e.getInventory() == OTHER_SETTINGS_GUI) { + switch (slot) { + case BACKPACK_ADD_INDEX: + if (plugin.getBackpack().getSize() < 6 * 9) { + plugin.getBackpack().resize(plugin.getBackpack().getSize() + 9); + } + break; + case BACKPACK_REMOVE_INDEX: + if (plugin.getBackpack().getSize() > 9) { + plugin.getBackpack().resize(plugin.getBackpack().getSize() - 9); + } + break; + case DMG_INCHAT_INDEX: + if (plugin.getConfig().getBoolean("dmginchat")) { + GUIUtils.sendTitleToAll("Einstellungen", "Schaden im Chat anzeigen deaktiviert", ChatColor.RED); + GUIUtils.setConfig("dmginchat", false); + } else { + GUIUtils.sendTitleToAll("Einstellungen", "Schaden im Chat anzeigen aktiviert", ChatColor.GREEN); + GUIUtils.setConfig("dmginchat", true); + } + break; + case TNT_DEATH_INDEX: + if (plugin.getConfig().getBoolean("tntdeath")) { + GUIUtils.sendTitleToAll("Einstellungen", "Sterben durch TnT deaktiviert", ChatColor.RED); + GUIUtils.setConfig("tntdeath", false); + } else { + GUIUtils.sendTitleToAll("Einstellungen", "Sterben durch TnT aktiviert", ChatColor.GREEN); + GUIUtils.setConfig("tntdeath", true); + } + break; + } + createOtherSettingsGUI(p); + switch (slot) { + case BACK_INDEX: + MainGui.createMainGUI(p); + break; + case CLOSE_IDEX: + p.closeInventory(); + break; + } + e.setCancelled(true); + } + } +} \ No newline at end of file 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 b624991..bfdaeb8 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/ServerSettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/ServerSettingsGui.java @@ -5,6 +5,9 @@ import de.fanta.challenges.utils.guiutils.GUIUtils; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; +import org.bukkit.Difficulty; +import org.bukkit.GameMode; +import org.bukkit.GameRule; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -12,6 +15,8 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; +import javax.print.attribute.standard.MediaSize; + public class ServerSettingsGui implements Listener { private static final Challenges plugin = Challenges.getPlugin(); @@ -19,10 +24,53 @@ public static final int INVENTORY_SIZE = 27; public static final Inventory SERVER_SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Server Settings"); - private static final int CHALLENGES_INDEX = 10; + 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 ONE_LIFE_INDEX = 14; + private static final int RESPAWN_INDEX = 15; public static void createServerSettingsGUI(Player p) { - SERVER_SETTINGS_GUI.setItem(CHALLENGES_INDEX, GUIUtils.createGuiItem(Material.REPEATER, ChatColor.GREEN + "Challenges")); + if (plugin.getServer().getWorld("world").getDifficulty() == Difficulty.EASY) { + SERVER_SETTINGS_GUI.setItem(DIFFICULTY_INDEX, GUIUtils.createGuiItem(Material.IRON_SWORD, ChatColor.AQUA + "Schwierigkeitsgrad Leicht")); + } else if (plugin.getServer().getWorld("world").getDifficulty() == Difficulty.NORMAL) { + SERVER_SETTINGS_GUI.setItem(DIFFICULTY_INDEX, GUIUtils.createGuiItem(Material.DIAMOND_SWORD, ChatColor.RED + "Schwierigkeitsgrad Mittel")); + } else if (plugin.getServer().getWorld("world").getDifficulty() == Difficulty.HARD) { + SERVER_SETTINGS_GUI.setItem(DIFFICULTY_INDEX, GUIUtils.createGuiItem(Material.NETHERITE_SWORD, ChatColor.DARK_RED + "Schwierigkeitsgrad Schwer")); + } else if (plugin.getServer().getWorld("world").getDifficulty() == Difficulty.PEACEFUL) { + SERVER_SETTINGS_GUI.setItem(DIFFICULTY_INDEX, GUIUtils.createGuiItem(Material.POPPY, ChatColor.GREEN + "Schwierigkeitsgrad Friedlich")); + } + if (plugin.getServer().getWorld("world").getPVP()) { + SERVER_SETTINGS_GUI.setItem(PVP_INDEX, GUIUtils.createGuiItem(Material.WOODEN_SWORD, ChatColor.GREEN + "PVP aktiviert", true)); + } else { + SERVER_SETTINGS_GUI.setItem(PVP_INDEX, GUIUtils.createGuiItem(Material.WOODEN_SWORD, ChatColor.RED + "PVP deaktiviert")); + } + if (plugin.getConfig().getBoolean("onelife")) { + SERVER_SETTINGS_GUI.setItem(ONE_LIFE_INDEX, GUIUtils.createGuiItem(Material.SUNFLOWER, ChatColor.GREEN + "Ein Leben für alle aktiviert", true)); + } else { + SERVER_SETTINGS_GUI.setItem(ONE_LIFE_INDEX, GUIUtils.createGuiItem(Material.SUNFLOWER, ChatColor.RED + "Ein Leben für alle deaktiviert")); + } + if (plugin.getConfig().getBoolean("respawn")) { + SERVER_SETTINGS_GUI.setItem(RESPAWN_INDEX, GUIUtils.createGuiItem(Material.TOTEM_OF_UNDYING, ChatColor.GREEN + "Wiederbeleben aktiviert", true)); + } else { + SERVER_SETTINGS_GUI.setItem(RESPAWN_INDEX, GUIUtils.createGuiItem(Material.TOTEM_OF_UNDYING, ChatColor.RED + "Wiederbeleben deaktiviert")); + } + if (plugin.getServer().getWorld("world").getGameRuleValue(GameRule.KEEP_INVENTORY)) { + SERVER_SETTINGS_GUI.setItem(KEEP_INVENTORY_INDEX, GUIUtils.createGuiItem(Material.CHEST_MINECART,ChatColor.GREEN + "Keep Inventory aktiviert", true)); + } else { + SERVER_SETTINGS_GUI.setItem(KEEP_INVENTORY_INDEX, GUIUtils.createGuiItem(Material.CHEST_MINECART,ChatColor.RED + "Keep Inventory deaktiviert")); + } + if (plugin.getServer().getWorld("world").getGameRuleValue(GameRule.NATURAL_REGENERATION)) { + SERVER_SETTINGS_GUI.setItem(NATURAL_REGENERATION_INDEX, GUIUtils.createGuiItem(Material.GOLDEN_APPLE,ChatColor.GREEN + "Natürliche Regeneration aktiviert", true)); + } else { + SERVER_SETTINGS_GUI.setItem(NATURAL_REGENERATION_INDEX, GUIUtils.createGuiItem(Material.GOLDEN_APPLE,ChatColor.RED + "Natürliche Regeneration deaktiviert")); + } + + SERVER_SETTINGS_GUI.setItem(CLOSE_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.RED + "Menü Verlassen!")); + SERVER_SETTINGS_GUI.setItem(BACK_INDEX, GUIUtils.createGuiItem(Material.ARROW, ChatColor.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); @@ -37,8 +85,95 @@ Player p = (Player) e.getWhoClicked(); if (e.getInventory() == SERVER_SETTINGS_GUI) { switch (slot) { - case CHALLENGES_INDEX: - SettingsGui.createSettingsGUI(p); + case DIFFICULTY_INDEX: + if (plugin.getServer().getWorld("world").getDifficulty() == Difficulty.EASY) { + plugin.getServer().getWorld("world").setDifficulty(Difficulty.NORMAL); + plugin.getServer().getWorld("world_nether").setDifficulty(Difficulty.NORMAL); + plugin.getServer().getWorld("world_the_end").setDifficulty(Difficulty.NORMAL); + GUIUtils.sendTitleToAll("Server Einstellungen", "Schwierigkeitsgrad Mittel", ChatColor.RED); + } else if (plugin.getServer().getWorld("world").getDifficulty() == Difficulty.NORMAL) { + plugin.getServer().getWorld("world").setDifficulty(Difficulty.HARD); + plugin.getServer().getWorld("world_nether").setDifficulty(Difficulty.HARD); + plugin.getServer().getWorld("world_the_end").setDifficulty(Difficulty.HARD); + GUIUtils.sendTitleToAll("Server Einstellungen", "Schwierigkeitsgrad Schwer", ChatColor.DARK_RED); + } else if (plugin.getServer().getWorld("world").getDifficulty() == Difficulty.HARD) { + plugin.getServer().getWorld("world").setDifficulty(Difficulty.PEACEFUL); + plugin.getServer().getWorld("world_nether").setDifficulty(Difficulty.PEACEFUL); + plugin.getServer().getWorld("world_the_end").setDifficulty(Difficulty.PEACEFUL); + GUIUtils.sendTitleToAll("Server Einstellungen", "Schwierigkeitsgrad Friedlich", ChatColor.GREEN); + } else if (plugin.getServer().getWorld("world").getDifficulty() == Difficulty.PEACEFUL) { + plugin.getServer().getWorld("world").setDifficulty(Difficulty.EASY); + plugin.getServer().getWorld("world_nether").setDifficulty(Difficulty.EASY); + plugin.getServer().getWorld("world_the_end").setDifficulty(Difficulty.EASY); + GUIUtils.sendTitleToAll("Server Einstellungen", "Schwierigkeitsgrad Leicht", ChatColor.AQUA); + } + break; + case PVP_INDEX: + if (plugin.getServer().getWorld("world").getPVP()) { + plugin.getServer().getWorld("world").setPVP(false); + plugin.getServer().getWorld("world_nether").setPVP(false); + plugin.getServer().getWorld("world_the_end").setPVP(false); + GUIUtils.sendTitleToAll("Server Einstellungen", "PVP deaktiviert", ChatColor.RED); + } else { + plugin.getServer().getWorld("world").setPVP(true); + plugin.getServer().getWorld("world_nether").setPVP(true); + plugin.getServer().getWorld("world_the_end").setPVP(true); + GUIUtils.sendTitleToAll("Server Einstellungen", "PVP aktiviert", ChatColor.GREEN); + } + break; + case ONE_LIFE_INDEX: + if (plugin.getConfig().getBoolean("onelife")) { + GUIUtils.setConfig("onelife", false); + GUIUtils.sendTitleToAll("Server Einstellungen", "Ein Leben für alle deaktiviert", ChatColor.RED); + } else { + GUIUtils.setConfig("onelife", true); + GUIUtils.sendTitleToAll("Server Einstellungen", "Ein Leben für alle aktiviert", ChatColor.GREEN); + } + break; + case RESPAWN_INDEX: + if (plugin.getConfig().getBoolean("respawn")) { + GUIUtils.setConfig("respawn", false); + GUIUtils.sendTitleToAll("Server Einstellungen", "Wiederbeleben deaktiviert", ChatColor.RED); + } else { + GUIUtils.setConfig("respawn", true); + GUIUtils.sendTitleToAll("Server Einstellungen", "Wiederbeleben aktiviert", ChatColor.GREEN); + } + break; + case KEEP_INVENTORY_INDEX: + if (plugin.getServer().getWorld("world").getGameRuleValue(GameRule.KEEP_INVENTORY)) { + plugin.getServer().getWorld("world").setGameRule(GameRule.KEEP_INVENTORY, false); + plugin.getServer().getWorld("world_nether").setGameRule(GameRule.KEEP_INVENTORY, false); + plugin.getServer().getWorld("world_the_end").setGameRule(GameRule.KEEP_INVENTORY, false); + GUIUtils.sendTitleToAll("Server Einstellungen", "Keep Inventory aktiviert", ChatColor.GREEN); + } else { + plugin.getServer().getWorld("world").setGameRule(GameRule.KEEP_INVENTORY, true); + plugin.getServer().getWorld("world_nether").setGameRule(GameRule.KEEP_INVENTORY, true); + plugin.getServer().getWorld("world_the_end").setGameRule(GameRule.KEEP_INVENTORY, true); + GUIUtils.sendTitleToAll("Server Einstellungen", "Keep Inventory deaktiviert", ChatColor.RED); + } + break; + case NATURAL_REGENERATION_INDEX: + if (plugin.getServer().getWorld("world").getGameRuleValue(GameRule.NATURAL_REGENERATION)) { + plugin.getServer().getWorld("world").setGameRule(GameRule.NATURAL_REGENERATION, false); + plugin.getServer().getWorld("world_nether").setGameRule(GameRule.NATURAL_REGENERATION, false); + plugin.getServer().getWorld("world_the_end").setGameRule(GameRule.NATURAL_REGENERATION, false); + GUIUtils.sendTitleToAll("Server Einstellungen", "Natürliche Regeneration aktiviert", ChatColor.GREEN); + } else { + plugin.getServer().getWorld("world").setGameRule(GameRule.NATURAL_REGENERATION, true); + plugin.getServer().getWorld("world_nether").setGameRule(GameRule.NATURAL_REGENERATION, true); + plugin.getServer().getWorld("world_the_end").setGameRule(GameRule.NATURAL_REGENERATION, true); + GUIUtils.sendTitleToAll("Server Einstellungen", "Natürliche Regeneration deaktiviert", ChatColor.RED); + } + break; + } + createServerSettingsGUI(p); + + switch (slot) { + case BACK_INDEX: + MainGui.createMainGUI(p); + break; + case CLOSE_INDEX: + p.closeInventory(); break; } e.setCancelled(true); diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java index b74d8f7..4083591 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java @@ -17,7 +17,7 @@ private static final Challenges plugin = Challenges.getPlugin(); public static final int INVENTORY_SIZE = 54; - public static final Inventory SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Settings"); + public static final Inventory SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Challenges"); private static final int CRAFTING_TABLE_INDEX = 0; private static final int TRADING_INDEX = 9; @@ -34,6 +34,7 @@ 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 DMG_ON_SNEAK_INDEX = 43; private static final int DMG_ON_SNEAK_ADD_INDEX = 34; @@ -100,6 +101,11 @@ } else { SETTINGS_GUI.setItem(MLG_INDEX, GUIUtils.createGuiItem(Material.WATER_BUCKET, ChatColor.RED + "MLG deaktiviert")); } + if (plugin.getConfig().getBoolean("sharedmg")) { + SETTINGS_GUI.setItem(SHARE_DMG_INDEX, GUIUtils.createGuiItem(Material.MELON_SLICE, ChatColor.GREEN + "Geteielter Schade aktiviert", true)); + } else { + SETTINGS_GUI.setItem(SHARE_DMG_INDEX, GUIUtils.createGuiItem(Material.MELON_SLICE, ChatColor.RED + "Geteielter Schade deaktiviert")); + } SETTINGS_GUI.setItem(SHUFFLE_RANDOM_DROP_INDEX, GUIUtils.createGuiItem(Material.CHORUS_FLOWER, ChatColor.GREEN + "Zufällige Drops neu mischen")); SETTINGS_GUI.setItem(CLOSE_GUI_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.RED + "Menü Verlassen!")); SETTINGS_GUI.setItem(BACK_BUTTON_INDEX, GUIUtils.createGuiItem(Material.ARROW, ChatColor.GREEN + "Zurück")); @@ -231,6 +237,15 @@ GUIUtils.setConfig("sneakdmg", plugin.getConfig().getDouble("sneakdmg") - 0.5); } break; + case SHARE_DMG_INDEX: + if (plugin.getConfig().getBoolean("sharedmg")) { + GUIUtils.setConfig("sharedmg", false); + GUIUtils.sendTitleToAll("Challenge", "Geteielter Schaden deaktieviert", ChatColor.RED); + } else { + GUIUtils.setConfig("sharedmg", true); + GUIUtils.sendTitleToAll("Challenge", "Geteielter Schaden aktieviert", ChatColor.GREEN); + } + break; default: break; @@ -246,6 +261,4 @@ } e.setCancelled(true); } -} - - +} \ No newline at end of file diff --git a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java index 5b97fa6..b0f8217 100644 --- a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java +++ b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java @@ -33,7 +33,7 @@ } Player p = e.getPlayer(); - Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatColor.of("#3D98DC") + p.getName() + ChatColor.of("#1FFF00") + " hat die Lobby betreten! " + ChatColor.of("#E4E737") + "[" + Bukkit.getServer().getOnlinePlayers().size() + "/" + Bukkit.getServer().getMaxPlayers() + "]"); + Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatColor.of("#3D98DC") + p.getName() + ChatUtil.NORMAL + " hat die Lobby betreten! " + ChatColor.of("#E4E737") + "[" + Bukkit.getServer().getOnlinePlayers().size() + "/" + Bukkit.getServer().getMaxPlayers() + "]"); e.setJoinMessage(null); if (plugin.getConfig().getBoolean("sharedmg")) { int rnd = new Random().nextInt(Bukkit.getOnlinePlayers().size()); diff --git a/src/main/java/de/fanta/challenges/utils/ChatUtil.java b/src/main/java/de/fanta/challenges/utils/ChatUtil.java index 5eaeee7..45339e8 100644 --- a/src/main/java/de/fanta/challenges/utils/ChatUtil.java +++ b/src/main/java/de/fanta/challenges/utils/ChatUtil.java @@ -3,12 +3,14 @@ import de.fanta.challenges.Challenges; import de.iani.cubesideutils.bukkit.ChatUtilBukkit; import net.md_5.bungee.api.ChatColor; -import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; public class ChatUtil { + public static final ChatColor NORMAL = ChatColor.of("#1FFF00"); + public static final ChatColor WARNING = ChatColor.of("#ffe100"); + public static final ChatColor ERROR = ChatColor.of("#a30202"); + private ChatUtil() { // prevent instances } @@ -18,14 +20,14 @@ } public static void sendNormalMessage(CommandSender sender, Object message, Object... messageParts) { - sendMessage(sender, ChatColor.of("#1FFF00").toString(), message, messageParts); + sendMessage(sender, NORMAL.toString(), message, messageParts); } public static void sendWarningMessage(CommandSender sender, Object message, Object... messageParts) { - sendMessage(sender, ChatColor.of("#ffe100").toString(), message, messageParts); + sendMessage(sender, WARNING.toString(), message, messageParts); } public static void sendErrorMessage(CommandSender sender, Object message, Object... messageParts) { - sendMessage(sender, ChatColor.of("#a30202").toString(), message, messageParts); + sendMessage(sender, ERROR.toString(), message, messageParts); } } diff --git a/src/main/java/de/fanta/challenges/utils/guiutils/InventoryHandler.java b/src/main/java/de/fanta/challenges/utils/guiutils/InventoryHandler.java deleted file mode 100644 index a104731..0000000 --- a/src/main/java/de/fanta/challenges/utils/guiutils/InventoryHandler.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.fanta.challenges.utils.guiutils; - -import de.fanta.challenges.Challenges; -import de.fanta.challenges.guis.SettingsGui; -import me.wolfyscript.utilities.api.WolfyUtilities; -import me.wolfyscript.utilities.api.inventory.GuiCluster; -import me.wolfyscript.utilities.api.inventory.InventoryAPI; - -public class InventoryHandler { - - private Challenges challenges; - private WolfyUtilities wolfyUtilities; - private InventoryAPI inventoryAPI; - - public InventoryHandler(Challenges challenges){ - this.challenges = challenges; - this.wolfyUtilities = WolfyUtilities.getAPI(challenges); - this.inventoryAPI = wolfyUtilities.getInventoryAPI(); - } - - public void init(){ - GuiCluster mainCluster = inventoryAPI.getOrRegisterGuiCluster("none"); - mainCluster.registerGuiWindow(new SettingsGui(inventoryAPI)); - mainCluster.setMainmenu("settings"); - - } -} diff --git a/src/main/java/de/fanta/challenges/utils/guiutils/SettingButton.java b/src/main/java/de/fanta/challenges/utils/guiutils/SettingButton.java deleted file mode 100644 index e6b11db..0000000 --- a/src/main/java/de/fanta/challenges/utils/guiutils/SettingButton.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.fanta.challenges.utils.guiutils; - -import de.fanta.challenges.Challenges; -import me.wolfyscript.utilities.api.inventory.GuiHandler; -import me.wolfyscript.utilities.api.inventory.button.ButtonActionRender; -import me.wolfyscript.utilities.api.inventory.button.ButtonState; -import me.wolfyscript.utilities.api.inventory.button.buttons.ActionButton; -import me.wolfyscript.utilities.api.utils.item_builder.ItemBuilder; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; - -import java.util.Arrays; -import java.util.HashMap; - -public class SettingButton extends ActionButton { - - public SettingButton(String id, Material material, String displayName, String... lore) { - super(id, new ButtonState(material, displayName, new String[0], lore, new ButtonActionRender() { - @Override - public boolean run(GuiHandler guiHandler, Player player, Inventory inventory, int i, InventoryClickEvent inventoryClickEvent) { - Challenges challenges = Challenges.getPlugin(); - challenges.getConfig().set(id, !(challenges.getConfig().getBoolean(id))); - return true; - } - - @Override - public ItemStack render(HashMap hashMap, GuiHandler guiHandler, Player player, ItemStack itemStack, int i, boolean b) { - ItemBuilder itemBuilder = new ItemBuilder(material).setDisplayName(ChatColor.GOLD + displayName).setLore(Arrays.asList(lore)); - return Challenges.getPlugin().getConfig().getBoolean(id) ? itemBuilder.addUnsafeEnchantment(Enchantment.DURABILITY, 1).addItemFlags(ItemFlag.HIDE_ENCHANTS).create() : itemBuilder.create(); - } - })); - } -} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 7b8ed56..27977a6 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,7 +4,7 @@ load: STARTUP api-version: 1.16 author: ${project.author} -depend: [CubesideUtils, WolfyUtilities] +depend: [CubesideUtils] commands: hp: description: Verwalte die HP eines Spielers @@ -40,4 +40,7 @@ leave: description: Spiel verlassen usage: Use /leave - aliases: [l] \ No newline at end of file + aliases: [l] + kick: + description: Spieler Kicken + usage: Use /kick \ No newline at end of file