Add temple interval and bed respawn Demons (from 1.7.9)
This commit is contained in:
parent
1c2e9e961f
commit
0231e306d3
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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));
|
||||
|
Reference in New Issue
Block a user