From abba3d113b331bee6043a5d11241501a2240ced9 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 3 Feb 2019 15:34:04 +0000 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: 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 --- ...-get-a-BlockState-without-a-snapshot.patch | 6 ++-- ...Blocks-to-be-accessed-via-a-long-key.patch | 10 +++--- .../0002-Paper-config-files.patch | 8 ++--- Spigot-Server-Patches/0009-Timings-v2.patch | 36 ++++++++++--------- ...5-Allow-for-toggling-of-spawn-chunks.patch | 6 ++-- ...ient-crashes-server-lists-and-Mojang.patch | 6 ++-- .../0018-Player-affects-spawning-API.patch | 16 ++++----- .../0023-Entity-Origin-API.patch | 16 ++++----- ...event-tile-entity-and-entity-crashes.patch | 8 ++--- .../0028-Lighting-Queue.patch | 8 ++--- .../0031-Optimize-explosions.patch | 6 ++-- .../0041-Disable-spigot-tick-limiters.patch | 8 ++--- ...entation-of-tile-entity-removal-list.patch | 6 ++-- .../0054-Add-velocity-warnings.patch | 6 ++-- .../0056-Add-exception-reporting-event.patch | 8 ++--- .../0069-Add-World-Util-Methods.patch | 6 ++-- ...Location-getType-and-getBlockData-fo.patch | 26 +++++++------- ...sable-BlockPhysicsEvent-for-Redstone.patch | 8 ++--- ...Entity-AddTo-RemoveFrom-World-Events.patch | 8 ++--- ...-Do-not-load-chunks-for-light-checks.patch | 6 ++-- ...le-Keep-Spawn-Loaded-range-per-world.patch | 6 ++-- ...g-BlockPlaceEvent-triggering-physics.patch | 6 ++-- ...am-reload-spawn-chunks-in-nether-end.patch | 6 ++-- ...Remove-unused-World-Tile-Entity-List.patch | 14 ++++---- ...item-frames-performance-and-bug-fixe.patch | 10 +++--- ...unk-Unloads-based-on-Player-Movement.patch | 6 ++-- .../0124-Fix-Double-World-Add-issues.patch | 6 ++-- .../0136-Chunk-registration-fixes.patch | 6 ++-- ...imize-World.isLoaded-BlockPosition-Z.patch | 6 ++-- ...99-Fix-MC-117075-TE-Unload-Lag-Spike.patch | 6 ++-- ...dEffects-only-to-players-who-can-see.patch | 8 ++--- ...e-implementations-for-captured-block.patch | 6 ++-- ...ups-for-Entity-TileEntity-Current-Ch.patch | 12 +++---- ...t-armor-stands-from-doing-entity-loo.patch | 6 ++-- ...0-Vanished-players-don-t-have-rights.patch | 12 +++---- ...rocess-chunk-removal-in-removeEntity.patch | 8 ++--- ...ead-Entities-in-entityList-iteration.patch | 14 ++++---- ...rld-EntityHuman-Lookup-Optimizations.patch | 16 ++++----- .../0320-Entity-add-to-world-fixes.patch | 8 ++--- .../0331-Cache-World-Entity-Type-counts.patch | 17 +++++---- ...dd-source-block-to-BlockPhysicsEvent.patch | 6 ++-- Spigot-Server-Patches/0338-Anti-Xray.patch | 10 +++--- ...Optimize-getChunkIfLoaded-type-calls.patch | 10 +++--- ...ent-Mob-AI-Rules-from-Loading-Chunks.patch | 10 +++--- ...6-Async-Chunk-Loading-and-Generation.patch | 8 ++--- .../0368-Optimize-Light-Recalculations.patch | 10 +++--- ...h-entity-loss-due-to-unloaded-chunks.patch | 8 ++--- .../0378-Add-sun-related-API.patch | 12 +++---- .../0401-Optimize-redstone-algorithm.patch | 14 ++++---- ...at-which-we-ll-consider-an-attackabl.patch | 6 ++-- ...Prevent-rayTrace-from-loading-chunks.patch | 8 ++--- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 54 files changed, 250 insertions(+), 245 deletions(-) diff --git a/Spigot-API-Patches/0071-API-to-get-a-BlockState-without-a-snapshot.patch b/Spigot-API-Patches/0071-API-to-get-a-BlockState-without-a-snapshot.patch index a630516295..931e5ecb33 100644 --- a/Spigot-API-Patches/0071-API-to-get-a-BlockState-without-a-snapshot.patch +++ b/Spigot-API-Patches/0071-API-to-get-a-BlockState-without-a-snapshot.patch @@ -1,4 +1,4 @@ -From 33502f142938f89056e273cdbea58ca83c760d89 Mon Sep 17 00:00:00 2001 +From 40e27a88bcb3fc6ab3299097db52b9df18ddab77 Mon Sep 17 00:00:00 2001 From: Aikar 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(); diff --git a/Spigot-API-Patches/0138-Allow-Blocks-to-be-accessed-via-a-long-key.patch b/Spigot-API-Patches/0138-Allow-Blocks-to-be-accessed-via-a-long-key.patch index a01c2db579..f609e8c5b6 100644 --- a/Spigot-API-Patches/0138-Allow-Blocks-to-be-accessed-via-a-long-key.patch +++ b/Spigot-API-Patches/0138-Allow-Blocks-to-be-accessed-via-a-long-key.patch @@ -1,4 +1,4 @@ -From 10ce18ced17baa36f2ffe0e9a3604e314d20830f Mon Sep 17 00:00:00 2001 +From 39f3eeefa7b52425c8f1dd8fea1c0388ead63454 Mon Sep 17 00:00:00 2001 From: Spottedleaf 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(); diff --git a/Spigot-Server-Patches/0002-Paper-config-files.patch b/Spigot-Server-Patches/0002-Paper-config-files.patch index d82c7b5aee..eba5bb59de 100644 --- a/Spigot-Server-Patches/0002-Paper-config-files.patch +++ b/Spigot-Server-Patches/0002-Paper-config-files.patch @@ -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 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 diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index 0244e07396..406513e39a 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -1,4 +1,4 @@ -From f716ee5f3b705d56bb2a134590c5c6c1d87e1b51 Mon Sep 17 00:00:00 2001 +From 1ed9f0e1531bbf28ef63667a2d958906abf1b036 Mon Sep 17 00:00:00 2001 From: Aikar 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 void ensureMainThread(Packet 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 } } } diff --git a/Spigot-Server-Patches/0015-Allow-for-toggling-of-spawn-chunks.patch b/Spigot-Server-Patches/0015-Allow-for-toggling-of-spawn-chunks.patch index 748daa01b6..314fcd5c44 100644 --- a/Spigot-Server-Patches/0015-Allow-for-toggling-of-spawn-chunks.patch +++ b/Spigot-Server-Patches/0015-Allow-for-toggling-of-spawn-chunks.patch @@ -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 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 diff --git a/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index e84a8d861a..cbb4292512 100644 --- a/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -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 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 } diff --git a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch index 971d297770..f9817e3029 100644 --- a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch +++ b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch @@ -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 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 { diff --git a/Spigot-Server-Patches/0023-Entity-Origin-API.patch b/Spigot-Server-Patches/0023-Entity-Origin-API.patch index 4e5178a7a1..48b9b3613f 100644 --- a/Spigot-Server-Patches/0023-Entity-Origin-API.patch +++ b/Spigot-Server-Patches/0023-Entity-Origin-API.patch @@ -1,11 +1,11 @@ -From 1342f7d2b36a0aa22b7ae6eee34015b790d16f5e Mon Sep 17 00:00:00 2001 +From d8b88936b81136c99eb1bab82cf1c31079a7b1a7 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 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 { @@ -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 { 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 fa510cc011..c3aaefb02e 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 ef71a8a38a32ae6a68b253e74b46badf1cf175a0 Mon Sep 17 00:00:00 2001 +From 450f1569886930ab72e304d38a2a369e50d37249 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 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) { diff --git a/Spigot-Server-Patches/0028-Lighting-Queue.patch b/Spigot-Server-Patches/0028-Lighting-Queue.patch index 6c76daa88e..84d5944fce 100644 --- a/Spigot-Server-Patches/0028-Lighting-Queue.patch +++ b/Spigot-Server-Patches/0028-Lighting-Queue.patch @@ -1,4 +1,4 @@ -From 4ed9141e99766cbb2b618d73156f34a48726cb7f Mon Sep 17 00:00:00 2001 +From 018b4f700c5e3dbd66fd8c0891a778a2152d481c Mon Sep 17 00:00:00 2001 From: Aikar 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"); diff --git a/Spigot-Server-Patches/0031-Optimize-explosions.patch b/Spigot-Server-Patches/0031-Optimize-explosions.patch index 6d1f3a657f..8d846244b5 100644 --- a/Spigot-Server-Patches/0031-Optimize-explosions.patch +++ b/Spigot-Server-Patches/0031-Optimize-explosions.patch @@ -1,4 +1,4 @@ -From ec23a52d0e17927fc4da5330bdc546ea4c936ac5 Mon Sep 17 00:00:00 2001 +From d51c2d868e810811a350508026017fd96949c0b7 Mon Sep 17 00:00:00 2001 From: Byteflux 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; diff --git a/Spigot-Server-Patches/0041-Disable-spigot-tick-limiters.patch b/Spigot-Server-Patches/0041-Disable-spigot-tick-limiters.patch index ecbf8cba6d..0761461fbc 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 516693b2cf7b54953f8ea3dfd1ffc41fb2d61314 Mon Sep 17 00:00:00 2001 +From 66294924c12de6f6629939c1f80582f443480e83 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 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; diff --git a/Spigot-Server-Patches/0052-Change-implementation-of-tile-entity-removal-list.patch b/Spigot-Server-Patches/0052-Change-implementation-of-tile-entity-removal-list.patch index 8d78caa344..684641e5b4 100644 --- a/Spigot-Server-Patches/0052-Change-implementation-of-tile-entity-removal-list.patch +++ b/Spigot-Server-Patches/0052-Change-implementation-of-tile-entity-removal-list.patch @@ -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 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 players = Lists.newArrayList(); public final List k = Lists.newArrayList(); protected final IntHashMap 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; diff --git a/Spigot-Server-Patches/0054-Add-velocity-warnings.patch b/Spigot-Server-Patches/0054-Add-velocity-warnings.patch index f6d25e8bc0..e979f8fe11 100644 --- a/Spigot-Server-Patches/0054-Add-velocity-warnings.patch +++ b/Spigot-Server-Patches/0054-Add-velocity-warnings.patch @@ -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 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 diff --git a/Spigot-Server-Patches/0056-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0056-Add-exception-reporting-event.patch index a87cd0672f..725a212e74 100644 --- a/Spigot-Server-Patches/0056-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0056-Add-exception-reporting-event.patch @@ -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 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 diff --git a/Spigot-Server-Patches/0069-Add-World-Util-Methods.patch b/Spigot-Server-Patches/0069-Add-World-Util-Methods.patch index 4b1168dfe5..927cf74d8b 100644 --- a/Spigot-Server-Patches/0069-Add-World-Util-Methods.patch +++ b/Spigot-Server-Patches/0069-Add-World-Util-Methods.patch @@ -1,4 +1,4 @@ -From a6d6f8889148feda3f6229367dc1ae53b488a1a7 Mon Sep 17 00:00:00 2001 +From e2a551344ce5dcc96e50b8aaeb3ff58ab247b2ac Mon Sep 17 00:00:00 2001 From: Aikar 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(); } diff --git a/Spigot-Server-Patches/0080-Optimize-isValidLocation-getType-and-getBlockData-fo.patch b/Spigot-Server-Patches/0080-Optimize-isValidLocation-getType-and-getBlockData-fo.patch index 993199290e..89512e38ec 100644 --- a/Spigot-Server-Patches/0080-Optimize-isValidLocation-getType-and-getBlockData-fo.patch +++ b/Spigot-Server-Patches/0080-Optimize-isValidLocation-getType-and-getBlockData-fo.patch @@ -1,4 +1,4 @@ -From 7ed9ceeb7d35c46ef914426bf9944bd1dda34c57 Mon Sep 17 00:00:00 2001 +From 180e605d07d2befdf1f25c52219d7a68943a7201 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 @@ -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 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) { diff --git a/Spigot-Server-Patches/0082-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch b/Spigot-Server-Patches/0082-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch index 24bb20d0d3..8f032baf33 100644 --- a/Spigot-Server-Patches/0082-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch +++ b/Spigot-Server-Patches/0082-Option-to-disable-BlockPhysicsEvent-for-Redstone.patch @@ -1,4 +1,4 @@ -From f89ace834ec5515fb35f7c63acb3d9c95190fb58 Mon Sep 17 00:00:00 2001 +From 900120b3a43fa8b8922f1b44a79ecf5a52b0617c Mon Sep 17 00:00:00 2001 From: Aikar 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; diff --git a/Spigot-Server-Patches/0083-Entity-AddTo-RemoveFrom-World-Events.patch b/Spigot-Server-Patches/0083-Entity-AddTo-RemoveFrom-World-Events.patch index 654dcc45e7..5e1ae7b4f6 100644 --- a/Spigot-Server-Patches/0083-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/Spigot-Server-Patches/0083-Entity-AddTo-RemoveFrom-World-Events.patch @@ -1,14 +1,14 @@ -From b4fad19cf6a691affd09d0e66a98923e7d5128f0 Mon Sep 17 00:00:00 2001 +From 39105c3c741bdead79bb7b8a21e38b3980e48017 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 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); } diff --git a/Spigot-Server-Patches/0090-Do-not-load-chunks-for-light-checks.patch b/Spigot-Server-Patches/0090-Do-not-load-chunks-for-light-checks.patch index 1c48b3ef25..37f833362e 100644 --- a/Spigot-Server-Patches/0090-Do-not-load-chunks-for-light-checks.patch +++ b/Spigot-Server-Patches/0090-Do-not-load-chunks-for-light-checks.patch @@ -1,4 +1,4 @@ -From e8cefaca8bce04d279e54ebb7f3106a4af8ab800 Mon Sep 17 00:00:00 2001 +From fe617230001f60f90d1511e6673e91fa51b54f00 Mon Sep 17 00:00:00 2001 From: Aikar 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()); } 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 3732ace0df..c04395915a 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 36b26b9c6b8f8a53382fdefbc997dcd9fd158fb1 Mon Sep 17 00:00:00 2001 +From 102ffd1fa2fb10d7aaeb220c7c71bd3b0c3b4c10 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 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; diff --git a/Spigot-Server-Patches/0095-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch b/Spigot-Server-Patches/0095-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch index 80474d921f..c2372abc69 100644 --- a/Spigot-Server-Patches/0095-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch +++ b/Spigot-Server-Patches/0095-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch @@ -1,14 +1,14 @@ -From 2848d4479060017f0be0642f379638c37a73efd1 Mon Sep 17 00:00:00 2001 +From 1c7840b8ff0e9e11c68d3decf34a047ee2fa3497 Mon Sep 17 00:00:00 2001 From: Aikar 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) { 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 88f80cb2d2..86294efbdb 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 5a15c3db1c4118969b832e0d827619f0b3602afc Mon Sep 17 00:00:00 2001 +From 050c476f2a947170b6f8564ef94fb1e25e678f04 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 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; } 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 01e03c7250..1959e635cc 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 e671d551cf48e7fae5fcd6e2d3f07289e4425135 Mon Sep 17 00:00:00 2001 +From 37c4fc9303c9da3c1a83e5e8603ff99fd3a19951 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 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 tileEntityListTick = Lists.newArrayList(); private final List c = Lists.newArrayList(); private final Set 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); 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 ef915d0b16..bed1783044 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 3a8e019ef8f05f0d544032d452fe95be4f3213c6 Mon Sep 17 00:00:00 2001 +From 8635173789c985456da0e2561973b523dfcdd7f2 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 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 ) { diff --git a/Spigot-Server-Patches/0123-Delay-Chunk-Unloads-based-on-Player-Movement.patch b/Spigot-Server-Patches/0123-Delay-Chunk-Unloads-based-on-Player-Movement.patch index 853df34766..fd4d29f0cc 100644 --- a/Spigot-Server-Patches/0123-Delay-Chunk-Unloads-based-on-Player-Movement.patch +++ b/Spigot-Server-Patches/0123-Delay-Chunk-Unloads-based-on-Player-Movement.patch @@ -1,4 +1,4 @@ -From e9a7436242095e39bf7c216ead3291c98cb26689 Mon Sep 17 00:00:00 2001 +From 09fc8909e5eff839302c3e21bd901bbb4f5d4641 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 @@ -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(); diff --git a/Spigot-Server-Patches/0124-Fix-Double-World-Add-issues.patch b/Spigot-Server-Patches/0124-Fix-Double-World-Add-issues.patch index 22b9bbfb1e..db9b3211bd 100644 --- a/Spigot-Server-Patches/0124-Fix-Double-World-Add-issues.patch +++ b/Spigot-Server-Patches/0124-Fix-Double-World-Add-issues.patch @@ -1,4 +1,4 @@ -From f7df7852a2bdeeb3e9ada8245312285e17151d2d Mon Sep 17 00:00:00 2001 +From 5998e59699d7927e6937cc3df8d056504fa7f2c0 Mon Sep 17 00:00:00 2001 From: Aikar 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 diff --git a/Spigot-Server-Patches/0136-Chunk-registration-fixes.patch b/Spigot-Server-Patches/0136-Chunk-registration-fixes.patch index 0192181740..c755bff38f 100644 --- a/Spigot-Server-Patches/0136-Chunk-registration-fixes.patch +++ b/Spigot-Server-Patches/0136-Chunk-registration-fixes.patch @@ -1,4 +1,4 @@ -From 9db121d4d39ef91745ee6901e0353950ff6dae5e Mon Sep 17 00:00:00 2001 +From 717d26909def2ce7339b76147cbcacabd139d9a5 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 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); diff --git a/Spigot-Server-Patches/0150-Optimize-World.isLoaded-BlockPosition-Z.patch b/Spigot-Server-Patches/0150-Optimize-World.isLoaded-BlockPosition-Z.patch index 3a42dd1e2e..ab8a0e3f9e 100644 --- a/Spigot-Server-Patches/0150-Optimize-World.isLoaded-BlockPosition-Z.patch +++ b/Spigot-Server-Patches/0150-Optimize-World.isLoaded-BlockPosition-Z.patch @@ -1,4 +1,4 @@ -From f4f4c5e22c47e28e70a575517c6c225addb90bea Mon Sep 17 00:00:00 2001 +From 0033ccc91201ea518109c020dd1102531147941e Mon Sep 17 00:00:00 2001 From: Aikar 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(); } diff --git a/Spigot-Server-Patches/0199-Fix-MC-117075-TE-Unload-Lag-Spike.patch b/Spigot-Server-Patches/0199-Fix-MC-117075-TE-Unload-Lag-Spike.patch index b8cf62cdb1..23f42c2283 100644 --- a/Spigot-Server-Patches/0199-Fix-MC-117075-TE-Unload-Lag-Spike.patch +++ b/Spigot-Server-Patches/0199-Fix-MC-117075-TE-Unload-Lag-Spike.patch @@ -1,14 +1,14 @@ -From 20c5fa0a3fe5ea037392f045c3557fb14ffa5cd5 Mon Sep 17 00:00:00 2001 +From 996aaeb08a61dfb62749e8b621b6b72f21116a95 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 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()) { diff --git a/Spigot-Server-Patches/0211-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/Spigot-Server-Patches/0211-Send-attack-SoundEffects-only-to-players-who-can-see.patch index c50a96d330..2dc986a939 100644 --- a/Spigot-Server-Patches/0211-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/Spigot-Server-Patches/0211-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -1,4 +1,4 @@ -From b1d6423949e3b375ceef052ea5778ae7afc19391 Mon Sep 17 00:00:00 2001 +From 9da6eabeb84a6797d1dc255cb701801bcfa538c6 Mon Sep 17 00:00:00 2001 From: Brokkonaut 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); } diff --git a/Spigot-Server-Patches/0215-use-CB-BlockState-implementations-for-captured-block.patch b/Spigot-Server-Patches/0215-use-CB-BlockState-implementations-for-captured-block.patch index d3c0d8ac8f..42abbe2859 100644 --- a/Spigot-Server-Patches/0215-use-CB-BlockState-implementations-for-captured-block.patch +++ b/Spigot-Server-Patches/0215-use-CB-BlockState-implementations-for-captured-block.patch @@ -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 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) { diff --git a/Spigot-Server-Patches/0281-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch b/Spigot-Server-Patches/0281-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch index d4ab8eb745..070187ea7b 100644 --- a/Spigot-Server-Patches/0281-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch +++ b/Spigot-Server-Patches/0281-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch @@ -1,4 +1,4 @@ -From 194a295182c17f0e74b68286d465126fc28cc2d1 Mon Sep 17 00:00:00 2001 +From 84d6829023a55809a241a8dd80499bb2c90b7d35 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 @@ -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 diff --git a/Spigot-Server-Patches/0299-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/Spigot-Server-Patches/0299-Option-to-prevent-armor-stands-from-doing-entity-loo.patch index 46ac7ecab7..451126a6f7 100644 --- a/Spigot-Server-Patches/0299-Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/Spigot-Server-Patches/0299-Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -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 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 } } diff --git a/Spigot-Server-Patches/0300-Vanished-players-don-t-have-rights.patch b/Spigot-Server-Patches/0300-Vanished-players-don-t-have-rights.patch index c5b5ed5562..66cbe2925d 100644 --- a/Spigot-Server-Patches/0300-Vanished-players-don-t-have-rights.patch +++ b/Spigot-Server-Patches/0300-Vanished-players-don-t-have-rights.patch @@ -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 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 { diff --git a/Spigot-Server-Patches/0308-Always-process-chunk-removal-in-removeEntity.patch b/Spigot-Server-Patches/0308-Always-process-chunk-removal-in-removeEntity.patch index 92a83239e7..18d42eec25 100644 --- a/Spigot-Server-Patches/0308-Always-process-chunk-removal-in-removeEntity.patch +++ b/Spigot-Server-Patches/0308-Always-process-chunk-removal-in-removeEntity.patch @@ -1,4 +1,4 @@ -From bf37a721e1cd38719fcfe7f2773280578e372da2 Mon Sep 17 00:00:00 2001 +From 46d34d7499b61271b55499dc09d080afdaa2574f 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 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); } diff --git a/Spigot-Server-Patches/0309-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0309-Ignore-Dead-Entities-in-entityList-iteration.patch index 668a804262..71e8fd71e7 100644 --- a/Spigot-Server-Patches/0309-Ignore-Dead-Entities-in-entityList-iteration.patch +++ b/Spigot-Server-Patches/0309-Ignore-Dead-Entities-in-entityList-iteration.patch @@ -1,4 +1,4 @@ -From 5ee90c9c958827da1f346eb10357632e3b363611 Mon Sep 17 00:00:00 2001 +From 1afbefeda4968c4d7af97d155ea94bbe6f237de0 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 56700fc59..9b9c8361e 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 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(); diff --git a/Spigot-Server-Patches/0314-World-EntityHuman-Lookup-Optimizations.patch b/Spigot-Server-Patches/0314-World-EntityHuman-Lookup-Optimizations.patch index f5b99a30c0..56715425a4 100644 --- a/Spigot-Server-Patches/0314-World-EntityHuman-Lookup-Optimizations.patch +++ b/Spigot-Server-Patches/0314-World-EntityHuman-Lookup-Optimizations.patch @@ -1,11 +1,11 @@ -From 39148659a11dc6f6d5ec7bb3fb4397c25b8e991a Mon Sep 17 00:00:00 2001 +From d16207bc6f8483316663f8ffcf3f9ad25a0d0daf 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 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 k = Lists.newArrayList(); protected final IntHashMap 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; diff --git a/Spigot-Server-Patches/0320-Entity-add-to-world-fixes.patch b/Spigot-Server-Patches/0320-Entity-add-to-world-fixes.patch index 736beebc91..09d1f49260 100644 --- a/Spigot-Server-Patches/0320-Entity-add-to-world-fixes.patch +++ b/Spigot-Server-Patches/0320-Entity-add-to-world-fixes.patch @@ -1,4 +1,4 @@ -From 4bec88c9c9d3934730f7c9ef94b409a04c8bcc66 Mon Sep 17 00:00:00 2001 +From 53c212aceb5442fc775470aefd2a3160946881e8 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 @@ -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; } diff --git a/Spigot-Server-Patches/0331-Cache-World-Entity-Type-counts.patch b/Spigot-Server-Patches/0331-Cache-World-Entity-Type-counts.patch index 8c18772647..e2c5563e19 100644 --- a/Spigot-Server-Patches/0331-Cache-World-Entity-Type-counts.patch +++ b/Spigot-Server-Patches/0331-Cache-World-Entity-Type-counts.patch @@ -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 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 g = com.google.common.collect.Sets.newHashSet(); public Set getEntityUnloadQueue() { return g; };// Paper - OBFHELPER //public final List 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 diff --git a/Spigot-Server-Patches/0337-Add-source-block-to-BlockPhysicsEvent.patch b/Spigot-Server-Patches/0337-Add-source-block-to-BlockPhysicsEvent.patch index b072bc9e2a..d2f24fb25e 100644 --- a/Spigot-Server-Patches/0337-Add-source-block-to-BlockPhysicsEvent.patch +++ b/Spigot-Server-Patches/0337-Add-source-block-to-BlockPhysicsEvent.patch @@ -1,14 +1,14 @@ -From b4008e9f85da18e2872ba12cc5064bcf6c8d89cf Mon Sep 17 00:00:00 2001 +From 26c2d12f82126e938d3873de0bf7d4485db0164e Mon Sep 17 00:00:00 2001 From: Sotr 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 diff --git a/Spigot-Server-Patches/0338-Anti-Xray.patch b/Spigot-Server-Patches/0338-Anti-Xray.patch index 897dac06c8..fae21d67a2 100644 --- a/Spigot-Server-Patches/0338-Anti-Xray.patch +++ b/Spigot-Server-Patches/0338-Anti-Xray.patch @@ -1,4 +1,4 @@ -From 94a35b002229e4b622235ab9c8f1e0475ce27a46 Mon Sep 17 00:00:00 2001 +From 7dbfd324c0ed19ad289e2333f2f17bff859e05a2 Mon Sep 17 00:00:00 2001 From: stonar96 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 diff --git a/Spigot-Server-Patches/0344-Optimize-getChunkIfLoaded-type-calls.patch b/Spigot-Server-Patches/0344-Optimize-getChunkIfLoaded-type-calls.patch index 1696f84129..bf351cdac1 100644 --- a/Spigot-Server-Patches/0344-Optimize-getChunkIfLoaded-type-calls.patch +++ b/Spigot-Server-Patches/0344-Optimize-getChunkIfLoaded-type-calls.patch @@ -1,4 +1,4 @@ -From 1fcbcf080609ed885aae4b8b4d0173f01b5bf33b Mon Sep 17 00:00:00 2001 +From 054e75a8aa2efaf8de0b9bd367a3186e38a9a1e1 Mon Sep 17 00:00:00 2001 From: Aikar 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 { diff --git a/Spigot-Server-Patches/0355-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch b/Spigot-Server-Patches/0355-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch index 7ab67273a3..c21844856f 100644 --- a/Spigot-Server-Patches/0355-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch +++ b/Spigot-Server-Patches/0355-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch @@ -1,11 +1,11 @@ -From 062b314e9738b03ea846cd097167d93bd4680d60 Mon Sep 17 00:00:00 2001 +From 596abf69b2fac810f11d4d62d30da12339bc5ac7 Mon Sep 17 00:00:00 2001 From: Aikar 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); } } diff --git a/Spigot-Server-Patches/0366-Async-Chunk-Loading-and-Generation.patch b/Spigot-Server-Patches/0366-Async-Chunk-Loading-and-Generation.patch index 41fc67586e..28ec9f9471 100644 --- a/Spigot-Server-Patches/0366-Async-Chunk-Loading-and-Generation.patch +++ b/Spigot-Server-Patches/0366-Async-Chunk-Loading-and-Generation.patch @@ -1,4 +1,4 @@ -From 4dfffbe401ef870b956fc5cf3b6269aa7e56b266 Mon Sep 17 00:00:00 2001 +From d8c055a6b9588b2fe77fdb73f7200a1a87931599 Mon Sep 17 00:00:00 2001 From: Aikar 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 diff --git a/Spigot-Server-Patches/0368-Optimize-Light-Recalculations.patch b/Spigot-Server-Patches/0368-Optimize-Light-Recalculations.patch index d57ec558ab..b7dfbdb806 100644 --- a/Spigot-Server-Patches/0368-Optimize-Light-Recalculations.patch +++ b/Spigot-Server-Patches/0368-Optimize-Light-Recalculations.patch @@ -1,4 +1,4 @@ -From 695bfadd880ff0a6efb5791f61223a5c2cbc4ccb Mon Sep 17 00:00:00 2001 +From ae00e18aa67201e19223f874e8d473e5d3501961 Mon Sep 17 00:00:00 2001 From: Aikar 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); diff --git a/Spigot-Server-Patches/0369-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch b/Spigot-Server-Patches/0369-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch index 67383c784a..f6ac34c882 100644 --- a/Spigot-Server-Patches/0369-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch +++ b/Spigot-Server-Patches/0369-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch @@ -1,4 +1,4 @@ -From e154874d67835605e5e359706de7dd788da052df Mon Sep 17 00:00:00 2001 +From 42df6398002eb3dd1fec24201046a74e1b49a08b Mon Sep 17 00:00:00 2001 From: Aikar 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); } diff --git a/Spigot-Server-Patches/0378-Add-sun-related-API.patch b/Spigot-Server-Patches/0378-Add-sun-related-API.patch index 9cbf3c4bdd..002cbc98f8 100644 --- a/Spigot-Server-Patches/0378-Add-sun-related-API.patch +++ b/Spigot-Server-Patches/0378-Add-sun-related-API.patch @@ -1,11 +1,11 @@ -From bd1e23a74e539c1a5ea3e37efe5a85a2aefe206b Mon Sep 17 00:00:00 2001 +From 692747064da797b9af3c7b7b559c72d45953b477 Mon Sep 17 00:00:00 2001 From: BillyGalbreath 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 { diff --git a/Spigot-Server-Patches/0401-Optimize-redstone-algorithm.patch b/Spigot-Server-Patches/0401-Optimize-redstone-algorithm.patch index c517db69d7..88977759d8 100644 --- a/Spigot-Server-Patches/0401-Optimize-redstone-algorithm.patch +++ b/Spigot-Server-Patches/0401-Optimize-redstone-algorithm.patch @@ -1,4 +1,4 @@ -From 448a78b9923ab4bed3002a13d2ecbeedfa42de4a Mon Sep 17 00:00:00 2001 +From 356ac9a81cbeaeba16995f4dcd7db259c821e02f Mon Sep 17 00:00:00 2001 From: theosib 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)))); } diff --git a/Spigot-Server-Patches/0406-limit-the-range-at-which-we-ll-consider-an-attackabl.patch b/Spigot-Server-Patches/0406-limit-the-range-at-which-we-ll-consider-an-attackabl.patch index e1b154fc5d..cb67595ee3 100644 --- a/Spigot-Server-Patches/0406-limit-the-range-at-which-we-ll-consider-an-attackabl.patch +++ b/Spigot-Server-Patches/0406-limit-the-range-at-which-we-ll-consider-an-attackabl.patch @@ -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 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); diff --git a/Spigot-Server-Patches/0407-Prevent-rayTrace-from-loading-chunks.patch b/Spigot-Server-Patches/0407-Prevent-rayTrace-from-loading-chunks.patch index 615ddc615d..65f8dfca52 100644 --- a/Spigot-Server-Patches/0407-Prevent-rayTrace-from-loading-chunks.patch +++ b/Spigot-Server-Patches/0407-Prevent-rayTrace-from-loading-chunks.patch @@ -1,4 +1,4 @@ -From 6f62ca5139a969a7a92e62fed7fe83b4805115bb Mon Sep 17 00:00:00 2001 +From 096328c61aa430d20c20f4834554c9cf8d4986b6 Mon Sep 17 00:00:00 2001 From: Aikar 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); diff --git a/work/Bukkit b/work/Bukkit index 3108e64a6a..bb813f6f69 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 3108e64a6ac9b00a74c94441ce0dc5d63ecd652a +Subproject commit bb813f6f69028b8effd085244d33fec70cbb30f9 diff --git a/work/CraftBukkit b/work/CraftBukkit index ad6070dffd..2ced02339a 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit ad6070dffd9bd5e46bd9d9d423a6d111a8af130a +Subproject commit 2ced02339aeb75e0c59014b1543e75f85f3dac36 diff --git a/work/Spigot b/work/Spigot index f56e2e787f..b0f4c22b92 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit f56e2e787f425025af0d7410ff4cdb4f8edf7f3b +Subproject commit b0f4c22b92c82146214dad69ea296ab7034592d8