Fixed issue with plugin attempting to register a task when being disabled under certain conditions

This commit is contained in:
David Berdik 2016-07-14 19:43:39 -04:00
parent 0e009401be
commit 7dd20f599e
9 changed files with 50 additions and 45 deletions

View File

@ -121,7 +121,7 @@ public class AICore {
final int playerRolled = Util.getRandomPlayerNum(allOnPlayers);
if (allOnPlayers[playerRolled].getEntityId() != Herobrine.herobrineEntityID) {
if (Herobrine.getPluginCore().getConfigDB().useWorlds.contains(allOnPlayers[playerRolled].getLocation().getWorld().getName()) && Herobrine.getPluginCore().canAttackPlayerNoMSG(allOnPlayers[playerRolled])) {
cancelTarget(Core.CoreType.ANY);
cancelTarget(Core.CoreType.ANY, true);
AICore.PlayerTarget = allOnPlayers[playerRolled];
AICore.isTarget = true;
setCoreTypeNow(Core.CoreType.START);
@ -135,7 +135,7 @@ public class AICore {
}
}
public void cancelTarget(final Core.CoreType coreType) {
public void cancelTarget(final Core.CoreType coreType, boolean withTask) {
if ((coreType == currentCore) || (coreType == Core.CoreType.ANY)) {
if (AICore.isTarget) {
if (currentCore == Core.CoreType.ATTACK) {
@ -154,12 +154,17 @@ public class AICore {
nowloc.setPitch(1.0f);
Herobrine.herobrineNPC.moveTo(nowloc);
currentCore = Core.CoreType.ANY;
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(AICore.plugin, new Runnable() {
@Override
public void run() {
AICore.this.findPlayer();
}
}, (6 / Herobrine.getPluginCore().getConfigDB().ShowRate) * (Herobrine.getPluginCore().getConfigDB().ShowInterval * 1L));
if(withTask) {
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(AICore.plugin, new Runnable() {
@Override
public void run() {
AICore.this.findPlayer();
}
}, (6 / Herobrine.getPluginCore().getConfigDB().ShowRate) * (Herobrine.getPluginCore().getConfigDB().ShowInterval * 1L));
}
}
else {
AICore.this.findPlayer();
}
}
}
@ -182,10 +187,10 @@ public class AICore {
getCore(Core.CoreType.HAUNT).runCore(data);
}
} else {
cancelTarget(Core.CoreType.START);
cancelTarget(Core.CoreType.START, true);
}
} else {
cancelTarget(Core.CoreType.START);
cancelTarget(Core.CoreType.START, true);
}
}
@ -204,7 +209,7 @@ public class AICore {
public void graveyardTeleport(final Player player) {
if (player.isOnline()) {
showHero(player);
cancelTarget(Core.CoreType.ANY);
cancelTarget(Core.CoreType.ANY, true);
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(AICore.plugin, new Runnable() {
@Override
public void run() {
@ -233,11 +238,11 @@ public class AICore {
final String playername = player.getName();
final Location loc = player.getLocation();
AICore.isTotemCalled = true;
cancelTarget(Core.CoreType.ANY);
cancelTarget(Core.CoreType.ANY, true);
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(AICore.plugin, new Runnable() {
@Override
public void run() {
AICore.this.cancelTarget(Core.CoreType.ANY);
AICore.this.cancelTarget(Core.CoreType.ANY, true);
final Object[] data = { loc, playername };
AICore.this.getCore(Core.CoreType.TOTEM).runCore(data);
}
@ -296,7 +301,7 @@ public class AICore {
public void callByDisc(final Player player) {
AICore.isDiscCalled = false;
if (player.isOnline()) {
cancelTarget(Core.CoreType.ANY);
cancelTarget(Core.CoreType.ANY, true);
setHauntTarget(player);
}
}

View File

@ -90,7 +90,7 @@ public class Attack extends Core {
if (AICore.PlayerTarget.isOnline() && AICore.isTarget && (Herobrine.getPluginCore().getAICore().getCoreTypeNow() == CoreType.ATTACK)) {
if (!AICore.PlayerTarget.isDead()) {
if (ticksToEnd == 160) {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
} else {
++ticksToEnd;
final Location ploc = AICore.PlayerTarget.getLocation();
@ -118,10 +118,10 @@ public class Attack extends Core {
}
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
}
@ -143,13 +143,13 @@ public class Attack extends Core {
}
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
}
@ -205,10 +205,10 @@ public class Attack extends Core {
}
Herobrine.herobrineNPC.moveTo(ploc);
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
}
@ -228,10 +228,10 @@ public class Attack extends Core {
}
}, 45L);
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.ATTACK, true);
}
}

View File

@ -121,7 +121,7 @@ public class Graveyard extends Core {
}
Herobrine.getPluginCore().getAICore();
if (AICore.PlayerTarget == savedPlayer) {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.GRAVEYARD);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.GRAVEYARD, true);
}
savedPlayer.teleport(new Location(savedWorld, savedX, savedY, savedZ));
}

View File

@ -65,7 +65,7 @@ public class Haunt extends Core {
if (AICore.PlayerTarget.isOnline() && AICore.isTarget && (Herobrine.getPluginCore().getAICore().getCoreTypeNow() == CoreType.HAUNT)) {
if (!AICore.PlayerTarget.isDead()) {
if (_ticks > 290) {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT, true);
} else {
final Object[] data = { AICore.PlayerTarget };
Herobrine.getPluginCore().getAICore().getCore(CoreType.SOUNDF).runCore(data);
@ -115,10 +115,10 @@ public class Haunt extends Core {
isFirst = false;
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT, true);
}
}
@ -231,10 +231,10 @@ public class Haunt extends Core {
}
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT, true);
}
}
@ -247,13 +247,13 @@ public class Haunt extends Core {
ploc.setY(ploc.getY() + 1.5);
Herobrine.herobrineNPC.lookAtPoint(ploc);
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT, true);
}
} else {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.HAUNT, true);
}
}

View File

@ -65,7 +65,7 @@ public class Totem extends Core {
}
}
if (hasTarget) {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.TOTEM);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.TOTEM, true);
Herobrine.getPluginCore().getAICore().setAttackTarget(target);
final Player player = target;
for (Player oplayer : Bukkit.getOnlinePlayers()) {
@ -93,7 +93,7 @@ public class Totem extends Core {
}
}
if (hasTarget) {
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.TOTEM);
Herobrine.getPluginCore().getAICore().cancelTarget(CoreType.TOTEM, true);
Herobrine.getPluginCore().getAICore().setAttackTarget(target);
final Player player = target;
for (Player oplayer : Bukkit.getOnlinePlayers()) {

View File

@ -124,7 +124,7 @@ public class Herobrine extends JavaPlugin implements Listener {
@Override
public void onDisable() {
entMng.killAllMobs();
aicore.cancelTarget(Core.CoreType.ANY);
aicore.cancelTarget(Core.CoreType.ANY, false);
aicore.stopBD();
aicore.stopMAIN();
aicore.stopRC();

View File

@ -568,7 +568,7 @@ public class CmdExecutor implements CommandExecutor {
}
} else if (args[0].equalsIgnoreCase("cancel")) {
if (player.hasPermission("herobrine.cancel")) {
P_Core.getAICore().cancelTarget(Core.CoreType.ANY);
P_Core.getAICore().cancelTarget(Core.CoreType.ANY, true);
player.sendMessage(ChatColor.RED
+ "[Herobrine] The current Herobrine victim has been saved.");
} else {
@ -956,7 +956,7 @@ public class CmdExecutor implements CommandExecutor {
log.info("Usage: /herobrine pluginreport <message>");
}
} else if (args[0].equalsIgnoreCase("cancel")) {
P_Core.getAICore().cancelTarget(Core.CoreType.ANY);
P_Core.getAICore().cancelTarget(Core.CoreType.ANY, true);
log.info(ChatColor.RED
+ "[Herobrine] The current Herobrine victim has been saved.");
} else if (args[0].equalsIgnoreCase("reload")) {

View File

@ -120,7 +120,7 @@ public class EntityListener implements Listener {
}
}
}
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY, true);
Herobrine.HerobrineHP = Herobrine.HerobrineMaxHP;
Player player = (Player)dEvent.getDamager();
player.sendMessage("<Herobrine> " + Herobrine.getPluginCore().getConfigDB().DeathMessage);
@ -139,7 +139,7 @@ public class EntityListener implements Listener {
{
if (Herobrine.getPluginCore().getAICore().getCoreTypeNow() == Core.CoreType.RANDOM_POSITION)
{
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY, true);
Herobrine.getPluginCore().getAICore().setAttackTarget((Player)arrow.getShooter());
}
else if (event.getDamage() >= Herobrine.HerobrineHP)
@ -155,7 +155,7 @@ public class EntityListener implements Listener {
}
}
}
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY, true);
Herobrine.HerobrineHP = Herobrine.HerobrineMaxHP;
Player player = (Player)arrow.getShooter();
player.sendMessage("<Herobrine> " + Herobrine.getPluginCore().getConfigDB().DeathMessage);
@ -172,7 +172,7 @@ public class EntityListener implements Listener {
Location newloc = Herobrine.herobrineNPC.getBukkitEntity().getLocation();
newloc.setY(-20.0D);
Herobrine.herobrineNPC.moveTo(newloc);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY, true);
}
}
else if (Herobrine.getPluginCore().getAICore().getCoreTypeNow() == Core.CoreType.RANDOM_POSITION)
@ -180,7 +180,7 @@ public class EntityListener implements Listener {
Location newloc = Herobrine.herobrineNPC.getBukkitEntity().getLocation();
newloc.setY(-20.0D);
Herobrine.herobrineNPC.moveTo(newloc);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY, true);
}
}
}

View File

@ -119,7 +119,7 @@ public class PlayerListener implements Listener {
final Player player = event.getPlayer();
Herobrine.getPluginCore().getAICore();
AICore.isDiscCalled = true;
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.ANY, true);
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(AICore.plugin, new Runnable() {
@Override
public void run() {
@ -174,7 +174,7 @@ public class PlayerListener implements Listener {
(Herobrine.herobrineNPC.getNMSEntity().getBukkitEntity().getLocation().getBlockX() < -Herobrine.getPluginCore().getConfigDB().WalkingModeXRadius) &&
(Herobrine.herobrineNPC.getNMSEntity().getBukkitEntity().getLocation().getBlockZ() > Herobrine.getPluginCore().getConfigDB().WalkingModeZRadius) &&
(Herobrine.herobrineNPC.getNMSEntity().getBukkitEntity().getLocation().getBlockZ() < -Herobrine.getPluginCore().getConfigDB().WalkingModeZRadius)) {
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.RANDOM_POSITION);
Herobrine.getPluginCore().getAICore().cancelTarget(Core.CoreType.RANDOM_POSITION, true);
Herobrine.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorlds().get(0), 0.0D, -20.0D, 0.0D));
}
}