Remove the spigot TileEntity/Entity capping feature

It appears to cause visual glitching issues with certain TNT entities
fired from cannons. TileEntity tick capping has already been removed
for some time, Entity tick capping removal is new to this patch.
This commit is contained in:
Zach Brown 2015-05-30 01:39:20 -05:00
parent 31fe931194
commit 233814297b
28 changed files with 172 additions and 105 deletions

View File

@ -0,0 +1,127 @@
From 69ff788454fe936a8a6b851c88a7e316eae1bb69 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 d30b406..bdf4896 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.4.1.windows.1

View File

@ -1,11 +1,11 @@
From 3f4d3ad27f80c5b292f11e816613384de6ff640a Mon Sep 17 00:00:00 2001
From 4104e547b01f6511a1c7a87a5eef7322e4a83878 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
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index 0de85da..0a21872 100644
index c268a40..1971941 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -21,6 +21,12 @@ public abstract class TileEntity {
@ -22,7 +22,7 @@ index 0de85da..0a21872 100644
this.position = BlockPosition.ZERO;
this.h = -1;
diff --git a/src/main/java/net/minecraft/server/TileEntityBeacon.java b/src/main/java/net/minecraft/server/TileEntityBeacon.java
index da43134..88e4fa9 100644
index 4f280dd..3ea1b62 100644
--- a/src/main/java/net/minecraft/server/TileEntityBeacon.java
+++ b/src/main/java/net/minecraft/server/TileEntityBeacon.java
@@ -48,7 +48,7 @@ public class TileEntityBeacon extends TileEntityContainer implements IUpdatePlay
@ -74,7 +74,7 @@ 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 d30b406..dcfceed 100644
index bdf4896..67c739e 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 {
@ -86,66 +86,6 @@ index d30b406..dcfceed 100644
private final List<TileEntity> b = Lists.newArrayList();
private final List<TileEntity> c = Lists.newArrayList();
public final List<EntityHuman> players = Lists.newArrayList();
@@ -126,8 +126,10 @@ public abstract class World implements IBlockAccess {
public static boolean haveWeSilencedAPhysicsCrash;
public static String blockLocation;
private org.spigotmc.TickLimiter entityLimiter;
- private org.spigotmc.TickLimiter tileLimiter;
- private int tileTickPosition;
+ // PaperSpigot start - Disable Spigot's TE handling in favor of our own
+ //private org.spigotmc.TickLimiter tileLimiter;
+ //private int tileTickPosition;
+ // PaperSpigot end
public static long chunkToKey(int x, int z)
{
@@ -221,7 +223,7 @@ public abstract class World implements IBlockAccess {
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);
+ //this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); // PaperSpigot - Disable Spigot's TE handling in favor of our own
}
public World b() {
@@ -1455,6 +1457,12 @@ public abstract class World implements IBlockAccess {
}
// CraftBukkit end
+ // PaperSpigot start - Return to previous behavior, theoretically tile entity ticks should no longer be long enough for this to be an issue
+ Iterator iterator = this.tileEntityList.iterator();
+
+ while (iterator.hasNext()) {
+ TileEntity tileentity = (TileEntity) iterator.next();
+ /*
// Spigot start
int tilesThisCycle = 0;
for (tileLimiter.initTick();
@@ -1462,11 +1470,12 @@ public abstract class World implements IBlockAccess {
tileTickPosition++, tilesThisCycle++) {
tileTickPosition = (tileTickPosition < tileEntityList.size()) ? tileTickPosition : 0;
TileEntity tileentity = (TileEntity) this.tileEntityList.get(tileTickPosition);
+ */
+ // PaperSpigot end
// Spigot start
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(); // PaperSpigot - Remove Spigot's TE handling in favor of our own
continue;
}
// Spigot end
@@ -1494,8 +1503,7 @@ public abstract class World implements IBlockAccess {
}
if (tileentity.x()) {
- tilesThisCycle--;
- this.tileEntityList.remove(tileTickPosition--);
+ iterator.remove(); // PaperSpigot - Remove Spigot's TE handling in favor of our own
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

View File

@ -1,11 +1,11 @@
From 78cd8cc1024bdc966f9af150ec1281a071375be4 Mon Sep 17 00:00:00 2001
From 3cb95d0d115022e965df1b2f3c38fa772cea4cca 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
diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java
index 8af9e32..d30f2f8 100644
index 07891ec..20f8d90 100644
--- a/src/main/java/net/minecraft/server/TileEntityChest.java
+++ b/src/main/java/net/minecraft/server/TileEntityChest.java
@@ -12,13 +12,13 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye
@ -194,5 +194,5 @@ index 5af5dcc..693f75c 100644
put(ignored, -1);
}
--
1.9.1
2.4.1.windows.1

View File

@ -1,4 +1,4 @@
From afecc5fd9057398210f7a48af97affbefd84e1b0 Mon Sep 17 00:00:00 2001
From 7b735d8eaea7f21c2c18525ae2f603b729ac19ad 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
@ -17,7 +17,7 @@ index d6bef0b..1470c21 100644
// Spigot start
public CustomTimingsHandler tickTimer = org.bukkit.craftbukkit.SpigotTimings.getEntityTimings(this); // Spigot
diff --git a/src/main/java/net/minecraft/server/EntityEnderPearl.java b/src/main/java/net/minecraft/server/EntityEnderPearl.java
index 929a66e..4ebed9c 100644
index 48ada4d..f4b5032 100644
--- a/src/main/java/net/minecraft/server/EntityEnderPearl.java
+++ b/src/main/java/net/minecraft/server/EntityEnderPearl.java
@@ -30,6 +30,12 @@ public class EntityEnderPearl extends EntityProjectile {
@ -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 dcfceed..431fc0d 100644
index 67c739e..530e60f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1162,6 +1162,7 @@ public abstract class World implements IBlockAccess {
@@ -1156,6 +1156,7 @@ public abstract class World implements IBlockAccess {
{
if ( !this.isChunkLoaded( chunkx, chunkz, true ) )
{
@ -81,7 +81,7 @@ index dcfceed..431fc0d 100644
continue;
}
int cz = chunkz << 4;
@@ -1591,6 +1592,14 @@ public abstract class World implements IBlockAccess {
@@ -1567,6 +1568,14 @@ public abstract class World implements IBlockAccess {
if (!org.spigotmc.ActivationRange.checkIfActive(entity)) {
entity.ticksLived++;
entity.inactiveTick();

View File

@ -1,4 +1,4 @@
From 8a82cff8d06b1aa0a6f0b177dbbeab2bc50306cb Mon Sep 17 00:00:00 2001
From dc69eb5cb3b668fcb260ed30bec20449eda75bef 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

View File

@ -1,4 +1,4 @@
From d6aece91ea6da949f9f03e5560403f388973996f Mon Sep 17 00:00:00 2001
From 7e9a0179b4ac80b064c4ad2641ba88f8426170df 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

View File

@ -1,4 +1,4 @@
From 0892d82b8b48b8d0a3e17b265359b09e80a0b419 Mon Sep 17 00:00:00 2001
From 91e1a03598b3c340ad7d81d50767be446924b959 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

View File

@ -1,4 +1,4 @@
From 08969ae80af057218c27d2675eb357cd193c1469 Mon Sep 17 00:00:00 2001
From 9640455e349da4b9f1a8ab4e83b0934fa0a41860 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 8 Mar 2015 04:03:56 -0500
Subject: [PATCH] Player lookup improvements

View File

@ -1,4 +1,4 @@
From bb12d4e1cf32105d2868a2390b703a4829356e53 Mon Sep 17 00:00:00 2001
From 20d9994e0cf68e4fae68d2a5d8b0cefd871d42e7 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

View File

@ -1,4 +1,4 @@
From 85b35a7793f55975b68f8134a37e671cc82cda5e Mon Sep 17 00:00:00 2001
From eb06b41aca9e0fd4e2a19ba874b072216268aef2 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

View File

@ -1,4 +1,4 @@
From 5249e032664f21e00091c0895a2f1b9eeb02c48d Mon Sep 17 00:00:00 2001
From e6897370898bf85f873be3cc8e83a7cac16972dc 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

View File

@ -1,4 +1,4 @@
From 30b06fc0ea0be63ff6fe80a19691fbee9b1de9e0 Mon Sep 17 00:00:00 2001
From e6402cbeeefef6ec7d655170b0a3b2ff07663a34 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

View File

@ -1,4 +1,4 @@
From 9d78e47fc6566cf495d5be31b18f344d0617a1c7 Mon Sep 17 00:00:00 2001
From 920f92b1b9e44d02502394da6ffe1062fcadf453 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 431fc0d..7d90de2 100644
index 530e60f..51e59c0 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1420,10 +1420,13 @@ public abstract class World implements IBlockAccess {
@@ -1409,10 +1409,13 @@ public abstract class World implements IBlockAccess {
this.g(entity);
SpigotTimings.tickEntityTimer.stopTiming(); // Spigot
} catch (Throwable throwable1) {
@ -44,7 +44,7 @@ index 431fc0d..7d90de2 100644
}
}
@@ -1489,11 +1492,13 @@ public abstract class World implements IBlockAccess {
@@ -1465,11 +1468,13 @@ public abstract class World implements IBlockAccess {
tileentity.tickTimer.startTiming(); // Spigot
((IUpdatePlayerListBox) tileentity).c();
} catch (Throwable throwable2) {

View File

@ -1,4 +1,4 @@
From a0e74a1b58887761a1ef65e2240250383c6fac32 Mon Sep 17 00:00:00 2001
From 656b4cb5ee5ec6dba6f69f3abfe48268565f0a0d 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

View File

@ -1,4 +1,4 @@
From 066ec86117012a78eda2472cb0abeb54ed67daf8 Mon Sep 17 00:00:00 2001
From 8fd0f064dd0d98161766cbb06024907e6a1b5a4a 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

View File

@ -1,4 +1,4 @@
From 2aa0257ec409e8d58fc7c7edb9ad156d2e9e42bf Mon Sep 17 00:00:00 2001
From ff725d215c0edacf1b63e937999482594bcf35b9 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sun, 8 Mar 2015 04:52:37 -0500
Subject: [PATCH] PaperSpigot TNT Changes

View File

@ -1,4 +1,4 @@
From 70b52fbafc70a9c62656e0eb25c2992e88199b8e Mon Sep 17 00:00:00 2001
From 86c6689b38cecf577405044b3c4422a000d7a37b 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

View File

@ -1,4 +1,4 @@
From 7b4b4bb2afc1e4f3656c1c64aecec9e40b442170 Mon Sep 17 00:00:00 2001
From 776171aa01cd66d7c53aec724dbb9e0afda9223e 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

View File

@ -1,4 +1,4 @@
From 5bb9ab5fdde00a729230e876df8b1b91612032d8 Mon Sep 17 00:00:00 2001
From a9abb0aacbdd552d1ba8fff85f4d5dec3d33fbc3 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

View File

@ -1,4 +1,4 @@
From aa92814f235317afcc2899fa13076d9160971286 Mon Sep 17 00:00:00 2001
From a6bb5db33f564cae6404a869426d4e741aec5b99 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

View File

@ -1,11 +1,11 @@
From d2dd39c4e8d8b414c46aeb076e9614dc8786be6d Mon Sep 17 00:00:00 2001
From c3469d7ff27645aab2eb0ee8fd23db4fed4a2516 Mon Sep 17 00:00:00 2001
From: Roman Alexander <romanalexander@users.noreply.github.com>
Date: Wed, 25 Mar 2015 20:27:13 -0500
Subject: [PATCH] Configurable async light updates
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 7d90de2..a0a3297 100644
index 51e59c0..86913f4 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;
@ -21,7 +21,7 @@ index 7d90de2..a0a3297 100644
// CraftBukkit start
// CraftBukkit end
@@ -720,22 +726,26 @@ public abstract class World implements IBlockAccess {
@@ -714,22 +720,26 @@ public abstract class World implements IBlockAccess {
blockposition = new BlockPosition(blockposition.getX(), 0, blockposition.getZ());
}
@ -54,7 +54,7 @@ index 7d90de2..a0a3297 100644
chunk.a(enumskyblock, blockposition, i);
this.n(blockposition);
}
@@ -2342,10 +2352,13 @@ public abstract class World implements IBlockAccess {
@@ -2318,10 +2328,13 @@ public abstract class World implements IBlockAccess {
}
private int a(BlockPosition blockposition, EnumSkyBlock enumskyblock) {
@ -70,7 +70,7 @@ index 7d90de2..a0a3297 100644
int i = enumskyblock == EnumSkyBlock.SKY ? 0 : block.r();
int j = block.p();
@@ -2384,131 +2397,154 @@ public abstract class World implements IBlockAccess {
@@ -2360,131 +2373,154 @@ public abstract class World implements IBlockAccess {
}
}

View File

@ -1,4 +1,4 @@
From db1f0c4ca46a333503cff31dae56557ef27ba9bf Mon Sep 17 00:00:00 2001
From 64506d4ff5992f83e11201d20dbace097cdce21e 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

View File

@ -1,4 +1,4 @@
From 20605161beae541063eb7cb7f086917c8ea982af Mon Sep 17 00:00:00 2001
From 1c6759f6dfffa5640159950db063e10efb6064a9 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.

View File

@ -1,4 +1,4 @@
From 5cddaabab72536767ae43dd6474e476dc75e5f15 Mon Sep 17 00:00:00 2001
From d1999bf881ee1cd3891d59c49ac2a3a8874d5ed4 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

View File

@ -1,4 +1,4 @@
From f700750cb70cf8e1903e243cbe12b5ae4844b897 Mon Sep 17 00:00:00 2001
From 4d5be815a524c78f7dd7665f0a3229513123db9f Mon Sep 17 00:00:00 2001
From: Anonymoose <MrAnonHimself@anon.life>
Date: Sun, 3 May 2015 17:44:20 -0500
Subject: [PATCH] Add ArmorStand Marker NBT API

View File

@ -1,4 +1,4 @@
From 9ed0afe9c90ca47e4f1b33dc9e6c24f89d49ee4d Mon Sep 17 00:00:00 2001
From 70e515c0c6018904a9c4c48c0e7bb531096cd348 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

View File

@ -1,4 +1,4 @@
From bd10e6b9b71c6d47c41eeb6ce76f8cf4e0bbc80c Mon Sep 17 00:00:00 2001
From 9e26a0ea06ca8a34892bf9a34b1b276a391c81c0 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

View File

@ -1,4 +1,4 @@
From c9e8b5efcd939a328d0beec8e97fe89c3dba7299 Mon Sep 17 00:00:00 2001
From a7954c623d317f72957411ec5d1338fa76a94d7f Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 28 May 2015 22:01:25 -0500
Subject: [PATCH] Force load chunks for specific entities that fly through
@ -103,10 +103,10 @@ index dd1ad68..c272060 100644
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a0a3297..1a8440e 100644
index 86913f4..385d742 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1665,6 +1665,17 @@ public abstract class World implements IBlockAccess {
@@ -1641,6 +1641,17 @@ public abstract class World implements IBlockAccess {
if (this.isChunkLoaded(k, i1, true)) {
entity.ad = true;
this.getChunkAt(k, i1).a(entity);