Browse Source

Remove metadata, validation checks.

GJ 12 years ago
parent
commit
b82c3f41d3

+ 11 - 4
src/main/java/com/gmail/nossr50/runnables/MobHealthDisplayUpdaterTask.java

@@ -12,13 +12,20 @@ public class MobHealthDisplayUpdaterTask extends BukkitRunnable {
 
     public MobHealthDisplayUpdaterTask(LivingEntity target) {
         this.target = target;
-        this.oldName = target.getMetadata(mcMMO.customNameKey).get(0).asString();
-        this.oldNameVisible = target.getMetadata(mcMMO.customVisibleKey).get(0).asBoolean();
+
+        if (target.isValid()) {
+            this.oldName = target.getMetadata(mcMMO.customNameKey).get(0).asString();
+            this.oldNameVisible = target.getMetadata(mcMMO.customVisibleKey).get(0).asBoolean();
+        }
     }
 
     @Override
     public void run() {
-        target.setCustomNameVisible(oldNameVisible);
-        target.setCustomName(oldName);
+        if (target.isValid()) {
+            target.setCustomNameVisible(oldNameVisible);
+            target.setCustomName(oldName);
+            target.removeMetadata(mcMMO.customNameKey, mcMMO.p);
+            target.removeMetadata(mcMMO.customVisibleKey, mcMMO.p);
+        }
     }
 }

+ 1 - 3
src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java

@@ -313,9 +313,7 @@ public final class CombatUtils {
                         target.setMetadata(mcMMO.customVisibleKey, new FixedMetadataValue(mcMMO.p, oldNameVisible));
                     }
 
-                    if (target.isValid()) {
-                        new MobHealthDisplayUpdaterTask(target).runTaskLater(mcMMO.p, displayTime * 20); // Clear health display after 3 seconds
-                    }
+                    new MobHealthDisplayUpdaterTask(target).runTaskLater(mcMMO.p, displayTime * 20); // Clear health display after 3 seconds
                 }
             }
         }