From 21656db5d1a85620ad22dac7666583bc5ca88c05 Mon Sep 17 00:00:00 2001 From: Thinkofdeath Date: Tue, 14 Jan 2014 20:14:36 +0000 Subject: [PATCH] Fix ConcurrentModificationException while being idle kicked in a vehicle --- ...dificationException-while-being-idle.patch | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 CraftBukkit-Patches/0095-Fix-ConcurrentModificationException-while-being-idle.patch diff --git a/CraftBukkit-Patches/0095-Fix-ConcurrentModificationException-while-being-idle.patch b/CraftBukkit-Patches/0095-Fix-ConcurrentModificationException-while-being-idle.patch new file mode 100644 index 000000000..d3ce690e6 --- /dev/null +++ b/CraftBukkit-Patches/0095-Fix-ConcurrentModificationException-while-being-idle.patch @@ -0,0 +1,41 @@ +From c40d8531dbe4217d3457e3c3c598da3b052fabd1 Mon Sep 17 00:00:00 2001 +From: Thinkofdeath +Date: Tue, 14 Jan 2014 20:11:25 +0000 +Subject: [PATCH] Fix ConcurrentModificationException while being idle kicked + in a vehicle + + +diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java +index 04f5ed1..ac9b669 100644 +--- a/src/main/java/net/minecraft/server/World.java ++++ b/src/main/java/net/minecraft/server/World.java +@@ -1038,16 +1038,19 @@ public abstract class World implements IBlockAccess { + this.players.remove(entity); + this.everyoneSleeping(); + } ++ // Spigot start ++ if (!guardEntityList) { // It will get removed after the tick if we are ticking ++ int i = entity.ai; ++ int j = entity.ak; + +- int i = entity.ai; +- int j = entity.ak; ++ if (entity.ah && this.isChunkLoaded(i, j)) { ++ this.getChunkAt(i, j).b(entity); ++ } + +- if (entity.ah && this.isChunkLoaded(i, j)) { +- this.getChunkAt(i, j).b(entity); ++ this.entityList.remove(entity); ++ this.b(entity); + } +- +- this.entityList.remove(entity); +- this.b(entity); ++ // Spigot end + } + + public void addIWorldAccess(IWorldAccess iworldaccess) { +-- +1.8.4.msysgit.0 +