From f956f185c8bee20c4de2313dd908fe0bc10d1671 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 15 Sep 2018 12:10:26 -0400 Subject: [PATCH] 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: 47b9cf30 SPIGOT-4372: LightningStrikeEvent cause API a9ceda75 Include the plugin channel name in the exception message CraftBukkit Changes: a4bdecff SPIGOT-4372: LightningStrikeEvent cause API 34caaf6d SPIGOT-4371: Trident damaged when event cancelled 97315374 SPIGOT-4369: Handle cancelled trident event bf1c8273 SPIGOT-4370: Remove vehicle if its passenger spawn event was cancelled Spigot Changes: 6b015b4b SPIGOT-4370: Remove vehicle if its passenger spawn event was cancelled --- Spigot-Server-Patches/0009-Timings-v2.patch | 24 +++++++++---------- .../0018-Player-affects-spawning-API.patch | 8 +++---- .../0023-Entity-Origin-API.patch | 10 ++++---- ...event-tile-entity-and-entity-crashes.patch | 10 ++++---- .../0041-Disable-spigot-tick-limiters.patch | 10 ++++---- ...entation-of-tile-entity-removal-list.patch | 8 +++---- .../0057-Add-exception-reporting-event.patch | 14 +++++------ ...Location-getType-and-getBlockData-fo.patch | 12 +++++----- ...Entity-AddTo-RemoveFrom-World-Events.patch | 10 ++++---- ...le-Keep-Spawn-Loaded-range-per-world.patch | 8 +++---- ...am-reload-spawn-chunks-in-nether-end.patch | 10 ++++---- ...Remove-unused-World-Tile-Entity-List.patch | 16 ++++++------- ...item-frames-performance-and-bug-fixe.patch | 16 ++++++------- ...unk-Unloads-based-on-Player-Movement.patch | 22 ++++++++--------- .../0137-Chunk-registration-fixes.patch | 8 +++---- ...imer-when-spawner-event-is-cancelled.patch | 12 +++++----- ...02-Fix-MC-117075-TE-Unload-Lag-Spike.patch | 8 +++---- ...ld.spawnParticle-API-and-add-Builder.patch | 8 +++---- ...ups-for-Entity-TileEntity-Current-Ch.patch | 16 ++++++------- ...t-armor-stands-from-doing-entity-loo.patch | 8 +++---- ...5-Vanished-players-don-t-have-rights.patch | 8 +++---- ...rocess-chunk-removal-in-removeEntity.patch | 10 ++++---- ...ead-Entities-in-entityList-iteration.patch | 22 ++++++++--------- ...rld-EntityHuman-Lookup-Optimizations.patch | 18 +++++++------- .../0326-Entity-add-to-world-fixes.patch | 14 +++++------ ...ets-from-world-player-list-not-serve.patch | 10 ++++---- .../0338-Cache-World-Entity-Type-counts.patch | 12 +++++----- ...353-Implement-Force-Loaded-Chunk-API.patch | 8 +++---- ...Optimize-getChunkIfLoaded-type-calls.patch | 10 ++++---- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 32 files changed, 178 insertions(+), 178 deletions(-) diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index 48a978b47d..e71907d56c 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -1,4 +1,4 @@ -From c29cf352780a2e4924f2b9c11804efa58ac0c0e2 Mon Sep 17 00:00:00 2001 +From db96209eeb825730f55d161a488b58dd2cbd8c3f Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 @@ -1080,7 +1080,7 @@ index c69209497b..68ac014aab 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 169294b3c3..2f7fab0907 100644 +index b5b0cbf647..53e35634a8 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,5 +1,6 @@ @@ -1123,7 +1123,7 @@ index 169294b3c3..2f7fab0907 100644 this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); } -@@ -1123,6 +1124,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1130,6 +1131,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } this.methodProfiler.c("remove"); @@ -1131,7 +1131,7 @@ index 169294b3c3..2f7fab0907 100644 this.entityList.removeAll(this.g); int j; -@@ -1143,6 +1145,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1150,6 +1152,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.g.clear(); this.p_(); @@ -1139,7 +1139,7 @@ index 169294b3c3..2f7fab0907 100644 this.methodProfiler.c("regular"); CrashReportSystemDetails crashreportsystemdetails1; -@@ -1152,6 +1155,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1159,6 +1162,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc timings.entityTick.startTiming(); // Spigot guardEntityList = true; // Spigot // CraftBukkit start - Use field for loop variable @@ -1147,7 +1147,7 @@ index 169294b3c3..2f7fab0907 100644 int entitiesThisCycle = 0; if (tickPosition < 0) tickPosition = 0; for (entityLimiter.initTick(); -@@ -1173,10 +1177,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1180,10 +1184,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.methodProfiler.a("tick"); if (!entity.dead && !(entity instanceof EntityPlayer)) { try { @@ -1161,7 +1161,7 @@ index 169294b3c3..2f7fab0907 100644 crashreport1 = CrashReport.a(throwable1, "Ticking entity"); crashreportsystemdetails1 = crashreport1.a("Entity being ticked"); entity.appendEntityCrashDetails(crashreportsystemdetails1); -@@ -1301,6 +1306,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1308,6 +1313,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } timings.tileEntityPending.stopTiming(); // Spigot @@ -1169,7 +1169,7 @@ index 169294b3c3..2f7fab0907 100644 this.methodProfiler.e(); this.methodProfiler.e(); } -@@ -1359,7 +1365,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1366,7 +1372,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } // CraftBukkit end @@ -1177,7 +1177,7 @@ index 169294b3c3..2f7fab0907 100644 entity.N = entity.locX; entity.O = entity.locY; entity.P = entity.locZ; -@@ -1367,6 +1372,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1374,6 +1379,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc entity.lastPitch = entity.pitch; if (flag && entity.inChunk) { ++entity.ticksLived; @@ -1185,7 +1185,7 @@ index 169294b3c3..2f7fab0907 100644 if (entity.isPassenger()) { entity.aH(); } else { -@@ -1430,8 +1436,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1437,8 +1443,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } } } @@ -1195,7 +1195,7 @@ index 169294b3c3..2f7fab0907 100644 public boolean a(@Nullable Entity entity, VoxelShape voxelshape) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index c276c259ae..badec349b7 100644 +index 4be2d8d3c4..e4d03b6779 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -1,5 +1,6 @@ @@ -1802,5 +1802,5 @@ index e60fe5a920..f68e42c4d4 100644 } } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch index 41551a8d1c..16bdc5ff9a 100644 --- a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch +++ b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch @@ -1,4 +1,4 @@ -From 68ff51ddebbce42ce5b66cde1a790887799d0fc0 Mon Sep 17 00:00:00 2001 +From ae8ffe9d11d117ef18da2199da5cdf644bf1a28d Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Tue, 1 Mar 2016 14:47:52 -0600 Subject: [PATCH] Player affects spawning API @@ -58,7 +58,7 @@ index cbdd2431fd..9e24b77ad1 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 237e6136f1..ce97cc99fa 100644 +index 957868d642..29d98ae30b 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -34,6 +34,7 @@ import org.bukkit.craftbukkit.block.data.CraftBlockData; @@ -69,7 +69,7 @@ index 237e6136f1..ce97cc99fa 100644 import org.bukkit.event.block.BlockCanBuildEvent; import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -@@ -2432,7 +2433,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2431,7 +2432,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); @@ -103,5 +103,5 @@ index b8bdcb6b74..91e585048a 100644 @Override public void updateCommands() { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0023-Entity-Origin-API.patch b/Spigot-Server-Patches/0023-Entity-Origin-API.patch index 613eec54eb..ef53eb74cc 100644 --- a/Spigot-Server-Patches/0023-Entity-Origin-API.patch +++ b/Spigot-Server-Patches/0023-Entity-Origin-API.patch @@ -1,11 +1,11 @@ -From 5a9ad7efe623a2b35697e3ea12e6848b42ed1941 Mon Sep 17 00:00:00 2001 +From 2af749a07a38005528f7dab2944ce7655a79568e Mon Sep 17 00:00:00 2001 From: Byteflux 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 15b6067aab..02ac5c4c0c 100644 +index 8b40fcfa77..38615f9eea 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -162,6 +162,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -101,10 +101,10 @@ index 769d599c59..e37da10e09 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 ce97cc99fa..cf359d6d9e 100644 +index 29d98ae30b..8984949ff5 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -961,6 +961,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -968,6 +968,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc int j = MathHelper.floor(entity.locZ / 16.0D); boolean flag = entity.attachedToPlayer; @@ -135,5 +135,5 @@ index 7a204e8edf..0c9b7276fc 100644 + // Paper end } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0024-Prevent-tile-entity-and-entity-crashes.patch b/Spigot-Server-Patches/0024-Prevent-tile-entity-and-entity-crashes.patch index 21acdfadf5..7955c00946 100644 --- a/Spigot-Server-Patches/0024-Prevent-tile-entity-and-entity-crashes.patch +++ b/Spigot-Server-Patches/0024-Prevent-tile-entity-and-entity-crashes.patch @@ -1,4 +1,4 @@ -From 26889dd272c3420365e44b69a9b52eb1e876fdc4 Mon Sep 17 00:00:00 2001 +From 79a3b07620008e12ad07d2489dea841eb1314a44 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 Mar 2016 23:52:34 -0600 Subject: [PATCH] Prevent tile entity and entity crashes @@ -23,10 +23,10 @@ index 68ac014aab..c5212417c6 100644 } } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index be2feb441d..0b38093f91 100644 +index 8984949ff5..4afa16fb8a 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1190,10 +1190,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1197,10 +1197,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc entity.tickTimer.stopTiming(); // Paper } catch (Throwable throwable1) { entity.tickTimer.stopTiming(); @@ -43,7 +43,7 @@ index be2feb441d..0b38093f91 100644 } } -@@ -1256,10 +1258,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1263,10 +1265,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc ((ITickable) tileentity).Y_(); this.methodProfiler.e(); } catch (Throwable throwable2) { @@ -62,5 +62,5 @@ index be2feb441d..0b38093f91 100644 // Spigot start finally { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0041-Disable-spigot-tick-limiters.patch b/Spigot-Server-Patches/0041-Disable-spigot-tick-limiters.patch index 27c4da636b..be32f743fc 100644 --- a/Spigot-Server-Patches/0041-Disable-spigot-tick-limiters.patch +++ b/Spigot-Server-Patches/0041-Disable-spigot-tick-limiters.patch @@ -1,14 +1,14 @@ -From e7d0420983298221e86f3959e98a9acd7cbcc059 Mon Sep 17 00:00:00 2001 +From 933080a0dc72a443ce3fac4cd03ae8a737e66e81 Mon Sep 17 00:00:00 2001 From: Zach Brown 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 9e192b7c04..8b90b13d15 100644 +index 9a7da83b82..4a457e3302 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1167,10 +1167,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1174,10 +1174,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 9e192b7c04..8b90b13d15 100644 tickPosition = (tickPosition < entityList.size()) ? tickPosition : 0; entity = (Entity) this.entityList.get(this.tickPosition); // CraftBukkit end -@@ -1234,9 +1234,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1241,9 +1241,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc // Spigot start // Iterator iterator = this.tileEntityListTick.iterator(); int tilesThisCycle = 0; @@ -35,5 +35,5 @@ index 9e192b7c04..8b90b13d15 100644 TileEntity tileentity = (TileEntity) this.tileEntityListTick.get(tileTickPosition); // Spigot start -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0053-Change-implementation-of-tile-entity-removal-list.patch b/Spigot-Server-Patches/0053-Change-implementation-of-tile-entity-removal-list.patch index 27b5a9c5ec..2a81ab533f 100644 --- a/Spigot-Server-Patches/0053-Change-implementation-of-tile-entity-removal-list.patch +++ b/Spigot-Server-Patches/0053-Change-implementation-of-tile-entity-removal-list.patch @@ -1,11 +1,11 @@ -From 5a524473ad69a38c362a3f2fc90811f9d2ffe8ba Mon Sep 17 00:00:00 2001 +From 7c6c6994aef966b58c6c45848d922e469a53ec52 Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld 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 8b90b13d15..9fb87914ff 100644 +index 4a457e3302..fbcdf9ecaf 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -73,11 +73,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @@ -22,7 +22,7 @@ index 8b90b13d15..9fb87914ff 100644 public final List players = Lists.newArrayList(); public final List k = Lists.newArrayList(); protected final IntHashMap entitiesById = new IntHashMap(); -@@ -1138,20 +1138,20 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1145,20 +1145,20 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.entityList.removeAll(this.g); int j; @@ -53,5 +53,5 @@ index 8b90b13d15..9fb87914ff 100644 this.g.clear(); this.p_(); -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0057-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0057-Add-exception-reporting-event.patch index 957e551716..cca3aaded1 100644 --- a/Spigot-Server-Patches/0057-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0057-Add-exception-reporting-event.patch @@ -1,4 +1,4 @@ -From f619275b362dced2e0f375bb68620b2c7e20355d Mon Sep 17 00:00:00 2001 +From 65c9df6d439014bcebe771bfb9ad883d88766070 Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Thu, 3 Mar 2016 03:15:41 -0600 Subject: [PATCH] Add exception reporting event @@ -89,7 +89,7 @@ index d41cd7a6e9..68f8459861 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 1379b574ef..6b041f06e4 100644 +index 046973a4ed..d73034f329 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -15,6 +15,7 @@ import java.util.function.BooleanSupplier; @@ -191,7 +191,7 @@ index d18921271f..e5115863ec 100644 } diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index 9e24b77ad1..f32191c5a2 100644 +index 50b1175cc1..cc0a884cd3 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager; @@ -239,7 +239,7 @@ index e649d662ae..560edb523f 100644 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 8af8cf2ee5..561bcd07b3 100644 +index fbcdf9ecaf..8aa8d40cb4 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,6 +1,8 @@ @@ -251,7 +251,7 @@ index 8af8cf2ee5..561bcd07b3 100644 import com.google.common.base.MoreObjects; import com.google.common.collect.Lists; import it.unimi.dsi.fastutil.longs.LongSet; -@@ -1193,8 +1195,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1200,8 +1202,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } catch (Throwable throwable1) { entity.tickTimer.stopTiming(); // Paper start - Prevent tile entity and entity crashes @@ -263,7 +263,7 @@ index 8af8cf2ee5..561bcd07b3 100644 entity.dead = true; continue; // Paper end -@@ -1259,8 +1263,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1266,8 +1270,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.methodProfiler.e(); } catch (Throwable throwable2) { // Paper start - Prevent tile entity and entity crashes @@ -334,5 +334,5 @@ index 93b9134d6e..26753fac5e 100644 // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0081-Optimize-isValidLocation-getType-and-getBlockData-fo.patch b/Spigot-Server-Patches/0081-Optimize-isValidLocation-getType-and-getBlockData-fo.patch index 9a79283db7..ec8e7bc77e 100644 --- a/Spigot-Server-Patches/0081-Optimize-isValidLocation-getType-and-getBlockData-fo.patch +++ b/Spigot-Server-Patches/0081-Optimize-isValidLocation-getType-and-getBlockData-fo.patch @@ -1,4 +1,4 @@ -From 2429e8939eb62f6c57e3b5a6ab067e0942371932 Mon Sep 17 00:00:00 2001 +From 967f13508fd86db7959565e2d32ae2b7231a2e19 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 02:07:55 -0600 Subject: [PATCH] Optimize isValidLocation, getType and getBlockData for inling @@ -97,7 +97,7 @@ index 274c449480..7e4c79a1ce 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 94872593b1..ee5d4c5272 100644 +index d531dfcb8a..5031ee3fca 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -263,11 +263,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @@ -173,7 +173,7 @@ index 94872593b1..ee5d4c5272 100644 return FluidTypes.a.i(); } else { Chunk chunk = this.getChunkAtWorldCoords(blockposition); -@@ -1803,7 +1803,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1810,7 +1810,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc public Map capturedTileEntities = Maps.newHashMap(); @Nullable public TileEntity getTileEntity(BlockPosition blockposition) { @@ -182,7 +182,7 @@ index 94872593b1..ee5d4c5272 100644 return null; } else { // CraftBukkit start -@@ -1844,7 +1844,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1851,7 +1851,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } public void setTileEntity(BlockPosition blockposition, @Nullable TileEntity tileentity) { @@ -191,7 +191,7 @@ index 94872593b1..ee5d4c5272 100644 if (tileentity != null && !tileentity.x()) { // CraftBukkit start if (captureBlockStates) { -@@ -1905,7 +1905,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1912,7 +1912,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } public boolean p(BlockPosition blockposition) { @@ -201,5 +201,5 @@ index 94872593b1..ee5d4c5272 100644 } else { Chunk chunk = this.chunkProvider.getChunkAt(blockposition.getX() >> 4, blockposition.getZ() >> 4, false, false); -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0084-Entity-AddTo-RemoveFrom-World-Events.patch b/Spigot-Server-Patches/0084-Entity-AddTo-RemoveFrom-World-Events.patch index 1812af11ae..c2ca2f406b 100644 --- a/Spigot-Server-Patches/0084-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/Spigot-Server-Patches/0084-Entity-AddTo-RemoveFrom-World-Events.patch @@ -1,14 +1,14 @@ -From 23dbf833e038bf5d565bba44919c95322ef55e3e Mon Sep 17 00:00:00 2001 +From 1ca39c0a68a24dba5575712be65b4cbd7502c785 Mon Sep 17 00:00:00 2001 From: Aikar 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 8f3b1d529a..7f39a321db 100644 +index 5471528c22..a252e657c3 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1069,6 +1069,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1076,6 +1076,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } entity.valid = true; // CraftBukkit @@ -16,7 +16,7 @@ index 8f3b1d529a..7f39a321db 100644 } protected void c(Entity entity) { -@@ -1076,6 +1077,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1083,6 +1084,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc ((IWorldAccess) this.v.get(i)).b(entity); } @@ -25,5 +25,5 @@ index 8f3b1d529a..7f39a321db 100644 } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0094-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0094-Configurable-Keep-Spawn-Loaded-range-per-world.patch index d74066f2c6..1ab1edb0db 100644 --- a/Spigot-Server-Patches/0094-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0094-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -1,4 +1,4 @@ -From 4bd607245b947c2f52623b9df34aad0aa47619b6 Mon Sep 17 00:00:00 2001 +From c9b30a74f54c83da7c319cb1b4b484cff5e8b5c8 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 13 Sep 2014 23:14:43 -0400 Subject: [PATCH] Configurable Keep Spawn Loaded range per world @@ -63,10 +63,10 @@ index bbd476bb0e..280e684db4 100644 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 69266ece8f..eb85fa1907 100644 +index cc3ce8d83d..f815c8477c 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -2868,8 +2868,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2867,8 +2867,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; @@ -107,5 +107,5 @@ index 132b21f8bc..9637c98994 100644 loadChunk(chunkCoordX + x, chunkCoordZ + z); } else { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0096-Don-t-spam-reload-spawn-chunks-in-nether-end.patch b/Spigot-Server-Patches/0096-Don-t-spam-reload-spawn-chunks-in-nether-end.patch index d2490272a3..f06885a8d2 100644 --- a/Spigot-Server-Patches/0096-Don-t-spam-reload-spawn-chunks-in-nether-end.patch +++ b/Spigot-Server-Patches/0096-Don-t-spam-reload-spawn-chunks-in-nether-end.patch @@ -1,14 +1,14 @@ -From 1285cf28b6ff0e40cd76bc64122577d31fcbbcc5 Mon Sep 17 00:00:00 2001 +From 34f5225d34a59ceeef04a55bf248cb688351094c Mon Sep 17 00:00:00 2001 From: Aikar 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 4ea7bc53e6..f5741b2b36 100644 +index 75e2de1a22..4bed101c08 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -2864,6 +2864,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2863,6 +2863,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc return this.K; } @@ -16,7 +16,7 @@ index 4ea7bc53e6..f5741b2b36 100644 public boolean e(int i, int j) { BlockPosition blockposition = this.getSpawn(); int k = i * 16 + 8 - blockposition.getX(); -@@ -2880,6 +2881,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2879,6 +2880,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc return (LongSet) (forcedchunk != null ? LongSets.unmodifiable(forcedchunk.a()) : LongSets.EMPTY_SET); } @@ -38,5 +38,5 @@ index 517b1e7124..0e654ebf70 100644 protected abstract void m(); -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0100-Remove-unused-World-Tile-Entity-List.patch b/Spigot-Server-Patches/0100-Remove-unused-World-Tile-Entity-List.patch index d3cc050b6b..6d01400aa5 100644 --- a/Spigot-Server-Patches/0100-Remove-unused-World-Tile-Entity-List.patch +++ b/Spigot-Server-Patches/0100-Remove-unused-World-Tile-Entity-List.patch @@ -1,4 +1,4 @@ -From 9159a08fd4bc3baaf9131c771e6f712a3e810414 Mon Sep 17 00:00:00 2001 +From bb66308e3e6de4bc8b65cf582a5c268aa3a40bd6 Mon Sep 17 00:00:00 2001 From: Aikar 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 8abe3cdd92..3ce6058d4c 100644 +index 4bed101c08..c8c89d6ef3 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -76,7 +76,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @@ -18,7 +18,7 @@ index 8abe3cdd92..3ce6058d4c 100644 public final List tileEntityListTick = Lists.newArrayList(); private final List c = Lists.newArrayList(); private final Set tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); // Paper -@@ -1305,7 +1305,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1312,7 +1312,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 8abe3cdd92..3ce6058d4c 100644 this.tileEntityListUnload.clear(); } -@@ -1358,7 +1358,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1365,7 +1365,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc if (tileentity.x()) { tilesThisCycle--; this.tileEntityListTick.remove(tileTickPosition--); @@ -36,7 +36,7 @@ index 8abe3cdd92..3ce6058d4c 100644 if (this.isLoaded(tileentity.getPosition())) { this.getChunkAtWorldCoords(tileentity.getPosition()).d(tileentity.getPosition()); } -@@ -1388,7 +1388,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1395,7 +1395,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 8abe3cdd92..3ce6058d4c 100644 this.a(tileentity1); } // CraftBukkit end -@@ -1408,9 +1408,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1415,9 +1415,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc protected void p_() {} public boolean a(TileEntity tileentity) { @@ -57,7 +57,7 @@ index 8abe3cdd92..3ce6058d4c 100644 this.tileEntityListTick.add(tileentity); } -@@ -1891,7 +1891,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1898,7 +1898,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } else { if (tileentity != null) { this.c.remove(tileentity); @@ -67,5 +67,5 @@ index 8abe3cdd92..3ce6058d4c 100644 } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0110-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/Spigot-Server-Patches/0110-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index 3bc79fd2e8..71bded9503 100644 --- a/Spigot-Server-Patches/0110-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/Spigot-Server-Patches/0110-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -1,4 +1,4 @@ -From 8824eb040551062e405769e77f5b114da7a136f5 Mon Sep 17 00:00:00 2001 +From 838891ffd3bdbc81e429f285900af224acba96cf Mon Sep 17 00:00:00 2001 From: Aikar 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 6c4c1924..ad9e7f7b 100644 +index 6c4c192446..ad9e7f7b54 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -619,6 +619,12 @@ public abstract class EntityHuman extends EntityLiving { @@ -30,7 +30,7 @@ index 6c4c1924..ad9e7f7b 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 5c75d494..6120c63a 100644 +index 5c75d494a2..6120c63a38 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -90,7 +90,7 @@ public class EntityTrackerEntry { @@ -43,10 +43,10 @@ index 5c75d494..6120c63a 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 a4237b30..caf75ee3 100644 +index c8c89d6ef3..c6e9d697b4 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1109,6 +1109,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1116,6 +1116,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc { if ( iter.next().trackee == entity ) { @@ -55,7 +55,7 @@ index a4237b30..caf75ee3 100644 } } diff --git a/src/main/java/net/minecraft/server/WorldMap.java b/src/main/java/net/minecraft/server/WorldMap.java -index aa58e34c..f26b91b4 100644 +index aa58e34c6f..f26b91b407 100644 --- a/src/main/java/net/minecraft/server/WorldMap.java +++ b/src/main/java/net/minecraft/server/WorldMap.java @@ -30,6 +30,7 @@ public class WorldMap extends PersistentBase { @@ -127,7 +127,7 @@ index aa58e34c..f26b91b4 100644 for ( org.bukkit.map.MapCursor cursor : render.cursors) { diff --git a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java -index 256a1317..5768cd51 100644 +index 256a131781..5768cd512e 100644 --- a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java +++ b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java @@ -5,7 +5,7 @@ import org.bukkit.map.MapCursor; @@ -140,5 +140,5 @@ index 256a1317..5768cd51 100644 public RenderData() { -- -2.18.0.windows.1 +2.19.0 diff --git a/Spigot-Server-Patches/0124-Delay-Chunk-Unloads-based-on-Player-Movement.patch b/Spigot-Server-Patches/0124-Delay-Chunk-Unloads-based-on-Player-Movement.patch index c453b2d001..364f230099 100644 --- a/Spigot-Server-Patches/0124-Delay-Chunk-Unloads-based-on-Player-Movement.patch +++ b/Spigot-Server-Patches/0124-Delay-Chunk-Unloads-based-on-Player-Movement.patch @@ -1,4 +1,4 @@ -From 6488a8930089b7cbdec16f6b93efd1328a4976c3 Mon Sep 17 00:00:00 2001 +From e90dbe5958240c16dc0f95d7b794d23c564cda27 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 18 Jun 2016 23:22:12 -0400 Subject: [PATCH] Delay Chunk Unloads based on Player Movement @@ -17,7 +17,7 @@ This allows servers with smaller worlds who do less long distance exploring to s wasting cpu cycles on saving/unloading/reloading chunks repeatedly. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index f8102d9f..547ab096 100644 +index f8102d9f07..547ab09627 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -288,4 +288,18 @@ public class PaperWorldConfig { @@ -40,7 +40,7 @@ index f8102d9f..547ab096 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 5390396d..3c9c3cd4 100644 +index 5390396d5e..3c9c3cd41d 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -37,6 +37,7 @@ public class Chunk implements IChunkAccess { @@ -52,7 +52,7 @@ index 5390396d..3c9c3cd4 100644 public final int locZ; private boolean l; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 1a1daf36..7417660e 100644 +index b1e6901090..9739288b53 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -306,6 +306,19 @@ public class ChunkProviderServer implements IChunkProvider { @@ -76,7 +76,7 @@ index 1a1daf36..7417660e 100644 this.chunkScheduler.a(booleansupplier); } diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java -index ac0e90ee..3f4a8f21 100644 +index ac0e90eeca..3f4a8f21c0 100644 --- a/src/main/java/net/minecraft/server/PlayerChunk.java +++ b/src/main/java/net/minecraft/server/PlayerChunk.java @@ -33,8 +33,16 @@ public class PlayerChunk { @@ -113,7 +113,7 @@ index ac0e90ee..3f4a8f21 100644 } } diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 174389e8..eb9d454a 100644 +index a69d510dd1..7b67fa3208 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -460,7 +460,13 @@ public class PlayerChunkMap { @@ -132,10 +132,10 @@ index 174389e8..eb9d454a 100644 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index caf75ee3..b4f31c93 100644 +index c6e9d697b4..4cee3739bb 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1329,7 +1329,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1336,7 +1336,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc if (!tileentity.x() && tileentity.hasWorld()) { BlockPosition blockposition = tileentity.getPosition(); @@ -151,7 +151,7 @@ index caf75ee3..b4f31c93 100644 this.methodProfiler.a(() -> { return String.valueOf(TileEntityTypes.a(tileentity.C())); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9637c989..6b3b45f9 100644 +index 9637c98994..6b3b45f94a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1620,7 +1620,7 @@ public class CraftWorld implements World { @@ -164,7 +164,7 @@ index 9637c989..6b3b45f9 100644 } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 454c1a58..79f053a7 100644 +index 12040596df..f9bb19fed6 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -284,6 +284,11 @@ public class ActivationRange @@ -180,5 +180,5 @@ index 454c1a58..79f053a7 100644 } } -- -2.18.0.windows.1 +2.19.0 diff --git a/Spigot-Server-Patches/0137-Chunk-registration-fixes.patch b/Spigot-Server-Patches/0137-Chunk-registration-fixes.patch index 06e1f7e484..73517b7ecb 100644 --- a/Spigot-Server-Patches/0137-Chunk-registration-fixes.patch +++ b/Spigot-Server-Patches/0137-Chunk-registration-fixes.patch @@ -1,4 +1,4 @@ -From e0f5d9ef984d0bacc7739a5ad94d45e4761b196d Mon Sep 17 00:00:00 2001 +From 88abfc2741ad294c9ac4e4837cdcae53b01f5ded Mon Sep 17 00:00:00 2001 From: Aikar 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 1ed4408e2a..0fd91a687e 100644 +index f13ff979b0..c42c6c742f 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1509,7 +1509,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1516,7 +1516,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } i = MathHelper.floor(entity.locX / 16.0D); @@ -21,5 +21,5 @@ index 1ed4408e2a..0fd91a687e 100644 if (!entity.inChunk || entity.ae != i || entity.af != j || entity.ag != k) { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0201-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/Spigot-Server-Patches/0201-Reset-spawner-timer-when-spawner-event-is-cancelled.patch index 2c9128f7b3..92f66145b5 100644 --- a/Spigot-Server-Patches/0201-Reset-spawner-timer-when-spawner-event-is-cancelled.patch +++ b/Spigot-Server-Patches/0201-Reset-spawner-timer-when-spawner-event-is-cancelled.patch @@ -1,11 +1,11 @@ -From d2a91d650e428d979607011c24efc0a2802d6b3d Mon Sep 17 00:00:00 2001 +From 149f17e8532b98f9cb33ac5061035509aa3ae066 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 31 Jul 2017 01:45:19 -0500 Subject: [PATCH] Reset spawner timer when spawner event is cancelled diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java -index ef93f433d6..e4598d8314 100644 +index 72b12d869e..408ef423e9 100644 --- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java +++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java @@ -121,6 +121,9 @@ public abstract class MobSpawnerAbstract { @@ -16,9 +16,9 @@ index ef93f433d6..e4598d8314 100644 + flag = true; // Paper + if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) { - continue; - } -@@ -131,7 +134,7 @@ public abstract class MobSpawnerAbstract { + Entity vehicle = entity.getVehicle(); + if (vehicle != null) { +@@ -138,7 +141,7 @@ public abstract class MobSpawnerAbstract { entityinsentient.doSpawnEffect(); } @@ -28,5 +28,5 @@ index ef93f433d6..e4598d8314 100644 } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0202-Fix-MC-117075-TE-Unload-Lag-Spike.patch b/Spigot-Server-Patches/0202-Fix-MC-117075-TE-Unload-Lag-Spike.patch index 5da64c596d..be0bc91795 100644 --- a/Spigot-Server-Patches/0202-Fix-MC-117075-TE-Unload-Lag-Spike.patch +++ b/Spigot-Server-Patches/0202-Fix-MC-117075-TE-Unload-Lag-Spike.patch @@ -1,14 +1,14 @@ -From cfb49559e28c704eb9d49d5d4010174dd214797f Mon Sep 17 00:00:00 2001 +From ad869815dee91aaa85cb8be64451e2df9410666c Mon Sep 17 00:00:00 2001 From: mezz 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 0cf5d80899..109e718118 100644 +index 4b53478d77..a6e87835d5 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1310,7 +1310,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1317,7 +1317,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.methodProfiler.c("blockEntities"); timings.tileEntityTick.startTiming(); // Spigot if (!this.tileEntityListUnload.isEmpty()) { @@ -22,5 +22,5 @@ index 0cf5d80899..109e718118 100644 this.tileEntityListUnload.clear(); } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0258-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-Server-Patches/0258-Expand-World.spawnParticle-API-and-add-Builder.patch index c34fa7f0df..09826c5e84 100644 --- a/Spigot-Server-Patches/0258-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/Spigot-Server-Patches/0258-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -1,4 +1,4 @@ -From fd03d282fd5195b571293aabe0cce3db74661be5 Mon Sep 17 00:00:00 2001 +From 961416ac0e026aaa7582b6f5ecae10364e97969d Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 15 Aug 2017 22:29:12 -0400 Subject: [PATCH] Expand World.spawnParticle API and add Builder @@ -10,10 +10,10 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index e4ba13cec5..d6e330d345 100644 +index 65fe50882b..ee06457653 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1202,12 +1202,17 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1206,12 +1206,17 @@ public class WorldServer extends World implements IAsyncTaskHandler { } public int sendParticles(EntityPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { @@ -57,5 +57,5 @@ index 6347d3d1f2..63d9130918 100644 x, y, z, // Position count, // Count -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0285-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch b/Spigot-Server-Patches/0285-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch index ec70badf06..7e2ed67830 100644 --- a/Spigot-Server-Patches/0285-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch +++ b/Spigot-Server-Patches/0285-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch @@ -1,4 +1,4 @@ -From 771d740dc6145e2bf73fc418477e9e8c292479a3 Mon Sep 17 00:00:00 2001 +From 85ac3540d623320bc08f9f7877eb38f5db1ee813 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 Jul 2018 03:39:51 -0400 Subject: [PATCH] Avoid Chunk Lookups for Entity/TileEntity Current Chunk @@ -10,7 +10,7 @@ to the object directly on the Entity/TileEntity object we can directly grab. Use that local value instead to reduce lookups in many hot places. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 614fce444..e806d13d2 100644 +index 614fce4447..e806d13d22 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -725,6 +725,7 @@ public class Chunk implements IChunkAccess { @@ -22,10 +22,10 @@ index 614fce444..e806d13d2 100644 this.a(entity, entity.af); } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index be6d21e4c..ba1fb577a 100644 +index 946c129443..c695689101 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1245,12 +1245,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1252,12 +1252,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 be6d21e4c..ba1fb577a 100644 } for (Entity e : this.g) { -@@ -1311,12 +1314,17 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1318,12 +1321,17 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.methodProfiler.e(); this.methodProfiler.a("remove"); if (entity.dead) { @@ -61,7 +61,7 @@ index be6d21e4c..ba1fb577a 100644 guardEntityList = false; // Spigot this.entityList.remove(this.tickPosition--); // CraftBukkit - Use field for loop variable -@@ -1361,7 +1369,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1368,7 +1376,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 be6d21e4c..ba1fb577a 100644 boolean shouldTick = chunk != null; if(this.paperConfig.skipEntityTickingInChunksScheduledForUnload) shouldTick = shouldTick && chunk.scheduledForUnload == null; -@@ -1397,8 +1405,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1404,8 +1412,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc tilesThisCycle--; this.tileEntityListTick.remove(tileTickPosition--); //this.tileEntityList.remove(tileentity); // Paper - remove unused list @@ -85,5 +85,5 @@ index be6d21e4c..ba1fb577a 100644 } } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0304-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/Spigot-Server-Patches/0304-Option-to-prevent-armor-stands-from-doing-entity-loo.patch index 400079ea1d..07b43063e9 100644 --- a/Spigot-Server-Patches/0304-Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/Spigot-Server-Patches/0304-Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -1,4 +1,4 @@ -From d1ba66ffb95eb8a9116f5c0e0cef4de0e9b38efb Mon Sep 17 00:00:00 2001 +From e2bed98381552f85e0d324e83e646675eba213bc Mon Sep 17 00:00:00 2001 From: Hugo Manrique 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 3aa6f031f3..58f87794d6 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 2ad02b0a61..73cd2d015b 100644 +index 03896807f5..a0e1eb3ff1 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1599,6 +1599,14 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1606,6 +1606,14 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } } @@ -40,5 +40,5 @@ index 2ad02b0a61..73cd2d015b 100644 int i = MathHelper.floor(axisalignedbb.a); int j = MathHelper.f(axisalignedbb.d); -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0305-Vanished-players-don-t-have-rights.patch b/Spigot-Server-Patches/0305-Vanished-players-don-t-have-rights.patch index d8a60eaa67..8088b717cc 100644 --- a/Spigot-Server-Patches/0305-Vanished-players-don-t-have-rights.patch +++ b/Spigot-Server-Patches/0305-Vanished-players-don-t-have-rights.patch @@ -1,4 +1,4 @@ -From 0cacdd59764c9ca57ca038d5b72392a0a6bb517e Mon Sep 17 00:00:00 2001 +From 48d202457a79862fe2914f5e765bc8ba91969cc2 Mon Sep 17 00:00:00 2001 From: Hugo Manrique Date: Mon, 23 Jul 2018 14:22:26 +0200 Subject: [PATCH] Vanished players don't have rights @@ -64,10 +64,10 @@ index ea8f1c170a..fdfc0d442e 100644 return this.a.a(); } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index caec2807a6..e7576c5c6a 100644 +index a0e1eb3ff1..887dba69ce 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1581,6 +1581,37 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1588,6 +1588,37 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } } @@ -125,5 +125,5 @@ index 063c1b7fa3..f6b7f7a462 100644 return event; } -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0313-Always-process-chunk-removal-in-removeEntity.patch b/Spigot-Server-Patches/0313-Always-process-chunk-removal-in-removeEntity.patch index cd77de4ae3..89bf8eec27 100644 --- a/Spigot-Server-Patches/0313-Always-process-chunk-removal-in-removeEntity.patch +++ b/Spigot-Server-Patches/0313-Always-process-chunk-removal-in-removeEntity.patch @@ -1,4 +1,4 @@ -From 0073935df3eb903a5cb29a7c5dadebd260e30d73 Mon Sep 17 00:00:00 2001 +From 318c5e0b3498e6f215d35d845d950dd6bb6424eb Mon Sep 17 00:00:00 2001 From: Aikar 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 3ea26d5ad8..c2d404b813 100644 +index 887dba69ce..f21c7f8d90 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1159,7 +1159,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1166,7 +1166,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.everyoneSleeping(); } @@ -20,7 +20,7 @@ index 3ea26d5ad8..c2d404b813 100644 int i = entity.ae; int j = entity.ag; -@@ -1167,6 +1167,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1174,6 +1174,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.getChunkAt(i, j).b(entity); } @@ -29,5 +29,5 @@ index 3ea26d5ad8..c2d404b813 100644 int index = this.entityList.indexOf(entity); if (index != -1) { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0314-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0314-Ignore-Dead-Entities-in-entityList-iteration.patch index f34614f602..6b87593cbc 100644 --- a/Spigot-Server-Patches/0314-Ignore-Dead-Entities-in-entityList-iteration.patch +++ b/Spigot-Server-Patches/0314-Ignore-Dead-Entities-in-entityList-iteration.patch @@ -1,4 +1,4 @@ -From 46802d69757545e315c417c9092a0ed5d4568100 Mon Sep 17 00:00:00 2001 +From 21e2b383c7c451aab9678a4611b4e8b675da0b0a Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 28 Jul 2018 12:18:27 -0400 Subject: [PATCH] Ignore Dead Entities in entityList iteration @@ -23,7 +23,7 @@ index 56700fc596..9b9c8361e9 100644 MutablePair> 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 f5d5f38232..e558197623 100644 +index 8951ac8095..127a7c9b72 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -123,6 +123,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -35,10 +35,10 @@ index f5d5f38232..e558197623 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 c2d404b813..255829b0b5 100644 +index f21c7f8d90..79f7a678a7 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1098,6 +1098,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1105,6 +1105,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } entity.valid = true; // CraftBukkit @@ -46,7 +46,7 @@ index c2d404b813..255829b0b5 100644 new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid } -@@ -1166,6 +1167,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1173,6 +1174,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 c2d404b813..255829b0b5 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 -@@ -2376,6 +2378,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2383,6 +2385,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); @@ -62,14 +62,14 @@ index c2d404b813..255829b0b5 100644 if (oclass.isAssignableFrom(entity.getClass()) && predicate.test((T) entity)) { arraylist.add(entity); -@@ -2462,6 +2465,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2469,6 +2472,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); + if (entity.shouldBeRemoved) continue; // Paper - // CraftBukkit start - Split out persistent check, don't apply it to special persistent mobs - if (entity instanceof EntityInsentient) { - EntityInsentient entityinsentient = (EntityInsentient) entity; + + if (!(entity instanceof EntityInsentient) || !((EntityInsentient) entity).isPersistent()) { + if (oclass.isAssignableFrom(entity.getClass())) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index af977b171a..80fd49b6e1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -107,5 +107,5 @@ index af977b171a..80fd49b6e1 100644 if (bukkitEntity == null) { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0320-World-EntityHuman-Lookup-Optimizations.patch b/Spigot-Server-Patches/0320-World-EntityHuman-Lookup-Optimizations.patch index f1d6d0252f..59f5c8f21c 100644 --- a/Spigot-Server-Patches/0320-World-EntityHuman-Lookup-Optimizations.patch +++ b/Spigot-Server-Patches/0320-World-EntityHuman-Lookup-Optimizations.patch @@ -1,11 +1,11 @@ -From 3d8f1b41f66faf392991e817b0954bc7d5841738 Mon Sep 17 00:00:00 2001 +From 9bdc7e711d66f2aabac9cde0b3723ef68105df87 Mon Sep 17 00:00:00 2001 From: willies952002 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 255829b0b5..26007862ab 100644 +index 79f7a678a7..e2ed2d3c1f 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -81,6 +81,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @@ -16,7 +16,7 @@ index 255829b0b5..26007862ab 100644 public final List k = Lists.newArrayList(); protected final IntHashMap entitiesById = new IntHashMap(); private final long F = 16777215L; -@@ -1082,6 +1083,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1089,6 +1090,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc EntityHuman entityhuman = (EntityHuman) entity; this.players.add(entityhuman); @@ -25,7 +25,7 @@ index 255829b0b5..26007862ab 100644 this.everyoneSleeping(); } -@@ -1124,6 +1127,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1131,6 +1134,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc entity.die(); if (entity instanceof EntityHuman) { this.players.remove(entity); @@ -33,7 +33,7 @@ index 255829b0b5..26007862ab 100644 // Spigot start for ( WorldPersistentData worldData : worldMaps.a.values() ) { -@@ -1157,6 +1161,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1164,6 +1168,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc entity.die(); if (entity instanceof EntityHuman) { this.players.remove(entity); @@ -41,7 +41,7 @@ index 255829b0b5..26007862ab 100644 this.everyoneSleeping(); } -@@ -2706,6 +2711,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2705,6 +2710,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @Nullable public EntityHuman a(String s) { @@ -50,7 +50,7 @@ index 255829b0b5..26007862ab 100644 for (int i = 0; i < this.players.size(); ++i) { EntityHuman entityhuman = (EntityHuman) this.players.get(i); -@@ -2715,10 +2722,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2714,10 +2721,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } return null; @@ -66,7 +66,7 @@ index 255829b0b5..26007862ab 100644 for (int i = 0; i < this.players.size(); ++i) { EntityHuman entityhuman = (EntityHuman) this.players.get(i); -@@ -2728,6 +2740,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2727,6 +2739,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } return null; @@ -78,5 +78,5 @@ index 255829b0b5..26007862ab 100644 public void checkSession() throws ExceptionWorldConflict { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0326-Entity-add-to-world-fixes.patch b/Spigot-Server-Patches/0326-Entity-add-to-world-fixes.patch index 391322758c..8fcc9c3d5c 100644 --- a/Spigot-Server-Patches/0326-Entity-add-to-world-fixes.patch +++ b/Spigot-Server-Patches/0326-Entity-add-to-world-fixes.patch @@ -1,4 +1,4 @@ -From e21552089e29786bf85bcfd9fdf5d1d61f614af1 Mon Sep 17 00:00:00 2001 +From d575c293eba242bce20368e93bf1c946bf9ee8cb Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 3 Aug 2018 22:47:46 -0400 Subject: [PATCH] Entity add to world fixes @@ -14,7 +14,7 @@ Fix this by differing entity add to world for all entities at the same time the original entity is dead, overwrite it as the logic does for unloaod queued entities. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index e8af8f419..56c378341 100644 +index e8af8f4196..56c3783412 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -905,6 +905,7 @@ public class Chunk implements IChunkAccess { @@ -42,10 +42,10 @@ index e8af8f419..56c378341 100644 // CraftBukkit start org.bukkit.Server server = this.world.getServer(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index b2b182c58..f99cdf100 100644 +index e2ed2d3c1f..2b7ab82b11 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1089,6 +1089,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1096,6 +1096,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc } this.getChunkAt(i, j).a(entity); @@ -53,7 +53,7 @@ index b2b182c58..f99cdf100 100644 this.entityList.add(entity); this.b(entity); return true; -@@ -2494,9 +2495,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2493,9 +2494,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc return j; } @@ -68,7 +68,7 @@ index b2b182c58..f99cdf100 100644 this.b(entity); }); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 657938762..788ab40d0 100644 +index 2692d0a1b6..911d03c70b 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -987,7 +987,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { @@ -81,5 +81,5 @@ index 657938762..788ab40d0 100644 } else { if (!(entity instanceof EntityHuman)) { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0337-Send-nearby-packets-from-world-player-list-not-serve.patch b/Spigot-Server-Patches/0337-Send-nearby-packets-from-world-player-list-not-serve.patch index fe437a7401..b0a80ed580 100644 --- a/Spigot-Server-Patches/0337-Send-nearby-packets-from-world-player-list-not-serve.patch +++ b/Spigot-Server-Patches/0337-Send-nearby-packets-from-world-player-list-not-serve.patch @@ -1,4 +1,4 @@ -From 6b92f447cc46cd7d22d28407b1e0e9e530ddffa5 Mon Sep 17 00:00:00 2001 +From 8a7c8360a348229b1e81432124ea1093dc29bc70 Mon Sep 17 00:00:00 2001 From: Mystiflow Date: Fri, 6 Jul 2018 13:21:30 +0100 Subject: [PATCH] Send nearby packets from world player list not server list @@ -95,10 +95,10 @@ index e26405d341..23f390c221 100644 if (entityplayer != null && entityplayer.world == this.world && entityplayer.getId() != i) { double d0 = (double) blockposition.getX() - entityplayer.locX; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 788ab40d0e..1e30ba0548 100644 +index 911d03c70b..f837e6c36c 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1082,7 +1082,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1086,7 +1086,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { } // CraftBukkit end if (super.strikeLightning(entity)) { @@ -107,7 +107,7 @@ index 788ab40d0e..1e30ba0548 100644 return true; } else { return false; -@@ -1142,8 +1142,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1146,8 +1146,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { BlockActionData blockactiondata = (BlockActionData) this.d.removeFirst(); if (this.a(blockactiondata)) { @@ -132,5 +132,5 @@ index 80fd49b6e1..ba2e768594 100644 public String getGameRuleValue(String rule) { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0338-Cache-World-Entity-Type-counts.patch b/Spigot-Server-Patches/0338-Cache-World-Entity-Type-counts.patch index abacbf2c79..ef2d70bf28 100644 --- a/Spigot-Server-Patches/0338-Cache-World-Entity-Type-counts.patch +++ b/Spigot-Server-Patches/0338-Cache-World-Entity-Type-counts.patch @@ -1,4 +1,4 @@ -From cfe60b56f90e65e48b707b3a0d3d81615f036454 Mon Sep 17 00:00:00 2001 +From 0f31bf2ce8e0e92ccf40826a80d2ecd698f7af0f Mon Sep 17 00:00:00 2001 From: Colin Godsey Date: Wed, 8 Aug 2018 10:10:06 -0600 Subject: [PATCH] Cache World Entity Type counts @@ -133,7 +133,7 @@ index 0000000000..35104542c5 + } +} diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 4252e8c02a..2b1affd03c 100644 +index 02b567d559..f609e2ceda 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -124,6 +124,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -170,7 +170,7 @@ index 8874a05be5..0af387c059 100644 return this.e; } diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index 32808558bb..62b4c64f68 100644 +index 95d98b65cf..387570ed67 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -114,7 +114,7 @@ public final class SpawnerCreature { @@ -183,7 +183,7 @@ index 32808558bb..62b4c64f68 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 f99cdf1003..c479828d49 100644 +index 2b7ab82b11..4089204308 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -50,7 +50,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @@ -213,7 +213,7 @@ index f99cdf1003..c479828d49 100644 public static boolean haveWeSilencedAPhysicsCrash; public static String blockLocation; private org.spigotmc.TickLimiter entityLimiter; -@@ -1174,6 +1176,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -1181,6 +1183,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.getChunkAt(i, j).b(entity); } entity.shouldBeRemoved = true; // Paper @@ -222,5 +222,5 @@ index f99cdf1003..c479828d49 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 -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0353-Implement-Force-Loaded-Chunk-API.patch b/Spigot-Server-Patches/0353-Implement-Force-Loaded-Chunk-API.patch index 2531a8c14d..90ce912ab0 100644 --- a/Spigot-Server-Patches/0353-Implement-Force-Loaded-Chunk-API.patch +++ b/Spigot-Server-Patches/0353-Implement-Force-Loaded-Chunk-API.patch @@ -1,14 +1,14 @@ -From 9f558a69347dfbaaf71ff2d963e7f27d8b972aae Mon Sep 17 00:00:00 2001 +From 7eec24b0570c9d4303505151fb9311021987f5c5 Mon Sep 17 00:00:00 2001 From: willies952002 Date: Wed, 29 Aug 2018 00:37:42 -0400 Subject: [PATCH] Implement Force-Loaded Chunk API diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 49809372d8..2b5b0c4df6 100644 +index 9a99a56c14..9636b40f97 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -3010,6 +3010,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -3009,6 +3009,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc return forcedchunk != null && forcedchunk.a().contains(ChunkCoordIntPair.a(i, j)); } @@ -55,5 +55,5 @@ index 1ccf2a7609..755d2632fd 100644 public ChunkGenerator getGenerator() { -- -2.18.0 +2.19.0 diff --git a/Spigot-Server-Patches/0355-Optimize-getChunkIfLoaded-type-calls.patch b/Spigot-Server-Patches/0355-Optimize-getChunkIfLoaded-type-calls.patch index d79d8367a1..4ce699af0f 100644 --- a/Spigot-Server-Patches/0355-Optimize-getChunkIfLoaded-type-calls.patch +++ b/Spigot-Server-Patches/0355-Optimize-getChunkIfLoaded-type-calls.patch @@ -1,4 +1,4 @@ -From 8680a88f33ba22fdceb70ffd3a876f4284244a4b Mon Sep 17 00:00:00 2001 +From 0b22c6881db444da8b133a33b97bddff2d752a0b Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 29 Aug 2018 21:59:22 -0400 Subject: [PATCH] Optimize getChunkIfLoaded type calls @@ -10,7 +10,7 @@ Will improve inlining across many hot methods. Improve getBrightness to not do double chunk map lookups. diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 96d49b469a..c0ec896eea 100644 +index fc621911e0..99613b2ef3 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -381,7 +381,7 @@ public class ChunkProviderServer implements IChunkProvider { @@ -23,7 +23,7 @@ index 96d49b469a..c0ec896eea 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 2b5b0c4df6..acd0c93cec 100644 +index 9636b40f97..52d9c06805 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -165,7 +165,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc @@ -45,7 +45,7 @@ index 2b5b0c4df6..acd0c93cec 100644 } public void a(EnumSkyBlock enumskyblock, BlockPosition blockposition, int i) { -@@ -2017,7 +2018,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc +@@ -2024,7 +2025,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc if (blockposition.isInvalidYLocation()) { // Paper return false; } else { @@ -77,5 +77,5 @@ index 755d2632fd..585a0c7fd2 100644 return true; } -- -2.18.0 +2.19.0 diff --git a/work/Bukkit b/work/Bukkit index 381fba2cd0..47b9cf30ac 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 381fba2cd0c6c30b327c1c5edb1920427b4dd94f +Subproject commit 47b9cf30ac5f6e61c84c126075932c4b9d123d95 diff --git a/work/CraftBukkit b/work/CraftBukkit index 1cead6280f..a4bdecff65 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 1cead6280f702aabc1c38f67477876981a583363 +Subproject commit a4bdecff654c72281fbce4cebf1ff55d86470d07 diff --git a/work/Spigot b/work/Spigot index 500ff5d408..6b015b4b7a 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 500ff5d408d9ce45b6a0819777fc7ad4779f32e4 +Subproject commit 6b015b4b7a9a33746619506053e83993439877ae