Fix the sit animation, fixes #96

The task would fail to cancel properly, and sometimes fail to recognize
NPC removal.
In addition, gitignore maven and IntelliJ artifacts to give contributors
an easier time.
This commit is contained in:
mcmonkey4eva 2014-10-31 16:27:19 -07:00
parent ec2eae62b7
commit edbf8e6fda
2 changed files with 6 additions and 3 deletions

2
.gitignore vendored
View File

@ -5,3 +5,5 @@
Citizens.jar Citizens.jar
*.lnk *.lnk
*.iml *.iml
/.idea
dependency-reduced-pom.xml

View File

@ -52,10 +52,11 @@ public enum PlayerAnimation {
protected void playAnimation(final EntityPlayer player, int radius) { protected void playAnimation(final EntityPlayer player, int radius) {
player.getBukkitEntity().setMetadata("citizens.sitting", player.getBukkitEntity().setMetadata("citizens.sitting",
new FixedMetadataValue(CitizensAPI.getPlugin(), true)); new FixedMetadataValue(CitizensAPI.getPlugin(), true));
Bukkit.getScheduler().runTaskTimer(CitizensAPI.getPlugin(), new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
if (player.dead || !player.getBukkitEntity().getMetadata("citizens.sitting").get(0).asBoolean()) { if (player.dead || !player.valid ||
!player.getBukkitEntity().getMetadata("citizens.sitting").get(0).asBoolean()) {
cancel(); cancel();
return; return;
} }
@ -67,7 +68,7 @@ public enum PlayerAnimation {
player.mount(player); player.mount(player);
} }
} }
}, 0, 1); }.runTaskTimer(CitizensAPI.getPlugin(), 0, 1);
} }
}, },
SLEEP { SLEEP {