From 6ac6455f2dba05b3e694c451275fff20999cdbe3 Mon Sep 17 00:00:00 2001 From: steev Date: Sat, 7 Oct 2023 03:09:28 +0200 Subject: [PATCH] added config support --- pom.xml | 1 + .../java/de/steev/bm/BetterMinecraft.java | 1 + src/main/java/de/steev/bm/Commands/back.java | 7 +++++ .../de/steev/bm/Listener/BedListener.java | 2 +- .../steev/bm/Listener/InteractListener.java | 2 +- .../de/steev/bm/Listener/KillListener.java | 4 +-- .../de/steev/bm/Manager/ConfigManager.java | 14 +++++++++ .../java/de/steev/bm/Manager/GameManager.java | 31 ++++++++++++------- src/main/resources/config.yml | 5 +++ 9 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 src/main/java/de/steev/bm/Manager/ConfigManager.java create mode 100644 src/main/resources/config.yml diff --git a/pom.xml b/pom.xml index 84ef005..1808667 100644 --- a/pom.xml +++ b/pom.xml @@ -37,6 +37,7 @@ ${project.basedir}/src/main/resources plugin.yml + config.yml diff --git a/src/main/java/de/steev/bm/BetterMinecraft.java b/src/main/java/de/steev/bm/BetterMinecraft.java index 7a92030..4d6af9e 100644 --- a/src/main/java/de/steev/bm/BetterMinecraft.java +++ b/src/main/java/de/steev/bm/BetterMinecraft.java @@ -41,6 +41,7 @@ public class BetterMinecraft extends JavaPlugin implements Listener { this.getLogger().info(prefix + ChatColor.WHITE + "Plugin Startet"); this.getLogger().info(prefix + ChatColor.WHITE + "Initializing Gamemanager"); gameManager = new GameManager(this); + this.saveDefaultConfig(); // Registers Events this.getLogger().info(prefix + ChatColor.WHITE + "Lade Events"); diff --git a/src/main/java/de/steev/bm/Commands/back.java b/src/main/java/de/steev/bm/Commands/back.java index 4a16be8..99d3f93 100644 --- a/src/main/java/de/steev/bm/Commands/back.java +++ b/src/main/java/de/steev/bm/Commands/back.java @@ -17,8 +17,14 @@ public class back implements CommandExecutor { @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) { + if (!this.gameManager.getConfigManager().GetBool("back_command")) { + commandSender.sendMessage("back command ist nicht aktiv"); + return false; + } + Player player = (Player) commandSender.getServer().getPlayer(commandSender.getName()); Location lastDeath; + try { lastDeath = this.gameManager.getPlugin().getPlayerDataConfig().getLocation(player.getUniqueId() + ".death"); player.teleport(lastDeath); @@ -27,6 +33,7 @@ public class back implements CommandExecutor { } catch (Exception ex) { commandSender.sendMessage("Tot nicht gefunden!"); } + return false; } } diff --git a/src/main/java/de/steev/bm/Listener/BedListener.java b/src/main/java/de/steev/bm/Listener/BedListener.java index adf6d9b..56bee62 100644 --- a/src/main/java/de/steev/bm/Listener/BedListener.java +++ b/src/main/java/de/steev/bm/Listener/BedListener.java @@ -21,7 +21,7 @@ public class BedListener implements Listener { @EventHandler // Adding to the Player Variable public void onPlayerBedEnter(PlayerBedEnterEvent event) { final World world = event.getPlayer().getWorld(); - if(world.getTime() >= 13000 || world.getThunderDuration() > 0) { + if(world.getTime() >= 13000 || world.getThunderDuration() > 0 && this.gameManager.getConfigManager().GetBool("improved_bed")) { this.gameManager.getPlugin().playerInBed++; // Checks if enough Players (currentSleeping >= OnlinePlayerAmount/2) are Sleeping if(this.gameManager.getPlugin().playerInBed >= (int)this.gameManager.getPlugin().getServer().getOnlinePlayers().size()/2) { diff --git a/src/main/java/de/steev/bm/Listener/InteractListener.java b/src/main/java/de/steev/bm/Listener/InteractListener.java index 8054c85..d14808c 100644 --- a/src/main/java/de/steev/bm/Listener/InteractListener.java +++ b/src/main/java/de/steev/bm/Listener/InteractListener.java @@ -21,7 +21,7 @@ public class InteractListener implements Listener { @EventHandler public void onPlayerInteract(PlayerInteractEvent event){ - if(event.getAction().equals(Action.RIGHT_CLICK_BLOCK)){ + if(event.getAction().equals(Action.RIGHT_CLICK_BLOCK) && this.gameManager.getConfigManager().GetBool("replanting")){ /** the clicked block */ Block target = event.getClickedBlock(); diff --git a/src/main/java/de/steev/bm/Listener/KillListener.java b/src/main/java/de/steev/bm/Listener/KillListener.java index ca01c18..cccfe23 100644 --- a/src/main/java/de/steev/bm/Listener/KillListener.java +++ b/src/main/java/de/steev/bm/Listener/KillListener.java @@ -29,12 +29,12 @@ public class KillListener implements Listener { int[] amounts; Material[] drops; - if(event.getEntity() instanceof Player){ + if(event.getEntity() instanceof Player && this.gameManager.getConfigManager().GetBool("back_command")){ Location death = ((Player) event.getEntity()).getPlayer().getLocation(); UUID uuid = ((Player) event.getEntity()).getPlayer().getUniqueId(); this.gameManager.getPlugin().getPlayerDataConfig().set("" + uuid + ".death", death); } else if(event.getEntity() instanceof Animals) { - if(event.getEntity().toString() == "CraftPig"){ + if(event.getEntity().toString() == "CraftPig" && this.gameManager.getConfigManager().GetBool("custom_drops")){ amounts = new int[]{ 2,2 }; drops = new Material[]{Material.LEATHER, Material.PORKCHOP}; Death.onAnimalDeath(amounts, drops, this.gameManager.getPlugin(), event); diff --git a/src/main/java/de/steev/bm/Manager/ConfigManager.java b/src/main/java/de/steev/bm/Manager/ConfigManager.java new file mode 100644 index 0000000..1812f37 --- /dev/null +++ b/src/main/java/de/steev/bm/Manager/ConfigManager.java @@ -0,0 +1,14 @@ +package de.steev.bm.Manager; + +public class ConfigManager { + + private GameManager gameManager; + + public ConfigManager(GameManager gameManager) { + this.gameManager = gameManager; + } + + public boolean GetBool(String Key){ + return gameManager.getPlugin().getConfig().getBoolean(Key); + } +} diff --git a/src/main/java/de/steev/bm/Manager/GameManager.java b/src/main/java/de/steev/bm/Manager/GameManager.java index 7a22b36..ae43b07 100644 --- a/src/main/java/de/steev/bm/Manager/GameManager.java +++ b/src/main/java/de/steev/bm/Manager/GameManager.java @@ -12,6 +12,7 @@ public class GameManager { private BetterMinecraft plugin; private RecipyManager recipyManager; private PlayerManager playerManager; + private ConfigManager configManager; /** * initilizes the Gamemanager and all systems beneath it @@ -26,20 +27,22 @@ public class GameManager { this.recipyManager = new RecipyManager(this); this.playerManager = new PlayerManager(this); + this.configManager = new ConfigManager(this); - this.plugin.getLogger().info("registring Recipies"); - this.plugin.getLogger().info("saddle"); - char[] s_ing = { 'L', 'S', 'I', 'W' }; - String[] s_rec = { "LLL", "SWS", "I I" }; - Material[] s_mat = { Material.LEATHER, Material.STRING, Material.IRON_INGOT, Material.WHITE_WOOL}; - this.recipyManager.RegisterNew(s_ing, s_mat, s_rec, 1, Material.SADDLE, "Saddle"); - - this.plugin.getLogger().info("String"); - char[] w_ing = { 'W', 'F', }; - String[] w_rec = { " W ", "WFW", " W " }; - Material[] w_mat = { Material.WHITE_WOOL, Material.FLINT }; - this.recipyManager.RegisterNew(w_ing, w_mat, w_rec, 4, Material.STRING, "String"); + if (this.configManager.GetBool("custom_recipes")) { + this.plugin.getLogger().info("registring Recipies"); + this.plugin.getLogger().info("saddle"); + char[] s_ing = {'L', 'S', 'I', 'W'}; + String[] s_rec = {"LLL", "SWS", "I I"}; + Material[] s_mat = {Material.LEATHER, Material.STRING, Material.IRON_INGOT, Material.WHITE_WOOL}; + this.recipyManager.RegisterNew(s_ing, s_mat, s_rec, 1, Material.SADDLE, "Saddle"); + this.plugin.getLogger().info("String"); + char[] w_ing = {'W', 'F',}; + String[] w_rec = {" W ", "WFW", " W "}; + Material[] w_mat = {Material.WHITE_WOOL, Material.FLINT}; + this.recipyManager.RegisterNew(w_ing, w_mat, w_rec, 4, Material.STRING, "String"); + } } public BetterMinecraft getPlugin(){ @@ -53,5 +56,9 @@ public class GameManager { public PlayerManager getPlayerManager() { return playerManager; } + + public ConfigManager getConfigManager() { + return configManager; + } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..896d463 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,5 @@ +improved_bed: true +custom_drops: true +custom_recipes: true +replanting: true +back_command: true \ No newline at end of file