Re-add entity/tile entity tick limiters

This commit is contained in:
vemacs 2015-09-12 23:29:23 -05:00 committed by Zach Brown
parent f243a4024d
commit 502ffa0833
50 changed files with 216 additions and 258 deletions

View file

@ -1,4 +1,4 @@
From 57871914afc8b81ed1a5383a76d50d62ca63ff93 Mon Sep 17 00:00:00 2001
From aa2e76930579e08f02deb52ab784371c7bad93fa Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 8 Mar 2015 01:56:22 -0600
Subject: [PATCH] Optimize TileEntity Ticking
@ -74,10 +74,30 @@ index f75e2de..7119612 100644
if (this.e instanceof BlockDaylightDetector) {
((BlockDaylightDetector) this.e).f(this.world, this.position);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 40b9a13..ba40490 100644
index 641db2a..22237c9 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -53,7 +53,7 @@ public abstract class World implements IBlockAccess {
@@ -28,6 +28,19 @@ public abstract class World implements IBlockAccess {
// Spigot start - guard entity list from removals
public final List<Entity> entityList = new java.util.ArrayList<Entity>()
{
+ // PaperSpigot start - move always activated entities to top of tick list
+ @Override
+ public boolean add(Entity e)
+ {
+ if (e.defaultActivationState) {
+ super.add(0, e);
+ return true;
+ } else {
+ return super.add(e);
+ }
+ }
+ // PaperSpigot end
+
@Override
public Entity remove(int index)
{
@@ -53,7 +66,7 @@ public abstract class World implements IBlockAccess {
// Spigot end
protected final List<Entity> g = Lists.newArrayList();
public final List<TileEntity> h = Lists.newArrayList();
@ -86,9 +106,75 @@ index 40b9a13..ba40490 100644
private final List<TileEntity> b = Lists.newArrayList();
private final List<TileEntity> c = Lists.newArrayList();
public final List<EntityHuman> players = Lists.newArrayList();
@@ -219,7 +232,7 @@ public abstract class World implements IBlockAccess {
this.getServer().addWorld(this.world);
// CraftBukkit end
this.keepSpawnInMemory = this.paperSpigotConfig.keepSpawnInMemory; // PaperSpigot
- timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings
+ timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings
this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
@@ -1394,9 +1407,21 @@ public abstract class World implements IBlockAccess {
guardEntityList = true; // Spigot
// CraftBukkit start - Use field for loop variable
int entitiesThisCycle = 0;
+
+ // PaperSpigot start - Compute minimum tick index
+ int minTickIndex = -1;
+ ListIterator<Entity> e = entityList.listIterator();
+ while (e.hasNext()) {
+ if (!e.next().defaultActivationState) {
+ minTickIndex = e.previousIndex();
+ break;
+ }
+ }
+ // PaperSpigot end
+
if (tickPosition < 0) tickPosition = 0;
for (entityLimiter.initTick();
- entitiesThisCycle < entityList.size() && (entitiesThisCycle % 10 == 0 || entityLimiter.shouldContinue());
+ entitiesThisCycle < entityList.size() && (tickPosition <= minTickIndex || entitiesThisCycle % 10 == 0 || entityLimiter.shouldContinue()); // PaperSpigot
tickPosition++, entitiesThisCycle++) {
tickPosition = (tickPosition < entityList.size()) ? tickPosition : 0;
entity = (Entity) this.entityList.get(this.tickPosition);
@@ -1454,19 +1479,13 @@ public abstract class World implements IBlockAccess {
this.c.clear();
}
// CraftBukkit end
+ Iterator iterator = this.tileEntityList.iterator();
- // Spigot start
- int tilesThisCycle = 0;
- for (tileLimiter.initTick();
- tilesThisCycle < tileEntityList.size() && (tilesThisCycle % 10 == 0 || tileLimiter.shouldContinue());
- tileTickPosition++, tilesThisCycle++) {
- tileTickPosition = (tileTickPosition < tileEntityList.size()) ? tileTickPosition : 0;
- TileEntity tileentity = (TileEntity) this.tileEntityList.get(tileTickPosition);
- // Spigot start
+ while (iterator.hasNext()) {
+ TileEntity tileentity = (TileEntity) iterator.next();
if (tileentity == null) {
getServer().getLogger().severe("Spigot has detected a null entity and has removed it, preventing a crash");
- tilesThisCycle--;
- this.tileEntityList.remove(tileTickPosition--);
+ iterator.remove();
continue;
}
// Spigot end
@@ -1494,8 +1513,7 @@ public abstract class World implements IBlockAccess {
}
if (tileentity.x()) {
- tilesThisCycle--;
- this.tileEntityList.remove(tileTickPosition--);
+ iterator.remove();
this.h.remove(tileentity);
if (this.isLoaded(tileentity.getPosition())) {
this.getChunkAtWorldCoords(tileentity.getPosition()).e(tileentity.getPosition());
diff --git a/src/main/java/org/github/paperspigot/WorldTileEntityList.java b/src/main/java/org/github/paperspigot/WorldTileEntityList.java
new file mode 100644
index 0000000..5af5dcc
index 0000000..66b6af0
--- /dev/null
+++ b/src/main/java/org/github/paperspigot/WorldTileEntityList.java
@@ -0,0 +1,168 @@
@ -260,7 +346,6 @@ index 0000000..5af5dcc
+ }
+ }
+}
\ No newline at end of file
--
2.5.1
2.5.2

View file

@ -1,127 +0,0 @@
From bbb9617726f41937c438d39ba8b36f525724e2eb Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sat, 30 May 2015 01:21:00 -0500
Subject: [PATCH] Remove Spigot TileEntity/Enity Tick Time Capping
Appears to cause visual glitches with TNT Entities and certain types of cannons
TileEntity cap removed as we implement our own solution in a later (next) patch.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 641db2a..40b9a13 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -125,8 +125,6 @@ public abstract class World implements IBlockAccess {
private final byte chunkTickRadius;
public static boolean haveWeSilencedAPhysicsCrash;
public static String blockLocation;
- private org.spigotmc.TickLimiter entityLimiter;
- private org.spigotmc.TickLimiter tileLimiter;
private int tileTickPosition;
public static long chunkToKey(int x, int z)
@@ -219,9 +217,7 @@ public abstract class World implements IBlockAccess {
this.getServer().addWorld(this.world);
// CraftBukkit end
this.keepSpawnInMemory = this.paperSpigotConfig.keepSpawnInMemory; // PaperSpigot
- timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings
- this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
- this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
+ timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings
}
public World b() {
@@ -1393,12 +1389,7 @@ public abstract class World implements IBlockAccess {
timings.entityTick.startTiming(); // Spigot
guardEntityList = true; // Spigot
// CraftBukkit start - Use field for loop variable
- int entitiesThisCycle = 0;
- if (tickPosition < 0) tickPosition = 0;
- for (entityLimiter.initTick();
- entitiesThisCycle < entityList.size() && (entitiesThisCycle % 10 == 0 || entityLimiter.shouldContinue());
- tickPosition++, entitiesThisCycle++) {
- tickPosition = (tickPosition < entityList.size()) ? tickPosition : 0;
+ for (this.tickPosition = 0; this.tickPosition < this.entityList.size(); ++this.tickPosition) {
entity = (Entity) this.entityList.get(this.tickPosition);
// CraftBukkit end
if (entity.vehicle != null) {
@@ -1454,19 +1445,13 @@ public abstract class World implements IBlockAccess {
this.c.clear();
}
// CraftBukkit end
+ Iterator iterator = this.tileEntityList.iterator();
- // Spigot start
- int tilesThisCycle = 0;
- for (tileLimiter.initTick();
- tilesThisCycle < tileEntityList.size() && (tilesThisCycle % 10 == 0 || tileLimiter.shouldContinue());
- tileTickPosition++, tilesThisCycle++) {
- tileTickPosition = (tileTickPosition < tileEntityList.size()) ? tileTickPosition : 0;
- TileEntity tileentity = (TileEntity) this.tileEntityList.get(tileTickPosition);
- // Spigot start
+ while (iterator.hasNext()) {
+ TileEntity tileentity = (TileEntity) iterator.next();
if (tileentity == null) {
getServer().getLogger().severe("Spigot has detected a null entity and has removed it, preventing a crash");
- tilesThisCycle--;
- this.tileEntityList.remove(tileTickPosition--);
+ iterator.remove();
continue;
}
// Spigot end
@@ -1494,8 +1479,7 @@ public abstract class World implements IBlockAccess {
}
if (tileentity.x()) {
- tilesThisCycle--;
- this.tileEntityList.remove(tileTickPosition--);
+ iterator.remove();
this.h.remove(tileentity);
if (this.isLoaded(tileentity.getPosition())) {
this.getChunkAtWorldCoords(tileentity.getPosition()).e(tileentity.getPosition());
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
index 8e86212..ab2f8bf 100644
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -332,13 +332,4 @@ public class SpigotWorldConfig
{
hangingTickFrequency = getInt( "hanging-tick-frequency", 100 );
}
-
- public int tileMaxTickTime;
- public int entityMaxTickTime;
- private void maxTickTimes()
- {
- tileMaxTickTime = getInt("max-tick-time.tile", 50);
- entityMaxTickTime = getInt("max-tick-time.entity", 50);
- log("Tile Max Tick Time: " + tileMaxTickTime + "ms Entity max Tick Time: " + entityMaxTickTime + "ms");
- }
}
diff --git a/src/main/java/org/spigotmc/TickLimiter.java b/src/main/java/org/spigotmc/TickLimiter.java
deleted file mode 100644
index 23a3938..0000000
--- a/src/main/java/org/spigotmc/TickLimiter.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.spigotmc;
-
-public class TickLimiter {
-
- private final int maxTime;
- private long startTime;
-
- public TickLimiter(int maxtime) {
- this.maxTime = maxtime;
- }
-
- public void initTick() {
- startTime = System.currentTimeMillis();
- }
-
- public boolean shouldContinue() {
- long remaining = System.currentTimeMillis() - startTime;
- return remaining < maxTime;
- }
-}
--
2.5.1

View file

@ -1,4 +1,4 @@
From a84455bbed79cd671e5bd181692d5775fdf33503 Mon Sep 17 00:00:00 2001
From 99cdc956ee7168e0e3b709d59c661e044118750b Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Sun, 8 Mar 2015 03:16:39 -0500
Subject: [PATCH] Move sound handling out of the chest tick loop
@ -179,7 +179,7 @@ index f712885..d2ef4c4 100644
}
diff --git a/src/main/java/org/github/paperspigot/WorldTileEntityList.java b/src/main/java/org/github/paperspigot/WorldTileEntityList.java
index 5af5dcc..693f75c 100644
index 66b6af0..16804d2 100644
--- a/src/main/java/org/github/paperspigot/WorldTileEntityList.java
+++ b/src/main/java/org/github/paperspigot/WorldTileEntityList.java
@@ -26,7 +26,9 @@ public class WorldTileEntityList extends HashSet<TileEntity> {
@ -194,5 +194,5 @@ index 5af5dcc..693f75c 100644
put(ignored, -1);
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 8acc5bbbd936c86b177adad2e2c050dd160b057f Mon Sep 17 00:00:00 2001
From c6bdd68547cafb9bd201b18fcc907ef042793479 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Sun, 8 Mar 2015 03:34:15 -0500
Subject: [PATCH] Remove certain entities that fly through unloaded chunks
@ -70,10 +70,10 @@ index 2d22327..50423eb 100644
this.motY *= 0.9800000190734863D;
this.motZ *= 0.9800000190734863D;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ba40490..624352c 100644
index 22237c9..cb18500 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1156,6 +1156,7 @@ public abstract class World implements IBlockAccess {
@@ -1173,6 +1173,7 @@ public abstract class World implements IBlockAccess {
{
if ( !this.isChunkLoaded( chunkx, chunkz, true ) )
{
@ -81,7 +81,7 @@ index ba40490..624352c 100644
continue;
}
int cz = chunkz << 4;
@@ -1567,6 +1568,14 @@ public abstract class World implements IBlockAccess {
@@ -1601,6 +1602,14 @@ public abstract class World implements IBlockAccess {
if (!org.spigotmc.ActivationRange.checkIfActive(entity)) {
entity.ticksLived++;
entity.inactiveTick();
@ -116,5 +116,5 @@ index 5aa368f..729cbf1 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 6a6fa20de00252fd6554c21ef476b3b0ce4910f5 Mon Sep 17 00:00:00 2001
From d1776584c27a8accdbea0f52d15c109ed39c7264 Mon Sep 17 00:00:00 2001
From: gsand <gsandowns@gmail.com>
Date: Sun, 8 Mar 2015 03:41:33 -0500
Subject: [PATCH] Configurable strength and weakness effect modifiers
@ -35,5 +35,5 @@ index b0dd5b0..5df90f9 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 65afaa861ad3628efbc2508ea816ee8992cdf573 Mon Sep 17 00:00:00 2001
From ceed400928a2e43bd8b6062930645e20188d3040 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 8 Mar 2015 03:47:32 -0500
Subject: [PATCH] Further improve server tick loop
@ -216,5 +216,5 @@ index be2e31d..21fd7ef 100644
return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString()
+ ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 );
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 5fd334ff63caf9bea97f9574120699f24537f032 Mon Sep 17 00:00:00 2001
From 7d7a99521d76d82fca456a31c23a379de4c51974 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 28 Nov 2014 13:20:22 -0600
Subject: [PATCH] Only refresh abilities if needed
@ -24,5 +24,5 @@ index a9b4160..506a03c 100644
@Override
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From eeaf61196f789fb6b4efb4b78ca6912ef28426ab Mon Sep 17 00:00:00 2001
From d7f24069b1a8b71054130f629e671ac5c858e09d Mon Sep 17 00:00:00 2001
From: gsand <gsandowns@gmail.com>
Date: Sun, 8 Mar 2015 04:10:02 -0500
Subject: [PATCH] Configurable game mechanics changes
@ -78,5 +78,5 @@ index 729cbf1..88ee38a 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From e4b4e41622bb6125ddbfabe33403e5da9352793e Mon Sep 17 00:00:00 2001
From 44c3f1e06cf4cdf6abf175b441089997e1f7a160 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 6 Nov 2014 18:29:20 -0600
Subject: [PATCH] Add async chunk load API
@ -34,5 +34,5 @@ index 17f2c0a..552f5c3 100644
return this.world.chunkProviderServer.getChunkAt(x, z).bukkitChunk;
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From fcac891d73274bc95cbac4441c372560634b190f Mon Sep 17 00:00:00 2001
From 881e28b060f69f64a8714a8efba1d9504d225392 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Sun, 30 Nov 2014 18:58:07 -0600
Subject: [PATCH] Allow specified ItemStacks to retain their invalid data
@ -64,5 +64,5 @@ index 5df90f9..744773d 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 0c46756ed4495d127ded0a83745e8d5b003cc64b Mon Sep 17 00:00:00 2001
From cc5daca1c11aec789248376d581251fbd78ab7eb Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 8 Mar 2015 04:23:41 -0500
Subject: [PATCH] Add TNT source location API
@ -128,5 +128,5 @@ index e08ad47..b7e8b4d 100644
+ // PaperSpigot end
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From df2b16b33722bf1304a3d5e29443dd2e1317a12f Mon Sep 17 00:00:00 2001
From 32133cf12527dd63c45e714733847f1226c33a98 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 8 Mar 2015 04:37:23 -0500
Subject: [PATCH] Prevent tile entity and entity crashes
@ -23,10 +23,10 @@ index 1971941..d258604 100644
public String a() throws Exception {
int i = Block.getId(TileEntity.this.world.getType(TileEntity.this.position).getBlock());
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 624352c..915a02d 100644
index cb18500..a70c6ac 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1409,10 +1409,13 @@ public abstract class World implements IBlockAccess {
@@ -1443,10 +1443,13 @@ public abstract class World implements IBlockAccess {
this.g(entity);
SpigotTimings.tickEntityTimer.stopTiming(); // Spigot
} catch (Throwable throwable1) {
@ -44,7 +44,7 @@ index 624352c..915a02d 100644
}
}
@@ -1465,11 +1468,13 @@ public abstract class World implements IBlockAccess {
@@ -1499,11 +1502,13 @@ public abstract class World implements IBlockAccess {
tileentity.tickTimer.startTiming(); // Spigot
((IUpdatePlayerListBox) tileentity).c();
} catch (Throwable throwable2) {
@ -64,5 +64,5 @@ index 624352c..915a02d 100644
// Spigot start
finally {
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From a1f9b6079003b39860e02302b66dee4ac3499c8b Mon Sep 17 00:00:00 2001
From ca87d8b9c448410b824a90a96271b59ff6013057 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 23 Feb 2015 14:57:28 -0600
Subject: [PATCH] Configurable top of nether void damage
@ -47,5 +47,5 @@ index 88ee38a..c1f21ae 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 7e6a639b4eeeb3688319bfc3fd0ef1cce75af8b2 Mon Sep 17 00:00:00 2001
From 00c35bcd2392c48a4d19f2ed255777ccc9c46366 Mon Sep 17 00:00:00 2001
From: Zach <zach.brown@destroystokyo.com>
Date: Fri, 13 Feb 2015 14:49:30 -0600
Subject: [PATCH] Enderman drop the block they're holding when they die
@ -23,5 +23,5 @@ index a250062..f3afbbd 100644
public void setCarried(IBlockData iblockdata) {
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From cf35b82adfa15a02ee3df2704c41c691b53483ed Mon Sep 17 00:00:00 2001
From 28aef7121f1624bdaf403a0475a8e2d82b5c8bc8 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 5 Mar 2015 15:30:06 -0600
Subject: [PATCH] Check online mode before converting and renaming player data
@ -18,5 +18,5 @@ index 7c51750..e5124af 100644
file = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
if ( file.exists() )
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 293682fbe2ac59c0b9e4409994d61b8ce4389794 Mon Sep 17 00:00:00 2001
From e031a2fdb5f287270a421f36d518ecadd94e8f2c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 13 Apr 2015 15:47:15 -0500
Subject: [PATCH] Fix redstone lag issues
@ -73,5 +73,5 @@ index c1f21ae..8421e3b 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From e9c50edad5d027adaae0bf05ddf8a171c11f9fe5 Mon Sep 17 00:00:00 2001
From 3df8bfc1c7035c7d7a39f29968d3213513bc81b1 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 10 Apr 2015 18:07:36 -0500
Subject: [PATCH] Always tick falling blocks
@ -25,5 +25,5 @@ index 621a717..7ca1b24 100644
|| entity instanceof EntityFireworks )
{
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From c087d87d113e3146aadf499a59b7fd25ae3e0836 Mon Sep 17 00:00:00 2001
From a71e327bd3f756762f61d7a45ce072ecd55d9325 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Fri, 17 Apr 2015 02:26:14 -0700
Subject: [PATCH] Add FallingBlock source location API
@ -141,5 +141,5 @@ index 788f26b..f2dfedd 100644
+ // PaperSpigot end
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 52a08c186d6719c42f5f2a2867f6b2a8d67a54da Mon Sep 17 00:00:00 2001
From fed5fc8b4674e1f722eed072d2922623358c96d5 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 1 Jul 2015 00:18:10 -0700
Subject: [PATCH] Configurable async light updates
@ -88,7 +88,7 @@ index 975d666..ae0f276 100644
if (!this.world.c(i, j)) {
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 915a02d..1779a5b 100644
index a70c6ac..f5ca87c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -18,6 +18,12 @@ import org.bukkit.generator.ChunkGenerator;
@ -104,15 +104,15 @@ index 915a02d..1779a5b 100644
// CraftBukkit start
// CraftBukkit end
@@ -126,6 +132,7 @@ public abstract class World implements IBlockAccess {
public static boolean haveWeSilencedAPhysicsCrash;
public static String blockLocation;
@@ -141,6 +147,7 @@ public abstract class World implements IBlockAccess {
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
private int tileTickPosition;
+ public ExecutorService lightingExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("PaperSpigot - Lighting Thread").build()); // PaperSpigot - Asynchronous lighting updates
public static long chunkToKey(int x, int z)
{
@@ -493,7 +500,7 @@ public abstract class World implements IBlockAccess {
@@ -510,7 +517,7 @@ public abstract class World implements IBlockAccess {
if (!this.worldProvider.o()) {
for (i1 = k; i1 <= l; ++i1) {
@ -121,7 +121,7 @@ index 915a02d..1779a5b 100644
}
}
@@ -2308,10 +2315,10 @@ public abstract class World implements IBlockAccess {
@@ -2342,10 +2349,10 @@ public abstract class World implements IBlockAccess {
boolean flag = false;
if (!this.worldProvider.o()) {
@ -134,7 +134,7 @@ index 915a02d..1779a5b 100644
return flag;
}
@@ -2358,10 +2365,10 @@ public abstract class World implements IBlockAccess {
@@ -2392,10 +2399,10 @@ public abstract class World implements IBlockAccess {
}
}
@ -148,7 +148,7 @@ index 915a02d..1779a5b 100644
// CraftBukkit end
return false;
} else {
@@ -2479,11 +2486,66 @@ public abstract class World implements IBlockAccess {
@@ -2513,11 +2520,66 @@ public abstract class World implements IBlockAccess {
}
}
@ -232,5 +232,5 @@ index 8421e3b..fa5066b 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From f397692854ffdf5028e8ed4f904228e13150da68 Mon Sep 17 00:00:00 2001
From 97ad9f212cb616d704bcde54c2ed2294c1367a80 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Fri, 10 Apr 2015 02:24:20 -0700
Subject: [PATCH] Optimize draining
@ -25,5 +25,5 @@ index de1dddb..ff18f63 100644
}
} else {
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 2886b4137635246b7104e9b2e23508c9fc8085b5 Mon Sep 17 00:00:00 2001
From 8ad9c97c7fe7e8065460593d225c5d3b9ba131b8 Mon Sep 17 00:00:00 2001
From: Roman Alexander <romanalexander@users.noreply.github.com>
Date: Fri, 27 Mar 2015 00:52:24 -0400
Subject: [PATCH] Toggleable player crits, helps mitigate hacked clients.
@ -34,5 +34,5 @@ index fa5066b..0b1a96e 100644
public boolean netherVoidTopDamage;
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 42ec7f44c7264b24671c8903f2e95230911ff01d Mon Sep 17 00:00:00 2001
From 59957f2d97df8ed4bfbf3656779fbbe1414a11f1 Mon Sep 17 00:00:00 2001
From: Isaac Moore <rmsy@me.com>
Date: Mon, 27 Apr 2015 21:41:39 -0500
Subject: [PATCH] Add PlayerLocaleChangeEvent
@ -41,5 +41,5 @@ index d1bd480..2dd8508 100644
+ // PaperSpigot end
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From c683bad12f9fef3edc363aa63b6882bec702d7ce Mon Sep 17 00:00:00 2001
From 8388402abcbf1bad41fb130f28bbe81e727d72ae Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Thu, 30 Apr 2015 22:42:34 -0400
Subject: [PATCH] Fix jar being shaded multiple times
@ -17,5 +17,5 @@ index 9678b08..4ec5bf6 100644
<manifestEntries>
<Main-Class>org.bukkit.craftbukkit.Main</Main-Class>
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 67097b3f8de099ce7948d144b71ad259614dc86d Mon Sep 17 00:00:00 2001
From 018c8c052c2427a66dc44a0629ce75f9e6ae24f0 Mon Sep 17 00:00:00 2001
From: DoctorDark <doctordark11@gmail.com>
Date: Thu, 28 May 2015 20:12:38 -0500
Subject: [PATCH] Configurable end credits when leaving the end
@ -89,5 +89,5 @@ index 0b1a96e..36e0948 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 5f8a27a95437af90359b01db1779bb7abe2575ab Mon Sep 17 00:00:00 2001
From 0ed5d74f4f96b4b54ffe24e085e412165281f5e8 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 30 Jun 2015 20:45:24 -0700
Subject: [PATCH] Force load chunks for specific entities that fly through
@ -141,10 +141,10 @@ index 1daba4e..3a7c4fa 100644
protected void b(NBTTagCompound nbttagcompound) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 1779a5b..27cb4ed 100644
index f5ca87c..a1e46c2 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1163,8 +1163,14 @@ public abstract class World implements IBlockAccess {
@@ -1180,8 +1180,14 @@ public abstract class World implements IBlockAccess {
{
if ( !this.isChunkLoaded( chunkx, chunkz, true ) )
{
@ -161,7 +161,7 @@ index 1779a5b..27cb4ed 100644
}
int cz = chunkz << 4;
Chunk chunk = this.getChunkAt( chunkx, chunkz );
@@ -1631,6 +1637,7 @@ public abstract class World implements IBlockAccess {
@@ -1665,6 +1671,7 @@ public abstract class World implements IBlockAccess {
int i1 = MathHelper.floor(entity.locZ / 16.0D);
if (!entity.ad || entity.ae != k || entity.af != l || entity.ag != i1) {
@ -202,5 +202,5 @@ index 7ca1b24..6f3734b 100644
return true;
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 28fca00e699af7dbdbafe396966a04af327632c2 Mon Sep 17 00:00:00 2001
From 1144b7cd79291119ddcc5ca023e8343754b8cbee Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Mon, 1 Jun 2015 22:21:52 -0700
Subject: [PATCH] Stackable Buckets
@ -170,5 +170,5 @@ index 744773d..31c4cf8 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 961fbe71802e56572edebadff37812a7c99c9449 Mon Sep 17 00:00:00 2001
From 87de801e202c178f8f93ae6a11cf94c7e6d9c49a Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Mon, 1 Jun 2015 22:54:18 -0700
Subject: [PATCH] Fix lag from explosions processing dead entities
@ -25,5 +25,5 @@ index c41b911..78e3a7d 100644
for (int l1 = 0; l1 < list.size(); ++l1) {
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 491a1bf4ae6384acb335ebb242b5727db1e75c73 Mon Sep 17 00:00:00 2001
From 3ecfe83fdf25f999d5d6eca388169bd1842d7ce8 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 2 Jun 2015 00:41:23 -0700
Subject: [PATCH] Generator Settings
@ -276,5 +276,5 @@ index a78d748..d2fe995 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 82c8f7165ca3c3e800a44ea4225fb1e7c43653f7 Mon Sep 17 00:00:00 2001
From ad160d40d1ec4b21b2af65b5a22541e343e286e6 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Thu, 4 Jun 2015 13:55:02 -0700
Subject: [PATCH] Configurable TNT cannon fix
@ -346,5 +346,5 @@ index d2fe995..beeaa0b 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,14 +1,14 @@
From dbad7403c71170dedfd8ea73c9e5e1a4fe4c4b43 Mon Sep 17 00:00:00 2001
From 94088bc7f6b6f0e56aef4c9e8bb96ccd04922ee8 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Fri, 5 Jun 2015 00:43:17 -0700
Subject: [PATCH] FallingBlock and TNT entities collide with specific blocks
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 27cb4ed..4bb6feb 100644
index a1e46c2..83197b2 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1203,7 +1203,15 @@ public abstract class World implements IBlockAccess {
@@ -1220,7 +1220,15 @@ public abstract class World implements IBlockAccess {
}
if ( block != null )
{
@ -41,5 +41,5 @@ index beeaa0b..88e0644 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 0c565e604fa92cddf6f902ed529bb5ba315e61e4 Mon Sep 17 00:00:00 2001
From 27b05483225a91b9ccdb0504343cb3196d1b3ba4 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 16 Jun 2015 05:52:58 -0700
Subject: [PATCH] Optimize explosions
@ -122,11 +122,11 @@ index 76ba101..c9a2ed7 100644
// this.i[i][this.ticks % 100] = System.nanoTime() - j; // CraftBukkit
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 4bb6feb..30d94f5 100644
index 83197b2..0fcbc01 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -133,6 +133,7 @@ public abstract class World implements IBlockAccess {
public static String blockLocation;
@@ -148,6 +148,7 @@ public abstract class World implements IBlockAccess {
private org.spigotmc.TickLimiter tileLimiter;
private int tileTickPosition;
public ExecutorService lightingExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("PaperSpigot - Lighting Thread").build()); // PaperSpigot - Asynchronous lighting updates
+ public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<Explosion.CacheKey, Float>(); // PaperSpigot - Optimize explosions
@ -149,5 +149,5 @@ index 88e0644..f3228d9 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 7efa7a8be42cd0321c5ad50b34b6be6d3259adce Mon Sep 17 00:00:00 2001
From 7d5c47c8684090a2d862c32d3981b8afcb97d764 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Tue, 30 Jun 2015 19:31:02 -0700
Subject: [PATCH] Stop updating flowing block if material has changed
@ -17,5 +17,5 @@ index ff18f63..ab2e43f 100644
if (this.h(world, blockposition.down(), iblockdata2)) {
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From aa955c7dfb569fb3aebbe2e6f60da3752e8174cd Mon Sep 17 00:00:00 2001
From 46c0380bf9709b5b2e38bea6e6ac8685ffdb58cc Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 30 Jun 2015 19:53:03 -0700
Subject: [PATCH] Fast draining
@ -97,5 +97,5 @@ index f3228d9..2ecacd5 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 2deee5c42a44793df5f89de7e5fb7df1d5627cad Mon Sep 17 00:00:00 2001
From 2cc7f3e2402effab8c2175535c6e27058b9f51a2 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 1 Jul 2015 00:38:10 -0700
Subject: [PATCH] Configurable lava flow speed
@ -36,5 +36,5 @@ index 2ecacd5..9ae1b18 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 945a14ac82bd7aa1a153f06d2a76a7e3b8687b07 Mon Sep 17 00:00:00 2001
From 4cbe6b918529e6b540a672f3743b06ea6849490e Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 1 Jul 2015 00:59:06 -0700
Subject: [PATCH] Add player view distance API
@ -135,5 +135,5 @@ index 506a03c..e318072 100644
public Player.Spigot spigot()
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From b6bcd4eeed774451bb1ba43c26c50c7fb1a59bc3 Mon Sep 17 00:00:00 2001
From a399bed1fe1a973d637d250c1af48501494d693a Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Tue, 14 Jul 2015 09:20:44 -0700
Subject: [PATCH] Disable explosion knockback
@ -67,5 +67,5 @@ index 9ae1b18..b5bc358 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From a93433a91df12fa94a3ebbb3fc3c7ca4fa997a54 Mon Sep 17 00:00:00 2001
From 7f3a073ad67c4562856c3a0f7ed7dc3b3824abd6 Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Tue, 14 Jul 2015 09:26:41 -0700
Subject: [PATCH] Disable thunder
@ -33,5 +33,5 @@ index b5bc358..c5425ab 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 4312c8aaf1c6b4bbe930656eabb2b653c2aa385c Mon Sep 17 00:00:00 2001
From 7ef2d06a703696c08a8fd08da896fedc07ebdc95 Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Tue, 14 Jul 2015 09:28:31 -0700
Subject: [PATCH] Disable ice and snow
@ -33,5 +33,5 @@ index c5425ab..25e92f8 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,14 +1,14 @@
From 21b00da362626c728267c4d2de150aa55f4bc798 Mon Sep 17 00:00:00 2001
From 3ca15649e655be5701ecb7d7ed84f03e2ea3e38f Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Tue, 14 Jul 2015 09:30:28 -0700
Subject: [PATCH] Disable mood sounds
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 30d94f5..9bf13b5 100644
index 0fcbc01..4fad879 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2231,7 +2231,7 @@ public abstract class World implements IBlockAccess {
@@ -2265,7 +2265,7 @@ public abstract class World implements IBlockAccess {
protected void a(int i, int j, Chunk chunk) {
this.methodProfiler.c("moodSound");
@ -33,5 +33,5 @@ index 25e92f8..8e5de323 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From b0d7d51634a84f052108fa288f897577d7b0c569 Mon Sep 17 00:00:00 2001
From 43a3cb4aa8a440f60f0387666307447af3d6847b Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Tue, 14 Jul 2015 09:58:15 -0700
Subject: [PATCH] Configurable mob spawner tick rate
@ -65,5 +65,5 @@ index 8e5de323..12697ff 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,14 +1,14 @@
From 03afa71b61d4b3348b036cec44f4b30e0331cf7a Mon Sep 17 00:00:00 2001
From 70d87148e1e2635243381737ad6d0cb572fa50cd Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 14 Jul 2015 10:03:45 -0700
Subject: [PATCH] Optimize getCubes()
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9bf13b5..dff3424 100644
index 4fad879..d481bc4 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1162,11 +1162,12 @@ public abstract class World implements IBlockAccess {
@@ -1179,11 +1179,12 @@ public abstract class World implements IBlockAccess {
int cx = chunkx << 4;
for ( int chunkz = ( i1 >> 4 ); chunkz <= ( ( j1 - 1 ) >> 4 ); chunkz++ )
{
@ -23,7 +23,7 @@ index 9bf13b5..dff3424 100644
} else {
entity.inUnloadedChunk = true; // PaperSpigot - Remove entities in unloaded chunks
continue;
@@ -1174,7 +1175,6 @@ public abstract class World implements IBlockAccess {
@@ -1191,7 +1192,6 @@ public abstract class World implements IBlockAccess {
// PaperSpigot end
}
int cz = chunkz << 4;
@ -31,7 +31,7 @@ index 9bf13b5..dff3424 100644
// Compute ranges within chunk
int xstart = ( i < cx ) ? cx : i;
int xend = ( j < ( cx + 16 ) ) ? j : ( cx + 16 );
@@ -1221,6 +1221,8 @@ public abstract class World implements IBlockAccess {
@@ -1238,6 +1238,8 @@ public abstract class World implements IBlockAccess {
}
// Spigot end
@ -41,5 +41,5 @@ index 9bf13b5..dff3424 100644
List list = this.getEntities(entity, axisalignedbb.grow(d0, d0, d0));
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 1d1449525b20f6bcbf8a08a25d07216b8a577976 Mon Sep 17 00:00:00 2001
From 117484cb5d195384bee5c27523e350684dfd7ddb Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Wed, 15 Jul 2015 02:41:12 -0700
Subject: [PATCH] ChunkMap caching
@ -136,5 +136,5 @@ index 12697ff..49104ff 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From b35952787f9889c808ac29d48488e352aa19a5ca Mon Sep 17 00:00:00 2001
From 9841ba8d8df30cfa1daef06078e755125c431839 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Fri, 3 Apr 2015 17:26:21 -0400
Subject: [PATCH] Send absolute position the first time an entity is seen
@ -84,5 +84,5 @@ index f0149bf..b77de55 100644
Packet packet = this.c();
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From bf2f6dad61966f70291298653d34b657a1e061b4 Mon Sep 17 00:00:00 2001
From 315bc28bbfe77ff6d81264e331d3f4ec557efeb2 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Thu, 23 Jul 2015 04:23:23 -0700
Subject: [PATCH] Optimize Spigot's Anti X-Ray
@ -84,5 +84,5 @@ index 7221b50..5466a61 100644
updateNearbyBlocks( world, position, 2, false ); // 2 is the radius, we shouldn't change it as that would make it exponentially slower
update.stopTiming();
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 4f8142d492a3cf372f484d2c5e8966221c4da0df Mon Sep 17 00:00:00 2001
From 0744a8d72a689bc4e7b485e9269bff15a19efe3f Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Thu, 23 Jul 2015 12:44:06 -0700
Subject: [PATCH] Add BeaconEffectEvent
@ -62,5 +62,5 @@ index 3ea1b62..a24dc68 100644
}
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From ec4feced964f30c47aa7002c4fb914f2e8b4e23d Mon Sep 17 00:00:00 2001
From 59249116c7812dd2e653a4a371c14c9d616d1dab Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Thu, 23 Jul 2015 22:05:22 -0700
Subject: [PATCH] Configurable container update tick rate
@ -48,5 +48,5 @@ index 49104ff..84cdb12 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From ab30baecc311d8f631b78608037e2bf04ab84db2 Mon Sep 17 00:00:00 2001
From ae0bafba16c127e0ef08c62a9a65bd8bbb47473e Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 4 Aug 2015 17:45:00 -0700
Subject: [PATCH] Configurable TNT explosion volume
@ -36,5 +36,5 @@ index 84cdb12..3f8bffc 100644
+ }
}
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From dd49481b08dafe6d66cd27584b1e686fb3bc8d66 Mon Sep 17 00:00:00 2001
From dee961efe3d5df8534e197a1ab74107384cb22e9 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Tue, 4 Aug 2015 18:15:05 -0700
Subject: [PATCH] Fix lava/water some times creating air instead of cobblestone
@ -18,5 +18,5 @@ index b610450..db73f5d 100644
this.fizz(world, blockposition);
return true;
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 0f4e46792341188dde721938d5eefb995c64620b Mon Sep 17 00:00:00 2001
From c1775435d2baf97d280e8558afa48069ab8df201 Mon Sep 17 00:00:00 2001
From: Techcable <Techcable@outlook.com>
Date: Fri, 7 Aug 2015 19:31:31 -0700
Subject: [PATCH] Use UserCache for player heads
@ -33,5 +33,5 @@ index ce5425f..25e32a0 100644
return true;
--
2.5.1
2.5.2

View file

@ -1,4 +1,4 @@
From 5b5176fc7d474434fd33560ecc66eeebbc607f8f Mon Sep 17 00:00:00 2001
From f0d04b8fe1871c21e723335b5c268c81796baa23 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Thu, 13 Aug 2015 10:33:34 -0700
Subject: [PATCH] Re-add Spigot's hopper-check feature
@ -36,5 +36,5 @@ index 3f8bffc..7d46f2c 100644
+ }
}
--
2.5.1
2.5.2