From b124383f33550dcac9f0c0248f901011d7d288b4 Mon Sep 17 00:00:00 2001 From: David Berdik Date: Thu, 2 Jan 2020 20:58:08 -0500 Subject: [PATCH] Added new configuration file option: "SpawnDemonsOnPlayerBedEnter" which lets server administrators decide if players getting in to bed should cause a demon to occasionally spawn --- .../herobrine/AI/AICore.java | 7 +++---- .../theprogrammersworld/herobrine/ConfigDB.java | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/net/theprogrammersworld/herobrine/AI/AICore.java b/src/net/theprogrammersworld/herobrine/AI/AICore.java index 89c8521..e825fc8 100644 --- a/src/net/theprogrammersworld/herobrine/AI/AICore.java +++ b/src/net/theprogrammersworld/herobrine/AI/AICore.java @@ -156,10 +156,9 @@ public class AICore { GraveyardTeleport(player); } else if (chance < 50) { setHauntTarget(player); - } else { - if (Herobrine.getPluginCore().getConfigDB().UseNPC_Demon && !Herobrine.isNPCDisabled) { - Herobrine.getPluginCore().getEntityManager().spawnCustomSkeleton(player.getLocation(), MobType.DEMON); - } + } else if (Herobrine.getPluginCore().getConfigDB().SpawnDemonsOnPlayerBedEnter && Herobrine.getPluginCore().getConfigDB().UseNPC_Demon + && !Herobrine.isNPCDisabled) { + Herobrine.getPluginCore().getEntityManager().spawnCustomSkeleton(player.getLocation(), MobType.DEMON); } } diff --git a/src/net/theprogrammersworld/herobrine/ConfigDB.java b/src/net/theprogrammersworld/herobrine/ConfigDB.java index b3cfe62..8d17d0c 100644 --- a/src/net/theprogrammersworld/herobrine/ConfigDB.java +++ b/src/net/theprogrammersworld/herobrine/ConfigDB.java @@ -72,6 +72,7 @@ public class ConfigDB { public boolean UseNPC_Guardian = true; public boolean UseNPC_Warrior = true; public boolean UseNPC_Demon = true; + public boolean SpawnDemonsOnPlayerBedEnter = true; public CustomID ItemInHand = null; public boolean Explosions = true; public boolean Burn = true; @@ -101,6 +102,7 @@ public class ConfigDB { public File npcF = new File("plugins/Herobrine/npc.yml"); public void Startup() { + boolean configUpdated = false; new File("plugins/Herobrine/pregraveyard_caches").mkdirs(); if (!configF.exists()) @@ -238,6 +240,7 @@ public class ConfigDB { config.set("config.UseNPC.Guardian", true); config.set("config.UseNPC.Warrior", true); config.set("config.UseNPC.Demon", true); + config.set("config.SpawnDemonsOnPlayerBedEnter", true); config.set("config.ItemInHand", "AIR"); config.set("config.Explosions", true); config.set("config.Burn", true); @@ -259,6 +262,19 @@ public class ConfigDB { e.printStackTrace(); } } + else if(!config.contains("config.SpawnDemonsOnPlayerBedEnter")) { + config.set("config.SpawnDemonsOnPlayerBedEnter", true); + configUpdated = true; + } + + if(configUpdated) { + try { + config.save(configF); + log.info("[Herobrine] The Herobrine configuration file was updated with new parameters for Herobrine v" + pluginVersionString + "."); + } catch (IOException e) { + e.printStackTrace(); + } + } Reload(); } @@ -332,6 +348,7 @@ public class ConfigDB { UseNPC_Guardian = config.getBoolean("config.UseNPC.Guardian"); UseNPC_Warrior = config.getBoolean("config.UseNPC.Warrior"); UseNPC_Demon = config.getBoolean("config.UseNPC.Demon"); + SpawnDemonsOnPlayerBedEnter = config.getBoolean("config.SpawnDemonsOnPlayerBedEnter"); ItemInHand = new CustomID(config.getString("config.ItemInHand")); Explosions = config.getBoolean("config.Explosions"); Burn = config.getBoolean("config.Burn");