Add temple interval and bed respawn Demons (from 1.7.9)

This commit is contained in:
FabioZumbi12 2015-03-06 04:03:19 -03:00
parent 1c2e9e961f
commit 0231e306d3
3 changed files with 54 additions and 50 deletions

View File

@ -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<Core> allCores = new ArrayList<Core>(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();

View File

@ -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();

View File

@ -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));