diff --git a/src/org/jakub1221/herobrineai/AI/AICore.java b/src/org/jakub1221/herobrineai/AI/AICore.java index 6daee5a..7480869 100644 --- a/src/org/jakub1221/herobrineai/AI/AICore.java +++ b/src/org/jakub1221/herobrineai/AI/AICore.java @@ -30,6 +30,7 @@ import org.jakub1221.herobrineai.AI.cores.SoundF; import org.jakub1221.herobrineai.AI.cores.Temple; import org.jakub1221.herobrineai.AI.cores.Totem; import org.jakub1221.herobrineai.misc.ItemName; +import org.jakub1221.herobrineai.nms.entity.MobType; public class AICore { @@ -41,7 +42,6 @@ public class AICore { public static boolean isDiscCalled = false; public static boolean isTotemCalled = false; public static int _ticks = 0; - private ArrayList allCores = new ArrayList(Arrays.asList(new Core[] { new Attack(), new Book(), new BuildStuff(), new BuryPlayer(), new DestroyTorches(), new Graveyard(), new Haunt(), new Pyramid(), new Signs(), new SoundF(), new Totem(), new Heads(), @@ -99,13 +99,17 @@ public class AICore { graveyardTeleport(player); } else if (chance < 50) { setHauntTarget(player); - } + } else if ((HerobrineAI.getPluginCore().getConfigDB().UseNPC_Demon) && (!HerobrineAI.isNPCDisabled)) { + HerobrineAI.getPluginCore().getEntityManager().spawnCustomSkeleton(player.getLocation(), MobType.DEMON); + } } public void findPlayer() { - if (!AICore.isTarget) { + if ((!HerobrineAI.getPluginCore().getConfigDB().OnlyWalkingMode) && !AICore.isTarget) { final int att_chance = new Random().nextInt(100); + log.info("[HerobrineAI] Generating find chance..."); if (((att_chance - (HerobrineAI.getPluginCore().getConfigDB().ShowRate * 4)) < 55) && (Bukkit.getServer().getOnlinePlayers().size() > 0)) { + log.info("[HerobrineAI] Finding target..."); final Player[] allOnPlayers = Bukkit.getServer().getOnlinePlayers().toArray(new Player[0]); final int playerRolled = Util.getRandomPlayerNum(allOnPlayers); if (allOnPlayers[playerRolled].getEntityId() != HerobrineAI.herobrineEntityID) { @@ -116,6 +120,7 @@ public class AICore { setCoreTypeNow(Core.CoreType.START); startAI(); } else { + log.info("[HerobrineAI] Target is in the safe world! (" + allOnPlayers[playerRolled].getLocation().getWorld().getName() + ")"); findPlayer(); } } @@ -124,7 +129,7 @@ public class AICore { } public void cancelTarget(final Core.CoreType coreType) { - if ((coreType == currentCore) || (coreType == Core.CoreType.ANY)) { + if ((coreType == currentCore) || (coreType == Core.CoreType.ANY)) { if (AICore.isTarget) { if (currentCore == Core.CoreType.ATTACK) { ((Attack) getCore(Core.CoreType.ATTACK)).StopHandler(); @@ -150,21 +155,25 @@ public class AICore { } } } - + public void startAI() { - if (AICore.PlayerTarget.isOnline() && AICore.isTarget && !AICore.PlayerTarget.isDead()) { - final Object[] data = { AICore.PlayerTarget }; - final int chance = new Random().nextInt(100); - if (chance <= 10) { - if (HerobrineAI.getPluginCore().getConfigDB().UseGraveyardWorld) { - AICore.log.info("[Herobrine] Teleporting " + PlayerTarget.getDisplayName() + " to Herobrine's Graveyard."); - getCore(Core.CoreType.GRAVEYARD).runCore(data); - } - } else if (chance <= 25) { - getCore(Core.CoreType.ATTACK).runCore(data); - } else { - getCore(Core.CoreType.HAUNT).runCore(data); - } + if (AICore.PlayerTarget.isOnline() && AICore.isTarget) { + if (!AICore.PlayerTarget.isDead()){ + final Object[] data = { AICore.PlayerTarget }; + final int chance = new Random().nextInt(100); + if (chance <= 10) { + if (HerobrineAI.getPluginCore().getConfigDB().UseGraveyardWorld) { + AICore.log.info("[Herobrine] Teleporting " + PlayerTarget.getDisplayName() + " to Herobrine's Graveyard."); + getCore(Core.CoreType.GRAVEYARD).runCore(data); + } + } else if (chance <= 25) { + getCore(Core.CoreType.ATTACK).runCore(data); + } else { + getCore(Core.CoreType.HAUNT).runCore(data); + } + } else { + cancelTarget(Core.CoreType.START); + } } else { cancelTarget(Core.CoreType.START); } @@ -209,7 +218,7 @@ public class AICore { } private void pyramidInterval() { - if (new Random().nextBoolean() && (Bukkit.getServer().getOnlinePlayers().size() > 0)) { + if ((HerobrineAI.getPluginCore().getConfigDB().BuildPyramids) && new Random().nextBoolean() && (Bukkit.getServer().getOnlinePlayers().size() > 0)) { AICore.log.info("[Herobrine] Finding pyramid target..."); final Player[] allOnPlayers = Bukkit.getServer().getOnlinePlayers().toArray(new Player[0]); final int playerRolled = Util.getRandomPlayerNum(allOnPlayers); @@ -233,7 +242,18 @@ public class AICore { } } - + private void templeInterval() { + if ((HerobrineAI.getPluginCore().getConfigDB().BuildTemples) && (new Random().nextBoolean()) && (Bukkit.getServer().getOnlinePlayers().size() > 0)) { + log.info("[HerobrineAI] Finding temple target..."); + Player[] AllOnPlayers = Bukkit.getServer().getOnlinePlayers().toArray(new Player[0]); + int player_rolled = Util.getRandomPlayerNum(AllOnPlayers); + if ((HerobrineAI.getPluginCore().getConfigDB().useWorlds.contains(AllOnPlayers[player_rolled].getLocation().getWorld().getName()))) { + Object[] data = { AllOnPlayers[player_rolled] }; + getCore(Core.CoreType.TEMPLE).runCore(data); + } + + } + } private void buildCave() { if (HerobrineAI.getPluginCore().getConfigDB().BuildStuff && new Random().nextBoolean() && (Bukkit.getServer().getOnlinePlayers().size() > 0)) { @@ -279,21 +299,6 @@ public class AICore { } } } - - private void templeInterval() { - if ((HerobrineAI.getPluginCore().getConfigDB().BuildTemples) && - (new Random().nextBoolean()) && - (Bukkit.getServer().getOnlinePlayers().size() > 0)) { - log.info("[HerobrineAI] Finding temple target..."); - Player[] AllOnPlayers = Bukkit.getServer().getOnlinePlayers().toArray(new Player[0]); - int player_rolled = Util.getRandomPlayerNum(AllOnPlayers); - if ((HerobrineAI.getPluginCore().getConfigDB().useWorlds.contains(AllOnPlayers[player_rolled].getLocation().getWorld().getName())) && - (new Random().nextBoolean())) { - Object[] data = { AllOnPlayers[player_rolled] }; - getCore(Core.CoreType.TEMPLE).runCore(data); - } - } - } public void disappearEffect() { final Location ploc = AICore.PlayerTarget.getLocation(); diff --git a/src/org/jakub1221/herobrineai/AI/cores/Graveyard.java b/src/org/jakub1221/herobrineai/AI/cores/Graveyard.java index 1c5f550..c94114a 100644 --- a/src/org/jakub1221/herobrineai/AI/cores/Graveyard.java +++ b/src/org/jakub1221/herobrineai/AI/cores/Graveyard.java @@ -42,13 +42,13 @@ public class Graveyard extends Core { if (!HerobrineAI.getPluginCore().getConfigDB().UseGraveyardWorld) { return new CoreResult(false, "Herobrine's Graveyard is disabled on this server."); } - LivingEntities = Bukkit.getServer().getWorld("world_herobrine_graveyard").getLivingEntities(); + LivingEntities = Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName).getLivingEntities(); for (int i = 0; i <= (LivingEntities.size() - 1); ++i) { if (!(LivingEntities.get(i) instanceof Player) && (LivingEntities.get(i).getEntityId() != HerobrineAI.herobrineEntityID)) { LivingEntities.get(i).remove(); } } - Bukkit.getServer().getWorld("world_herobrine_graveyard").setTime(15000L); + Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName).setTime(15000L); HerobrineAI.getPluginCore().getAICore(); AICore.PlayerTarget = player; final Location loc = player.getLocation(); @@ -57,7 +57,7 @@ public class Graveyard extends Core { savedZ = loc.getZ(); savedWorld = loc.getWorld(); savedPlayer = player; - loc.setWorld(Bukkit.getServer().getWorld("world_herobrine_graveyard")); + loc.setWorld(Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName)); loc.setX(-2.49); loc.setY(4.0); loc.setZ(10.69); @@ -67,13 +67,13 @@ public class Graveyard extends Core { Start(); HerobrineAI.getPluginCore().getAICore(); AICore.isTarget = true; - Bukkit.getServer().getWorld("world_herobrine_graveyard").setStorm(false); + Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName).setStorm(false); return new CoreResult(true, player.getDisplayName() + " has been teleported to Herobrine's Graveyard."); } public void Start() { ticks = 0; - HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld("world_herobrine_graveyard"), -2.49, 4.0, -4.12)); + HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4.0, -4.12)); HandlerInterval(); } @@ -87,31 +87,31 @@ public class Graveyard extends Core { } public void Handler() { - LivingEntities = Bukkit.getServer().getWorld("world_herobrine_graveyard").getLivingEntities(); + LivingEntities = Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName).getLivingEntities(); for (int i = 0; i <= (LivingEntities.size() - 1); ++i) { if (!(LivingEntities.get(i) instanceof Player) && (LivingEntities.get(i).getEntityId() != HerobrineAI.herobrineEntityID)) { LivingEntities.get(i).remove(); } } - if (!savedPlayer.isDead() && savedPlayer.isOnline() && (savedPlayer.getLocation().getWorld() == Bukkit.getServer().getWorld("world_herobrine_graveyard")) && (ticks != 90)) { + if (!savedPlayer.isDead() && savedPlayer.isOnline() && (savedPlayer.getLocation().getWorld() == Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName)) && (ticks != 90)) { HerobrineAI.getPluginCore().getAICore(); if (AICore.isTarget) { final Location ploc = savedPlayer.getLocation(); ploc.setY(ploc.getY() + 1.5); HerobrineAI.herobrineNPC.lookAtPoint(ploc); if (ticks == 1) { - HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld("world_herobrine_graveyard"), -2.49, 4.0, -4.12)); + HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4.0, -4.12)); } else if (ticks == 40) { - HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld("world_herobrine_graveyard"), -2.49, 4.0, -0.5)); + HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4.0, -0.5)); } else if (ticks == 60) { - HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld("world_herobrine_graveyard"), -2.49, 4.0, 5.1)); + HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4.0, 5.1)); } else if (ticks == 84) { - HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld("world_herobrine_graveyard"), -2.49, 4.0, 7.5)); + HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4.0, 7.5)); } if (new Random().nextInt(4) == 1) { - final Location newloc = new Location(Bukkit.getServer().getWorld("world_herobrine_graveyard"), new Random().nextInt(400), new Random().nextInt(20) + 20.0, + final Location newloc = new Location(Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName), new Random().nextInt(400), new Random().nextInt(20) + 20.0, new Random().nextInt(400)); - Bukkit.getServer().getWorld("world_herobrine_graveyard").strikeLightning(newloc); + Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName).strikeLightning(newloc); } ++ticks; HandlerInterval(); diff --git a/src/org/jakub1221/herobrineai/HerobrineAI.java b/src/org/jakub1221/herobrineai/HerobrineAI.java index ef15bd9..b2c1d3d 100644 --- a/src/org/jakub1221/herobrineai/HerobrineAI.java +++ b/src/org/jakub1221/herobrineai/HerobrineAI.java @@ -136,8 +136,7 @@ public class HerobrineAI extends JavaPlugin implements Listener { public NPCCore getNPCCore() { return NPCCore; } - - + public void spawnHerobrine(final Location loc) { HerobrineAI.herobrineNPC = NPCCore.spawnHumanNPC(loc); HerobrineAI.herobrineNPC.getBukkitEntity().setMetadata("NPC", new FixedMetadataValue(this, true));