diff options
author | Travis Watkins <amaranth@ubuntu.com> | 2013-03-20 15:09:23 -0500 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2013-03-20 15:09:23 -0500 |
commit | 696543cf3f43756dfc2d4c1d18b2b461badcb107 (patch) | |
tree | c01929bbcf4f052df46c267226c529869042ad78 /src/main/java/net/minecraft/server/EntityLiving.java | |
parent | 6aaa1e83df796b7d380a22af3842f3aa4b367f4d (diff) | |
download | craftbukkit-696543cf3f43756dfc2d4c1d18b2b461badcb107.tar craftbukkit-696543cf3f43756dfc2d4c1d18b2b461badcb107.tar.gz craftbukkit-696543cf3f43756dfc2d4c1d18b2b461badcb107.tar.lz craftbukkit-696543cf3f43756dfc2d4c1d18b2b461badcb107.tar.xz craftbukkit-696543cf3f43756dfc2d4c1d18b2b461badcb107.zip |
Update CraftBukkit to Minecraft 1.5.1
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityLiving.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityLiving.java | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index 27b2ce24..15fbf692 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Random; +import java.util.concurrent.Callable; // CraftBukkit start import org.bukkit.craftbukkit.event.CraftEventFactory; @@ -1686,13 +1687,26 @@ public abstract class EntityLiving extends Entity { Integer integer = (Integer) iterator.next(); MobEffect mobeffect = (MobEffect) this.effects.get(integer); - if (!mobeffect.tick(this)) { - if (!this.world.isStatic) { - iterator.remove(); - this.c(mobeffect); + try { + if (!mobeffect.tick(this)) { + if (!this.world.isStatic) { + iterator.remove(); + this.c(mobeffect); + } + } else if (mobeffect.getDuration() % 600 == 0) { + this.b(mobeffect); } - } else if (mobeffect.getDuration() % 600 == 0) { - this.b(mobeffect); + } catch (Throwable throwable) { + CrashReport crashreport = CrashReport.a(throwable, "Ticking mob effect instance"); + CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Mob effect being ticked"); + + crashreportsystemdetails.a("Effect Name", (Callable) (new CrashReportEffectName(this, mobeffect))); + crashreportsystemdetails.a("Effect ID", (Callable) (new CrashReportEffectID(this, mobeffect))); + crashreportsystemdetails.a("Effect Duration", (Callable) (new CrashReportEffectDuration(this, mobeffect))); + crashreportsystemdetails.a("Effect Amplifier", (Callable) (new CrashReportEffectAmplifier(this, mobeffect))); + crashreportsystemdetails.a("Effect is Splash", (Callable) (new CrashReportEffectSplash(this, mobeffect))); + crashreportsystemdetails.a("Effect is Ambient", (Callable) (new CrashReportEffectAmbient(this, mobeffect))); + throw new ReportedException(crashreport); } } |