diff --git a/.gitignore b/.gitignore index b83d222..4a9e9ef 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ /target/ +/bin/ +.gitignore +.classpath +.project diff --git a/bin/pom.xml b/bin/pom.xml index 04b6cde..678c043 100644 --- a/bin/pom.xml +++ b/bin/pom.xml @@ -50,6 +50,10 @@ destroystokyo-repo https://repo.destroystokyo.com/repository/maven-public/ + + brokkonaut + https://www.iani.de/nexus/content/groups/public + diff --git a/pom.xml b/pom.xml index d268225..26bca48 100644 --- a/pom.xml +++ b/pom.xml @@ -1,53 +1,104 @@ - 4.0.0 - net.brennholz.challenges - Challenges - 2.0 - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + net.brennholz.challenges + Challenges + 2.0 + UTF-8 UTF-8 UTF-8 UTF-8 - - - - destroystokyo-repo - https://repo.destroystokyo.com/repository/maven-public/ - - - - - com.destroystokyo.paper - paper-api - 1.15.2-R0.1-SNAPSHOT - provided - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - ${project.artifactId} - - - - maven-compiler-plugin - 3.8.1 - + + + + destroystokyo-repo + https://repo.destroystokyo.com/repository/maven-public/ + + + brokkonaut + https://www.iani.de/nexus/content/groups/public + + + + + com.destroystokyo.paper + paper-api + 1.15.2-R0.1-SNAPSHOT + provided + + + de.iani.cubeside + CubesideUtils + 1.14-SNAPSHOT + + + io.github.wolfyscript + wolfyutilities + 1.5.6.17 + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + ${project.artifactId} + + + + maven-compiler-plugin + 3.8.1 + 11 - - - - - - src/main/resources - true - - - + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.3 + + + package + + shade + + + + + de.iani.cubesideutils + net.brennholz.challenges.libs.de.iani.cubesideutils + + + me.wolfyscript.utilities + net.brennholz.challenges.libs.me.wolfyscript.utilities + + + + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + src/main/resources + true + + + diff --git a/src/main/java/net/brennholz/challenges/Backpack.java b/src/main/java/net/brennholz/challenges/Backpack.java index 3f3a23b..2b2287a 100644 --- a/src/main/java/net/brennholz/challenges/Backpack.java +++ b/src/main/java/net/brennholz/challenges/Backpack.java @@ -3,6 +3,7 @@ import java.util.Iterator; import java.util.Map; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -25,10 +26,10 @@ if (p.hasPermission("challenges.backpack")) { p.openInventory(Backpack); } else { - p.sendMessage("hast hierfkeine Berechtigung"); + ChatUtil.sendErrorMessage(p, "Keine Berechtigung!"); } } else { - sender.sendMessage("Konsolenbefehl!"); + ChatUtil.sendErrorMessage(sender, "You are not a Player :>"); } return true; } diff --git a/src/main/java/net/brennholz/challenges/Challenges.java b/src/main/java/net/brennholz/challenges/Challenges.java index edca76e..58bc09c 100644 --- a/src/main/java/net/brennholz/challenges/Challenges.java +++ b/src/main/java/net/brennholz/challenges/Challenges.java @@ -1,5 +1,6 @@ package net.brennholz.challenges; +import me.wolfyscript.utilities.api.WolfyUtilities; import net.brennholz.commands.Challenges_Command; import net.brennholz.commands.Coords_Command; import net.brennholz.commands.HP_Command; @@ -17,7 +18,10 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; + +import net.brennholz.gui.InventoryHandler; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.configuration.file.FileConfiguration; @@ -54,15 +58,28 @@ public static Inventory SettingsGUI = Bukkit.createInventory(null, 45, "§6Settings"); public static String GUIName = "§6Settings"; + + private WolfyUtilities wolfyUtilities; + private InventoryHandler inventoryHandler; public static Challenges getplugin() { return plugin; } + + public static final String PREFIX = ChatColor.BLUE + "[" + ChatColor.GREEN + "Challenge" + ChatColor.BLUE + "]"; public void onEnable() { plugin = this; + wolfyUtilities = WolfyUtilities.getOrCreateAPI(this); + wolfyUtilities.setCHAT_PREFIX(PREFIX); + wolfyUtilities.setCONSOLE_PREFIX(PREFIX); + this.Timer = new Timer_Command(); this.backpack = new Backpack(); this.rndDrops = new RandomDrops(); + + this.inventoryHandler = new InventoryHandler(this); + this.inventoryHandler.init(); + getCommand("hp").setExecutor(new HP_Command()); getCommand("settings").setExecutor(new Settings_Command()); getCommand("coords").setExecutor(new Coords_Command()); @@ -174,6 +191,7 @@ public void createGUI(Player p) { SettingsGUI.setItem(0, addGUIItem(Material.CRAFTING_TABLE, "§6Erlaube Crafting")); + SettingsGUI.setItem(1, addGUIItem(Material.EMERALD, "§6Erlaube Handeln")); SettingsGUI.setItem(2, addGUIItem(Material.BONE, "§6Tod bei Fallschaden", "§cSpieler stirbt bei Fallschaden")); SettingsGUI.setItem(3, addGUIItem(Material.MAGMA_BLOCK, "§6Schaden bei Schleichen","§cSpieler erhält §6" + getConfig().getInt("sneakdmg") + " §cSchaden bei Schleichen")); @@ -185,7 +203,6 @@ SettingsGUI.setItem(18, addGUIItem(Material.DIAMOND_BOOTS, "§6Tod bei Sprinten", "§cSpieler Stirbt beim Sprinten")); SettingsGUI.setItem(19, addGUIItem(Material.LEATHER_BOOTS, "§6Tod bei Springen", "§cSpieler Stirbt beim Springen")); SettingsGUI.setItem(20, addGUIItem(Material.BARRIER, "§6Inv Löschen bei DMG","§cLöscht das Inventar von allen wenn ein Spieler schaden bekommt!")); - SettingsGUI.setItem(26, addGUIItem(Material.TNT, "§6Sterben durch TnT","§cTötet dich mit tnt bei der nicht Springen Schleichen und Jumpen Challenge")); SettingsGUI.setItem(36, addGUIItem(Material.CHEST, "§6KeepInventory", "§cStirbst du, beh§lst du dein Inventar")); diff --git a/src/main/java/net/brennholz/challenges/ChatUtil.java b/src/main/java/net/brennholz/challenges/ChatUtil.java new file mode 100644 index 0000000..2e60a5b --- /dev/null +++ b/src/main/java/net/brennholz/challenges/ChatUtil.java @@ -0,0 +1,28 @@ +package net.brennholz.challenges; + +import net.md_5.bungee.api.ChatColor; +import org.bukkit.command.CommandSender; + +public class ChatUtil { + + private ChatUtil() { + // prevent instances + } + + public static void sendMessage(CommandSender sender, String colors, Object message, Object... messageParts) { + de.iani.cubesideutils.ChatUtil.sendMessage(sender, Challenges.PREFIX, colors, message, messageParts); + } + + public static void sendNormalMessage(CommandSender sender, Object message, Object... messageParts) { + sendMessage(sender, ChatColor.GREEN.toString(), message, messageParts); + } + + public static void sendWarningMessage(CommandSender sender, Object message, Object... messageParts) { + sendMessage(sender, ChatColor.GOLD.toString(), message, messageParts); + } + + public static void sendErrorMessage(CommandSender sender, Object message, Object... messageParts) { + sendMessage(sender, ChatColor.RED.toString(), message, messageParts); + } + +} diff --git a/src/main/java/net/brennholz/commands/Challenges_Command.java b/src/main/java/net/brennholz/commands/Challenges_Command.java index 9b3f5a8..507646f 100644 --- a/src/main/java/net/brennholz/commands/Challenges_Command.java +++ b/src/main/java/net/brennholz/commands/Challenges_Command.java @@ -2,6 +2,7 @@ +import net.brennholz.challenges.ChatUtil; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -11,17 +12,17 @@ @Override public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] args) { if (sender.hasPermission("challenges.challenges")) { - sender.sendMessage("§6Challenges Ver 1.9 by Brennholz3000"); - sender.sendMessage("§6Verfügbare Befehle:"); - sender.sendMessage("§c/HP §4- §6Verwalte die HP einzelner Spieler"); - sender.sendMessage("§c/Coords §4- §6Teile oder speichere Coordinaten"); - sender.sendMessage("§c/Settings §4- §6Verwalte die Challenges Einstellungen"); - sender.sendMessage("§c/Timer §4- §6Verwalte den Timer"); - sender.sendMessage("§c/Revive §4- §6Wiederbelebe Spieler"); - sender.sendMessage("§c/Backpack §6| §c/bp §4- §6öffne das Backpack"); - sender.sendMessage("§c/Reset §4- §6Generiert eine neue Welt, setzt den Timer zurück und löscht gespeicherte Positionen"); + ChatUtil.sendNormalMessage(sender, "Challenges Ver 1.9 by Brennholz3000"); + ChatUtil.sendNormalMessage(sender, "Verfügbare Befehle:" ); + ChatUtil.sendNormalMessage(sender, "/HP - Verwalte die HP einzelner Spieler"); + ChatUtil.sendNormalMessage(sender, "/Coords - Teile oder speichere Coordinaten"); + ChatUtil.sendNormalMessage(sender, "/Settings - Verwalte die Challenges Einstellungen"); + ChatUtil.sendNormalMessage(sender, "/Timer - Verwalte den Timer"); + ChatUtil.sendNormalMessage(sender, "/Revive - Wiederbelebe Spieler"); + ChatUtil.sendNormalMessage(sender, "/Backpack | /bp §4- §6öffne das Backpack"); + ChatUtil.sendNormalMessage(sender, "/Reset - Generiert eine neue Welt, setzt den Timer zurück und löscht gespeicherte Positionen"); } else - sender.sendMessage("§cDu hast hierfür keine Berechtigung"); + ChatUtil.sendErrorMessage(sender, "Keine Berechtigung!"); return true; } } diff --git a/src/main/java/net/brennholz/commands/Coords_Command.java b/src/main/java/net/brennholz/commands/Coords_Command.java index 0d216f0..604ef67 100644 --- a/src/main/java/net/brennholz/commands/Coords_Command.java +++ b/src/main/java/net/brennholz/commands/Coords_Command.java @@ -4,6 +4,7 @@ import java.util.ArrayList; +import net.brennholz.challenges.ChatUtil; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; @@ -34,37 +35,37 @@ if (p.hasPermission("challenges.coords.view")) { createMainGUI(p); } else - p.sendMessage("§cDu hast hierfür keine Berechtigung"); + ChatUtil.sendErrorMessage(p, "Keine Berechtigung!"); } else if (args.length == 1) { if (args[0].equalsIgnoreCase("share")) { if (p.hasPermission("challenges.coords.share")) { - chl.getServer().broadcastMessage("§c" + p.getName() + " §6ist bei §c" + p.getLocation().getBlockX() + " " + p.getLocation().getBlockY() + " " + p.getLocation().getBlockZ() + " §6in Welt §6" + p.getWorld().getName()); + Bukkit.broadcastMessage("§c" + p.getName() + " §6ist bei §c" + p.getLocation().getBlockX() + " " + p.getLocation().getBlockY() + " " + p.getLocation().getBlockZ() + " §6in Welt §6" + p.getWorld().getName()); } else - p.sendMessage("§cDu hast hierfür keine Berechtigung"); + ChatUtil.sendErrorMessage(p, "Keine Berechtigung!"); } else if (args[0].equalsIgnoreCase("get")) { if (p.hasPermission("challenges.coords.get")) { - p.sendMessage("§6Verfügbare Positionen:"); + ChatUtil.sendNormalMessage(p, "Verfügbare Positionen:"); for (String key : chl.getConfig().getConfigurationSection("Saved_Locations").getKeys(false)) { - p.sendMessage("§c" + key); + ChatUtil.sendNormalMessage(p, key); } } else - p.sendMessage("§cDu hast hierfür keine Berechtigung"); + ChatUtil.sendErrorMessage(p, "Keine Berechtigung!"); } else - p.sendMessage("§cBenutze: /coords share/save/get/delete [Name]"); + ChatUtil.sendWarningMessage(p, "Benutze: /coords share/save/get/delete [Name]"); } else if (args.length >= 2) { if (args[0].equalsIgnoreCase("save")) { if (p.hasPermission("challenges.coords.save")) { if (!chl.getConfig().contains("Saved_Locations." + args[1])) { - chl.getServer().broadcastMessage("§7| §aPosition §8>> §2" + p.getName() + " §7- " + args[1] + " §7[§2" + p.getLocation().getBlockX() + "§7/§2" + p.getLocation().getBlockY() + "§7/§2" + p.getLocation().getBlockZ() + "§7]"); + Bukkit.broadcastMessage("§7| §aPosition §8>> §2" + p.getName() + " §7- " + args[1] + " §7[§2" + p.getLocation().getBlockX() + "§7/§2" + p.getLocation().getBlockY() + "§7/§2" + p.getLocation().getBlockZ() + "§7]"); chl.getConfig().set("Saved_Locations." + args[1] + ".World", p.getWorld().getName()); chl.getConfig().set("Saved_Locations." + args[1] + ".BlockX", p.getLocation().getBlockX()); chl.getConfig().set("Saved_Locations." + args[1] + ".BlockY", p.getLocation().getBlockY()); chl.getConfig().set("Saved_Locations." + args[1] + ".BlockZ", p.getLocation().getBlockZ()); chl.saveConfig(); } else - p.sendMessage("§cDiese Position existiert bereits! Benutze einen anderen Namen oder lösche die alte zuerst mit /coords delete " + args[1]); + ChatUtil.sendWarningMessage(p, "Diese Position existiert bereits! Benutze einen anderen Namen oder lösche die alte zuerst mit /coords delete " + args[1]); } else - p.sendMessage("§cDu hast hierfür keine Berechtigung"); + ChatUtil.sendErrorMessage(p, "Keine Berechtigung!"); } else if (args[0].equalsIgnoreCase("get")) { if (p.hasPermission("challenges.coords.get")) { if (chl.getConfig().contains("Saved_Locations." + args[1])) { @@ -72,25 +73,25 @@ String x = chl.getConfig().getString("Saved_Locations." + args[1] + ".BlockX"); String y = chl.getConfig().getString("Saved_Locations." + args[1] + ".BlockY"); String z = chl.getConfig().getString("Saved_Locations." + args[1] + ".BlockZ"); - p.sendMessage("§7| §aPosition §8>> §2" + p.getName() + " §7- " + args[1] + " §7[§2" + x + "§7/§2" + y + "§7/§2" + z + " " + w + "§7]"); + ChatUtil.sendNormalMessage(p, "§aPosition §8>> §2" + p.getName() + " §7- " + args[1] + " §7[§2" + x + "§7/§2" + y + "§7/§2" + z + " " + w + "§7]"); } else - p.sendMessage("§cDiese Position existiert nicht!"); + ChatUtil.sendWarningMessage(p, "§cDiese Position existiert nicht!"); } else - p.sendMessage("§cDu hast hierfür keine Berechtigung"); + ChatUtil.sendErrorMessage(p, "Keine Berechtigung!"); } else if (args[0].equalsIgnoreCase("delete")) { if (p.hasPermission("challenges.coords.delete")) { if (chl.getConfig().contains("Saved_Locations." + args[1])) { createDeleteGUI(p, args[1]); p.openInventory(CoordsDeleteGUI); } else - p.sendMessage("§cDiese Position existiert nicht!"); + ChatUtil.sendWarningMessage(p, "Diese Position existiert nicht!"); } else - p.sendMessage("§cDu hast hierfür keine Berechtigung"); + ChatUtil.sendErrorMessage(p, "Keine Berechtigung!"); } else - p.sendMessage("§cBenutze: /coords share/save/get/delete [Name]"); + ChatUtil.sendWarningMessage(p, "Benutze: /coords share/save/get/delete [Name]"); } } else - sender.sendMessage("§cKein Konsolenbefehl!"); + ChatUtil.sendErrorMessage(sender, "You are not a Player :>"); return true; } diff --git a/src/main/java/net/brennholz/commands/HP_Command.java b/src/main/java/net/brennholz/commands/HP_Command.java index 8fde042..d0ce104 100644 --- a/src/main/java/net/brennholz/commands/HP_Command.java +++ b/src/main/java/net/brennholz/commands/HP_Command.java @@ -2,6 +2,7 @@ +import net.brennholz.challenges.ChatUtil; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; @@ -22,15 +23,15 @@ pp.setMaxHealth(Double.parseDouble(args[1])); pp.setHealth(pp.getMaxHealth()); } - sender.sendMessage("§6Du hast die maximalen HP auf §c" + args[1] + " §6gesetzt!"); + ChatUtil.sendNormalMessage(sender, "Du hast die maximalen HP auf " + args[1] + " gesetzt!"); } } else if (args[0].equalsIgnoreCase("get")) { OfflinePlayer other = (Bukkit.getServer().getOfflinePlayer(args[1])); if (other.isOnline()) { Player p = (Player) other; - sender.sendMessage("§6" + p.getName() + " §ebesitzt derzeit §6" + p.getHealth() + "HP§e!"); + ChatUtil.sendNormalMessage(p, p.getName() + " besitzt derzeit " + p.getHealth() + "HP!"); } else - sender.sendMessage("§cDieser Spieler ist nicht online!"); + ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!"); } else if (args.length >= 3) { OfflinePlayer other = (Bukkit.getServer().getOfflinePlayer(args[1])); if (other.isOnline()) { @@ -40,58 +41,48 @@ if (args[0].equalsIgnoreCase("add")) { if (!(finaladdhp > p.getMaxHealth()) && !(finaladdhp < 0)) { p.setHealth(finaladdhp); - p.sendMessage("§aDu wurdest von §b" + sender.getName() + " §aum §c" + args[2] - + "HP §ageheilt!"); - sender.sendMessage( - "§aDu hast §b" + p.getName() + " §aum §c" + args[2] + "HP §ageheilt!"); + ChatUtil.sendNormalMessage(p, "Du wurdest von " + sender.getName() + " um " + args[2] + "HP geheilt!"); } else - sender.sendMessage("§cUnm§gliche Operation"); + ChatUtil.sendErrorMessage(sender, "Operation nicht möglich!"); } if (args[0].equalsIgnoreCase("remove")) { if (!(finalremhp > p.getMaxHealth()) && !(finalremhp < 0)) { p.setHealth(finalremhp); - p.sendMessage("§4" + sender.getName() + " §chat dir §4" + args[2] + "HP §centfernt!"); - sender.sendMessage("§cDu hast §4" + p.getName() + " " + args[2] + "HP §centfernt!"); + ChatUtil.sendNormalMessage(p, sender.getName() + " hat dir " + args[2] + "HP §centfernt!"); + ChatUtil.sendNormalMessage(sender, "Du hast " + p.getName() + " " + args[2] + "HP §centfernt!"); } else - sender.sendMessage("§cUnmögliche Operation!"); + ChatUtil.sendErrorMessage(sender, "Operation nicht möglich!"); } if (args[0].equalsIgnoreCase("set")) { if (!(Double.parseDouble(args[2]) > p.getMaxHealth()) && !(Double.parseDouble(args[2]) < 0)) { p.setHealth(Double.parseDouble(args[2])); - p.sendMessage( - "§6" + sender.getName() + " §ehat deine HP auf §6" + args[2] + " §egesetzt!"); - sender.sendMessage("§eDu hast die HP von §6" + p.getName() + " §eauf §6" + args[2] - + " §egesetzt!"); + ChatUtil.sendNormalMessage(p, sender.getName() + " hat deine HP auf " + args[2] + " gesetzt!"); + ChatUtil.sendNormalMessage(sender, "Du hast die HP von " + p.getName() + " §eauf " + args[2] + " gesetzt!"); } else - sender.sendMessage("§cUnmögliche Operation"); + ChatUtil.sendErrorMessage(sender, "Operation nicht möglich!"); } } else - sender.sendMessage("§cDieser Spieler ist nicht online!"); + ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!"); } else { - sender.sendMessage("§c~~~~~ §6HP command §c~~~~~"); - sender.sendMessage("§c/HP Get §4- §6Erhalte die aktuelen HP eines Spielers"); - sender.sendMessage( - "§c/HP Add §4- §6Füge einem Spieler die angegebene Zahl an Herzen hinzu"); - sender.sendMessage( - "§c/HP Remove §4- §6Entferne einem Spieler die angegebene Zahl an Herzen"); - sender.sendMessage( - "§c/HP Set §4- §6Setze die Herzen eines Spieler auf die angegebene Zahl"); - sender.sendMessage("§c/HP Max §4- §6Setze die maximalen HP aller Spieler"); + ChatUtil.sendNormalMessage(sender,"~~~~~ HP command ~~~~~"); + ChatUtil.sendNormalMessage(sender,"/HP Get - Erhalte die aktuelen HP eines Spielers"); + ChatUtil.sendNormalMessage(sender,"/HP Add - Füge einem Spieler die angegebene Zahl an Herzen hinzu"); + ChatUtil.sendNormalMessage(sender,"/HP Remove - §6Entferne einem Spieler die angegebene Zahl an Herzen"); + ChatUtil.sendNormalMessage(sender,"/HP Set - Setze die Herzen eines Spieler auf die angegebene Zahl"); + ChatUtil.sendNormalMessage(sender,"/HP Max - Setze die maximalen HP aller Spieler"); + } } else { - sender.sendMessage("§c~~~~~ §6HP command §c~~~~~"); - sender.sendMessage("§c/HP Get §4- §6Erhalte die aktuelen HP eines Spielers"); - sender.sendMessage( - "§c/HP Add §4- §6Füge einem Spieler die angegebene Zahl an Herzen hinzu"); - sender.sendMessage( - "§c/HP Remove §4- §6Entferne einem Spieler die angegebene Zahl an Herzen"); - sender.sendMessage( - "§c/HP Set §4- §6Setze die Herzen eines Spieler auf die angegebene Zahl"); - sender.sendMessage("§c/HP Max §4- §6Setze die maximalen HP aller Spieler"); + ChatUtil.sendNormalMessage(sender,"~~~~~ HP command ~~~~~"); + ChatUtil.sendNormalMessage(sender,"/HP Get - Erhalte die aktuelen HP eines Spielers"); + ChatUtil.sendNormalMessage(sender,"/HP Add - Füge einem Spieler die angegebene Zahl an Herzen hinzu"); + ChatUtil.sendNormalMessage(sender,"/HP Remove - §6Entferne einem Spieler die angegebene Zahl an Herzen"); + ChatUtil.sendNormalMessage(sender,"/HP Set - Setze die Herzen eines Spieler auf die angegebene Zahl"); + ChatUtil.sendNormalMessage(sender,"/HP Max - Setze die maximalen HP aller Spieler");; } } else - sender.sendMessage("§cDu hast hierfür keine Berechtigung"); + ChatUtil.sendErrorMessage(sender, "Keine Berechtigung!"); return true; } } diff --git a/src/main/java/net/brennholz/commands/Revive_Command.java b/src/main/java/net/brennholz/commands/Revive_Command.java index d47fc30..19ec4f6 100644 --- a/src/main/java/net/brennholz/commands/Revive_Command.java +++ b/src/main/java/net/brennholz/commands/Revive_Command.java @@ -28,15 +28,14 @@ p.setHealth(p.getMaxHealth()); p.setGameMode(GameMode.SURVIVAL); } - chl.getServer().broadcastMessage("§bAlle Spieler wurden wiederbelebt! §aEs kann weiter gehen!"); + Bukkit.broadcastMessage("§bAlle Spieler wurden wiederbelebt! §aEs kann weiter gehen!"); } else { OfflinePlayer other = (Bukkit.getServer().getOfflinePlayer(args[0])); if (other.isOnline()) { Player p = (Player) other; p.setHealth(p.getMaxHealth()); p.setGameMode(GameMode.SURVIVAL); - chl.getServer().broadcastMessage( - "§b" + p.getName() + " §awurde von §b" + sender.getName() + " §awiederbelebt!"); + Bukkit.broadcastMessage("§b" + p.getName() + " §awurde von §b" + sender.getName() + " §awiederbelebt!"); } else sender.sendMessage("§cDieser Spieler ist nicht online!"); } diff --git a/src/main/java/net/brennholz/commands/Settings_Command.java b/src/main/java/net/brennholz/commands/Settings_Command.java index c4d308c..6dc8de1 100644 --- a/src/main/java/net/brennholz/commands/Settings_Command.java +++ b/src/main/java/net/brennholz/commands/Settings_Command.java @@ -1,5 +1,7 @@ package net.brennholz.commands; +import me.wolfyscript.utilities.api.WolfyUtilities; +import me.wolfyscript.utilities.api.inventory.InventoryAPI; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -17,7 +19,8 @@ Player p = (Player) sender; if (args.length == 0) { if (p.hasPermission("challenges.settings.view")) { - chl.createGUI(p); + WolfyUtilities.getAPI(chl).getInventoryAPI().openCluster(p, "none"); + //chl.createGUI(p); } else { p.sendMessage("hast hierfkeine Berechtigung"); } diff --git a/src/main/java/net/brennholz/gui/InventoryHandler.java b/src/main/java/net/brennholz/gui/InventoryHandler.java new file mode 100644 index 0000000..cd9c49c --- /dev/null +++ b/src/main/java/net/brennholz/gui/InventoryHandler.java @@ -0,0 +1,26 @@ +package net.brennholz.gui; + +import me.wolfyscript.utilities.api.WolfyUtilities; +import me.wolfyscript.utilities.api.inventory.GuiCluster; +import me.wolfyscript.utilities.api.inventory.InventoryAPI; +import net.brennholz.challenges.Challenges; + +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/net/brennholz/gui/SettingButton.java b/src/main/java/net/brennholz/gui/SettingButton.java new file mode 100644 index 0000000..ecc409e --- /dev/null +++ b/src/main/java/net/brennholz/gui/SettingButton.java @@ -0,0 +1,39 @@ +package net.brennholz.gui; + +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 net.brennholz.challenges.Challenges; +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/java/net/brennholz/gui/SettingsGui.java b/src/main/java/net/brennholz/gui/SettingsGui.java new file mode 100644 index 0000000..eaa4dc6 --- /dev/null +++ b/src/main/java/net/brennholz/gui/SettingsGui.java @@ -0,0 +1,82 @@ +package net.brennholz.gui; + +import me.wolfyscript.utilities.api.inventory.GuiHandler; +import me.wolfyscript.utilities.api.inventory.GuiUpdateEvent; +import me.wolfyscript.utilities.api.inventory.GuiWindow; +import me.wolfyscript.utilities.api.inventory.InventoryAPI; +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.inventory.button.buttons.ToggleButton; +import me.wolfyscript.utilities.api.utils.item_builder.ItemBuilder; +import net.brennholz.challenges.Challenges; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +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 java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +public class SettingsGui extends GuiWindow { + + private Challenges challenges = Challenges.getplugin(); + + public SettingsGui(InventoryAPI inventoryAPI) { + super("settings", inventoryAPI, 54); + } + + @Override + public void onInit() { + registerButton(new SettingButton("craftingtable", Material.CRAFTING_TABLE, "Erlaube Crafting")); + registerButton(new SettingButton("allowtrading", Material.EMERALD, "Erlaube Handeln")); + registerButton(new SettingButton("deathonfall", Material.BONE, "Tod bei Fallschaden", ChatColor.RED + "Spieler stirbt bei Fallschaden")); + registerButton(new SettingButton("damageonsneak", Material.MAGMA_BLOCK, "Schaden bei Schleichen",ChatColor.RED + "Spieler erhält " + challenges.getConfig().getInt("sneakdmg") + " Schaden bei Schleichen")); + registerButton(new SettingButton("rnddrops", Material.DIAMOND_PICKAXE, "Drops", ChatColor.RED + "Random Drops")); + registerButton(new SettingButton("sharedmg", Material.GLISTERING_MELON_SLICE, "Geteilter Schaden",ChatColor.RED + "Alle Spieler erhalten den gleichen Schaden")); + registerButton(new SettingButton("respawn", Material.TOTEM_OF_UNDYING, "Respawn")); + registerButton(new SettingButton("onelife", Material.POPPY, "Ein Leben für alle", ChatColor.RED + "Stirbt ein Spieler ist die",ChatColor.RED + "Challenge fehlgeschlagen")); + registerButton(new SettingButton("dmginchat", Material.BOOK, "Schaden in Chat", ChatColor.RED + "Zeigt Spielerschaden im Chat an")); + 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")); + + //TODO Gamerules + } + + @EventHandler + public void onUpdate(GuiUpdateEvent event) { + event.setButton(0, "craftingtable"); + event.setButton(1, "allowtrading"); + event.setButton(2, "deathonfall"); + event.setButton(3, "damageonsneak"); + event.setButton(4, "rnddrops"); + event.setButton(5, "sharedmg"); + event.setButton(6, "respawn"); + event.setButton(7, "onelife"); + event.setButton(8, "dmginchat"); + event.setButton(9, "deathonsprint"); + event.setButton(10, "deathonjump"); + event.setButton(11, "clinvdmg"); + event.setButton(12, "tntdeath"); + } + + @Override + protected String getInventoryName() { + return ChatColor.GREEN+"Settings"; + } + + @Override + public List getHelpInformation() { + return new ArrayList<>(); + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 5799110..ddfa262 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,6 +3,7 @@ version: 2.0 api-version: 1.13 load: STARTUP +depend: [WolfyUtilities] author: Brennholz3000 commands: hp: