Updated Upstream (Bukkit/CraftBukkit/Spigot)

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
bb813f6f SPIGOT-4605: Warn against hacking physics

CraftBukkit Changes:
2ced0233 Don't handle sync packets for kicked players
d5e96882 SPIGOT-4602: Cache reflection in decompile error workaround

Spigot Changes:
b0f4c22b SPIGOT-4605: Catch more physics problems
This commit is contained in:
Shane Freeder 2019-02-03 15:34:04 +00:00
parent f8058a8187
commit abba3d113b
No known key found for this signature in database
GPG key ID: A3F61EA5A085289C
54 changed files with 250 additions and 245 deletions

View file

@ -1,4 +1,4 @@
From 33502f142938f89056e273cdbea58ca83c760d89 Mon Sep 17 00:00:00 2001
From 40e27a88bcb3fc6ab3299097db52b9df18ddab77 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 6 Nov 2017 21:10:01 -0500
Subject: [PATCH] API to get a BlockState without a snapshot
@ -9,10 +9,10 @@ on the real tile entity.
This is useful for where performance is needed
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index 46a29d3d..e3337d05 100644
index 7664728a0..064acf321 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -227,6 +227,15 @@ public interface Block extends Metadatable {
@@ -254,6 +254,15 @@ public interface Block extends Metadatable {
*/
BlockState getState();

View file

@ -1,4 +1,4 @@
From 10ce18ced17baa36f2ffe0e9a3604e314d20830f Mon Sep 17 00:00:00 2001
From 39f3eeefa7b52425c8f1dd8fea1c0388ead63454 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Tue, 14 Aug 2018 21:42:10 -0700
Subject: [PATCH] Allow Blocks to be accessed via a long key
@ -18,7 +18,7 @@ Y range: [0, 1023]
X, Z range: [-67 108 864, 67 108 863]
diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java
index 8dcb15fb..7e1ee875 100644
index 8dcb15fb8..7e1ee875e 100644
--- a/src/main/java/org/bukkit/Location.java
+++ b/src/main/java/org/bukkit/Location.java
@@ -10,7 +10,6 @@ import org.bukkit.util.Vector;
@ -49,7 +49,7 @@ index 8dcb15fb..7e1ee875 100644
* @return A new location where X/Y/Z are the center of the block
*/
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 92688252..1467debe 100644
index 61f2cd9a7..30204b987 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -75,6 +75,37 @@ public interface World extends PluginMessageRecipient, Metadatable {
@ -91,10 +91,10 @@ index 92688252..1467debe 100644
* Gets the y coordinate of the lowest block at this position such that the
* block and all blocks above it are transparent for lighting purposes.
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index e3337d05..1f97e3d3 100644
index 064acf321..d1a9512aa 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -143,6 +143,33 @@ public interface Block extends Metadatable {
@@ -144,6 +144,33 @@ public interface Block extends Metadatable {
*/
int getZ();

View file

@ -1,4 +1,4 @@
From e603fafdb02e4a80f5ff875bdb4c0fdcd928eeca Mon Sep 17 00:00:00 2001
From 2a34f4f4307de41b1abad04baceb01d45517bb9e Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 21:02:09 -0600
Subject: [PATCH] Paper config files
@ -572,7 +572,7 @@ index ee16fac91..b8abd6363 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 6ea9eaa1a..5531f5205 100644
index 90c54a73d..9865f7f7a 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -130,6 +130,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -583,8 +583,8 @@ index 6ea9eaa1a..5531f5205 100644
+
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
private boolean guardEntityList; // Spigot
public static boolean haveWeSilencedAPhysicsCrash;
@@ -152,6 +154,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public static BlockPosition lastPhysicsProblem; // Spigot
@@ -151,6 +153,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
protected World(IDataManager idatamanager, @Nullable PersistentCollection persistentcollection, WorldData worlddata, WorldProvider worldprovider, MethodProfiler methodprofiler, boolean flag, ChunkGenerator gen, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot

View file

@ -1,4 +1,4 @@
From f716ee5f3b705d56bb2a134590c5c6c1d87e1b51 Mon Sep 17 00:00:00 2001
From 1ed9f0e1531bbf28ef63667a2d958906abf1b036 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 04:00:11 -0600
Subject: [PATCH] Timings v2
@ -929,7 +929,7 @@ index c24f4a8fe..e01222ad2 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index f9e5103a3..d2970c086 100644
index a2ec56bc9..da0d0cc10 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -58,6 +58,7 @@ import org.bukkit.inventory.CraftingInventory;
@ -984,10 +984,10 @@ index f9e5103a3..d2970c086 100644
// this.minecraftServer.getCommandDispatcher().a(this.player.getCommandListener(), s);
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
index 6c88d0c86..8bf94c1b9 100644
index a73947d26..596aa27fe 100644
--- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
+++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
@@ -1,11 +1,17 @@
@@ -1,12 +1,19 @@
package net.minecraft.server;
+import co.aikar.timings.MinecraftTimings; // Paper
@ -998,8 +998,10 @@ index 6c88d0c86..8bf94c1b9 100644
public static <T extends PacketListener> void ensureMainThread(Packet<T> packet, T t0, IAsyncTaskHandler iasynctaskhandler) throws CancelledPacketHandleException {
if (!iasynctaskhandler.isMainThread()) {
+ Timing timing = MinecraftTimings.getPacketTiming(packet); // Paper
+
iasynctaskhandler.postToMainThread(() -> {
+ try (Timing ignored = timing.startTiming()) { // Paper
if (t0 instanceof PlayerConnection && ((PlayerConnection) t0).processedDisconnect) return; // CraftBukkit
+ try (Timing ignored = timing.startTiming()) { // Paper
packet.a(t0);
+ } // Paper - timings
});
@ -1104,7 +1106,7 @@ index c69209497..68ac014aa 100644
private final TileEntityTypes<?> e; public TileEntityTypes getTileEntityType() { return e; } // Paper - OBFHELPER
protected World world;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 5531f5205..209091a9c 100644
index 9865f7f7a..a1c5375a5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,5 +1,6 @@
@ -1129,9 +1131,9 @@ index 5531f5205..209091a9c 100644
- public final SpigotTimings.WorldTimingsHandler timings; // Spigot
+ public final co.aikar.timings.WorldTimingsHandler timings; // Paper
private boolean guardEntityList; // Spigot
public static boolean haveWeSilencedAPhysicsCrash;
public static String blockLocation;
@@ -201,7 +201,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public static BlockPosition lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
@@ -200,7 +200,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
});
this.getServer().addWorld(this.world);
// CraftBukkit end
@ -1140,7 +1142,7 @@ index 5531f5205..209091a9c 100644
this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
@@ -1076,6 +1076,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1081,6 +1081,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
this.methodProfiler.exitEnter("remove");
@ -1148,7 +1150,7 @@ index 5531f5205..209091a9c 100644
this.entityList.removeAll(this.g);
int j;
@@ -1096,6 +1097,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1101,6 +1102,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.g.clear();
this.p_();
@ -1156,7 +1158,7 @@ index 5531f5205..209091a9c 100644
this.methodProfiler.exitEnter("regular");
CrashReport crashreport1;
@@ -1105,6 +1107,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1110,6 +1112,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
timings.entityTick.startTiming(); // Spigot
guardEntityList = true; // Spigot
// CraftBukkit start - Use field for loop variable
@ -1164,7 +1166,7 @@ index 5531f5205..209091a9c 100644
int entitiesThisCycle = 0;
if (tickPosition < 0) tickPosition = 0;
for (entityLimiter.initTick();
@@ -1126,10 +1129,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1131,10 +1134,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.methodProfiler.enter("tick");
if (!entity.dead && !(entity instanceof EntityPlayer)) {
try {
@ -1178,7 +1180,7 @@ index 5531f5205..209091a9c 100644
crashreport1 = CrashReport.a(throwable1, "Ticking entity");
crashreportsystemdetails1 = crashreport1.a("Entity being ticked");
entity.appendEntityCrashDetails(crashreportsystemdetails1);
@@ -1254,6 +1258,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1259,6 +1263,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
timings.tileEntityPending.stopTiming(); // Spigot
@ -1186,7 +1188,7 @@ index 5531f5205..209091a9c 100644
this.methodProfiler.exit();
this.methodProfiler.exit();
}
@@ -1312,7 +1317,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1317,7 +1322,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
// CraftBukkit end
@ -1194,7 +1196,7 @@ index 5531f5205..209091a9c 100644
entity.N = entity.locX;
entity.O = entity.locY;
entity.P = entity.locZ;
@@ -1320,6 +1324,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1325,6 +1329,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
entity.lastPitch = entity.pitch;
if (flag && entity.inChunk) {
++entity.ticksLived;
@ -1202,7 +1204,7 @@ index 5531f5205..209091a9c 100644
if (entity.isPassenger()) {
entity.aH();
} else {
@@ -1383,8 +1388,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1388,8 +1393,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
}
}

View file

@ -1,4 +1,4 @@
From 95f9f5f005624432004e2a747ee6e5abed0819e3 Mon Sep 17 00:00:00 2001
From 3ed33183490ced591c999e8c19b6d5294c822b43 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 3 Mar 2016 03:53:43 -0600
Subject: [PATCH] Allow for toggling of spawn chunks
@ -20,10 +20,10 @@ index 3e1f4be10..3f734327c 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 209091a9c..ed227d8e8 100644
index a1c5375a5..51df93b18 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -202,6 +202,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -201,6 +201,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.getServer().addWorld(this.world);
// CraftBukkit end
timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings

View file

@ -1,4 +1,4 @@
From bec23bb644bcb5b09362b38033cadf808d809038 Mon Sep 17 00:00:00 2001
From c1a495934d4e657baea2d07cc2069649c890935c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 14:32:43 -0600
Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang
@ -76,7 +76,7 @@ index e9ea75579..56aa64bdf 100644
MinecraftServer.main(options);
} catch (Throwable t) {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 14a1084aa..21316d67f 100644
index 9511f247a..8e32c4e2c 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -19,7 +19,7 @@ public class WatchdogThread extends Thread
@ -104,7 +104,7 @@ index 14a1084aa..21316d67f 100644
- log.log( Level.SEVERE, "Spigot version: " + Bukkit.getServer().getVersion() );
+ log.log( Level.SEVERE, "Paper version: " + Bukkit.getServer().getVersion() );
//
if(net.minecraft.server.World.haveWeSilencedAPhysicsCrash)
if ( net.minecraft.server.World.lastPhysicsProblem != null )
{
@@ -78,7 +78,7 @@ public class WatchdogThread extends Thread
}

View file

@ -1,11 +1,11 @@
From d5920c305d62be813e80e2ae43c96785de171b62 Mon Sep 17 00:00:00 2001
From 448e99a666ff2e2d3ff53a03bd499bfeffc8b5bd Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Tue, 1 Mar 2016 14:47:52 -0600
Subject: [PATCH] Player affects spawning API
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 8b842a85be..de3a70a07d 100644
index 5a90376fe..8b826c083 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -68,6 +68,9 @@ public abstract class EntityHuman extends EntityLiving {
@ -19,7 +19,7 @@ index 8b842a85be..de3a70a07d 100644
// CraftBukkit start
public boolean fauxSleeping;
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 42a073d707..4809af8f00 100644
index 80d872e79..e5322de97 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -620,7 +620,7 @@ public abstract class EntityInsentient extends EntityLiving {
@ -32,7 +32,7 @@ index 42a073d707..4809af8f00 100644
double d1 = entityhuman.locY - this.locY;
double d2 = entityhuman.locZ - this.locZ;
diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java
index 3c566ebd0e..ba40e03fcc 100644
index 3c566ebd0..ba40e03fc 100644
--- a/src/main/java/net/minecraft/server/EntitySilverfish.java
+++ b/src/main/java/net/minecraft/server/EntitySilverfish.java
@@ -96,7 +96,7 @@ public class EntitySilverfish extends EntityMonster {
@ -45,7 +45,7 @@ index 3c566ebd0e..ba40e03fcc 100644
return false;
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 6ca0e19cb9..4eaa5d93b4 100644
index 6ca0e19cb..4eaa5d93b 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -37,7 +37,7 @@ public final class SpawnerCreature {
@ -58,7 +58,7 @@ index 6ca0e19cb9..4eaa5d93b4 100644
j = MathHelper.floor(entityhuman.locZ / 16.0D);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ed227d8e80..dab1be9b61 100644
index 51df93b18..10c8ece94 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -30,6 +30,7 @@ import org.bukkit.craftbukkit.CraftWorld;
@ -69,7 +69,7 @@ index ed227d8e80..dab1be9b61 100644
import org.bukkit.event.block.BlockPhysicsEvent;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
import org.bukkit.generator.ChunkGenerator;
@@ -2384,7 +2385,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2389,7 +2390,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@ -79,7 +79,7 @@ index ed227d8e80..dab1be9b61 100644
if (d3 < 0.0D || d4 < d3 * d3) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 704acf7386..fb24f6019f 100644
index ca3393ef8..6f832b331 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1608,7 +1608,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View file

@ -1,11 +1,11 @@
From 1342f7d2b36a0aa22b7ae6eee34015b790d16f5e Mon Sep 17 00:00:00 2001
From d8b88936b81136c99eb1bab82cf1c31079a7b1a7 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 1 Mar 2016 23:45:08 -0600
Subject: [PATCH] Entity Origin API
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 2b4a784e4d..22f757756c 100644
index 2b4a784e4..22f757756 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -160,6 +160,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -51,7 +51,7 @@ index 2b4a784e4d..22f757756c 100644
NBTTagList nbttaglist = new NBTTagList();
double[] adouble1 = adouble;
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
index a6eae266de..489dd861d2 100644
index a6eae266d..489dd861d 100644
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
@@ -249,6 +249,14 @@ public class EntityFallingBlock extends Entity {
@ -70,7 +70,7 @@ index a6eae266de..489dd861d2 100644
public void a(boolean flag) {
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index 5dc52b6b89..2c28633c42 100644
index 5dc52b6b8..2c28633c4 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -109,6 +109,14 @@ public class EntityTNTPrimed extends Entity {
@ -89,7 +89,7 @@ index 5dc52b6b89..2c28633c42 100644
@Nullable
diff --git a/src/main/java/net/minecraft/server/NBTTagList.java b/src/main/java/net/minecraft/server/NBTTagList.java
index 27debcfca9..22027321bd 100644
index 27debcfca..22027321b 100644
--- a/src/main/java/net/minecraft/server/NBTTagList.java
+++ b/src/main/java/net/minecraft/server/NBTTagList.java
@@ -182,6 +182,7 @@ public class NBTTagList extends NBTList<NBTBase> {
@ -101,10 +101,10 @@ index 27debcfca9..22027321bd 100644
if (i >= 0 && i < this.list.size()) {
NBTBase nbtbase = (NBTBase) this.list.get(i);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index dab1be9b61..59b1f90433 100644
index 10c8ece94..7e73e00ce 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -913,6 +913,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -918,6 +918,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
int j = MathHelper.floor(entity.locZ / 16.0D);
boolean flag = entity.attachedToPlayer;
@ -118,7 +118,7 @@ index dab1be9b61..59b1f90433 100644
flag = true;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 8fb0ecf525..9a5bb02226 100644
index 8fb0ecf52..9a5bb0222 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -800,4 +800,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View file

@ -1,4 +1,4 @@
From ef71a8a38a32ae6a68b253e74b46badf1cf175a0 Mon Sep 17 00:00:00 2001
From 450f1569886930ab72e304d38a2a369e50d37249 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 1 Mar 2016 23:52:34 -0600
Subject: [PATCH] Prevent tile entity and entity crashes
@ -23,10 +23,10 @@ index 68ac014aa..c5212417c 100644
}
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 59b1f9043..086d64628 100644
index 7e73e00ce..891f0bb35 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1142,10 +1142,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1147,10 +1147,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
entity.tickTimer.stopTiming(); // Paper
} catch (Throwable throwable1) {
entity.tickTimer.stopTiming();
@ -43,7 +43,7 @@ index 59b1f9043..086d64628 100644
}
}
@@ -1208,10 +1210,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1213,10 +1215,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
((ITickable) tileentity).tick();
this.methodProfiler.exit();
} catch (Throwable throwable2) {

View file

@ -1,4 +1,4 @@
From 4ed9141e99766cbb2b618d73156f34a48726cb7f Mon Sep 17 00:00:00 2001
From 018b4f700c5e3dbd66fd8c0891a778a2152d481c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 2 Mar 2016 00:52:31 -0600
Subject: [PATCH] Lighting Queue
@ -28,7 +28,7 @@ index 145cb274b..eff9dcf54 100644
public static Timing getTickList(WorldServer worldserver, String timingsType) {
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index fe148495b..cc69ff3a4 100644
index 1256a0d58..2c97c6533 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -191,6 +191,13 @@ public class PaperConfig {
@ -263,10 +263,10 @@ index 000000000..9783f3a0d
+ }
+}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 086d64628..bf05c47a1 100644
index 891f0bb35..c9ba98d89 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -330,7 +330,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -329,7 +329,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (iblockdata2.b(this, blockposition) != iblockdata1.b(this, blockposition) || iblockdata2.e() != iblockdata1.e()) {
this.methodProfiler.enter("checkLight");

View file

@ -1,4 +1,4 @@
From ec23a52d0e17927fc4da5330bdc546ea4c936ac5 Mon Sep 17 00:00:00 2001
From d51c2d868e810811a350508026017fd96949c0b7 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 2 Mar 2016 11:59:48 -0600
Subject: [PATCH] Optimize explosions
@ -136,7 +136,7 @@ index 00f1c36e9..f488c37f7 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index bf05c47a1..ac602abc0 100644
index c9ba98d89..5788ec6f6 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -22,6 +22,7 @@ import org.apache.logging.log4j.Logger;
@ -147,7 +147,7 @@ index bf05c47a1..ac602abc0 100644
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.block.BlockState;
@@ -140,6 +141,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -139,6 +140,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
private int tileTickPosition;

View file

@ -1,14 +1,14 @@
From 516693b2cf7b54953f8ea3dfd1ffc41fb2d61314 Mon Sep 17 00:00:00 2001
From 66294924c12de6f6629939c1f80582f443480e83 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Wed, 2 Mar 2016 23:45:17 -0600
Subject: [PATCH] Disable spigot tick limiters
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ac602abc0..ac23ae323 100644
index 5788ec6f6..5ff06d247 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1119,10 +1119,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1124,10 +1124,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// CraftBukkit start - Use field for loop variable
co.aikar.timings.TimingHistory.entityTicks += this.entityList.size(); // Paper
int entitiesThisCycle = 0;
@ -23,7 +23,7 @@ index ac602abc0..ac23ae323 100644
tickPosition = (tickPosition < entityList.size()) ? tickPosition : 0;
entity = (Entity) this.entityList.get(this.tickPosition);
// CraftBukkit end
@@ -1186,9 +1186,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1191,9 +1191,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// Spigot start
// Iterator iterator = this.tileEntityListTick.iterator();
int tilesThisCycle = 0;

View file

@ -1,11 +1,11 @@
From ac1d51e728daaf8341cbbef9958466de73a3c927 Mon Sep 17 00:00:00 2001
From e0215644ebfdb7159fa274af4d916829b42e89f9 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 02:39:54 -0600
Subject: [PATCH] Change implementation of (tile)entity removal list
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ac23ae323..ae14fb182 100644
index 5ff06d247..7e1df0e5b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -68,11 +68,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -22,7 +22,7 @@ index ac23ae323..ae14fb182 100644
public final List<EntityHuman> players = Lists.newArrayList();
public final List<Entity> k = Lists.newArrayList();
protected final IntHashMap<Entity> entitiesById = new IntHashMap<>();
@@ -1090,20 +1090,20 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1095,20 +1095,20 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.entityList.removeAll(this.g);
int j;

View file

@ -1,4 +1,4 @@
From 30dd9067e9bb6bb564d5748e42cd31cbc12c1530 Mon Sep 17 00:00:00 2001
From dc6b34ee4cda4103a48869e9f2900c304aacf0f7 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 02:48:12 -0600
Subject: [PATCH] Add velocity warnings
@ -66,12 +66,12 @@ index 9a5bb0222..a82717f5c 100644
public double getHeight() {
return getHandle().length;
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 21316d67f..5d03191c8 100644
index 8e32c4e2c..c080a6118 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -76,7 +76,19 @@ public class WatchdogThread extends Thread
log.log( Level.SEVERE, "During the run of the server, a physics stackoverflow was supressed" );
log.log( Level.SEVERE, "near " + net.minecraft.server.World.blockLocation);
log.log( Level.SEVERE, "near " + net.minecraft.server.World.lastPhysicsProblem );
}
- //
+ // Paper start - Warn in watchdog if an excessive velocity was ever set

View file

@ -1,4 +1,4 @@
From 9557c1eec471d177f001aaa3c37951c07cf48b4d Mon Sep 17 00:00:00 2001
From 0434f2c0e787906b5cd9ec72b8a15a46079d0a73 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 03:15:41 -0600
Subject: [PATCH] Add exception reporting event
@ -240,7 +240,7 @@ index 58122b18e..0ac1fb53a 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ae14fb182..ae7e4a7fa 100644
index 7e1df0e5b..0684d85be 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,6 +1,8 @@
@ -252,7 +252,7 @@ index ae14fb182..ae7e4a7fa 100644
import com.google.common.base.MoreObjects;
import com.google.common.collect.Lists;
import it.unimi.dsi.fastutil.longs.LongSet;
@@ -1145,8 +1147,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1150,8 +1152,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
} catch (Throwable throwable1) {
entity.tickTimer.stopTiming();
// Paper start - Prevent tile entity and entity crashes
@ -264,7 +264,7 @@ index ae14fb182..ae7e4a7fa 100644
entity.dead = true;
continue;
// Paper end
@@ -1211,8 +1215,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1216,8 +1220,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.methodProfiler.exit();
} catch (Throwable throwable2) {
// Paper start - Prevent tile entity and entity crashes

View file

@ -1,4 +1,4 @@
From a6d6f8889148feda3f6229367dc1ae53b488a1a7 Mon Sep 17 00:00:00 2001
From e2a551344ce5dcc96e50b8aaeb3ff58ab247b2ac 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
@ -45,7 +45,7 @@ index 237a34082..cf53118cc 100644
boolean isChunkLoaded(int i, int j, boolean flag);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ae7e4a7fa..96442ad7d 100644
index 0684d85be..7e35cc36b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -79,7 +79,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -57,7 +57,7 @@ index ae7e4a7fa..96442ad7d 100644
protected int m = (new Random()).nextInt();
protected final int n = 1013904223;
protected float o;
@@ -269,6 +269,83 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -268,6 +268,83 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return this.getType(blockposition).isAir();
}

View file

@ -1,4 +1,4 @@
From 7ed9ceeb7d35c46ef914426bf9944bd1dda34c57 Mon Sep 17 00:00:00 2001
From 180e605d07d2befdf1f25c52219d7a68943a7201 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 02:07:55 -0600
Subject: [PATCH] Optimize isValidLocation, getType and getBlockData for inling
@ -31,7 +31,7 @@ index 5843ef65a..4c7793f86 100644
public BaseBlockPosition(int i, int j, int k) {
this.a = i;
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
index 75a0f1386..507c93804 100644
index 37f9037a2..dfd7496c7 100644
--- a/src/main/java/net/minecraft/server/BlockPosition.java
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
@@ -300,6 +300,16 @@ public class BlockPosition extends BaseBlockPosition {
@ -97,10 +97,10 @@ index 3c5f10ad4..621ed1fc5 100644
private NibbleArray skyLight;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 96442ad7d..502738b90 100644
index 7e35cc36b..6f5719928 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -258,11 +258,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -257,11 +257,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public static boolean isValidLocation(BlockPosition blockposition) {
@ -114,7 +114,7 @@ index 96442ad7d..502738b90 100644
}
public boolean isEmpty(BlockPosition blockposition) {
@@ -279,7 +279,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -278,7 +278,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// test if meets light level, return faster
// logic copied from below
public boolean isLightLevel(BlockPosition blockposition, int level) {
@ -123,7 +123,7 @@ index 96442ad7d..502738b90 100644
if (this.getType(blockposition).c(this, blockposition)) {
int sky = getSkylightSubtracted();
if (this.getLightLevel(blockposition.up(), sky) >= level) {
@@ -326,7 +326,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -325,7 +325,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// CraftBukkit end
Chunk chunk = this.getChunkIfLoaded(blockposition);
if (chunk != null) {
@ -132,7 +132,7 @@ index 96442ad7d..502738b90 100644
}
return null;
}
@@ -381,7 +381,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -380,7 +380,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return true;
}
// CraftBukkit end
@ -141,7 +141,7 @@ index 96442ad7d..502738b90 100644
return false;
} else if (!this.isClientSide && this.worldData.getType() == WorldType.DEBUG_ALL_BLOCK_STATES) {
return false;
@@ -702,11 +702,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -707,11 +707,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
blockposition = new BlockPosition(blockposition.getX(), 0, blockposition.getZ());
}
@ -155,7 +155,7 @@ index 96442ad7d..502738b90 100644
if (this.isLoaded(blockposition)) {
this.getChunkAtWorldCoords(blockposition).a(enumskyblock, blockposition, i);
this.m(blockposition);
@@ -733,7 +733,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -738,7 +738,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
}
// CraftBukkit end
@ -164,7 +164,7 @@ index 96442ad7d..502738b90 100644
return Blocks.VOID_AIR.getBlockData();
} else {
Chunk chunk = this.getChunkAtWorldCoords(blockposition);
@@ -743,7 +743,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -748,7 +748,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public Fluid getFluid(BlockPosition blockposition) {
@ -173,7 +173,7 @@ index 96442ad7d..502738b90 100644
return FluidTypes.EMPTY.i();
} else {
Chunk chunk = this.getChunkAtWorldCoords(blockposition);
@@ -1761,7 +1761,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1766,7 +1766,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public Map<BlockPosition, TileEntity> capturedTileEntities = Maps.newHashMap();
@Nullable
public TileEntity getTileEntity(BlockPosition blockposition) {
@ -182,7 +182,7 @@ index 96442ad7d..502738b90 100644
return null;
} else {
// CraftBukkit start
@@ -1802,7 +1802,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1807,7 +1807,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public void setTileEntity(BlockPosition blockposition, @Nullable TileEntity tileentity) {
@ -191,7 +191,7 @@ index 96442ad7d..502738b90 100644
if (tileentity != null && !tileentity.x()) {
// CraftBukkit start
if (captureBlockStates) {
@@ -1863,7 +1863,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1868,7 +1868,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public boolean p(BlockPosition blockposition) {

View file

@ -1,4 +1,4 @@
From f89ace834ec5515fb35f7c63acb3d9c95190fb58 Mon Sep 17 00:00:00 2001
From 900120b3a43fa8b8922f1b44a79ecf5a52b0617c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 19:55:45 -0400
Subject: [PATCH] Option to disable BlockPhysicsEvent for Redstone
@ -25,10 +25,10 @@ index 0faef7cf2..deb4ec254 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 502738b90..05d988ed6 100644
index 6f5719928..541d9c2d6 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -615,7 +615,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -620,7 +620,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
try {
// CraftBukkit start
CraftWorld world = ((WorldServer) this).getWorld();
@ -38,7 +38,7 @@ index 502738b90..05d988ed6 100644
this.getServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 4a8cc0ff1..fa7466d64 100644
index aaeb888a8..1d46b8967 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -33,6 +33,7 @@ import org.bukkit.event.weather.LightningStrikeEvent;

View file

@ -1,14 +1,14 @@
From b4fad19cf6a691affd09d0e66a98923e7d5128f0 Mon Sep 17 00:00:00 2001
From 39105c3c741bdead79bb7b8a21e38b3980e48017 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 20:32:58 -0400
Subject: [PATCH] Entity AddTo/RemoveFrom World Events
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 05d988ed6..1450a4c6e 100644
index 541d9c2d6..5b36e7590 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1027,6 +1027,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1032,6 +1032,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
entity.valid = true; // CraftBukkit
@ -16,7 +16,7 @@ index 05d988ed6..1450a4c6e 100644
}
protected void c(Entity entity) {
@@ -1034,6 +1035,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1039,6 +1040,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
((IWorldAccess) this.v.get(i)).b(entity);
}

View file

@ -1,4 +1,4 @@
From e8cefaca8bce04d279e54ebb7f3106a4af8ab800 Mon Sep 17 00:00:00 2001
From fe617230001f60f90d1511e6673e91fa51b54f00 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 31 Mar 2016 19:17:58 -0400
Subject: [PATCH] Do not load chunks for light checks
@ -7,10 +7,10 @@ Should only happen for blocks on the edge that uses neighbors light level
(certain blocks). In that case, there will be 3-4 other neighbors to get a light level from.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 1450a4c6e..907681cdf 100644
index 5b36e7590..f4b5e3ba4 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -658,6 +658,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -663,6 +663,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (blockposition.getY() >= 256) {
blockposition = new BlockPosition(blockposition.getX(), 255, blockposition.getZ());
}

View file

@ -1,4 +1,4 @@
From 36b26b9c6b8f8a53382fdefbc997dcd9fd158fb1 Mon Sep 17 00:00:00 2001
From 102ffd1fa2fb10d7aaeb220c7c71bd3b0c3b4c10 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 13 Sep 2014 23:14:43 -0400
Subject: [PATCH] Configurable Keep Spawn Loaded range per world
@ -63,10 +63,10 @@ index f488c37f7..e53e25626 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 907681cdf..5aea44cd8 100644
index f4b5e3ba4..2ed87dd9c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2847,8 +2847,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2852,8 +2852,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
int k = i * 16 + 8 - blockposition.getX();
int l = j * 16 + 8 - blockposition.getZ();
boolean flag = true;

View file

@ -1,14 +1,14 @@
From 2848d4479060017f0be0642f379638c37a73efd1 Mon Sep 17 00:00:00 2001
From 1c7840b8ff0e9e11c68d3decf34a047ee2fa3497 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 3 Apr 2016 17:48:50 -0400
Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 5aea44cd8..a7342da04 100644
index 2ed87dd9c..937fd74b1 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -573,6 +573,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -578,6 +578,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public void applyPhysics(BlockPosition blockposition, Block block) {

View file

@ -1,14 +1,14 @@
From 5a15c3db1c4118969b832e0d827619f0b3602afc Mon Sep 17 00:00:00 2001
From 050c476f2a947170b6f8564ef94fb1e25e678f04 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 5 Apr 2016 19:42:22 -0400
Subject: [PATCH] Don't spam reload spawn chunks in nether/end
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a7342da04..11c77ade1 100644
index 937fd74b1..af6abc2df 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2843,6 +2843,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2848,6 +2848,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return this.K;
}

View file

@ -1,4 +1,4 @@
From e671d551cf48e7fae5fcd6e2d3f07289e4425135 Mon Sep 17 00:00:00 2001
From 37c4fc9303c9da3c1a83e5e8603ff99fd3a19951 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 13 Apr 2016 00:25:28 -0400
Subject: [PATCH] Remove unused World Tile Entity List
@ -6,7 +6,7 @@ Subject: [PATCH] Remove unused World Tile Entity List
Massive hit to performance and it is completely unnecessary.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 11c77ade1..600b0ec8b 100644
index af6abc2df..d8ef300f7 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -71,7 +71,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -18,7 +18,7 @@ index 11c77ade1..600b0ec8b 100644
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
private final List<TileEntity> c = Lists.newArrayList();
private final Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); // Paper
@@ -1263,7 +1263,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1268,7 +1268,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
timings.tileEntityTick.startTiming(); // Spigot
if (!this.tileEntityListUnload.isEmpty()) {
this.tileEntityListTick.removeAll(this.tileEntityListUnload);
@ -27,7 +27,7 @@ index 11c77ade1..600b0ec8b 100644
this.tileEntityListUnload.clear();
}
@@ -1316,7 +1316,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1321,7 +1321,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (tileentity.x()) {
tilesThisCycle--;
this.tileEntityListTick.remove(tileTickPosition--);
@ -36,7 +36,7 @@ index 11c77ade1..600b0ec8b 100644
if (this.isLoaded(tileentity.getPosition())) {
this.getChunkAtWorldCoords(tileentity.getPosition()).d(tileentity.getPosition());
}
@@ -1346,7 +1346,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1351,7 +1351,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3);
// CraftBukkit start
// From above, don't screw this up - SPIGOT-1746
@ -45,7 +45,7 @@ index 11c77ade1..600b0ec8b 100644
this.a(tileentity1);
}
// CraftBukkit end
@@ -1366,9 +1366,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1371,9 +1371,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
protected void p_() {}
public boolean a(TileEntity tileentity) {
@ -57,7 +57,7 @@ index 11c77ade1..600b0ec8b 100644
this.tileEntityListTick.add(tileentity);
}
@@ -1849,7 +1849,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1854,7 +1854,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
} else {
if (tileentity != null) {
this.c.remove(tileentity);

View file

@ -1,4 +1,4 @@
From 3a8e019ef8f05f0d544032d452fe95be4f3213c6 Mon Sep 17 00:00:00 2001
From 8635173789c985456da0e2561973b523dfcdd7f2 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 29 Apr 2016 20:02:00 -0400
Subject: [PATCH] Improve Maps (in item frames) performance and bug fixes
@ -13,7 +13,7 @@ custom renderers are in use, defaulting to the much simpler Vanilla system.
Additionally, numerous issues to player position tracking on maps has been fixed.
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index f28ca6bb4..f1314831f 100644
index 16d28c5db..027fc9bae 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -615,6 +615,12 @@ public abstract class EntityHuman extends EntityLiving {
@ -30,7 +30,7 @@ index f28ca6bb4..f1314831f 100644
ItemStack itemstack1 = this.a(entityitem);
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index a12a42c32..638b54c1e 100644
index de0cf6b73..b3aa57d19 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -97,7 +97,7 @@ public class EntityTrackerEntry {
@ -43,10 +43,10 @@ index a12a42c32..638b54c1e 100644
ItemStack itemstack = entityitemframe.getItem();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 600b0ec8b..b51415e9b 100644
index d8ef300f7..744cb9b0b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1067,6 +1067,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1072,6 +1072,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
{
if ( iter.next().trackee == entity )
{

View file

@ -1,4 +1,4 @@
From e9a7436242095e39bf7c216ead3291c98cb26689 Mon Sep 17 00:00:00 2001
From 09fc8909e5eff839302c3e21bd901bbb4f5d4641 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 18 Jun 2016 23:22:12 -0400
Subject: [PATCH] Delay Chunk Unloads based on Player Movement
@ -172,10 +172,10 @@ index 206457650..ab4f3b722 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b51415e9b..1ffa3f0aa 100644
index 744cb9b0b..06991baca 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1287,7 +1287,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1292,7 +1292,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (!tileentity.x() && tileentity.hasWorld()) {
BlockPosition blockposition = tileentity.getPosition();

View file

@ -1,4 +1,4 @@
From f7df7852a2bdeeb3e9ada8245312285e17151d2d Mon Sep 17 00:00:00 2001
From 5998e59699d7927e6937cc3df8d056504fa7f2c0 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 21 Jun 2016 22:54:34 -0400
Subject: [PATCH] Fix Double World Add issues
@ -21,10 +21,10 @@ index 21ee154a5..a144118f6 100644
Iterator iterator = entity.bP().iterator();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 1ffa3f0aa..3d43f2937 100644
index 06991baca..56676f34b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -987,6 +987,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -992,6 +992,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public boolean addEntity(Entity entity, SpawnReason spawnReason) { // Changed signature, added SpawnReason
org.spigotmc.AsyncCatcher.catchOp( "entity add"); // Spigot

View file

@ -1,4 +1,4 @@
From 9db121d4d39ef91745ee6901e0353950ff6dae5e Mon Sep 17 00:00:00 2001
From 717d26909def2ce7339b76147cbcacabd139d9a5 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 21 Sep 2016 22:54:28 -0400
Subject: [PATCH] Chunk registration fixes
@ -8,10 +8,10 @@ World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is tr
Keep them consistent
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 3d43f2937..b07229875 100644
index 56676f34b..4eb8e25bf 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1467,7 +1467,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1472,7 +1472,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
i = MathHelper.floor(entity.locX / 16.0D);

View file

@ -1,4 +1,4 @@
From f4f4c5e22c47e28e70a575517c6c225addb90bea Mon Sep 17 00:00:00 2001
From 0033ccc91201ea518109c020dd1102531147941e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 2 Dec 2016 00:11:43 -0500
Subject: [PATCH] Optimize World.isLoaded(BlockPosition)Z
@ -6,10 +6,10 @@ Subject: [PATCH] Optimize World.isLoaded(BlockPosition)Z
Reduce method invocations for World.isLoaded(BlockPosition)Z
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b07229875..fdfa5a8a1 100644
index 4eb8e25bf..d4ed23089 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -269,6 +269,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -268,6 +268,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return this.getType(blockposition).isAir();
}

View file

@ -1,14 +1,14 @@
From 20c5fa0a3fe5ea037392f045c3557fb14ffa5cd5 Mon Sep 17 00:00:00 2001
From 996aaeb08a61dfb62749e8b621b6b72f21116a95 Mon Sep 17 00:00:00 2001
From: mezz <tehgeek@gmail.com>
Date: Wed, 9 Aug 2017 17:51:22 -0500
Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index fdfa5a8a1..4f261554c 100644
index d4ed23089..30f4ea451 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1268,7 +1268,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1273,7 +1273,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.methodProfiler.exitEnter("blockEntities");
timings.tileEntityTick.startTiming(); // Spigot
if (!this.tileEntityListUnload.isEmpty()) {

View file

@ -1,4 +1,4 @@
From b1d6423949e3b375ceef052ea5778ae7afc19391 Mon Sep 17 00:00:00 2001
From 9da6eabeb84a6797d1dc255cb701801bcfa538c6 Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Tue, 31 Oct 2017 03:26:18 +0100
Subject: [PATCH] Send attack SoundEffects only to players who can see the
@ -6,7 +6,7 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 7343eb25c..610e76328 100644
index 8378c0789..54d03feb9 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -989,6 +989,15 @@ public abstract class EntityHuman extends EntityLiving {
@ -72,10 +72,10 @@ index 7343eb25c..610e76328 100644
entity.extinguish();
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 4f261554c..88300e2e5 100644
index 30f4ea451..c98c11541 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -949,6 +949,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -954,6 +954,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.a(entityhuman, (double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, soundeffect, soundcategory, f, f1);
}

View file

@ -1,4 +1,4 @@
From 07f232b3d10c3ec618d75a831c74f61476134e3a Mon Sep 17 00:00:00 2001
From 70822f826d458249efca2253522d5d8c0392fa8a Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Thu, 16 Nov 2017 12:12:41 +0000
Subject: [PATCH] use CB BlockState implementations for captured blocks
@ -18,10 +18,10 @@ the blockstate that will be valid for restoration, as opposed to dropping
information on restoration when the event is cancelled.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 88300e2e5..f637aed77 100644
index c98c11541..d7c1c96a9 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -396,7 +396,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -395,7 +395,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// CraftBukkit start - capture blockstates
CraftBlockState blockstate = null;
if (this.captureBlockStates) {

View file

@ -1,4 +1,4 @@
From 194a295182c17f0e74b68286d465126fc28cc2d1 Mon Sep 17 00:00:00 2001
From 84d6829023a55809a241a8dd80499bb2c90b7d35 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 Jul 2018 03:39:51 -0400
Subject: [PATCH] Avoid Chunk Lookups for Entity/TileEntity Current Chunk
@ -22,10 +22,10 @@ index 3ca579e38..1c1f39524 100644
this.a(entity, entity.chunkY);
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f637aed77..84efc1cc3 100644
index d7c1c96a9..c6615b5a7 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1187,12 +1187,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1192,12 +1192,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
int j;
// Paper start - Set based removal lists
for (Entity e : this.g) {
@ -42,7 +42,7 @@ index f637aed77..84efc1cc3 100644
}
for (Entity e : this.g) {
@@ -1253,12 +1256,17 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1258,12 +1261,17 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.methodProfiler.exit();
this.methodProfiler.enter("remove");
if (entity.dead) {
@ -61,7 +61,7 @@ index f637aed77..84efc1cc3 100644
guardEntityList = false; // Spigot
this.entityList.remove(this.tickPosition--); // CraftBukkit - Use field for loop variable
@@ -1303,7 +1311,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1308,7 +1316,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
BlockPosition blockposition = tileentity.getPosition();
// Paper start - Skip ticking in chunks scheduled for unload
@ -70,7 +70,7 @@ index f637aed77..84efc1cc3 100644
boolean shouldTick = chunk != null;
if(this.paperConfig.skipEntityTickingInChunksScheduledForUnload)
shouldTick = shouldTick && chunk.scheduledForUnload == null;
@@ -1339,8 +1347,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1344,8 +1352,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
tilesThisCycle--;
this.tileEntityListTick.remove(tileTickPosition--);
//this.tileEntityList.remove(tileentity); // Paper - remove unused list

View file

@ -1,4 +1,4 @@
From f96de9ff9ddbffb8ba3556b206e7a01f7b37908b Mon Sep 17 00:00:00 2001
From 8ed9fda55686c59ac2ca3eecdd7abf203842146a Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 12:57:39 +0200
Subject: [PATCH] Option to prevent armor stands from doing entity lookups
@ -21,10 +21,10 @@ index 05509e4fd..4059c7a72 100644
private void maxEntityCollision() {
maxCollisionsPerEntity = getInt( "max-entity-collisions", this.spigotConfig.getInt("max-entity-collisions", 8) );
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 4df291f0d..074d14b19 100644
index b90c64a17..5104afc33 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1542,6 +1542,14 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1547,6 +1547,14 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
}

View file

@ -1,11 +1,11 @@
From 92348c1acf40bee68a6ffb3b1d0e0d12e39a4597 Mon Sep 17 00:00:00 2001
From 5f54c38ae42d4fa924279bf60b688bc3162ab432 Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 14:22:26 +0200
Subject: [PATCH] Vanished players don't have rights
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index e16fd4e5e9..61a547a40d 100644
index e16fd4e5e..61a547a40 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -92,7 +92,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -18,7 +18,7 @@ index e16fd4e5e9..61a547a40d 100644
protected int k;
private Entity vehicle;
diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java
index 85d364b8f4..ff6c8e2b55 100644
index 85d364b8f..ff6c8e2b5 100644
--- a/src/main/java/net/minecraft/server/ItemBlock.java
+++ b/src/main/java/net/minecraft/server/ItemBlock.java
@@ -70,7 +70,8 @@ public class ItemBlock extends Item {
@ -32,10 +32,10 @@ index 85d364b8f4..ff6c8e2b55 100644
BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(blockactioncontext.getWorld(), blockactioncontext.getClickPosition()), player, CraftBlockData.fromData(iblockdata), defaultReturn);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 074d14b196..93b0544e0f 100644
index 5104afc33..7eb15fbb5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1524,6 +1524,37 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1529,6 +1529,37 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
}
@ -74,7 +74,7 @@ index 074d14b196..93b0544e0f 100644
if (voxelshape.isEmpty()) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 167a3baec7..1b13fa6186 100644
index 167a3baec..1b13fa618 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1000,6 +1000,14 @@ public class CraftEventFactory {

View file

@ -1,4 +1,4 @@
From bf37a721e1cd38719fcfe7f2773280578e372da2 Mon Sep 17 00:00:00 2001
From 46d34d7499b61271b55499dc09d080afdaa2574f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 28 Jul 2018 12:09:20 -0400
Subject: [PATCH] Always process chunk removal in removeEntity
@ -8,10 +8,10 @@ which can keep them in the chunk when they shouldnt be if done
during entity ticking.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 93b0544e0..2dd617de9 100644
index 7eb15fbb5..63588cd0c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1102,7 +1102,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1107,7 +1107,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.everyoneSleeping();
}
@ -20,7 +20,7 @@ index 93b0544e0..2dd617de9 100644
int i = entity.chunkX;
int j = entity.chunkZ;
@@ -1110,6 +1110,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1115,6 +1115,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.getChunkAt(i, j).b(entity);
}

View file

@ -1,4 +1,4 @@
From 5ee90c9c958827da1f346eb10357632e3b363611 Mon Sep 17 00:00:00 2001
From 1afbefeda4968c4d7af97d155ea94bbe6f237de0 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 28 Jul 2018 12:18:27 -0400
Subject: [PATCH] Ignore Dead Entities in entityList iteration
@ -23,7 +23,7 @@ index 56700fc59..9b9c8361e 100644
MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ());
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 50e616179..cc30f19f0 100644
index 15a81d1eb..f0fa4e944 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -121,6 +121,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -35,10 +35,10 @@ index 50e616179..cc30f19f0 100644
public float length;
public float J;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 2dd617de9..2e6b00541 100644
index 63588cd0c..ddd438647 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1041,6 +1041,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1046,6 +1046,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
entity.valid = true; // CraftBukkit
@ -46,7 +46,7 @@ index 2dd617de9..2e6b00541 100644
new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
}
@@ -1109,6 +1110,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1114,6 +1115,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (entity.inChunk && this.isChunkLoaded(i, j, true)) {
this.getChunkAt(i, j).b(entity);
}
@ -54,7 +54,7 @@ index 2dd617de9..2e6b00541 100644
if (!guardEntityList) { // Spigot - It will get removed after the tick if we are ticking // Paper - always remove from current chunk above
// CraftBukkit start - Decrement loop variable field if we've already ticked this entity
@@ -2319,6 +2321,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2324,6 +2326,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
while (iterator.hasNext()) {
Entity entity = (Entity) iterator.next();
@ -62,7 +62,7 @@ index 2dd617de9..2e6b00541 100644
if (oclass.isAssignableFrom(entity.getClass()) && predicate.test((T) entity)) { // CraftBukkit - decompile error
list.add((T) entity); // CraftBukkit - decompile error
@@ -2405,6 +2408,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2410,6 +2413,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
while (iterator.hasNext()) {
Entity entity = (Entity) iterator.next();

View file

@ -1,11 +1,11 @@
From 39148659a11dc6f6d5ec7bb3fb4397c25b8e991a Mon Sep 17 00:00:00 2001
From d16207bc6f8483316663f8ffcf3f9ad25a0d0daf Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com>
Date: Mon, 30 Jul 2018 02:42:49 -0400
Subject: [PATCH] World EntityHuman Lookup Optimizations
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 2e6b00541..0d112016f 100644
index ddd438647..74e1f4810 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -76,6 +76,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -16,7 +16,7 @@ index 2e6b00541..0d112016f 100644
public final List<Entity> k = Lists.newArrayList();
protected final IntHashMap<Entity> entitiesById = new IntHashMap<>();
private final long F = 16777215L;
@@ -1025,6 +1026,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1030,6 +1031,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
EntityHuman entityhuman = (EntityHuman) entity;
this.players.add(entityhuman);
@ -25,7 +25,7 @@ index 2e6b00541..0d112016f 100644
this.everyoneSleeping();
}
@@ -1067,6 +1070,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1072,6 +1075,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
entity.die();
if (entity instanceof EntityHuman) {
this.players.remove(entity);
@ -33,7 +33,7 @@ index 2e6b00541..0d112016f 100644
// Spigot start
for ( WorldPersistentData worldData : worldMaps.worldMap.values() )
{
@@ -1100,6 +1104,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1105,6 +1109,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
entity.die();
if (entity instanceof EntityHuman) {
this.players.remove(entity);
@ -41,7 +41,7 @@ index 2e6b00541..0d112016f 100644
this.everyoneSleeping();
}
@@ -2670,6 +2675,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2675,6 +2680,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@Nullable
public EntityHuman a(String s) {
@ -50,7 +50,7 @@ index 2e6b00541..0d112016f 100644
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@@ -2679,10 +2686,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2684,10 +2691,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
return null;
@ -66,7 +66,7 @@ index 2e6b00541..0d112016f 100644
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@@ -2692,6 +2704,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2697,6 +2709,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
return null;

View file

@ -1,4 +1,4 @@
From 4bec88c9c9d3934730f7c9ef94b409a04c8bcc66 Mon Sep 17 00:00:00 2001
From 53c212aceb5442fc775470aefd2a3160946881e8 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 3 Aug 2018 22:47:46 -0400
Subject: [PATCH] Entity add to world fixes
@ -53,10 +53,10 @@ index ca236a315..edf4d9130 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 0d112016f..187506b57 100644
index 74e1f4810..db130852f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1032,6 +1032,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1037,6 +1037,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
this.getChunkAt(i, j).a(entity);
@ -64,7 +64,7 @@ index 0d112016f..187506b57 100644
this.entityList.add(entity);
this.b(entity);
return true;
@@ -2437,9 +2438,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2442,9 +2443,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return j;
}

View file

@ -1,4 +1,4 @@
From f3535616c140d470acb08dfa6671ea715300c8f8 Mon Sep 17 00:00:00 2001
From f2e6a430e2bb0295c4e5a23223dbd20857d0c8a5 Mon Sep 17 00:00:00 2001
From: Colin Godsey <crgodsey@gmail.com>
Date: Wed, 8 Aug 2018 10:10:06 -0600
Subject: [PATCH] Cache World Entity Type counts
@ -133,7 +133,7 @@ index 000000000..a10a5bc13
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index a9b0f8497..3311e2b24 100644
index 3ca51a5c5..c29d7eeb0 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -122,6 +122,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -171,7 +171,7 @@ index e62616552..bfbe4d3e3 100644
if (l1 <= k) {
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 187506b57..823c3900b 100644
index db130852f..0866c6feb 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -45,7 +45,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -192,16 +192,19 @@ index 187506b57..823c3900b 100644
// Spigot end
protected final Set<Entity> g = com.google.common.collect.Sets.newHashSet(); public Set<Entity> getEntityUnloadQueue() { return g; };// Paper - OBFHELPER
//public final List<TileEntity> tileEntityList = Lists.newArrayList(); // Paper - remove unused list
@@ -139,7 +141,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -139,8 +141,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
- private boolean guardEntityList; // Spigot
+ public boolean guardEntityList; // Spigot // Paper - public
public static boolean haveWeSilencedAPhysicsCrash;
public static String blockLocation;
public static BlockPosition lastPhysicsProblem; // Spigot
+ public static boolean haveWeSilencedAPhysicsCrash;
+ public static String blockLocation;
private org.spigotmc.TickLimiter entityLimiter;
@@ -1117,6 +1119,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
private org.spigotmc.TickLimiter tileLimiter;
private int tileTickPosition;
@@ -1122,6 +1126,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.getChunkAt(i, j).b(entity);
}
entity.shouldBeRemoved = true; // Paper

View file

@ -1,14 +1,14 @@
From b4008e9f85da18e2872ba12cc5064bcf6c8d89cf Mon Sep 17 00:00:00 2001
From 26c2d12f82126e938d3873de0bf7d4485db0164e Mon Sep 17 00:00:00 2001
From: Sotr <i@omc.hk>
Date: Thu, 23 Aug 2018 16:14:12 +0800
Subject: [PATCH] Add source block to BlockPhysicsEvent
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 823c3900b..b4c9df025 100644
index 0866c6feb..c8a49d776 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -625,7 +625,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -632,7 +632,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// CraftBukkit start
CraftWorld world = ((WorldServer) this).getWorld();
if (world != null && !((WorldServer)this).stopPhysicsEvent) { // Paper

View file

@ -1,4 +1,4 @@
From 94a35b002229e4b622235ab9c8f1e0475ce27a46 Mon Sep 17 00:00:00 2001
From 7dbfd324c0ed19ad289e2333f2f17bff859e05a2 Mon Sep 17 00:00:00 2001
From: stonar96 <minecraft.stonar96@gmail.com>
Date: Mon, 20 Aug 2018 03:03:58 +0200
Subject: [PATCH] Anti-Xray
@ -1473,7 +1473,7 @@ index 7d3f846a1..240f59066 100644
} else {
this.a((Packet) (new PacketPlayOutMultiBlockChange(this.dirtyCount, this.dirtyBlocks, this.chunk)));
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index 4c1f43c49..22574a184 100644
index 07f9b8d2f..22378b6bc 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -207,6 +207,8 @@ public class PlayerInteractManager {
@ -1534,7 +1534,7 @@ index 16e3469d0..e4c0cc6a3 100644
if (enumskyblock == EnumSkyBlock.SKY) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b4c9df025..a95c8df4b 100644
index c8a49d776..5c5b3ef28 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,6 +1,8 @@
@ -1554,7 +1554,7 @@ index b4c9df025..a95c8df4b 100644
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
public boolean guardEntityList; // Spigot // Paper - public
@@ -164,6 +167,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -165,6 +168,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
protected World(IDataManager idatamanager, @Nullable PersistentCollection persistentcollection, WorldData worlddata, WorldProvider worldprovider, MethodProfiler methodprofiler, boolean flag, ChunkGenerator gen, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(worlddata.getName(), this.spigotConfig); // Paper
@ -1562,7 +1562,7 @@ index b4c9df025..a95c8df4b 100644
this.generator = gen;
this.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
@@ -406,6 +410,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -407,6 +411,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// CraftBukkit end
IBlockData iblockdata1 = chunk.setType(blockposition, iblockdata, (i & 64) != 0, (i & 1024) == 0); // CraftBukkit custom NO_PLACE flag

View file

@ -1,4 +1,4 @@
From 1fcbcf080609ed885aae4b8b4d0173f01b5bf33b Mon Sep 17 00:00:00 2001
From 054e75a8aa2efaf8de0b9bd367a3186e38a9a1e1 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 29 Aug 2018 21:59:22 -0400
Subject: [PATCH] Optimize getChunkIfLoaded type calls
@ -23,10 +23,10 @@ index 41926a361..186cfda7e 100644
neighbor.setNeighborUnloaded(-x, -z);
chunk.setNeighborUnloaded(x, z);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a95c8df4b..cd56ca04e 100644
index 5c5b3ef28..c89a0f7da 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -161,7 +161,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -162,7 +162,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public Chunk getChunkIfLoaded(int x, int z) {
@ -35,7 +35,7 @@ index a95c8df4b..cd56ca04e 100644
}
protected World(IDataManager idatamanager, @Nullable PersistentCollection persistentcollection, WorldData worlddata, WorldProvider worldprovider, MethodProfiler methodprofiler, boolean flag, ChunkGenerator gen, org.bukkit.World.Environment env) {
@@ -717,7 +717,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -724,7 +724,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
blockposition = new BlockPosition(blockposition.getX(), 0, blockposition.getZ());
}
@ -45,7 +45,7 @@ index a95c8df4b..cd56ca04e 100644
}
public void a(EnumSkyBlock enumskyblock, BlockPosition blockposition, int i) {
@@ -1960,7 +1961,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1967,7 +1968,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (blockposition.isInvalidYLocation()) { // Paper
return false;
} else {

View file

@ -1,11 +1,11 @@
From 062b314e9738b03ea846cd097167d93bd4680d60 Mon Sep 17 00:00:00 2001
From 596abf69b2fac810f11d4d62d30da12339bc5ac7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 10 Sep 2018 23:56:36 -0400
Subject: [PATCH] Prevent Mob AI Rules from Loading Chunks
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java b/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java
index 2b15aa6c9e..3ca32123bb 100644
index 2b15aa6c9..3ca32123b 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java
@@ -12,11 +12,13 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget {
@ -53,7 +53,7 @@ index 2b15aa6c9e..3ca32123bb 100644
return block == this.f && iworldreader.getType(blockposition.up()).isAir() && iworldreader.getType(blockposition.up(2)).isAir();
}
diff --git a/src/main/java/net/minecraft/server/RandomPositionGenerator.java b/src/main/java/net/minecraft/server/RandomPositionGenerator.java
index e58fdee8bb..f2c4048c2b 100644
index e58fdee8b..f2c4048c2 100644
--- a/src/main/java/net/minecraft/server/RandomPositionGenerator.java
+++ b/src/main/java/net/minecraft/server/RandomPositionGenerator.java
@@ -87,6 +87,7 @@ public class RandomPositionGenerator {
@ -74,10 +74,10 @@ index e58fdee8bb..f2c4048c2b 100644
}
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index cd56ca04ea..f48d5d9f78 100644
index c89a0f7da..bd0271aeb 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -757,7 +757,17 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -764,7 +764,17 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return chunk.getType(blockposition);
}
}

View file

@ -1,4 +1,4 @@
From 4dfffbe401ef870b956fc5cf3b6269aa7e56b266 Mon Sep 17 00:00:00 2001
From d8c055a6b9588b2fe77fdb73f7200a1a87931599 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 21 Jul 2018 16:55:04 -0400
Subject: [PATCH] Async Chunk Loading and Generation
@ -2052,7 +2052,7 @@ index 284e96710..8b08efe1f 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f48d5d9f7..b5b0fcf8c 100644
index bd0271aeb..c771e657e 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -41,7 +41,7 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
@ -2089,7 +2089,7 @@ index f48d5d9f7..b5b0fcf8c 100644
public boolean allowMonsters;
public boolean allowAnimals;
private boolean J;
@@ -737,17 +755,42 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -744,17 +762,42 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
@ -2136,7 +2136,7 @@ index f48d5d9f7..b5b0fcf8c 100644
// CraftBukkit end
if (blockposition.isInvalidYLocation()) { // Paper
return Blocks.VOID_AIR.getBlockData();
@@ -1016,6 +1059,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1023,6 +1066,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public boolean addEntity(Entity entity, SpawnReason spawnReason) { // Changed signature, added SpawnReason

View file

@ -1,4 +1,4 @@
From 695bfadd880ff0a6efb5791f61223a5c2cbc4ccb Mon Sep 17 00:00:00 2001
From ae00e18aa67201e19223f874e8d473e5d3501961 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 28 Sep 2018 20:46:29 -0400
Subject: [PATCH] Optimize Light Recalculations
@ -14,7 +14,7 @@ Also optimizes to not repeatedly look up the same chunk for
light lookups.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 6d3f5b6512..9ac594dcbe 100644
index 6d3f5b651..9ac594dcb 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -353,7 +353,7 @@ public class Chunk implements IChunkAccess {
@ -36,10 +36,10 @@ index 6d3f5b6512..9ac594dcbe 100644
int i1 = iblockdata.b(this.world, blockposition);
int j1 = iblockdata1.b(this.world, blockposition);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b5b0fcf8cd..88f8145c4d 100644
index c771e657e..2819a9094 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -584,8 +584,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -591,8 +591,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
if (this.worldProvider.g()) {
@ -51,7 +51,7 @@ index b5b0fcf8cd..88f8145c4d 100644
}
}
@@ -2221,6 +2222,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2228,6 +2229,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public boolean c(EnumSkyBlock enumskyblock, BlockPosition blockposition) {
// CraftBukkit start - Use neighbor cache instead of looking up
Chunk chunk = this.getChunkIfLoaded(blockposition.getX() >> 4, blockposition.getZ() >> 4);

View file

@ -1,4 +1,4 @@
From e154874d67835605e5e359706de7dd788da052df Mon Sep 17 00:00:00 2001
From 42df6398002eb3dd1fec24201046a74e1b49a08b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 28 Sep 2018 21:49:53 -0400
Subject: [PATCH] Fix issues with entity loss due to unloaded chunks
@ -18,10 +18,10 @@ This change ensures the chunks are always loaded when entities are
added to the world, or a valid entity moves between chunks.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 88f8145c4d..55cd98ae20 100644
index 2819a9094..1b7d8bbee 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1074,7 +1074,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1081,7 +1081,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
int i = MathHelper.floor(entity.locX / 16.0D);
int j = MathHelper.floor(entity.locZ / 16.0D);
@ -30,7 +30,7 @@ index 88f8145c4d..55cd98ae20 100644
// Paper start - Set origin location when the entity is being added to the world
if (entity.origin == null) {
@@ -1578,7 +1578,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1585,7 +1585,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.chunkY);
}

View file

@ -1,11 +1,11 @@
From bd1e23a74e539c1a5ea3e37efe5a85a2aefe206b Mon Sep 17 00:00:00 2001
From 692747064da797b9af3c7b7b559c72d45953b477 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Sun, 7 Oct 2018 00:54:21 -0500
Subject: [PATCH] Add sun related API
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index ee5078370c..3059682a49 100644
index ee5078370..3059682a4 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -1287,6 +1287,7 @@ public abstract class EntityInsentient extends EntityLiving {
@ -17,10 +17,10 @@ index ee5078370c..3059682a49 100644
if (this.world.L() && !this.world.isClientSide) {
float f = this.az();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 55cd98ae20..a186637f5e 100644
index 1b7d8bbee..868685e0b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -822,6 +822,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -829,6 +829,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
}
@ -29,7 +29,7 @@ index 55cd98ae20..a186637f5e 100644
return this.G < 4;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index b5a87cfaf6..e33135adaa 100644
index b5a87cfaf..e33135ada 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -538,6 +538,12 @@ public class CraftWorld implements World {
@ -46,7 +46,7 @@ index b5a87cfaf6..e33135adaa 100644
return createExplosion(x, y, z, power, false, true);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
index 53c2d154ed..40a429942e 100644
index 53c2d154e..40a429942 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
@@ -68,4 +68,10 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {

View file

@ -1,4 +1,4 @@
From 448a78b9923ab4bed3002a13d2ecbeedfa42de4a Mon Sep 17 00:00:00 2001
From 356ac9a81cbeaeba16995f4dcd7db259c821e02f Mon Sep 17 00:00:00 2001
From: theosib <millerti@172.16.221.1>
Date: Thu, 27 Sep 2018 01:43:35 -0600
Subject: [PATCH] Optimize redstone algorithm
@ -19,7 +19,7 @@ Aside from making the obvious class/function renames and obfhelpers I didn't nee
Just added Bukkit's event system and took a few liberties with dead code and comment misspellings.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index f47a648af3..eefbb355dc 100644
index 2add466ac..b499c58b7 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -579,4 +579,14 @@ public class PaperWorldConfig {
@ -39,7 +39,7 @@ index f47a648af3..eefbb355dc 100644
}
diff --git a/src/main/java/com/destroystokyo/paper/util/RedstoneWireTurbo.java b/src/main/java/com/destroystokyo/paper/util/RedstoneWireTurbo.java
new file mode 100644
index 0000000000..21d9d6d7ed
index 000000000..21d9d6d7e
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/util/RedstoneWireTurbo.java
@@ -0,0 +1,910 @@
@ -954,7 +954,7 @@ index 0000000000..21d9d6d7ed
+ }
+}
diff --git a/src/main/java/net/minecraft/server/BlockRedstoneWire.java b/src/main/java/net/minecraft/server/BlockRedstoneWire.java
index 48c79568fb..a09aa69444 100644
index 48c79568f..a09aa6944 100644
--- a/src/main/java/net/minecraft/server/BlockRedstoneWire.java
+++ b/src/main/java/net/minecraft/server/BlockRedstoneWire.java
@@ -1,5 +1,7 @@
@ -1122,10 +1122,10 @@ index 48c79568fb..a09aa69444 100644
iblockdata.a(world, blockposition, 0);
world.setAir(blockposition);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a186637f5e..589d3efa70 100644
index 868685e0b..9e19984a2 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -641,6 +641,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -648,6 +648,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
@ -1133,7 +1133,7 @@ index a186637f5e..589d3efa70 100644
public void a(BlockPosition blockposition, Block block, BlockPosition blockposition1) {
if (!this.isClientSide) {
IBlockData iblockdata = this.getType(blockposition);
@@ -2594,6 +2595,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2601,6 +2602,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return this.getBlockFacePower(blockposition.down(), EnumDirection.DOWN) > 0 ? true : (this.getBlockFacePower(blockposition.up(), EnumDirection.UP) > 0 ? true : (this.getBlockFacePower(blockposition.north(), EnumDirection.NORTH) > 0 ? true : (this.getBlockFacePower(blockposition.south(), EnumDirection.SOUTH) > 0 ? true : (this.getBlockFacePower(blockposition.west(), EnumDirection.WEST) > 0 ? true : this.getBlockFacePower(blockposition.east(), EnumDirection.EAST) > 0))));
}

View file

@ -1,4 +1,4 @@
From 89559f21278d3266548781c5d637afde29f2e122 Mon Sep 17 00:00:00 2001
From 34cffb3d7e0f3639f280c11dbc952f3677d253a7 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Tue, 13 Nov 2018 14:01:00 +0000
Subject: [PATCH] limit the range at which we'll consider an attackable target
@ -12,10 +12,10 @@ decrease when set, allowing us to skip further checks earlier on
when looking for an attackable entity
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 589d3efa70..c5960cf4cb 100644
index 9e19984a2..c412cceff 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2722,8 +2722,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2729,8 +2729,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman1 = (EntityHuman) this.players.get(i);

View file

@ -1,4 +1,4 @@
From 6f62ca5139a969a7a92e62fed7fe83b4805115bb Mon Sep 17 00:00:00 2001
From 096328c61aa430d20c20f4834554c9cf8d4986b6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 26 Nov 2018 19:21:58 -0500
Subject: [PATCH] Prevent rayTrace from loading chunks
@ -7,10 +7,10 @@ ray tracing into an unloaded chunk should be treated as a miss
this saves a ton of lag for when AI tries to raytrace near unloaded chunks.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c5960cf4cb..e11e22836f 100644
index c412cceff..7e2d8d4c5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -853,7 +853,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -860,7 +860,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
int i1 = MathHelper.floor(d1);
int j1 = MathHelper.floor(d2);
BlockPosition blockposition = new BlockPosition(l, i1, j1);
@ -20,7 +20,7 @@ index c5960cf4cb..e11e22836f 100644
Fluid fluid = this.getFluid(blockposition);
boolean flag2;
boolean flag3;
@@ -975,7 +976,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -982,7 +983,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
i1 = MathHelper.floor(d1) - (enumdirection == EnumDirection.UP ? 1 : 0);
j1 = MathHelper.floor(d2) - (enumdirection == EnumDirection.SOUTH ? 1 : 0);
blockposition = new BlockPosition(l, i1, j1);

@ -1 +1 @@
Subproject commit 3108e64a6ac9b00a74c94441ce0dc5d63ecd652a
Subproject commit bb813f6f69028b8effd085244d33fec70cbb30f9

@ -1 +1 @@
Subproject commit ad6070dffd9bd5e46bd9d9d423a6d111a8af130a
Subproject commit 2ced02339aeb75e0c59014b1543e75f85f3dac36

@ -1 +1 @@
Subproject commit f56e2e787f425025af0d7410ff4cdb4f8edf7f3b
Subproject commit b0f4c22b92c82146214dad69ea296ab7034592d8