From 739cd831558e40c5d0abf296ad6e555cf30a7222 Mon Sep 17 00:00:00 2001 From: bm01 Date: Fri, 15 Jun 2012 03:30:36 +0200 Subject: [PATCH] Forgot to cancel the task --- .../com/gmail/nossr50/skills/archery/TrackedEntity.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/skills/archery/TrackedEntity.java b/src/main/java/com/gmail/nossr50/skills/archery/TrackedEntity.java index 946614a5c..2cfd7db03 100644 --- a/src/main/java/com/gmail/nossr50/skills/archery/TrackedEntity.java +++ b/src/main/java/com/gmail/nossr50/skills/archery/TrackedEntity.java @@ -12,9 +12,7 @@ public class TrackedEntity { public TrackedEntity(LivingEntity livingEntity) { this.livingEntity = livingEntity; - - //Check if the entity is still active every 10 minutes - Bukkit.getScheduler().scheduleSyncRepeatingTask(mcMMO.p, new CheckTrackedEntityExistence(this), 12000, 12000); + new CheckTrackedEntityExistence(this); } //LivingEntity.isDead() isn't a reliable way to know if an entity is still active @@ -45,15 +43,20 @@ public class TrackedEntity { private class CheckTrackedEntityExistence implements Runnable { private TrackedEntity trackedEntity; + private int taskId; public CheckTrackedEntityExistence(TrackedEntity trackedEntity) { this.trackedEntity = trackedEntity; + + //Check if the entity is still active every 10 minutes + taskId = Bukkit.getScheduler().scheduleSyncRepeatingTask(mcMMO.p, this, 20, 20); } @Override public void run() { if (!trackedEntity.isActive()) { Archery.removeFromTracker(trackedEntity); + Bukkit.getScheduler().cancelTask(taskId); } } }