Upstream merge

By: Thinkofdeath <thethinkofdeath@gmail.com>
This commit is contained in:
Spigot
2014-02-12 13:48:26 +00:00
parent 8a02a8d067
commit 7073c502e9
75 changed files with 299 additions and 753 deletions

View File

@@ -1,14 +1,14 @@
From e241a4fff80fdf576671bca124cb61fd53b28630 Mon Sep 17 00:00:00 2001
From 38c40e66efdfe76a60e5c1e508dc21bae94b4733 Mon Sep 17 00:00:00 2001
From: Ammar Askar <ammar@ammaraskar.com>
Date: Sat, 3 Aug 2013 21:42:00 +0500
Subject: [PATCH] Guard entity list
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 13ca7fa..5b0875d 100644
index 5fb3fbf..0923296 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -30,7 +30,25 @@ import org.bukkit.event.weather.ThunderChangeEvent;
@@ -29,7 +29,25 @@ import org.bukkit.event.weather.ThunderChangeEvent;
public abstract class World implements IBlockAccess {
public boolean d;
@@ -43,20 +43,33 @@ index 13ca7fa..5b0875d 100644
protected final gnu.trove.map.hash.TLongShortHashMap chunkTickList;
protected float growthOdds = 100;
protected float modifiedOdds = 100;
@@ -1243,6 +1262,7 @@ public abstract class World implements IBlockAccess {
@@ -1032,7 +1051,12 @@ public abstract class World implements IBlockAccess {
if (index <= this.tickPosition) {
this.tickPosition--;
}
+ // Spigot start
+ boolean isGuarding = guardEntityList;
+ guardEntityList = false;
this.entityList.remove(index);
+ guardEntityList = isGuarding;
+ // Spigot end
}
// CraftBukkit end
@@ -1252,6 +1276,7 @@ public abstract class World implements IBlockAccess {
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
timings.entityTick.startTiming(); // Spigot
+ guardEntityList = true; // Spigot
for (i = 0; i < this.entityList.size(); ++i) {
entity = (Entity) this.entityList.get(i);
@@ -1290,12 +1310,15 @@ public abstract class World implements IBlockAccess {
// CraftBukkit start - Use field for loop variable
for (this.tickPosition = 0; this.tickPosition < this.entityList.size(); ++this.tickPosition) {
entity = (Entity) this.entityList.get(this.tickPosition);
@@ -1300,12 +1325,15 @@ public abstract class World implements IBlockAccess {
this.getChunkAt(j, k).b(entity);
}
+ guardEntityList = false; // Spigot
this.entityList.remove(i--);
this.entityList.remove(this.tickPosition--); // CraftBukkit - Use field for loop variable
+ guardEntityList = true; // Spigot
this.b(entity);
}
@@ -68,5 +81,5 @@ index 13ca7fa..5b0875d 100644
timings.entityTick.stopTiming(); // Spigot
this.methodProfiler.c("blockEntities");
--
1.8.3.2
1.8.4.msysgit.0