diff --git a/src/main/java/net/brennholz/challenges/Challenges.java b/src/main/java/net/brennholz/challenges/Challenges.java index 6a6036c..6631c26 100644 --- a/src/main/java/net/brennholz/challenges/Challenges.java +++ b/src/main/java/net/brennholz/challenges/Challenges.java @@ -1,282 +1,324 @@ package net.brennholz.challenges; +import com.google.common.io.MoreFiles; +import com.google.common.io.RecursiveDeleteOption; import java.io.File; import java.io.IOException; import java.util.ArrayList; - import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import org.bukkit.configuration.InvalidConfigurationException; 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.Plugin; import org.bukkit.plugin.java.JavaPlugin; -import com.google.common.io.MoreFiles; -import com.google.common.io.RecursiveDeleteOption; - -import net.brennholz.challenges.Timer_Command; - public class Challenges extends JavaPlugin { - - private static Challenges plugin; - - private File BackpackConfigFile; - private FileConfiguration BackpackConfig; - - Timer_Command Timer; - Backpack backpack; - - public static Inventory SettingsGUI = Bukkit.createInventory(null, 45, "§6Settings"); - - public static String GUIName = "§6Settings"; - - public static Challenges getplugin() { - return plugin; - } - - @SuppressWarnings("static-access") - @Override - public void onEnable() { - this.plugin = this; - this.Timer = new Timer_Command(); - this.backpack = new Backpack(); - getCommand("settings").setExecutor(this); - getCommand("hp").setExecutor(new HP_Command()); - getCommand("coords").setExecutor(new Coords_Command()); - getCommand("revive").setExecutor(new Revive_Command()); - getCommand("timer").setExecutor(new Timer_Command()); - getCommand("challenges").setExecutor(new Challenges_Command()); - getCommand("backpack").setExecutor(new Backpack()); - getCommand("reset").setExecutor(new Reset_Command()); - Bukkit.getPluginManager().registerEvents(new EventListener(), this); - saveDefaultConfig(); - reloadConfig(); - if (getConfig().getBoolean("World_Reset")) { - this.getLogger().info("/Reset Command was executed!"); - this.getLogger().info("Preparing world reset!"); - String worldname = getConfig().getString("World_Name"); - String nethername = worldname + "_nether"; - String endname = worldname + "_the_end"; - File worldfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + worldname); - File netherfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + nethername); - File endfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + endname); - - try { - MoreFiles.deleteRecursively(worldfolder.toPath(), RecursiveDeleteOption.ALLOW_INSECURE); - MoreFiles.deleteRecursively(netherfolder.toPath(), RecursiveDeleteOption.ALLOW_INSECURE); - MoreFiles.deleteRecursively(endfolder.toPath(), RecursiveDeleteOption.ALLOW_INSECURE); - this.getLogger().info("World reset successful!"); - } catch (IOException e) { - this.getLogger().info("World reset failed!"); - e.printStackTrace(); - } - getConfig().set("World_Reset", false); - saveConfig(); - } - createBackpackConfig(); - backpack.loadInventoryFromConfig(); - Timer.Run_Timer(); - this.getLogger().info("Plugin loaded!"); - } - - @Override - public void onDisable() { - backpack.saveInventoryToConfig(); - try { - BackpackConfig.save(BackpackConfigFile); - } catch (IOException e) { - e.printStackTrace(); - } - this.getLogger().info("Plugin unloaded"); - } - - public FileConfiguration getBackpackConfig() { - return this.BackpackConfig; - } - - private void createBackpackConfig() { - BackpackConfigFile = new File(getDataFolder(), "backpack.yml"); - if (!BackpackConfigFile.exists()) { - BackpackConfigFile.getParentFile().mkdirs(); - saveResource("backpack.yml", false); - } - BackpackConfig = new YamlConfiguration(); - try { - BackpackConfig.load(BackpackConfigFile); - } catch (IOException | InvalidConfigurationException e) { - e.printStackTrace(); - } - } - - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (sender instanceof Player) { - Player p = (Player) sender; - if (args.length == 0) { - if (p.hasPermission("challenges.settings.view")) { - createGUI(p); - } else - p.sendMessage("§cDu hast hierf§r keine Berechtigung"); - } else if (args.length == 1) { - if (args[0].equalsIgnoreCase("get")) { - if (p.hasPermission("challenges.settings.get")) { - p.sendMessage("§c~~~~~ §6Aktuelle Einstellungen §c~~~~~"); - p.sendMessage("§6Erlaube Crafting = §c" + getConfig().getBoolean("craftingtable")); - p.sendMessage("§6Erlaube Handeln = §c" + getConfig().getBoolean("allowtrading")); - p.sendMessage("§6Tod bei Fallschaden = §c" + getConfig().getBoolean("deathonfall")); - p.sendMessage("§6Schaden bei Schleichen = §c" + getConfig().getBoolean("damageonsneak")); - p.sendMessage("§6Menge Schaden bei Schleichen = §c" + getConfig().getInt("sneakdmg")); - p.sendMessage("§6Geteilter Schaden = §c" + getConfig().getBoolean("sharedmg")); - p.sendMessage("§6Ein Leben f§r alle = §c" + getConfig().getBoolean("onelife")); - p.sendMessage("§6Schaden in Chat = §c" + getConfig().getBoolean("dmginchat")); - p.sendMessage("§6Respawn = §c" + getConfig().getBoolean("respawn")); - } else - p.sendMessage("§cDu hast hierf§r keine Berechtigung"); - } else - p.sendMessage( - "§cBenutze /settings Get/Crafting/Trading/DeathFall/DMGOnSneak/ShareDMG/Respawn/OneLife/ChatDMG [True/False]"); - } else if (args.length >= 2) { - if (p.hasPermission("challenges.settings.modify")) { - Boolean Bwert = Boolean.parseBoolean(args[1]); - if (args[0].equalsIgnoreCase("crafting")) { - getConfig().set("craftingtable", Bwert); - saveConfig(); - p.sendMessage("§6Erlaube Crafting = §c" + getConfig().getBoolean("craftingtable")); - } else if (args[0].equalsIgnoreCase("deathfall")) { - getConfig().set("deathonfall", Bwert); - saveConfig(); - p.sendMessage("§6Tod bei Fallschaden = §c" + getConfig().getBoolean("deathonfall")); - } else if (args[0].equalsIgnoreCase("trading")) { - getConfig().set("allowtrading", Bwert); - saveConfig(); - p.sendMessage("§6Erlaube Handeln = §c" + getConfig().getBoolean("allowtrading")); - } else if (args[0].equalsIgnoreCase("dmgonsneak")) { - getConfig().set("damageonsneak", Bwert); - saveConfig(); - p.sendMessage("§6Schaden bei Schleichen = §c" + getConfig().getBoolean("damageonsneak")); - } else if (args[0].equalsIgnoreCase("sneakdmg")) { - Double Dwert = Double.parseDouble(args[1]); - getConfig().set("sneakdmg", Dwert); - saveConfig(); - p.sendMessage("§6Menge Schaden bei Schleichen = §c" + getConfig().getString("sneakdmg")); - } else if (args[0].equalsIgnoreCase("sharedmg")) { - getConfig().set("sharehp", Bwert); - saveConfig(); - p.sendMessage("§6Teile Schaden = §c" + getConfig().getBoolean("sharedmg")); - } else if (args[0].equalsIgnoreCase("respawn")) { - getConfig().set("respawn", Bwert); - saveConfig(); - p.sendMessage("§6Respawn = §c" + getConfig().getBoolean("respawn")); - } else if (args[0].equalsIgnoreCase("onelife")) { - getConfig().set("onelife", Bwert); - saveConfig(); - p.sendMessage("§6Ein Leben für alle = §c" + getConfig().getBoolean("onelife")); - } else if (args[0].equalsIgnoreCase("chatdmg")) { - getConfig().set("dmginchat", Bwert); - saveConfig(); - p.sendMessage("§6Schaden in Chat = §c" + getConfig().getBoolean("dmginchat")); - } else - p.sendMessage("§cFalsche Parameter!"); - } else - p.sendMessage("§cDu hast hierf§r keine Berechtigung"); - } else - p.sendMessage( - "§cBenutze /settings Get/Crafting/Trading/DeathFall/DMGOnSneak/ShareDMG/Respawn/OneLife/ChatDMG [True/False]"); - } else - sender.sendMessage("§cKein Konsolenbefehl!"); - return true; - - } - - public void createGUI(Player p) { - SettingsGUI.setItem(9, addGUIItem(Material.CRAFTING_TABLE, "§6Erlaube Crafting")); - SettingsGUI.setItem(10, addGUIItem(Material.EMERALD, "§6Erlaube Handeln")); - SettingsGUI.setItem(11, addGUIItem(Material.BONE, "§6Tod bei Fallschaden", "§cSpieler stirbt bei Fallschaden")); - SettingsGUI.setItem(12, addGUIItem(Material.MAGMA_BLOCK, "§6Schaden bei Schleichen","§cSpieler erhält §6" + getConfig().getInt("sneakdmg") + " §cSchaden bei Schleichen")); - SettingsGUI.setItem(14, addGUIItem(Material.GLISTERING_MELON_SLICE, "§6Geteilter Schaden","§cAlle Spieler erhalten den gleichen Schaden")); - SettingsGUI.setItem(15, addGUIItem(Material.TOTEM_OF_UNDYING, "§6Respawn")); - SettingsGUI.setItem(16, addGUIItem(Material.POPPY, "§6Ein Leben für alle", "§cStirbt ein Spieler ist die","§cChallenge fehlgeschlagen")); - SettingsGUI.setItem(17, addGUIItem(Material.BOOK, "§6Schaden in Chat", "§cZeigt Spielerschaden im Chat an")); - SettingsGUI.setItem(36, addGUIItem(Material.CHEST, "§6KeepInventory", "§cStirbst du, beh§lst du dein Inventar")); - SettingsGUI.setItem(44, addGUIItem(Material.GOLDEN_APPLE, "§6Natürliche Regeneration", "§cSchalte natürliche Regeneration um")); - - SettingsGUI.setItem(18, addGUIItem(getDye("craftingtable"), getBool("craftingtable"))); - SettingsGUI.setItem(19, addGUIItem(getDye("allowtrading"), getBool("allowtrading"))); - SettingsGUI.setItem(20, addGUIItem(getDye("deathonfall"), getBool("deathonfall"))); - SettingsGUI.setItem(21, addGUIItem(getDye("damageonsneak"), getBool("damageonsneak"))); - SettingsGUI.setItem(23, addGUIItem(getDye("sharedmg"), getBool("sharedmg"))); - SettingsGUI.setItem(24, addGUIItem(getDye("respawn"), getBool("respawn"))); - SettingsGUI.setItem(25, addGUIItem(getDye("onelife"), getBool("onelife"))); - SettingsGUI.setItem(26, addGUIItem(getDye("dmginchat"), getBool("dmginchat"))); - SettingsGUI.setItem(37, addGUIItem(getgrDye("keepInventory"), getgrBool("keepInventory"))); - SettingsGUI.setItem(43, addGUIItem(getgrDye("naturalRegeneration"), getgrBool("naturalRegeneration"))); - for (int i = 0; i < 45; i++) { - if (SettingsGUI.getItem(i) == null) { - SettingsGUI.setItem(i, addGUIItem(Material.ORANGE_STAINED_GLASS_PANE, "")); - } - } - p.openInventory(SettingsGUI); - } - - private Material getDye(String cnfpath) { - ItemStack mat = new ItemStack(Material.GRAY_DYE); - if (getConfig().getBoolean(cnfpath) == true) { - mat.setType(Material.LIME_DYE); - } else - mat.setType(Material.RED_DYE); - return mat.getType(); - } - - private String getBool(String cnfpath) { - if (getConfig().getBoolean(cnfpath) == true) { - return "§aTrue"; - } else - return "§cFalse"; - } - - @SuppressWarnings("deprecation") - private Material getgrDye(String gr) { - ItemStack mat = new ItemStack(Material.GRAY_DYE); - World wld = Bukkit.getWorlds().get(0); - if (wld.getGameRuleValue(gr).equals("true")) { - mat.setType(Material.LIME_DYE); - } else if (wld.getGameRuleValue(gr).equals("false")) { - mat.setType(Material.RED_DYE); - } - return mat.getType(); - } - - @SuppressWarnings("deprecation") - private String getgrBool(String gr) { - World wld = Bukkit.getWorlds().get(0); - if (wld.getGameRuleValue(gr).equals("true")) { - return "§aTrue"; - } else if (wld.getGameRuleValue(gr).equals("false")) { - return "§cFalse"; - } - return "§7Unknown"; - } - - private ItemStack addGUIItem(Material mat, String name, String... lore) { - ItemStack item = new ItemStack(mat, 1); - ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(name); - ArrayList metalore = new ArrayList(); - if (lore != null) { - for (String lorecomments : lore) { - metalore.add(lorecomments); - } - } - meta.setLore(metalore); - item.setItemMeta(meta); - - return item; - } -} \ No newline at end of file + private static Challenges plugin; + + private File BackpackConfigFile; + + private FileConfiguration BackpackConfig; + + private File RndDropsConfigFile; + + private FileConfiguration RndDropsConfig; + + private Timer_Command Timer; + + private Backpack backpack; + + private SBManager sbManager; + + private RandomDrops rndDrops; + + public static Inventory SettingsGUI = Bukkit.createInventory(null, 45, "§6Settings"); + + public static String GUIName = "§6Settings"; + + public static Challenges getplugin() { + return plugin; + } + + public void onEnable() { + plugin = this; + this.Timer = new Timer_Command(); + this.backpack = new Backpack(); + this.rndDrops = new RandomDrops(); + getCommand("settings").setExecutor((CommandExecutor)this); + getCommand("hp").setExecutor(new HP_Command()); + getCommand("coords").setExecutor(new Coords_Command()); + getCommand("revive").setExecutor(new Revive_Command()); + getCommand("timer").setExecutor(new Timer_Command()); + getCommand("challenges").setExecutor(new Challenges_Command()); + getCommand("backpack").setExecutor(new Backpack()); + getCommand("reset").setExecutor(new Reset_Command()); + Bukkit.getPluginManager().registerEvents(new EventListener(), (Plugin)this); + saveDefaultConfig(); + reloadConfig(); + createRndDropsConfig(); + createBackpackConfig(); + if (getConfig().getBoolean("World_Reset")) { + getLogger().info("/Reset Command was executed!"); + getLogger().info("Preparing world reset!"); + String worldname = getConfig().getString("World_Name"); + String nethername = worldname + "_nether"; + String endname = worldname + "_the_end"; + File worldfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + worldname); + File netherfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + nethername); + File endfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + endname); + try { + MoreFiles.deleteRecursively(worldfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); + MoreFiles.deleteRecursively(netherfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); + MoreFiles.deleteRecursively(endfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); + getLogger().info("World reset successful!"); + } catch (IOException e) { + getLogger().info("World reset failed!"); + e.printStackTrace(); + } + getConfig().set("World_Reset", Boolean.valueOf(false)); + saveConfig(); + this.backpack.clearConfig(); + this.rndDrops.shuffleItems(); + } else { + this.rndDrops.loadItems(); + } + this.backpack.loadInventoryFromConfig(); + this.Timer.Run_Timer(); + getLogger().info("Plugin loaded!"); + this.sbManager = new SBManager(); + } + + public void onDisable() { + this.backpack.saveInventoryToConfig(); + try { + this.BackpackConfig.save(this.BackpackConfigFile); + this.RndDropsConfig.save(this.RndDropsConfigFile); + } catch (IOException e) { + e.printStackTrace(); + } + getLogger().info("Plugin unloaded"); + } + + public RandomDrops getRandomDropsManager() { + return this.rndDrops; + } + + public FileConfiguration getBackpackConfig() { + return this.BackpackConfig; + } + + private void createBackpackConfig() { + this.BackpackConfigFile = new File(getDataFolder(), "backpack.yml"); + if (!this.BackpackConfigFile.exists()) { + this.BackpackConfigFile.getParentFile().mkdirs(); + saveResource("backpack.yml", false); + } + this.BackpackConfig = (FileConfiguration)new YamlConfiguration(); + try { + this.BackpackConfig.load(this.BackpackConfigFile); + } catch (IOException|org.bukkit.configuration.InvalidConfigurationException e) { + e.printStackTrace(); + } + } + + public FileConfiguration getRndDropsConfig() { + return this.RndDropsConfig; + } + + private void createRndDropsConfig() { + this.RndDropsConfigFile = new File(getDataFolder(), "rnddrops.yml"); + if (!this.RndDropsConfigFile.exists()) { + this.RndDropsConfigFile.getParentFile().mkdirs(); + saveResource("rnddrops.yml", false); + } + this.RndDropsConfig = (FileConfiguration)new YamlConfiguration(); + try { + this.RndDropsConfig.load(this.RndDropsConfigFile); + } catch (IOException|org.bukkit.configuration.InvalidConfigurationException e) { + e.printStackTrace(); + } + } + + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (sender instanceof Player) { + Player p = (Player)sender; + if (args.length == 0) { + if (p.hasPermission("challenges.settings.view")) { + createGUI(p); + } else { + p.sendMessage("hast hierfkeine Berechtigung"); + } + } else if (args.length == 1) { + if (args[0].equalsIgnoreCase("get")) { + if (p.hasPermission("challenges.settings.get")) { + p.sendMessage("Einstellungen"); + p.sendMessage("Crafting =" + getConfig().getBoolean("craftingtable")); + p.sendMessage("Handeln =" + getConfig().getBoolean("allowtrading")); + p.sendMessage("bei Fallschaden =" + getConfig().getBoolean("deathonfall")); + p.sendMessage("bei Schleichen =" + getConfig().getBoolean("damageonsneak")); + p.sendMessage("Schaden bei Schleichen =" + getConfig().getInt("sneakdmg")); + p.sendMessage("Drops =" + getConfig().getBoolean("rnddrops")); + p.sendMessage("Schaden =" + getConfig().getBoolean("sharedmg")); + p.sendMessage("Leben falle =" + getConfig().getBoolean("onelife")); + p.sendMessage("in Chat =" + getConfig().getBoolean("dmginchat")); + p.sendMessage("=" + getConfig().getBoolean("respawn")); + } else { + p.sendMessage("hast hierfkeine Berechtigung"); + } + } else { + p.sendMessage("/settings Get/Crafting/Trading/DeathFall/DMGOnSneak/SneakDMG/RndDrops/ShareDMG/Respawn/OneLife/ChatDMG [True/False]"); + } + } else if (args.length >= 2) { + if (p.hasPermission("challenges.settings.modify")) { + Boolean Bwert = Boolean.valueOf(Boolean.parseBoolean(args[1])); + if (args[0].equalsIgnoreCase("crafting")) { + getConfig().set("craftingtable", Bwert); + saveConfig(); + p.sendMessage("Crafting =" + getConfig().getBoolean("craftingtable")); + } else if (args[0].equalsIgnoreCase("deathfall")) { + getConfig().set("deathonfall", Bwert); + saveConfig(); + p.sendMessage("bei Fallschaden =" + getConfig().getBoolean("deathonfall")); + } else if (args[0].equalsIgnoreCase("trading")) { + getConfig().set("allowtrading", Bwert); + saveConfig(); + p.sendMessage("Handeln =" + getConfig().getBoolean("allowtrading")); + } else if (args[0].equalsIgnoreCase("dmgonsneak")) { + getConfig().set("damageonsneak", Bwert); + saveConfig(); + p.sendMessage("bei Schleichen =" + getConfig().getBoolean("damageonsneak")); + } else if (args[0].equalsIgnoreCase("sneakdmg")) { + Double Dwert = Double.valueOf(Double.parseDouble(args[1])); + getConfig().set("sneakdmg", Dwert); + saveConfig(); + p.sendMessage("Schaden bei Schleichen =" + getConfig().getString("sneakdmg")); + } else if (args[0].equalsIgnoreCase("rnddrops")) { + getConfig().set("rnddrops", Bwert); + saveConfig(); + p.sendMessage("Drops =" + getConfig().getBoolean("rnddrops")); + } else if (args[0].equalsIgnoreCase("sharedmg")) { + getConfig().set("sharehp", Bwert); + saveConfig(); + p.sendMessage("Schaden =" + getConfig().getBoolean("sharedmg")); + } else if (args[0].equalsIgnoreCase("respawn")) { + getConfig().set("respawn", Bwert); + saveConfig(); + p.sendMessage("=" + getConfig().getBoolean("respawn")); + } else if (args[0].equalsIgnoreCase("onelife")) { + getConfig().set("onelife", Bwert); + saveConfig(); + p.sendMessage("Leben falle =" + getConfig().getBoolean("onelife")); + } else if (args[0].equalsIgnoreCase("chatdmg")) { + getConfig().set("dmginchat", Bwert); + saveConfig(); + p.sendMessage("in Chat =" + getConfig().getBoolean("dmginchat")); + } else { + p.sendMessage("Parameter!"); + } + } else { + p.sendMessage("hast hierfkeine Berechtigung"); + } + } else { + p.sendMessage("/settings Get/Crafting/Trading/DeathFall/DMGOnSneak/SneakDMG/RndDrops/ShareDMG/Respawn/OneLife/ChatDMG [True/False]"); + } + } else { + sender.sendMessage("Konsolenbefehl!"); + } + return true; + } + + public void createGUI(Player p) { + SettingsGUI.setItem(9, addGUIItem(Material.CRAFTING_TABLE, "§6Erlaube Crafting")); + SettingsGUI.setItem(10, addGUIItem(Material.EMERALD, "§6Erlaube Handeln")); + SettingsGUI.setItem(11, addGUIItem(Material.BONE, "§6Tod bei Fallschaden", "§cSpieler stirbt bei Fallschaden")); + SettingsGUI.setItem(12, addGUIItem(Material.MAGMA_BLOCK, "§6Schaden bei Schleichen","§cSpieler erhält §6" + getConfig().getInt("sneakdmg") + " §cSchaden bei Schleichen")); + SettingsGUI.setItem(13, addGUIItem(Material.DIAMOND_PICKAXE, "§6Drops", "§cRandom Drops")); + SettingsGUI.setItem(14, addGUIItem(Material.GLISTERING_MELON_SLICE, "§6Geteilter Schaden","§cAlle Spieler erhalten den gleichen Schaden")); + SettingsGUI.setItem(15, addGUIItem(Material.TOTEM_OF_UNDYING, "§6Respawn")); + SettingsGUI.setItem(16, addGUIItem(Material.POPPY, "§6Ein Leben für alle", "§cStirbt ein Spieler ist die","§cChallenge fehlgeschlagen")); + SettingsGUI.setItem(17, addGUIItem(Material.BOOK, "§6Schaden in Chat", "§cZeigt Spielerschaden im Chat an")); + SettingsGUI.setItem(36, addGUIItem(Material.CHEST, "§6KeepInventory", "§cStirbst du, beh§lst du dein Inventar")); + SettingsGUI.setItem(44, addGUIItem(Material.GOLDEN_APPLE, "§6Natürliche Regeneration", "§cSchalte natürliche Regeneration um")); + + SettingsGUI.setItem(18, addGUIItem(getDye("craftingtable"), getBool("craftingtable"))); + SettingsGUI.setItem(19, addGUIItem(getDye("allowtrading"), getBool("allowtrading"))); + SettingsGUI.setItem(20, addGUIItem(getDye("deathonfall"), getBool("deathonfall"))); + SettingsGUI.setItem(21, addGUIItem(getDye("damageonsneak"), getBool("damageonsneak"))); + SettingsGUI.setItem(22, addGUIItem(getDye("rnddrops"), getBool("rnddrops"))); + SettingsGUI.setItem(23, addGUIItem(getDye("sharedmg"), getBool("sharedmg"))); + SettingsGUI.setItem(24, addGUIItem(getDye("respawn"), getBool("respawn"))); + SettingsGUI.setItem(25, addGUIItem(getDye("onelife"), getBool("onelife"))); + SettingsGUI.setItem(26, addGUIItem(getDye("dmginchat"), getBool("dmginchat"))); + SettingsGUI.setItem(37, addGUIItem(getgrDye("keepInventory"), getgrBool("keepInventory"))); + SettingsGUI.setItem(43, addGUIItem(getgrDye("naturalRegeneration"), getgrBool("naturalRegeneration"))); + + + + for (int i = 0; i < 45; i++) { + if (SettingsGUI.getItem(i) == null) + SettingsGUI.setItem(i, addGUIItem(Material.ORANGE_STAINED_GLASS_PANE, "")); + } + p.openInventory(SettingsGUI); + } + + private Material getDye(String cnfpath) { + ItemStack mat = new ItemStack(Material.GRAY_DYE); + if (getConfig().getBoolean(cnfpath) == true) { + mat.setType(Material.LIME_DYE); + } else { + mat.setType(Material.RED_DYE); + } + return mat.getType(); + } + + private String getBool(String cnfpath) { + if (getConfig().getBoolean(cnfpath) == true) + return "§aTrue"; + return "§cFalse"; + } + + private Material getgrDye(String gr) { + ItemStack mat = new ItemStack(Material.GRAY_DYE); + World wld = Bukkit.getWorlds().get(0); + if (wld.getGameRuleValue(gr).equals("true")) { + mat.setType(Material.LIME_DYE); + } else if (wld.getGameRuleValue(gr).equals("false")) { + mat.setType(Material.RED_DYE); + } + return mat.getType(); + } + + private String getgrBool(String gr) { + World wld = Bukkit.getWorlds().get(0); + if (wld.getGameRuleValue(gr).equals("true")) + return "§aTrue"; + if (wld.getGameRuleValue(gr).equals("false")) + return "§cFalse"; + return "§7Unknown"; + } + + private ItemStack addGUIItem(Material mat, String name, String... lore) { + ItemStack item = new ItemStack(mat, 1); + ItemMeta meta = item.getItemMeta(); + meta.setDisplayName(name); + ArrayList metalore = new ArrayList<>(); + if (lore != null) + for (String lorecomments : lore) + metalore.add(lorecomments); + meta.setLore(metalore); + item.setItemMeta(meta); + return item; + } + + public SBManager getSBManager() { + return this.sbManager; + } +} diff --git a/src/main/java/net/brennholz/challenges/EventListener.java b/src/main/java/net/brennholz/challenges/EventListener.java index 631e812..9002bc5 100644 --- a/src/main/java/net/brennholz/challenges/EventListener.java +++ b/src/main/java/net/brennholz/challenges/EventListener.java @@ -15,6 +15,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; @@ -27,6 +28,7 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.inventory.ItemStack; public class EventListener implements Listener { @@ -34,6 +36,15 @@ Challenges chall; Coords_Command coco; + + @EventHandler + public void onBlockBreak(BlockBreakEvent e) { + if (this.chl.getConfig().getBoolean("rnddrops") == true) { + e.setDropItems(false); + e.getBlock().getWorld().dropItem(e.getBlock().getLocation().add(0.5D, 0.5D, 0.5D), new ItemStack(this.chl + .getRandomDropsManager().getMaterialFromBlock(e.getBlock()))); + } + } @EventHandler public void PlayerJoinEvent(PlayerJoinEvent e) { @@ -43,8 +54,10 @@ int rnd = new Random().nextInt(Bukkit.getOnlinePlayers().size()); Player rp = (Player) Bukkit.getServer().getOnlinePlayers().toArray()[rnd]; p.setHealth(rp.getHealth()); - - } + } + if (this.chl.getConfig().getBoolean("tabhp") == true) { + this.chl.getSBManager().createScoreboard(p); + } } @EventHandler @@ -221,6 +234,9 @@ case 21: chl.getConfig().set("damageonsneak", !(chl.getConfig().getBoolean("damageonsneak"))); break; + case 22: + chl.getConfig().set("rnddrops", !(chl.getConfig().getBoolean("rnddrops"))); + break; case 23: chl.getConfig().set("sharedmg", !(chl.getConfig().getBoolean("sharedmg"))); break; diff --git a/src/main/java/net/brennholz/challenges/Timer_Command.java b/src/main/java/net/brennholz/challenges/Timer_Command.java index 81fa649..13abc6f 100644 --- a/src/main/java/net/brennholz/challenges/Timer_Command.java +++ b/src/main/java/net/brennholz/challenges/Timer_Command.java @@ -30,8 +30,6 @@ chl.getServer().broadcastMessage("§aDer Timer wird fortgesetzt!"); chl.getConfig().set("timer.enabled", timer); chl.saveConfig(); - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "scoreboard objectives add Leben health"); - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "scoreboard objectives setdisplay list Leben"); } else sender.sendMessage("§cDer Timer läuft bereits!"); } else if (args[0].equalsIgnoreCase("pause")) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index c49869d..f9687b2 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,23 +1,14 @@ -#Erlaube Spielern eine Werkbank zu benutzen craftingtable: true -#Erlaube Spielern mit Dorfbewohnern zu handeln allowtrading: true -#Wenn "true" stirbt ein Spieler sobald er Fallschaden erh�lt deathonfall: false -#Wenn "true" erh�lt ein Spieler Schaden wenn er Schleicht damageonsneak: false -#Verwalte wie viel Schaden ein Spieler beim Schleichen bekommen soll -#1 = 0.5 Herzen ; 2 = 1 Herz ; ... -#Soll ein Spieler beim Schleichen sterben, setze den Schaden auf die Maximalzahl an Spielerleben sneakdmg: 2 -#Alle Spieler bekommen Schaden sobald ein Spieler Schaden bekommt +rnddrops: false sharedmg: false -#Erlaube Spielern das Respawnen respawn: true -#Ein Leben f�r alle. Stirbt ein Spieler, wird die Challenge abgebrochen onelife: false -#Wenn "true" wird im Chat angezeigt, sobald ein Spieler Schaden erh�lt dmginchat: false +tabhp: true timer: enabled: false time: 0 @@ -25,7 +16,5 @@ min: '00' hrs: 0 Saved_Locations: {} - -#Nicht ver�ndern! Der Server benutzt diesen Wert zum Welt-Reset! World_Name: world World_Reset: false \ No newline at end of file