Remove patch pulled upstream and rebuild patches

This commit is contained in:
Zach Brown 2016-03-19 17:52:09 -05:00
parent a308ede0bb
commit 924ce8be30
23 changed files with 33 additions and 493 deletions

View file

@ -1,4 +1,4 @@
From 636e967ef66ae6a0c30fdb012b1db6252fe22aee Mon Sep 17 00:00:00 2001
From 5007d500210a0bf7fb1ec142b25e624acf4f7240 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 21:09:10 -0600
Subject: [PATCH] mc-dev imports
@ -4902,362 +4902,6 @@ index 0000000..300573a
+ return this.b(s);
+ }
+}
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
new file mode 100644
index 0000000..2f4265a
--- /dev/null
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
@@ -0,0 +1,275 @@
+package net.minecraft.server;
+
+public abstract class NavigationAbstract {
+
+ private static int f = 20;
+ protected EntityInsentient a;
+ protected World b;
+ protected PathEntity c;
+ protected double d;
+ private final AttributeInstance g;
+ private int h;
+ private int i;
+ private Vec3D j;
+ private Vec3D k;
+ private long l;
+ private long m;
+ private double n;
+ private float o;
+ private boolean p;
+ private long q;
+ protected PathfinderAbstract e;
+ private BlockPosition r;
+ private final Pathfinder s;
+
+ public NavigationAbstract(EntityInsentient entityinsentient, World world) {
+ this.j = Vec3D.a;
+ this.k = Vec3D.a;
+ this.l = 0L;
+ this.m = 0L;
+ this.o = 0.5F;
+ this.a = entityinsentient;
+ this.b = world;
+ this.g = entityinsentient.getAttributeInstance(GenericAttributes.FOLLOW_RANGE);
+ this.s = this.a();
+ this.b.C().a(this);
+ }
+
+ protected abstract Pathfinder a();
+
+ public void a(double d0) {
+ this.d = d0;
+ }
+
+ public float h() {
+ return (float) this.g.getValue();
+ }
+
+ public boolean i() {
+ return this.p;
+ }
+
+ public void j() {
+ if (this.b.getTime() - this.q > (long) NavigationAbstract.f) {
+ if (this.r != null) {
+ this.c = null;
+ this.c = this.a(this.r);
+ this.q = this.b.getTime();
+ this.p = false;
+ }
+ } else {
+ this.p = true;
+ }
+
+ }
+
+ public final PathEntity a(double d0, double d1, double d2) {
+ return this.a(new BlockPosition(MathHelper.floor(d0), (int) d1, MathHelper.floor(d2)));
+ }
+
+ public PathEntity a(BlockPosition blockposition) {
+ if (!this.b()) {
+ return null;
+ } else if (this.c != null && !this.c.b() && blockposition.equals(this.r)) {
+ return this.c;
+ } else {
+ this.r = blockposition;
+ float f = this.h();
+
+ this.b.methodProfiler.a("pathfind");
+ BlockPosition blockposition1 = new BlockPosition(this.a);
+ int i = (int) (f + 8.0F);
+ ChunkCache chunkcache = new ChunkCache(this.b, blockposition1.a(-i, -i, -i), blockposition1.a(i, i, i), 0);
+ PathEntity pathentity = this.s.a(chunkcache, this.a, this.r, f);
+
+ this.b.methodProfiler.b();
+ return pathentity;
+ }
+ }
+
+ public PathEntity a(Entity entity) {
+ if (!this.b()) {
+ return null;
+ } else {
+ BlockPosition blockposition = new BlockPosition(entity);
+
+ if (this.c != null && !this.c.b() && blockposition.equals(this.r)) {
+ return this.c;
+ } else {
+ this.r = blockposition;
+ float f = this.h();
+
+ this.b.methodProfiler.a("pathfind");
+ BlockPosition blockposition1 = (new BlockPosition(this.a)).up();
+ int i = (int) (f + 16.0F);
+ ChunkCache chunkcache = new ChunkCache(this.b, blockposition1.a(-i, -i, -i), blockposition1.a(i, i, i), 0);
+ PathEntity pathentity = this.s.a(chunkcache, this.a, entity, f);
+
+ this.b.methodProfiler.b();
+ return pathentity;
+ }
+ }
+ }
+
+ public boolean a(double d0, double d1, double d2, double d3) {
+ PathEntity pathentity = this.a((double) MathHelper.floor(d0), (double) ((int) d1), (double) MathHelper.floor(d2));
+
+ return this.a(pathentity, d3);
+ }
+
+ public boolean a(Entity entity, double d0) {
+ PathEntity pathentity = this.a(entity);
+
+ return pathentity != null ? this.a(pathentity, d0) : false;
+ }
+
+ public boolean a(PathEntity pathentity, double d0) {
+ if (pathentity == null) {
+ this.c = null;
+ return false;
+ } else {
+ if (!pathentity.a(this.c)) {
+ this.c = pathentity;
+ }
+
+ this.d();
+ if (this.c.d() == 0) {
+ return false;
+ } else {
+ this.d = d0;
+ Vec3D vec3d = this.c();
+
+ this.i = this.h;
+ this.j = vec3d;
+ return true;
+ }
+ }
+ }
+
+ public PathEntity k() {
+ return this.c;
+ }
+
+ public void l() {
+ ++this.h;
+ if (this.p) {
+ this.j();
+ }
+
+ if (!this.n()) {
+ Vec3D vec3d;
+
+ if (this.b()) {
+ this.m();
+ } else if (this.c != null && this.c.e() < this.c.d()) {
+ vec3d = this.c();
+ Vec3D vec3d1 = this.c.a(this.a, this.c.e());
+
+ if (vec3d.y > vec3d1.y && !this.a.onGround && MathHelper.floor(vec3d.x) == MathHelper.floor(vec3d1.x) && MathHelper.floor(vec3d.z) == MathHelper.floor(vec3d1.z)) {
+ this.c.c(this.c.e() + 1);
+ }
+ }
+
+ if (!this.n()) {
+ vec3d = this.c.a((Entity) this.a);
+ if (vec3d != null) {
+ BlockPosition blockposition = (new BlockPosition(vec3d)).down();
+ AxisAlignedBB axisalignedbb = this.b.getType(blockposition).c(this.b, blockposition);
+
+ vec3d = vec3d.a(0.0D, 1.0D - axisalignedbb.e, 0.0D);
+ this.a.getControllerMove().a(vec3d.x, vec3d.y, vec3d.z, this.d);
+ }
+ }
+ }
+ }
+
+ protected void m() {
+ Vec3D vec3d = this.c();
+ int i = this.c.d();
+
+ for (int j = this.c.e(); j < this.c.d(); ++j) {
+ if ((double) this.c.a(j).b != Math.floor(vec3d.y)) {
+ i = j;
+ break;
+ }
+ }
+
+ this.o = this.a.width > 0.75F ? this.a.width / 2.0F : 0.75F - this.a.width / 2.0F;
+ Vec3D vec3d1 = this.c.f();
+
+ if (MathHelper.e((float) (this.a.locX - (vec3d1.x + 0.5D))) < this.o && MathHelper.e((float) (this.a.locZ - (vec3d1.z + 0.5D))) < this.o) {
+ this.c.c(this.c.e() + 1);
+ }
+
+ int k = MathHelper.f(this.a.width);
+ int l = (int) this.a.length + 1;
+ int i1 = k;
+
+ for (int j1 = i - 1; j1 >= this.c.e(); --j1) {
+ if (this.a(vec3d, this.c.a(this.a, j1), k, l, i1)) {
+ this.c.c(j1);
+ break;
+ }
+ }
+
+ this.a(vec3d);
+ }
+
+ protected void a(Vec3D vec3d) {
+ if (this.h - this.i > 100) {
+ if (vec3d.distanceSquared(this.j) < 2.25D) {
+ this.o();
+ }
+
+ this.i = this.h;
+ this.j = vec3d;
+ }
+
+ if (this.c != null && !this.c.b()) {
+ Vec3D vec3d1 = this.c.f();
+
+ if (!vec3d1.equals(this.k)) {
+ this.k = vec3d1;
+ double d0 = vec3d.f(this.k);
+
+ this.n = this.a.ck() > 0.0F ? d0 / (double) this.a.ck() * 1000.0D : 0.0D;
+ } else {
+ this.l += System.currentTimeMillis() - this.m;
+ }
+
+ if (this.n > 0.0D && (double) this.l > this.n * 3.0D) {
+ this.k = Vec3D.a;
+ this.l = 0L;
+ this.n = 0.0D;
+ this.o();
+ }
+
+ this.m = System.currentTimeMillis();
+ }
+
+ }
+
+ public boolean n() {
+ return this.c == null || this.c.b();
+ }
+
+ public void o() {
+ this.c = null;
+ }
+
+ protected abstract Vec3D c();
+
+ protected abstract boolean b();
+
+ protected boolean p() {
+ return this.a.isInWater() || this.a.an();
+ }
+
+ protected void d() {}
+
+ protected abstract boolean a(Vec3D vec3d, Vec3D vec3d1, int i, int j, int k);
+
+ public boolean b(BlockPosition blockposition) {
+ return this.b.getType(blockposition.down()).b();
+ }
+}
diff --git a/src/main/java/net/minecraft/server/NavigationListener.java b/src/main/java/net/minecraft/server/NavigationListener.java
new file mode 100644
index 0000000..f82ea80
--- /dev/null
+++ b/src/main/java/net/minecraft/server/NavigationListener.java
@@ -0,0 +1,69 @@
+package net.minecraft.server;
+
+import java.util.WeakHashMap;
+
+public class NavigationListener implements IWorldAccess {
+
+ private static final Object a = new Object();
+ private final WeakHashMap<NavigationAbstract, Object> b = new WeakHashMap();
+
+ public NavigationListener() {}
+
+ public void a(NavigationAbstract navigationabstract) {
+ this.b.put(navigationabstract, NavigationListener.a);
+ }
+
+ public void a(World world, BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) {
+ if (this.a(world, blockposition, iblockdata, iblockdata1)) {
+ NavigationAbstract[] anavigationabstract = (NavigationAbstract[]) this.b.keySet().toArray(new NavigationAbstract[0]);
+ NavigationAbstract[] anavigationabstract1 = anavigationabstract;
+ int j = anavigationabstract.length;
+
+ for (int k = 0; k < j; ++k) {
+ NavigationAbstract navigationabstract = anavigationabstract1[k];
+
+ if (navigationabstract != null && !navigationabstract.i()) {
+ PathEntity pathentity = navigationabstract.k();
+
+ if (pathentity != null && !pathentity.b() && pathentity.d() != 0) {
+ PathPoint pathpoint = navigationabstract.c.c();
+ double d0 = blockposition.distanceSquared(((double) pathpoint.a + navigationabstract.a.locX) / 2.0D, ((double) pathpoint.b + navigationabstract.a.locY) / 2.0D, ((double) pathpoint.c + navigationabstract.a.locZ) / 2.0D);
+ int l = (pathentity.d() - pathentity.e()) * (pathentity.d() - pathentity.e());
+
+ if (d0 < (double) l) {
+ navigationabstract.j();
+ }
+ }
+ }
+ }
+
+ }
+ }
+
+ protected boolean a(World world, BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1) {
+ AxisAlignedBB axisalignedbb = iblockdata.d(world, blockposition);
+ AxisAlignedBB axisalignedbb1 = iblockdata1.d(world, blockposition);
+
+ return axisalignedbb != axisalignedbb1 && (axisalignedbb == null || !axisalignedbb.equals(axisalignedbb1));
+ }
+
+ public void a(BlockPosition blockposition) {}
+
+ public void a(int i, int j, int k, int l, int i1, int j1) {}
+
+ public void a(EntityHuman entityhuman, SoundEffect soundeffect, SoundCategory soundcategory, double d0, double d1, double d2, float f, float f1) {}
+
+ public void a(int i, boolean flag, double d0, double d1, double d2, double d3, double d4, double d5, int... aint) {}
+
+ public void a(Entity entity) {}
+
+ public void b(Entity entity) {}
+
+ public void a(SoundEffect soundeffect, BlockPosition blockposition) {}
+
+ public void a(int i, BlockPosition blockposition, int j) {}
+
+ public void a(EntityHuman entityhuman, int i, BlockPosition blockposition, int j) {}
+
+ public void b(int i, BlockPosition blockposition, int j) {}
+}
diff --git a/src/main/java/net/minecraft/server/PacketPlayInResourcePackStatus.java b/src/main/java/net/minecraft/server/PacketPlayInResourcePackStatus.java
new file mode 100644
index 0000000..30ca225
@ -5836,5 +5480,5 @@ index 0000000..2286c9e
+ }
+}
--
2.7.4
2.7.3

View file

@ -1,4 +1,4 @@
From af2e610ee6d63769448b95cc2386e9bf73beb02d Mon Sep 17 00:00:00 2001
From c2c05904915d7f992a37630a29b4ec7531065334 Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
Date: Tue, 8 Mar 2016 18:28:43 -0800
Subject: [PATCH] Don't nest if we don't need to when cerealising text
@ -26,5 +26,5 @@ index c0e1199..bc6c054 100644
packetdataserializer.a(this.a);
}
--
2.7.2
2.7.3

View file

@ -1,104 +0,0 @@
From 7a0a329dd1092b98f0951ae49af15c56d210d6d9 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 8 Mar 2016 19:13:54 -0500
Subject: [PATCH] Optimize Navigation Listener
Mojang was abusing a WeakHashMap to do clean up. However this has some
scary object life concerns as you could have a NavigationListener being
ticked even after the entity it was bound to was removed from world.
Switching this to an Array List gives superior iteration performance
at a slight cost to removal performance.
Additionally, change listener registration to be done upon world add
instead of immediate up creation.
This provides benefit of only registering and ticking REAL Navigation
objects, and not invalid entities (cancelled entity spawns for example)
Gives us a much leaner NavigationListener list.
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
index 7d794b9..aa18f54 100644
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
@@ -32,7 +32,7 @@ public abstract class NavigationAbstract {
this.b = world;
this.g = entityinsentient.getAttributeInstance(GenericAttributes.FOLLOW_RANGE);
this.s = this.a();
- this.b.C().a(this);
+ //this.b.C().a(this); // Paper - Optimized Nav Listener - registered on world add
}
protected abstract Pathfinder a();
diff --git a/src/main/java/net/minecraft/server/NavigationListener.java b/src/main/java/net/minecraft/server/NavigationListener.java
index f82ea80..963a0e7 100644
--- a/src/main/java/net/minecraft/server/NavigationListener.java
+++ b/src/main/java/net/minecraft/server/NavigationListener.java
@@ -1,26 +1,35 @@
package net.minecraft.server;
+import java.util.ArrayList; // Paper
+import java.util.List; // Paper
import java.util.WeakHashMap;
public class NavigationListener implements IWorldAccess {
private static final Object a = new Object();
- private final WeakHashMap<NavigationAbstract, Object> b = new WeakHashMap();
+ private final List<NavigationAbstract> navigators = new ArrayList<>(); // Paper
public NavigationListener() {}
public void a(NavigationAbstract navigationabstract) {
- this.b.put(navigationabstract, NavigationListener.a);
+ //this.b.put(navigationabstract, NavigationListener.a); // Paper
+ System.err.println("Unexpected NavigationListener add"); // Paper
}
public void a(World world, BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) {
if (this.a(world, blockposition, iblockdata, iblockdata1)) {
+ /* // Paper start
NavigationAbstract[] anavigationabstract = (NavigationAbstract[]) this.b.keySet().toArray(new NavigationAbstract[0]);
NavigationAbstract[] anavigationabstract1 = anavigationabstract;
int j = anavigationabstract.length;
- for (int k = 0; k < j; ++k) {
- NavigationAbstract navigationabstract = anavigationabstract1[k];
+ */
+ // DO NOT USE AN ITERATOR! This must be a for (;;) to avoid CME.
+ // This is perfectly safe, as additions are ok to be done in this iteration
+ // and Removals are queued instead of immediate.
+ for (int k = 0; k < this.navigators.size(); ++k) {
+ NavigationAbstract navigationabstract = this.navigators.get(k);
+ // Paper end
if (navigationabstract != null && !navigationabstract.i()) {
PathEntity pathentity = navigationabstract.k();
@@ -55,9 +64,21 @@ public class NavigationListener implements IWorldAccess {
public void a(int i, boolean flag, double d0, double d1, double d2, double d3, double d4, double d5, int... aint) {}
- public void a(Entity entity) {}
+ public void a(Entity entity) {
+ // Paper start
+ if (entity instanceof EntityInsentient) {
+ this.navigators.add(((EntityInsentient) entity).navigation);
+ }
+ // Paper end
+ }
- public void b(Entity entity) {}
+ public void b(Entity entity) {
+ // Paper start
+ if (entity instanceof EntityInsentient) {
+ this.navigators.remove(((EntityInsentient) entity).navigation);
+ }
+ // Paper end
+ }
public void a(SoundEffect soundeffect, BlockPosition blockposition) {}
--
2.7.3

View file

@ -1,4 +1,4 @@
From 11111d3ecaacfd66ca1678680b23a8aa9d6b8cde Mon Sep 17 00:00:00 2001
From 821a19198ac0334421250b89174b7b353543e9c2 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 8 Mar 2016 23:25:45 -0500
Subject: [PATCH] Disable Scoreboards for non players by default

View file

@ -1,4 +1,4 @@
From cb235b47d0b86defc04f886883da0a4cdae9ab81 Mon Sep 17 00:00:00 2001
From 0b995071bedb2a68563ceba6087ca30fd007ff92 Mon Sep 17 00:00:00 2001
From: mrapple <tony@oc.tc>
Date: Sun, 25 Nov 2012 13:43:39 -0600
Subject: [PATCH] Add methods for working with arrows stuck in living entities
@ -43,5 +43,5 @@ index 6f25d18..693d5cb 100644
+ // Paper end
}
--
2.7.4
2.7.3

View file

@ -1,4 +1,4 @@
From bf6283b5e4de9efb88ab98d75a5ccc628997f268 Mon Sep 17 00:00:00 2001
From f73bf84af55020b362b2dca1b51f1f706c0e4205 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sat, 4 Apr 2015 23:17:52 -0400
Subject: [PATCH] Complete resource pack API
@ -86,5 +86,5 @@ index 4be2653..b2b2bf4 100644
// Spigot start
--
2.7.2
2.7.3

View file

@ -1,4 +1,4 @@
From 43a8b5d2e760a663bf8674cdb794e510f3c3d62d Mon Sep 17 00:00:00 2001
From 50ce8bd11dd95b966cc1d566901c12c92f0c707c Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Sat, 12 Mar 2016 13:37:50 -0600
Subject: [PATCH] Re-add Spigot's hopper-check feature

View file

@ -1,4 +1,4 @@
From 009f6b77c95094a9d2e9698ab89a0ae8eaa539b4 Mon Sep 17 00:00:00 2001
From 3f15c4026c0860a835923d5c3acd6f93e06ddf8b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 4 Mar 2016 18:18:37 -0600
Subject: [PATCH] Chunk save queue improvements

View file

@ -1,4 +1,4 @@
From 798d650695eced24d570d3234da5daf0176aa1ab Mon Sep 17 00:00:00 2001
From 8136953d20cd31bbf60401988b9be1e6373fdcfb Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 4 Mar 2013 23:46:10 -0500
Subject: [PATCH] Chunk Save Reattempt

View file

@ -1,4 +1,4 @@
From 64de83ecd218a34a0c0abccbe67882e3fd47504b Mon Sep 17 00:00:00 2001
From a3aaf71e3a2304bfc6b4d3f805f8a7d76b0975a1 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 13:17:38 -0400
Subject: [PATCH] Default loading permissions.yml before plugins

View file

@ -1,4 +1,4 @@
From e6f2d392781558710a109c36cd8359d14c66d019 Mon Sep 17 00:00:00 2001
From e8d5f3cee9c2a6fe8125553eadbb0b198368f560 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 13:50:14 -0400
Subject: [PATCH] Invalidate Metadata on reload

View file

@ -1,4 +1,4 @@
From 061b3ef97d23ed3950196836e50da0c62bf08d38 Mon Sep 17 00:00:00 2001
From 2629402186e7795e1e17a135a3e965758f55d300 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 14:19:19 -0400
Subject: [PATCH] Undead horse leashing

View file

@ -1,4 +1,4 @@
From 11d6a09a93d8d330f13366fe04a374eefbb85547 Mon Sep 17 00:00:00 2001
From 76ca6e71647989c7af2780e5246f9e9ae389df13 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 14:24:53 -0400
Subject: [PATCH] Fix Furnace cook time bug

View file

@ -1,4 +1,4 @@
From 5207c4aef31a69a4f9cded63c9b90e056c7f9d50 Mon Sep 17 00:00:00 2001
From efe95b788587939d67d7add7914c4272aef31230 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 28 May 2015 23:00:19 -0400
Subject: [PATCH] Handle Item Meta Inconsistencies

View file

@ -1,4 +1,4 @@
From 62ffb05812c537072f184c2b561f62d77f4750b5 Mon Sep 17 00:00:00 2001
From d921e3e3b88a48583a089c24d5372d27e6bd4ea2 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 15:12:22 -0400
Subject: [PATCH] Configurable Non Player Arrow Despawn Rate

View file

@ -1,4 +1,4 @@
From a129b303afc36a4e665fc1328a68aa307e09f0f0 Mon Sep 17 00:00:00 2001
From 3f28611a24fa1d3b92132c6755774d90f0cce970 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 17:57:25 -0400
Subject: [PATCH] Optimize Chunk Unload Queue
@ -175,7 +175,7 @@ index 63e118d..721bcae 100644
i += server.getChunkAt( x, z ).entityCount.get( oClass );
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 40338c0..c6b70b6 100644
index be311cd..66d3e94 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -232,7 +232,7 @@ public class CraftWorld implements World {
@ -228,5 +228,5 @@ index 482af17..a1a6d5a 100644
neighbor.setNeighborLoaded(-x, -z);
chunk.setNeighborLoaded(x, z);
--
2.7.4
2.7.3

View file

@ -1,4 +1,4 @@
From 23c5437c07a1bf673509fc5f20aed2117defe615 Mon Sep 17 00:00:00 2001
From b13bb267023ea301e6788d681b6c894611645c8b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 19:15:44 -0400
Subject: [PATCH] Optimize BlockStateList/BlockData
@ -41,5 +41,5 @@ index a11c62f..43f198b 100644
public ImmutableMap<IBlockState<?>, Comparable<?>> s() {
--
2.7.4
2.7.3

View file

@ -1,4 +1,4 @@
From 965df3c371af6bc8f0725dbaa14200f65cf61785 Mon Sep 17 00:00:00 2001
From 0ef28b03fcca5f758ec4080fe0fcf19baf7b1881 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 20:16:03 -0400
Subject: [PATCH] Add World Util Methods
@ -93,5 +93,5 @@ index b356aa6..dafe3b2 100644
// CraftBukkit start - tree generation
if (captureTreeGeneration) {
--
2.7.4
2.7.3

View file

@ -1,4 +1,4 @@
From bd1318892df7666bce22dfd3884b8a2cce99024e Mon Sep 17 00:00:00 2001
From ec825855931a7fc5824289d9c60a1fbd69809887 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 21:22:56 -0400
Subject: [PATCH] Optimized Light Level Comparisons
@ -131,5 +131,5 @@ index 949452c..d6c07a2 100644
if (!this.world.isPlayerNearby((double) i1, (double) j1, (double) k1, 7.0D) && this.world.a(entityzombie.getBoundingBox(), (Entity) entityzombie) && this.world.getCubes(entityzombie, entityzombie.getBoundingBox()).isEmpty() && !this.world.containsLiquid(entityzombie.getBoundingBox())) {
this.world.addEntity(entityzombie, CreatureSpawnEvent.SpawnReason.REINFORCEMENTS); // CraftBukkit
--
2.7.4
2.7.3

View file

@ -1,4 +1,4 @@
From 7753525019a5b4ca88a9d28322329d8f6d76e14a Mon Sep 17 00:00:00 2001
From 352b49921f8668d23b12b13a0cccd1a929ad9d86 Mon Sep 17 00:00:00 2001
From: DemonWav <demonwav@gmail.com>
Date: Sat, 19 Mar 2016 12:14:50 -0500
Subject: [PATCH] Revert Spigot changes to blocking code, fix issue where

View file

@ -1,4 +1,4 @@
From 1937f16e1e4eb1172c75ee7b08e3e176e86e33a2 Mon Sep 17 00:00:00 2001
From 7c2acad690c96df7fbb0aed0428251d272d81c02 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 19 Mar 2016 15:16:54 -0400
Subject: [PATCH] Pass world to Village creation
@ -32,5 +32,5 @@ index 932eeb7..9b59dcb 100644
this.d = BlockPosition.ZERO;
this.j = new TreeMap();
--
2.7.4
2.7.3

View file

@ -1,4 +1,4 @@
From 40e17a07a01c12f1d76bb1fcb944a6182976f124 Mon Sep 17 00:00:00 2001
From de05a5dbaa3091c15b701ddae3482249ad0fc4c2 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sun, 21 Jun 2015 15:07:20 -0400
Subject: [PATCH] Custom replacement for eaten items

View file

@ -1,4 +1,4 @@
From 9d6816715ea3547ca50e0a60b18721a338f58329 Mon Sep 17 00:00:00 2001
From eef7f73163efe6762aeed5ad0f994f63050bf159 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sun, 19 Jul 2015 16:51:38 -0400
Subject: [PATCH] Set health before death event
@ -46,5 +46,5 @@ index 693d5cb..ef522e7 100644
public double getMaxHealth() {
--
2.7.2
2.7.3