diff options
author | Travis Watkins <amaranth@ubuntu.com> | 2013-03-13 17:33:27 -0500 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2013-03-15 13:28:59 -0500 |
commit | 83d29e461c85733f0113b6eb19db6e3b42da2949 (patch) | |
tree | b3063a1c28f478ab368d5ba3413a842def68c28f /src/main/java/net/minecraft/server/EntityTracker.java | |
parent | ba6e4c38cfa98ad291974195cc46d70a4f138ac1 (diff) | |
download | craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.tar craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.tar.gz craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.tar.lz craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.tar.xz craftbukkit-83d29e461c85733f0113b6eb19db6e3b42da2949.zip |
Update CraftBukkit to Minecraft 1.5
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityTracker.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityTracker.java | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java index d2d6ff0d..cfcd647a 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import java.util.concurrent.Callable; public class EntityTracker { @@ -55,7 +56,7 @@ public class EntityTracker { this.addEntity(entity, 64, 10, true); } else if (entity instanceof EntityItem) { this.addEntity(entity, 64, 20, true); - } else if (entity instanceof EntityMinecart) { + } else if (entity instanceof EntityMinecartAbstract) { this.addEntity(entity, 80, 3, true); } else if (entity instanceof EntityBoat) { this.addEntity(entity, 80, 3, true); @@ -94,15 +95,24 @@ public class EntityTracker { i = this.d; } - if (this.trackedEntities.b(entity.id)) { - // CraftBukkit - removed exception throw as tracking an already tracked entity theoretically shouldn't cause any issues. - // throw new IllegalStateException("Entity is already tracked!"); - } else { - EntityTrackerEntry entitytrackerentry = new EntityTrackerEntry(entity, i, j, flag); + try { + if (this.trackedEntities.b(entity.id)) { + throw new IllegalStateException("Entity is already tracked!"); + } else { + EntityTrackerEntry entitytrackerentry = new EntityTrackerEntry(entity, i, j, flag); - this.b.add(entitytrackerentry); - this.trackedEntities.a(entity.id, entitytrackerentry); - entitytrackerentry.scanPlayers(this.world.players); + this.b.add(entitytrackerentry); + this.trackedEntities.a(entity.id, entitytrackerentry); + entitytrackerentry.scanPlayers(this.world.players); + } + } catch (Throwable throwable) { + CrashReport crashreport = CrashReport.a(throwable, "Adding entity to track"); + CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Entity To Track"); + + crashreportsystemdetails.a("Tracking range", (i + " blocks")); + crashreportsystemdetails.a("Update interval", (Callable) (new CrashReportEntityTrackerUpdateInterval(this, j))); + entity.a(crashreportsystemdetails); + throw new ReportedException(crashreport); } } @@ -190,7 +200,7 @@ public class EntityTracker { while (iterator.hasNext()) { EntityTrackerEntry entitytrackerentry = (EntityTrackerEntry) iterator.next(); - if (entitytrackerentry.tracker != entityplayer && entitytrackerentry.tracker.ai == chunk.x && entitytrackerentry.tracker.ak == chunk.z) { + if (entitytrackerentry.tracker != entityplayer && entitytrackerentry.tracker.aj == chunk.x && entitytrackerentry.tracker.al == chunk.z) { entitytrackerentry.updatePlayer(entityplayer); } } |