From fa990d26affe0135edeb5be0d41a9420cbab8151 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sat, 17 Oct 2020 10:48:00 +0100 Subject: [PATCH] Revert "Updated Upstream (Bukkit/CraftBukkit/Spigot)" This reverts commit 23826a3f66a58e099c3d8dbe0eeff2df81c3cdc3. --- Spigot-API-Patches/0004-Timings-v2.patch | 25 +++---------------- ...t-sendMessage-methods-to-CommandSend.patch | 4 +-- ...vide-Chunk-Coordinates-as-a-Long-API.patch | 4 +-- ...ile-Entities-from-a-chunk-without-sn.patch | 4 +-- Spigot-Server-Patches/0004-MC-Utils.patch | 20 +++++++-------- ...to-current-Chunk-for-Entity-and-Bloc.patch | 10 ++++---- ...ts-for-each-Entity-Block-Entity-Type.patch | 6 ++--- Spigot-Server-Patches/0009-Timings-v2.patch | 20 +++++++-------- .../0020-Player-affects-spawning-API.patch | 4 +-- ...ve-invalid-mob-spawner-tile-entities.patch | 4 +-- ...024-Only-refresh-abilities-if-needed.patch | 4 +-- .../0025-Entity-Origin-API.patch | 4 +-- .../0048-Player-Tab-List-and-Title-APIs.patch | 4 +-- ...ble-inter-world-teleportation-safety.patch | 4 +-- .../0054-Add-exception-reporting-event.patch | 6 ++--- .../0058-Complete-resource-pack-API.patch | 4 +-- ...th-absorb-values-and-repair-bad-data.patch | 4 +-- ...Location-getType-and-getBlockData-fo.patch | 6 ++--- ...74-Configurable-Chunk-Inhabited-Time.patch | 4 +-- ...nd-for-setting-passengers-on-players.patch | 4 +-- ...91-Implement-PlayerLocaleChangeEvent.patch | 6 ++--- ...tion-to-remove-corrupt-tile-entities.patch | 4 +-- .../0131-String-based-Action-Bar-API.patch | 4 +-- .../0156-Entity-fromMobSpawner.patch | 4 +-- ...4-Ability-to-apply-mending-to-XP-API.patch | 4 +-- .../0200-Player.setPlayerProfile-API.patch | 8 +++--- ...06-Flag-to-disable-the-channel-limit.patch | 4 +-- .../0234-InventoryCloseEvent-Reason-API.patch | 4 +-- ...-anytime-entities-change-to-guarante.patch | 6 ++--- ...dd-some-Debug-to-Chunk-Entity-slices.patch | 8 +++--- ...revent-Saving-Bad-entities-to-chunks.patch | 8 +++--- ...ead-Entities-in-entityList-iteration.patch | 8 +++--- ...ile-Entities-from-a-chunk-without-sn.patch | 6 ++--- ...e-attack-cooldown-methods-for-Player.patch | 4 +-- .../0280-Improve-death-events.patch | 8 +++--- ...-replace-OfflinePlayer-getLastPlayed.patch | 12 ++++----- ...-remove-from-being-called-on-Players.patch | 4 +-- .../0338-Entity-getEntitySpawnReason.patch | 6 ++--- ...layer-View-Distance-API-placeholders.patch | 4 +-- .../0352-Duplicate-UUID-Resolve-Option.patch | 4 +-- ...360-Fix-World-isChunkGenerated-calls.patch | 4 +-- Spigot-Server-Patches/0364-Anti-Xray.patch | 16 ++++++------ ...opper-searches-if-there-are-no-items.patch | 10 ++++---- ...70-Asynchronous-chunk-IO-and-loading.patch | 20 +++++++-------- ...ce-improvement-for-Chunk.getEntities.patch | 4 +-- .../0409-Optimise-random-block-ticking.patch | 4 +-- .../0418-Optimise-Chunk-getFluid.patch | 6 ++--- ...-Implement-Player-Client-Options-API.patch | 4 +-- ...No-Tick-view-distance-implementation.patch | 6 ++--- ...ze-NibbleArray-to-use-pooled-buffers.patch | 8 +++--- ...n-for-console-having-all-permissions.patch | 4 +-- ...ound-for-Client-Lag-Spikes-MC-162253.patch | 4 +-- ...k-Priority-Urgency-System-for-Chunks.patch | 4 +-- ...on-Full-Status-Chunk-NBT-Memory-Leak.patch | 24 ++++-------------- .../0523-Add-entity-liquid-API.patch | 4 +-- .../0550-Brand-support.patch | 4 +-- .../0560-Brand-support.patch | 4 +-- .../0580-Entity-isTicking.patch | 4 +-- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 61 files changed, 185 insertions(+), 216 deletions(-) diff --git a/Spigot-API-Patches/0004-Timings-v2.patch b/Spigot-API-Patches/0004-Timings-v2.patch index c581854b54..6d3bc3bca9 100644 --- a/Spigot-API-Patches/0004-Timings-v2.patch +++ b/Spigot-API-Patches/0004-Timings-v2.patch @@ -1876,10 +1876,10 @@ index 0000000000000000000000000000000000000000..ef824d701c97cad8b31e76ad98c94fc4 +} diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java new file mode 100644 -index 0000000000000000000000000000000000000000..ef58a6c00f444bd498a2d8fc4e457236f393954f +index 0000000000000000000000000000000000000000..bf3e059fe06aae361b2ded451914ed19b5e970c5 --- /dev/null +++ b/src/main/java/co/aikar/timings/TimingsReportListener.java -@@ -0,0 +1,77 @@ +@@ -0,0 +1,75 @@ +package co.aikar.timings; + +import com.google.common.collect.Lists; @@ -1891,8 +1891,6 @@ index 0000000000000000000000000000000000000000..ef58a6c00f444bd498a2d8fc4e457236 +import org.bukkit.command.RemoteConsoleCommandSender; + +import java.util.List; -+import java.util.UUID; -+ +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + @@ -2929,10 +2927,10 @@ index d6c8938b1e13b63116b7b0e074ea8ef5997f8dc3..a6ad94ef98a1df1d2842635d850bc990 } diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java new file mode 100644 -index 0000000000000000000000000000000000000000..a7ef1f51c2b96617a32e6e7b1723e8770ba8a6a8 +index 0000000000000000000000000000000000000000..ca1893e9fb41baae0d103f1a925e33f3dfa273be --- /dev/null +++ b/src/main/java/org/bukkit/command/MessageCommandSender.java -@@ -0,0 +1,129 @@ +@@ -0,0 +1,114 @@ +package org.bukkit.command; + +import org.apache.commons.lang.NotImplementedException; @@ -2944,10 +2942,7 @@ index 0000000000000000000000000000000000000000..a7ef1f51c2b96617a32e6e7b1723e877 +import org.bukkit.plugin.Plugin; + +import java.util.Set; -+import java.util.UUID; -+ +import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; + +/** + * For when all you care about is just messaging @@ -2961,18 +2956,6 @@ index 0000000000000000000000000000000000000000..a7ef1f51c2b96617a32e6e7b1723e877 + } + } + -+ @Override -+ default void sendMessage(@Nullable UUID sender, @NotNull String message) { -+ sendMessage(message); -+ } -+ -+ @Override -+ default void sendMessage(@Nullable UUID sender, @NotNull String[] messages) { -+ for (String message : messages) { -+ sendMessage(message); -+ } -+ } -+ + @NotNull + @Override + default Server getServer() { diff --git a/Spigot-API-Patches/0019-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch b/Spigot-API-Patches/0019-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch index 4c2e4087a3..d0f09691a0 100644 --- a/Spigot-API-Patches/0019-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch +++ b/Spigot-API-Patches/0019-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add BaseComponent sendMessage methods to CommandSender diff --git a/src/main/java/org/bukkit/command/CommandSender.java b/src/main/java/org/bukkit/command/CommandSender.java -index fe6b162fe55cddf3f9be40fa4cd42e5060ac85ad..cab682f741da6bbf7463b457ce1674accce6f5f2 100644 +index a9020ecc744514067374bd2b1751251add4d9a78..d3b3a8bf94dac370ea254875e4d4a30894a70c67 100644 --- a/src/main/java/org/bukkit/command/CommandSender.java +++ b/src/main/java/org/bukkit/command/CommandSender.java -@@ -79,4 +79,30 @@ public interface CommandSender extends Permissible { +@@ -61,4 +61,30 @@ public interface CommandSender extends Permissible { @NotNull Spigot spigot(); // Spigot end diff --git a/Spigot-API-Patches/0131-Provide-Chunk-Coordinates-as-a-Long-API.patch b/Spigot-API-Patches/0131-Provide-Chunk-Coordinates-as-a-Long-API.patch index 86216abbbe..f715f2f134 100644 --- a/Spigot-API-Patches/0131-Provide-Chunk-Coordinates-as-a-Long-API.patch +++ b/Spigot-API-Patches/0131-Provide-Chunk-Coordinates-as-a-Long-API.patch @@ -7,10 +7,10 @@ Allows you to easily access the chunks X/z as a long, and a method to look up by the long key too. diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java -index beac1439c71fb28f1a3baecf56157237e12ccfd5..fa576096e908f8fbdbef53e1bd91215ac9e73ed6 100644 +index 95e485eea693e7648e63d198c8591d89e02e6755..0bbef14a9fc2a3ec03b4db59c8d8e1eedc0ad1c1 100644 --- a/src/main/java/org/bukkit/Chunk.java +++ b/src/main/java/org/bukkit/Chunk.java -@@ -28,6 +28,32 @@ public interface Chunk extends PersistentDataHolder { +@@ -27,6 +27,32 @@ public interface Chunk { */ int getZ(); diff --git a/Spigot-API-Patches/0134-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch b/Spigot-API-Patches/0134-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch index 5c106c16aa..51eec85e98 100644 --- a/Spigot-API-Patches/0134-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch +++ b/Spigot-API-Patches/0134-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java -index fa576096e908f8fbdbef53e1bd91215ac9e73ed6..b4ef6297f78d1f0c216e718024a21e6aa07cd1c6 100644 +index 0bbef14a9fc2a3ec03b4db59c8d8e1eedc0ad1c1..11b691cf59b4a72493c91055fd8c46d7681b4527 100644 --- a/src/main/java/org/bukkit/Chunk.java +++ b/src/main/java/org/bukkit/Chunk.java -@@ -103,13 +103,26 @@ public interface Chunk extends PersistentDataHolder { +@@ -102,13 +102,26 @@ public interface Chunk { @NotNull Entity[] getEntities(); diff --git a/Spigot-Server-Patches/0004-MC-Utils.patch b/Spigot-Server-Patches/0004-MC-Utils.patch index b422c1e2ca..1d871c21e5 100644 --- a/Spigot-Server-Patches/0004-MC-Utils.patch +++ b/Spigot-Server-Patches/0004-MC-Utils.patch @@ -2411,7 +2411,7 @@ index 1b2f415e3ed7f6dca12d13cd098cb4ec3af54020..64e8088d394ddcda59d0209883b778ab @Override public BlockPosition immutableCopy() { diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235c802c8f7 100644 +index ea09e7a742f8e28dfd3db3736422326aff0912f6..3b3e94cff2c6def318864bb5b7baefcf9de2cae7 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -26,7 +26,7 @@ public class Chunk implements IChunkAccess { @@ -2441,8 +2441,8 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235 this.i = chunkconverter; HeightMap.Type[] aheightmap_type = HeightMap.Type.values(); int j = aheightmap_type.length; -@@ -112,6 +112,110 @@ public class Chunk implements IChunkAccess { - public final org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer persistentDataContainer = new org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer(DATA_TYPE_REGISTRY); +@@ -109,6 +109,110 @@ public class Chunk implements IChunkAccess { + public boolean needsDecoration; // CraftBukkit end + // Paper start @@ -2552,7 +2552,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235 public Chunk(World world, ProtoChunk protochunk) { this(world, protochunk.getPos(), protochunk.getBiomeIndex(), protochunk.p(), protochunk.n(), protochunk.o(), protochunk.getInhabitedTime(), protochunk.getSections(), (Consumer) null); Iterator iterator = protochunk.y().iterator(); -@@ -217,6 +321,18 @@ public class Chunk implements IChunkAccess { +@@ -214,6 +318,18 @@ public class Chunk implements IChunkAccess { } } @@ -2571,7 +2571,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235 @Override public Fluid getFluid(BlockPosition blockposition) { return this.a(blockposition.getX(), blockposition.getY(), blockposition.getZ()); -@@ -356,6 +472,7 @@ public class Chunk implements IChunkAccess { +@@ -353,6 +469,7 @@ public class Chunk implements IChunkAccess { entity.chunkX = this.loc.x; entity.chunkY = k; entity.chunkZ = this.loc.z; @@ -2579,7 +2579,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235 this.entitySlices[k].add(entity); } -@@ -378,6 +495,7 @@ public class Chunk implements IChunkAccess { +@@ -375,6 +492,7 @@ public class Chunk implements IChunkAccess { } this.entitySlices[i].remove(entity); @@ -2587,7 +2587,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235 } @Override -@@ -399,6 +517,7 @@ public class Chunk implements IChunkAccess { +@@ -396,6 +514,7 @@ public class Chunk implements IChunkAccess { return this.a(blockposition, Chunk.EnumTileEntityState.CHECK); } @@ -2595,7 +2595,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235 @Nullable public TileEntity a(BlockPosition blockposition, Chunk.EnumTileEntityState chunk_enumtileentitystate) { // CraftBukkit start -@@ -510,7 +629,25 @@ public class Chunk implements IChunkAccess { +@@ -507,7 +626,25 @@ public class Chunk implements IChunkAccess { // CraftBukkit start public void loadCallback() { @@ -2621,7 +2621,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235 if (server != null) { /* * If it's a new world, the first few chunks are generated inside -@@ -549,6 +686,22 @@ public class Chunk implements IChunkAccess { +@@ -546,6 +683,22 @@ public class Chunk implements IChunkAccess { server.getPluginManager().callEvent(unloadEvent); // note: saving can be prevented, but not forced if no saving is actually required this.mustNotSave = !unloadEvent.isSaveChunk(); @@ -3133,7 +3133,7 @@ index 07c48d777a71a979fb1f0063eef2e613e448d2eb..8a5d6869c269369d45cfe4e61853c442 super(entitytypes, world); this.f = 5; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 8fc44b87ba16f6d25471c26310702c5b4651989a..2b86d99420b59d67b1afec45d9a02003613d40a6 100644 +index 24d16bbeb8d7e971591c182149bdd8fbed7778a5..ec885c22279b237974ef461285ba59e0033800d9 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -93,6 +93,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/Spigot-Server-Patches/0007-Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch b/Spigot-Server-Patches/0007-Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch index 957f8eac4d..2473f10006 100644 --- a/Spigot-Server-Patches/0007-Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch +++ b/Spigot-Server-Patches/0007-Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch @@ -8,7 +8,7 @@ This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 157eccc8e45566db527c7d46d3b3d235c802c8f7..e46ed143a52eab4af15cc76606992c3bf68156c3 100644 +index 3b3e94cff2c6def318864bb5b7baefcf9de2cae7..6bd9457ad5c9fb1c0f12ff345b531be0673e866e 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -56,11 +56,36 @@ public class Chunk implements IChunkAccess { @@ -49,7 +49,7 @@ index 157eccc8e45566db527c7d46d3b3d235c802c8f7..e46ed143a52eab4af15cc76606992c3b this.l = Maps.newHashMap(); this.m = Maps.newHashMap(); this.n = new ShortList[16]; -@@ -469,6 +494,7 @@ public class Chunk implements IChunkAccess { +@@ -466,6 +491,7 @@ public class Chunk implements IChunkAccess { } entity.inChunk = true; @@ -57,7 +57,7 @@ index 157eccc8e45566db527c7d46d3b3d235c802c8f7..e46ed143a52eab4af15cc76606992c3b entity.chunkX = this.loc.x; entity.chunkY = k; entity.chunkZ = this.loc.z; -@@ -481,6 +507,7 @@ public class Chunk implements IChunkAccess { +@@ -478,6 +504,7 @@ public class Chunk implements IChunkAccess { ((HeightMap) this.heightMap.get(heightmap_type)).a(along); } @@ -65,7 +65,7 @@ index 157eccc8e45566db527c7d46d3b3d235c802c8f7..e46ed143a52eab4af15cc76606992c3b public void b(Entity entity) { this.a(entity, entity.chunkY); } -@@ -494,7 +521,12 @@ public class Chunk implements IChunkAccess { +@@ -491,7 +518,12 @@ public class Chunk implements IChunkAccess { i = this.entitySlices.length - 1; } @@ -137,7 +137,7 @@ index cfbca7cfde3160e888e14c5bb3bc48267f1cb599..67fdd560f8136d83a13f75e265d5f5dd @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 82f9b1ad68012c6ea72337108bb3363a0f3a1f46..c4d7430cfe037ed65b49d2cc9c3d95002368fdc1 100644 +index fc23f2c4dc3ece5fd944de72b62b1a1ede3e7e45..66878c53bfb71392bf07d2c41a2edf1bc8f7af79 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -143,6 +143,7 @@ import net.minecraft.server.EntityZombieHusk; diff --git a/Spigot-Server-Patches/0008-Store-counts-for-each-Entity-Block-Entity-Type.patch b/Spigot-Server-Patches/0008-Store-counts-for-each-Entity-Block-Entity-Type.patch index 9c7b099303..465d0b689e 100644 --- a/Spigot-Server-Patches/0008-Store-counts-for-each-Entity-Block-Entity-Type.patch +++ b/Spigot-Server-Patches/0008-Store-counts-for-each-Entity-Block-Entity-Type.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Store counts for each Entity/Block Entity Type Opens door for future patches to optimize performance diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index e46ed143a52eab4af15cc76606992c3bf68156c3..18e18e6cabe94a23ebfc9f9d8279837105f1d976 100644 +index 6bd9457ad5c9fb1c0f12ff345b531be0673e866e..e6855287102be620856935df32b5df9bcf6bb88e 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -57,15 +57,19 @@ public class Chunk implements IChunkAccess { @@ -37,7 +37,7 @@ index e46ed143a52eab4af15cc76606992c3bf68156c3..18e18e6cabe94a23ebfc9f9d82798371 } return removed; } -@@ -493,6 +498,7 @@ public class Chunk implements IChunkAccess { +@@ -490,6 +495,7 @@ public class Chunk implements IChunkAccess { k = this.entitySlices.length - 1; } @@ -45,7 +45,7 @@ index e46ed143a52eab4af15cc76606992c3bf68156c3..18e18e6cabe94a23ebfc9f9d82798371 entity.inChunk = true; entity.setCurrentChunk(this); // Paper entity.chunkX = this.loc.x; -@@ -526,6 +532,7 @@ public class Chunk implements IChunkAccess { +@@ -523,6 +529,7 @@ public class Chunk implements IChunkAccess { if (!this.entitySlices[i].remove(entity)) { return; } diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index b6ae55f495..7f891ec0b6 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -667,7 +667,7 @@ index 0000000000000000000000000000000000000000..944fd203e9f39d6c6fc9e270940c76c9 + } +} diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 357856e5abcbc91452fa5b09643522f04843f71d..4479f74daef573bcbb6757186440bf47a3aef912 100644 +index b367bb8ea184489f433f8acc798466c38816ae62..a62f4bbb973b9cb6d1ee53f56a0897d70ae176af 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -14,12 +14,15 @@ import java.util.concurrent.TimeUnit; @@ -735,10 +735,10 @@ index 871b79cb2c63525c430c257f00b2cf70157aa476..d847326b0099a0c05a085d5d62de6304 private String name; @Nullable diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 18e18e6cabe94a23ebfc9f9d8279837105f1d976..30d760ab30ed70ec2e4c37f2e8dbe80006c51f1b 100644 +index e6855287102be620856935df32b5df9bcf6bb88e..baa3783a0c16e9a7eaec9d38e1fe6bfed9710aa1 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -696,6 +696,7 @@ public class Chunk implements IChunkAccess { +@@ -693,6 +693,7 @@ public class Chunk implements IChunkAccess { server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(this.bukkitChunk, this.needsDecoration)); if (this.needsDecoration) { @@ -746,7 +746,7 @@ index 18e18e6cabe94a23ebfc9f9d8279837105f1d976..30d760ab30ed70ec2e4c37f2e8dbe800 this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(world.getSeed()); -@@ -715,6 +716,7 @@ public class Chunk implements IChunkAccess { +@@ -712,6 +713,7 @@ public class Chunk implements IChunkAccess { } } server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); @@ -846,7 +846,7 @@ index 1ca6d656cd2c7bbf12df6368ad7d953765d03e36..042031d2b7cb2f56d422145ffa7589fa private void a(long i, Consumer consumer) { diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 7d9161b9e3996098d0f257661e39036e82d3f88a..52621ab74c8af1ab0c38e8df28cb7dc7153096a3 100644 +index a9b40a74fb2080ccb9958f074d424c8b8ed97239..f30071fe5c1f33386829cc61d8c6976a39eff24f 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -1,5 +1,6 @@ @@ -856,7 +856,7 @@ index 7d9161b9e3996098d0f257661e39036e82d3f88a..52621ab74c8af1ab0c38e8df28cb7dc7 import com.google.common.collect.Maps; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import it.unimi.dsi.fastutil.longs.LongSet; -@@ -404,7 +405,6 @@ public class ChunkRegionLoader { +@@ -392,7 +393,6 @@ public class ChunkRegionLoader { private static void loadEntities(NBTTagCompound nbttagcompound, Chunk chunk) { NBTTagList nbttaglist = nbttagcompound.getList("Entities", 10); World world = chunk.getWorld(); @@ -864,7 +864,7 @@ index 7d9161b9e3996098d0f257661e39036e82d3f88a..52621ab74c8af1ab0c38e8df28cb7dc7 for (int i = 0; i < nbttaglist.size(); ++i) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompound(i); -@@ -416,8 +416,6 @@ public class ChunkRegionLoader { +@@ -404,8 +404,6 @@ public class ChunkRegionLoader { chunk.d(true); } @@ -873,7 +873,7 @@ index 7d9161b9e3996098d0f257661e39036e82d3f88a..52621ab74c8af1ab0c38e8df28cb7dc7 NBTTagList nbttaglist1 = nbttagcompound.getList("TileEntities", 10); for (int j = 0; j < nbttaglist1.size(); ++j) { -@@ -435,8 +433,6 @@ public class ChunkRegionLoader { +@@ -423,8 +421,6 @@ public class ChunkRegionLoader { } } } @@ -2012,10 +2012,10 @@ index 7f435847ac1d13756ce233e7d5ae13f9dc17c443..00000000000000000000000000000000 - } -} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 68da8e3981dda2c04031d8033776abb845dc109e..4f8745ce03eef96597963f5c2e08055f51686755 100644 +index 1bde861afb6ff3d339bda0996e9eaa502cce5e70..495470f9c397e80b9e6e8e3c9360b0d659b916ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1797,6 +1797,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1774,6 +1774,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { packet.components = components; getHandle().playerConnection.sendPacket(packet); } diff --git a/Spigot-Server-Patches/0020-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0020-Player-affects-spawning-API.patch index 09373b950b..36b45f852b 100644 --- a/Spigot-Server-Patches/0020-Player-affects-spawning-API.patch +++ b/Spigot-Server-Patches/0020-Player-affects-spawning-API.patch @@ -131,10 +131,10 @@ index 90af43930f9141b0c7f51bb3d887d7b9c4d935eb..1741ec5e241f8ae7a3c30a9021d14cb0 public void c() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4f8745ce03eef96597963f5c2e08055f51686755..ae7fd1cfdf2a5c222959ca8694b98a77b69e7885 100644 +index 495470f9c397e80b9e6e8e3c9360b0d659b916ed..11f80c6f58e611f33ad8bbd09aa8bf90c7933426 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1709,7 +1709,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1686,7 +1686,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getLocale() { return getHandle().locale; diff --git a/Spigot-Server-Patches/0021-Remove-invalid-mob-spawner-tile-entities.patch b/Spigot-Server-Patches/0021-Remove-invalid-mob-spawner-tile-entities.patch index 4cf4d23de9..f7eecaa07d 100644 --- a/Spigot-Server-Patches/0021-Remove-invalid-mob-spawner-tile-entities.patch +++ b/Spigot-Server-Patches/0021-Remove-invalid-mob-spawner-tile-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove invalid mob spawner tile entities diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 30d760ab30ed70ec2e4c37f2e8dbe80006c51f1b..4c051667028ebed6b6f57d4e7d7acbad850c1052 100644 +index baa3783a0c16e9a7eaec9d38e1fe6bfed9710aa1..dbaa56f4f8c1093935a981c14bc1cb79c991579c 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -611,6 +611,10 @@ public class Chunk implements IChunkAccess { +@@ -608,6 +608,10 @@ public class Chunk implements IChunkAccess { } // CraftBukkit start diff --git a/Spigot-Server-Patches/0024-Only-refresh-abilities-if-needed.patch b/Spigot-Server-Patches/0024-Only-refresh-abilities-if-needed.patch index 44d2fbcedd..c6efe54a7e 100644 --- a/Spigot-Server-Patches/0024-Only-refresh-abilities-if-needed.patch +++ b/Spigot-Server-Patches/0024-Only-refresh-abilities-if-needed.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Only refresh abilities if needed diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ae7fd1cfdf2a5c222959ca8694b98a77b69e7885..8e53988ab9639a7f9c2b21c7a66f3c4a2edeb2cf 100644 +index 11f80c6f58e611f33ad8bbd09aa8bf90c7933426..b491e10b95d2235e2495e491596d23614be23d50 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1389,12 +1389,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1366,12 +1366,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setFlying(boolean value) { diff --git a/Spigot-Server-Patches/0025-Entity-Origin-API.patch b/Spigot-Server-Patches/0025-Entity-Origin-API.patch index fd45876348..c84a32f2a3 100644 --- a/Spigot-Server-Patches/0025-Entity-Origin-API.patch +++ b/Spigot-Server-Patches/0025-Entity-Origin-API.patch @@ -117,10 +117,10 @@ index a807933d65a22dc1b15eda4dee819af72006fff3..25a4bd5a216798d01da33e54da4ab0e2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index c4d7430cfe037ed65b49d2cc9c3d95002368fdc1..cee519adaad3f784640bb4d91b53b107054c5e58 100644 +index 66878c53bfb71392bf07d2c41a2edf1bc8f7af79..10f96056700c88cc8e83477877788e3443cecefd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1032,4 +1032,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1022,4 +1022,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return spigot; } // Spigot end diff --git a/Spigot-Server-Patches/0048-Player-Tab-List-and-Title-APIs.patch b/Spigot-Server-Patches/0048-Player-Tab-List-and-Title-APIs.patch index 2f2a8c278d..279b010339 100644 --- a/Spigot-Server-Patches/0048-Player-Tab-List-and-Title-APIs.patch +++ b/Spigot-Server-Patches/0048-Player-Tab-List-and-Title-APIs.patch @@ -52,7 +52,7 @@ index 3a6e780007bc1b1fa799166daa01d3a9e15c7ab0..535056c64ef866e645b1bfbd149b50c5 if (this.a == PacketPlayOutTitle.EnumTitleAction.TIMES) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8e53988ab9639a7f9c2b21c7a66f3c4a2edeb2cf..671cab3efd94b81b0d71af3e096ffe9108d36258 100644 +index b491e10b95d2235e2495e491596d23614be23d50..7c89694da8bb0ee10b5294d8ecf83842c9030c20 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1,5 +1,6 @@ @@ -62,7 +62,7 @@ index 8e53988ab9639a7f9c2b21c7a66f3c4a2edeb2cf..671cab3efd94b81b0d71af3e096ffe91 import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.io.BaseEncoding; -@@ -238,6 +239,96 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -215,6 +216,96 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } diff --git a/Spigot-Server-Patches/0053-Configurable-inter-world-teleportation-safety.patch b/Spigot-Server-Patches/0053-Configurable-inter-world-teleportation-safety.patch index 2cb3fc58b9..dd0f9e8716 100644 --- a/Spigot-Server-Patches/0053-Configurable-inter-world-teleportation-safety.patch +++ b/Spigot-Server-Patches/0053-Configurable-inter-world-teleportation-safety.patch @@ -30,10 +30,10 @@ index cd47a4ca069df26969de3051c2aac80540093818..abbf59bb91021821876a8960e8f77fac + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 671cab3efd94b81b0d71af3e096ffe9108d36258..2cc50f8d91c4ea8632ad72fce6aa585916ca8dd7 100644 +index 7c89694da8bb0ee10b5294d8ecf83842c9030c20..3698080b147301b41014ea75c677af042a38c6a3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -783,7 +783,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -760,7 +760,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (fromWorld == toWorld) { entity.playerConnection.teleport(to); } else { diff --git a/Spigot-Server-Patches/0054-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0054-Add-exception-reporting-event.patch index c1d129af61..6a0a88a9d7 100644 --- a/Spigot-Server-Patches/0054-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0054-Add-exception-reporting-event.patch @@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..f699ce18ca044f813e194ef2786b7ea8 + } +} diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 4c051667028ebed6b6f57d4e7d7acbad850c1052..399641433a874cb6426a6092722036446df32eb6 100644 +index dbaa56f4f8c1093935a981c14bc1cb79c991579c..330492e918efa42717ef2208947e8be927df5398 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -1,5 +1,6 @@ @@ -59,7 +59,7 @@ index 4c051667028ebed6b6f57d4e7d7acbad850c1052..399641433a874cb6426a609272203644 import com.google.common.collect.Maps; import com.google.common.collect.Sets; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; -@@ -616,10 +617,15 @@ public class Chunk implements IChunkAccess { +@@ -613,10 +614,15 @@ public class Chunk implements IChunkAccess { this.tileEntities.remove(blockposition); // Paper end } else { @@ -187,7 +187,7 @@ index 1844a6504acc420bdfaaf8f045c569e970d055db..d6aadbda5c5a17976659f57ee04cf9b9 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index c628b3f8a927d8ddba1c14c2dc60ae4fc517b56f..8ae490f5dbf9afc467f82fd7ea863bc9e247203b 100644 +index f0f099c28dcbfa2914fc86e87c52d70b68883ebe..8d8da7885df69fd98f2b4715e4b6b4aa992bde27 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,5 +1,10 @@ diff --git a/Spigot-Server-Patches/0058-Complete-resource-pack-API.patch b/Spigot-Server-Patches/0058-Complete-resource-pack-API.patch index d7189f640b..0ee18f4c22 100644 --- a/Spigot-Server-Patches/0058-Complete-resource-pack-API.patch +++ b/Spigot-Server-Patches/0058-Complete-resource-pack-API.patch @@ -22,7 +22,7 @@ index 7493d7ce48a9c5875bce01252b4d958ab3b9ec7d..535e24a54a22f59b165e5043653eef5c // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 2cc50f8d91c4ea8632ad72fce6aa585916ca8dd7..65ba8b130328b681b67a01b06353ea382d004be6 100644 +index 3698080b147301b41014ea75c677af042a38c6a3..4140fef9aeb3a67c8a0e543c54b3df66ba50eb0b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -138,6 +138,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -36,7 +36,7 @@ index 2cc50f8d91c4ea8632ad72fce6aa585916ca8dd7..65ba8b130328b681b67a01b06353ea38 public CraftPlayer(CraftServer server, EntityPlayer entity) { super(server, entity); -@@ -1813,6 +1817,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1790,6 +1794,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean getAffectsSpawning() { return this.getHandle().affectsSpawning; } diff --git a/Spigot-Server-Patches/0067-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/Spigot-Server-Patches/0067-handle-NaN-health-absorb-values-and-repair-bad-data.patch index df7980d23c..3ce2e9fd65 100644 --- a/Spigot-Server-Patches/0067-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/Spigot-Server-Patches/0067-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -44,10 +44,10 @@ index a69eadd57a2ccb30eaa5f997feebf0cbb2300065..e9a67693f36345da1ef657a584f99692 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 65ba8b130328b681b67a01b06353ea382d004be6..eb86e8ff8c483b77d91a948411aaf167f6261091 100644 +index 4140fef9aeb3a67c8a0e543c54b3df66ba50eb0b..90f04e16956e18f48a45d45f09d4f37eabc65478 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1630,6 +1630,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1607,6 +1607,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setRealHealth(double health) { diff --git a/Spigot-Server-Patches/0071-Optimize-isValidLocation-getType-and-getBlockData-fo.patch b/Spigot-Server-Patches/0071-Optimize-isValidLocation-getType-and-getBlockData-fo.patch index 1890538245..d1f7e566ad 100644 --- a/Spigot-Server-Patches/0071-Optimize-isValidLocation-getType-and-getBlockData-fo.patch +++ b/Spigot-Server-Patches/0071-Optimize-isValidLocation-getType-and-getBlockData-fo.patch @@ -33,10 +33,10 @@ index f6a5ebd4c7ec045c8dd6841831f8fcc0b32d964e..63a9ce32fb8b98695e104f7d820cd9b1 this.a = i; this.b = j; diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 399641433a874cb6426a6092722036446df32eb6..560d61183f28b0271739548e8b784fdaf97e8a11 100644 +index 330492e918efa42717ef2208947e8be927df5398..8d13c2fab572428d61777699d5463f0678d9ad7c 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -311,12 +311,27 @@ public class Chunk implements IChunkAccess { +@@ -308,12 +308,27 @@ public class Chunk implements IChunkAccess { return this.sections; } @@ -192,7 +192,7 @@ index 065eeed71075bb8f4069cb172ea7fca54793ddc0..09da0cc8f02c504191dfec8be93e6cf6 @Override public Fluid getFluid(BlockPosition blockposition) { diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 884e166826a73e0210f3c215d68cdf1a4bd00355..5f867e28ec349b4ff1ac1d9398c7bd6263cbf9c0 100644 +index ca073af1c88721a856ad5a1878db24f3d94135e6..3b4ac43dbad865e1f99a20e4b8860797d060903f 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -187,7 +187,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { diff --git a/Spigot-Server-Patches/0074-Configurable-Chunk-Inhabited-Time.patch b/Spigot-Server-Patches/0074-Configurable-Chunk-Inhabited-Time.patch index 8f9737a219..072c434fb7 100644 --- a/Spigot-Server-Patches/0074-Configurable-Chunk-Inhabited-Time.patch +++ b/Spigot-Server-Patches/0074-Configurable-Chunk-Inhabited-Time.patch @@ -30,10 +30,10 @@ index 92d1dffbf436a21943b4a6aa0fabf54f064e6046..725958efab3dd05e04b7b18e16923076 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 560d61183f28b0271739548e8b784fdaf97e8a11..f02d4726747a0992e851730c21c9423f706aa27a 100644 +index 8d13c2fab572428d61777699d5463f0678d9ad7c..72f7d415907b7e8478b3ca4a0fd6c3897ce70d40 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -980,7 +980,7 @@ public class Chunk implements IChunkAccess { +@@ -977,7 +977,7 @@ public class Chunk implements IChunkAccess { @Override public long getInhabitedTime() { diff --git a/Spigot-Server-Patches/0084-Workaround-for-setting-passengers-on-players.patch b/Spigot-Server-Patches/0084-Workaround-for-setting-passengers-on-players.patch index 8225a24270..9e4211a791 100644 --- a/Spigot-Server-Patches/0084-Workaround-for-setting-passengers-on-players.patch +++ b/Spigot-Server-Patches/0084-Workaround-for-setting-passengers-on-players.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Workaround for setting passengers on players SPIGOT-1915 & GH-114 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index eb86e8ff8c483b77d91a948411aaf167f6261091..9aca1c0198f4d9e0b8b632aead499aaed240b091 100644 +index 90f04e16956e18f48a45d45f09d4f37eabc65478..81beabd053c024b0fc4d0948b94a8ff789cb1ba6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -792,6 +792,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -769,6 +769,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return true; } diff --git a/Spigot-Server-Patches/0091-Implement-PlayerLocaleChangeEvent.patch b/Spigot-Server-Patches/0091-Implement-PlayerLocaleChangeEvent.patch index 850a4fc7b2..d24361b5e2 100644 --- a/Spigot-Server-Patches/0091-Implement-PlayerLocaleChangeEvent.patch +++ b/Spigot-Server-Patches/0091-Implement-PlayerLocaleChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerLocaleChangeEvent diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 4799bf67f0ca74cf5573ce0a553903f75b7711b7..4849a44ebbddcdd17a84cb0db3c47ea420f2bf05 100644 +index 863f779453bb028d6452292663fd1e41ab434165..ed29b3cdbc0137f81d586207d4082a02d8ef73b5 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1540,16 +1540,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -29,10 +29,10 @@ index 4799bf67f0ca74cf5573ce0a553903f75b7711b7..4849a44ebbddcdd17a84cb0db3c47ea4 this.locale = packetplayinsettings.locale; this.clientViewDistance = packetplayinsettings.viewDistance; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9aca1c0198f4d9e0b8b632aead499aaed240b091..4148b53d08d7bde1c13d9cdca4330f1313b33409 100644 +index 81beabd053c024b0fc4d0948b94a8ff789cb1ba6..da264f118fca10bc7ff758e702c11f9d4885d2c2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1816,8 +1816,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1793,8 +1793,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getLocale() { diff --git a/Spigot-Server-Patches/0115-Option-to-remove-corrupt-tile-entities.patch b/Spigot-Server-Patches/0115-Option-to-remove-corrupt-tile-entities.patch index b0227b052d..b9daea3940 100644 --- a/Spigot-Server-Patches/0115-Option-to-remove-corrupt-tile-entities.patch +++ b/Spigot-Server-Patches/0115-Option-to-remove-corrupt-tile-entities.patch @@ -19,10 +19,10 @@ index ac76bdd7e1d91b0d242539c4495948cdfbb622e0..6cb717a63f52d757b0b323408d2fc0c3 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index f02d4726747a0992e851730c21c9423f706aa27a..45d7a06ea51ccc2264a7c3d1518d0b37d089c531 100644 +index 72f7d415907b7e8478b3ca4a0fd6c3897ce70d40..e33711fc14323777c86a485dee20ebaeb3989614 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -640,6 +640,12 @@ public class Chunk implements IChunkAccess { +@@ -637,6 +637,12 @@ public class Chunk implements IChunkAccess { "Chunk coordinates: " + (this.loc.x * 16) + "," + (this.loc.z * 16)); e.printStackTrace(); ServerInternalException.reportInternalException(e); diff --git a/Spigot-Server-Patches/0131-String-based-Action-Bar-API.patch b/Spigot-Server-Patches/0131-String-based-Action-Bar-API.patch index 95420d0f55..415e1fff2b 100644 --- a/Spigot-Server-Patches/0131-String-based-Action-Bar-API.patch +++ b/Spigot-Server-Patches/0131-String-based-Action-Bar-API.patch @@ -18,10 +18,10 @@ index bdfd17362518ff2398cf9e1743a7a4f0c7a0e966..cc14e4b4609fa7013df666181c0e02a5 public static Collector, ?, Map> a() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4148b53d08d7bde1c13d9cdca4330f1313b33409..207fb61243d87620b65720d4cb558c6234f92c92 100644 +index da264f118fca10bc7ff758e702c11f9d4885d2c2..6ca7a7a3267d3c8477c8333dea9ac2bbad230056 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -244,6 +244,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -221,6 +221,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper start diff --git a/Spigot-Server-Patches/0156-Entity-fromMobSpawner.patch b/Spigot-Server-Patches/0156-Entity-fromMobSpawner.patch index 9d4ea14557..a0891da9cc 100644 --- a/Spigot-Server-Patches/0156-Entity-fromMobSpawner.patch +++ b/Spigot-Server-Patches/0156-Entity-fromMobSpawner.patch @@ -49,10 +49,10 @@ index 259713339217660e8b81a9500f57c6995ea59dde..8eb20c6b9a88d5d4056f91df1f496d3d if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) { Entity vehicle = entity.getVehicle(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 833ea97631563c7e4f35a232c5f3f371e6eff689..80dfa39fdf736225c3c1ad4bf510c250c0e87dba 100644 +index e7125c8a3a4b8374e3a5ea37dc097d383ba8bdc3..1d3e4d5c88368f89f8b6da40788592362df8c87f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1070,5 +1070,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1060,5 +1060,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { Location origin = getHandle().origin; return origin == null ? null : origin.clone(); } diff --git a/Spigot-Server-Patches/0184-Ability-to-apply-mending-to-XP-API.patch b/Spigot-Server-Patches/0184-Ability-to-apply-mending-to-XP-API.patch index 955b3c02ab..9feda70428 100644 --- a/Spigot-Server-Patches/0184-Ability-to-apply-mending-to-XP-API.patch +++ b/Spigot-Server-Patches/0184-Ability-to-apply-mending-to-XP-API.patch @@ -42,10 +42,10 @@ index e2370b8cf76d6f06cbdaba009feaf5df98b36da4..a2eaea4bd847ebe0b3dc35c95c4c29d6 return i * 2; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index abc0466a2d6a059a401f57d93cd4e9465de14461..0ab5915d447b7a23deccb54763f54d09e83cf88e 100644 +index 6eb02d0a69a0375ba099f776636de765612911e5..cbeac436e57a68270b2681ddf564d84c167398bd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1098,8 +1098,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1075,8 +1075,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return GameMode.getByValue(getHandle().playerInteractManager.getGameMode().getId()); } diff --git a/Spigot-Server-Patches/0200-Player.setPlayerProfile-API.patch b/Spigot-Server-Patches/0200-Player.setPlayerProfile-API.patch index 60d4218c08..d6b11617af 100644 --- a/Spigot-Server-Patches/0200-Player.setPlayerProfile-API.patch +++ b/Spigot-Server-Patches/0200-Player.setPlayerProfile-API.patch @@ -48,10 +48,10 @@ index 230dcda34707b822790ace75957174f937821898..a3555dd251af5dd4b320428aadaffe70 uniqueId = i.getId(); // Paper end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0ab5915d447b7a23deccb54763f54d09e83cf88e..1721f3c937450eacfcb48df482535e6cf1f24fe3 100644 +index cbeac436e57a68270b2681ddf564d84c167398bd..4bcf2ed3dd2a5d51e4490d4156978c8fff0df2b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1256,8 +1256,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1233,8 +1233,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { hiddenPlayers.put(player.getUniqueId(), hidingPlugins); // Remove this player from the hidden player's EntityTrackerEntry @@ -66,7 +66,7 @@ index 0ab5915d447b7a23deccb54763f54d09e83cf88e..1721f3c937450eacfcb48df482535e6c PlayerChunkMap.EntityTracker entry = tracker.trackedEntities.get(other.getId()); if (entry != null) { entry.clear(getHandle()); -@@ -1298,8 +1303,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1275,8 +1280,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } hiddenPlayers.remove(player.getUniqueId()); @@ -81,7 +81,7 @@ index 0ab5915d447b7a23deccb54763f54d09e83cf88e..1721f3c937450eacfcb48df482535e6c getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, other)); -@@ -1308,6 +1318,50 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1285,6 +1295,50 @@ public class CraftPlayer extends CraftHumanEntity implements Player { entry.updatePlayer(getHandle()); } } diff --git a/Spigot-Server-Patches/0206-Flag-to-disable-the-channel-limit.patch b/Spigot-Server-Patches/0206-Flag-to-disable-the-channel-limit.patch index be64e678d3..c5f31512b6 100644 --- a/Spigot-Server-Patches/0206-Flag-to-disable-the-channel-limit.patch +++ b/Spigot-Server-Patches/0206-Flag-to-disable-the-channel-limit.patch @@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs. provide an optional flag to disable this check, at your own risk. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1721f3c937450eacfcb48df482535e6cf1f24fe3..df1896d447295123dbf7f8c8dea163be7849132f 100644 +index 4bcf2ed3dd2a5d51e4490d4156978c8fff0df2b0..23889ce169baf956cfb39f1ec21a8369f80c5555 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -141,6 +141,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -20,7 +20,7 @@ index 1721f3c937450eacfcb48df482535e6cf1f24fe3..df1896d447295123dbf7f8c8dea163be // Paper end public CraftPlayer(CraftServer server, EntityPlayer entity) { -@@ -1524,7 +1525,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1501,7 +1502,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void addChannel(String channel) { diff --git a/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch index 4656e6efff..c79feef5b3 100644 --- a/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch +++ b/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch @@ -180,10 +180,10 @@ index a1c318aa6501d9d0bdd53dc1fb8a99b7a782b4ce..ebcd2d043b3e6cf90b62eda1ea7a2d8c @Override public boolean isBlocking() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index df1896d447295123dbf7f8c8dea163be7849132f..18f0d23e38abb9c3e326a727cc4b4e040adb432d 100644 +index 23889ce169baf956cfb39f1ec21a8369f80c5555..25175230583bbd6fcfc864dcbae4111dcc0d3b33 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -813,7 +813,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -790,7 +790,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Close any foreign inventory if (getHandle().activeContainer != getHandle().defaultContainer) { diff --git a/Spigot-Server-Patches/0249-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch b/Spigot-Server-Patches/0249-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch index 594ebda668..eba8fb9bb6 100644 --- a/Spigot-Server-Patches/0249-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch +++ b/Spigot-Server-Patches/0249-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Mark chunk dirty anytime entities change to guarantee it diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 45d7a06ea51ccc2264a7c3d1518d0b37d089c531..edacc6da62593c94392f460cb6839ed5f8067dd4 100644 +index e33711fc14323777c86a485dee20ebaeb3989614..bc249e399befa84cdf07cc58cd0072bb9cb5cced 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -522,6 +522,7 @@ public class Chunk implements IChunkAccess { +@@ -519,6 +519,7 @@ public class Chunk implements IChunkAccess { entity.chunkZ = this.loc.z; this.entities.add(entity); // Paper - per chunk entity list this.entitySlices[k].add(entity); @@ -17,7 +17,7 @@ index 45d7a06ea51ccc2264a7c3d1518d0b37d089c531..edacc6da62593c94392f460cb6839ed5 } @Override -@@ -549,6 +550,7 @@ public class Chunk implements IChunkAccess { +@@ -546,6 +547,7 @@ public class Chunk implements IChunkAccess { return; } entityCounts.decrement(entity.getMinecraftKeyString()); diff --git a/Spigot-Server-Patches/0250-Add-some-Debug-to-Chunk-Entity-slices.patch b/Spigot-Server-Patches/0250-Add-some-Debug-to-Chunk-Entity-slices.patch index 79858a7314..4f797af4b1 100644 --- a/Spigot-Server-Patches/0250-Add-some-Debug-to-Chunk-Entity-slices.patch +++ b/Spigot-Server-Patches/0250-Add-some-Debug-to-Chunk-Entity-slices.patch @@ -9,10 +9,10 @@ This should hopefully avoid duplicate entities ever being created if the entity was to end up in 2 different chunk slices diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index edacc6da62593c94392f460cb6839ed5f8067dd4..18d55cea6258c7b59b79aec1bcdf358944d5b527 100644 +index bc249e399befa84cdf07cc58cd0072bb9cb5cced..3b3cae92513a85ba842d403c68f5a1fb8fde785d 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -513,6 +513,25 @@ public class Chunk implements IChunkAccess { +@@ -510,6 +510,25 @@ public class Chunk implements IChunkAccess { if (k >= this.entitySlices.length) { k = this.entitySlices.length - 1; } @@ -38,7 +38,7 @@ index edacc6da62593c94392f460cb6839ed5f8067dd4..18d55cea6258c7b59b79aec1bcdf3589 if (!entity.inChunk || entity.getCurrentChunk() != this) entityCounts.increment(entity.getMinecraftKeyString()); // Paper entity.inChunk = true; -@@ -522,6 +541,7 @@ public class Chunk implements IChunkAccess { +@@ -519,6 +538,7 @@ public class Chunk implements IChunkAccess { entity.chunkZ = this.loc.z; this.entities.add(entity); // Paper - per chunk entity list this.entitySlices[k].add(entity); @@ -46,7 +46,7 @@ index edacc6da62593c94392f460cb6839ed5f8067dd4..18d55cea6258c7b59b79aec1bcdf3589 this.markDirty(); // Paper } -@@ -546,6 +566,10 @@ public class Chunk implements IChunkAccess { +@@ -543,6 +563,10 @@ public class Chunk implements IChunkAccess { // Paper start if (entity.currentChunk != null && entity.currentChunk.get() == this) entity.setCurrentChunk(null); diff --git a/Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch b/Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch index f340418829..dd6780e4d3 100644 --- a/Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch +++ b/Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch @@ -18,10 +18,10 @@ an invalid entity. This should reduce log occurrences of dupe uuid messages. diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 52621ab74c8af1ab0c38e8df28cb7dc7153096a3..8affcbbb0a970acc83531f7308734552727b00c5 100644 +index f30071fe5c1f33386829cc61d8c6976a39eff24f..1e28061dd83a4bf2daab38aee84ddba3329b28dc 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -307,6 +307,7 @@ public class ChunkRegionLoader { +@@ -301,6 +301,7 @@ public class ChunkRegionLoader { nbttagcompound1.set("TileEntities", nbttaglist1); NBTTagList nbttaglist2 = new NBTTagList(); @@ -29,7 +29,7 @@ index 52621ab74c8af1ab0c38e8df28cb7dc7153096a3..8affcbbb0a970acc83531f7308734552 if (ichunkaccess.getChunkStatus().getType() == ChunkStatus.Type.LEVELCHUNK) { Chunk chunk = (Chunk) ichunkaccess; -@@ -324,13 +325,28 @@ public class ChunkRegionLoader { +@@ -312,13 +313,28 @@ public class ChunkRegionLoader { while (iterator1.hasNext()) { Entity entity = (Entity) iterator1.next(); NBTTagCompound nbttagcompound4 = new NBTTagCompound(); @@ -59,7 +59,7 @@ index 52621ab74c8af1ab0c38e8df28cb7dc7153096a3..8affcbbb0a970acc83531f7308734552 } else { ProtoChunk protochunk = (ProtoChunk) ichunkaccess; -@@ -389,6 +405,19 @@ public class ChunkRegionLoader { +@@ -377,6 +393,19 @@ public class ChunkRegionLoader { nbttagcompound1.set("Structures", a(chunkcoordintpair, ichunkaccess.h(), ichunkaccess.v())); return nbttagcompound; } diff --git a/Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch index 2d3089f0c1..603942f11e 100644 --- a/Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch +++ b/Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch @@ -23,10 +23,10 @@ index 9cb2f3b31921870ddba044840e99eb04babe26bb..f0a836db74ad3e20778d3863223bc9a3 MutablePair> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap())); ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.chunkX, e.chunkZ); diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 18d55cea6258c7b59b79aec1bcdf358944d5b527..6154f7a7973168cbe294bc0f40894f05bf20513e 100644 +index 3b3cae92513a85ba842d403c68f5a1fb8fde785d..5ee581d1634f44a98756c5d11def9c3d46fd53e9 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -821,6 +821,7 @@ public class Chunk implements IChunkAccess { +@@ -818,6 +818,7 @@ public class Chunk implements IChunkAccess { for (int i1 = 0; i1 < l; ++i1) { Entity entity1 = (Entity) list1.get(i1); @@ -34,7 +34,7 @@ index 18d55cea6258c7b59b79aec1bcdf358944d5b527..6154f7a7973168cbe294bc0f40894f05 if (entity1.getBoundingBox().c(axisalignedbb) && entity1 != entity) { if (predicate == null || predicate.test(entity1)) { -@@ -857,6 +858,7 @@ public class Chunk implements IChunkAccess { +@@ -854,6 +855,7 @@ public class Chunk implements IChunkAccess { while (iterator.hasNext()) { T entity = (T) iterator.next(); // CraftBukkit - decompile error @@ -42,7 +42,7 @@ index 18d55cea6258c7b59b79aec1bcdf358944d5b527..6154f7a7973168cbe294bc0f40894f05 if ((entitytypes == null || entity.getEntityType() == entitytypes) && entity.getBoundingBox().c(axisalignedbb) && predicate.test(entity)) { list.add(entity); -@@ -878,6 +880,7 @@ public class Chunk implements IChunkAccess { +@@ -875,6 +877,7 @@ public class Chunk implements IChunkAccess { while (iterator.hasNext()) { T t0 = (T) iterator.next(); // CraftBukkit - decompile error diff --git a/Spigot-Server-Patches/0266-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch b/Spigot-Server-Patches/0266-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch index 4a88148329..32a24fd889 100644 --- a/Spigot-Server-Patches/0266-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch +++ b/Spigot-Server-Patches/0266-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 1a312a868f6a65e7d4a53406825e9efd96d98607..4aeae5ef72c2d929c86b4f9575f2c162710f99f0 100644 +index eaa60f89bf57f348a6be287b2478b33ca2320d07..3d18a95c9ce9e2fbe142b522d41045992002f715 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -@@ -130,9 +130,16 @@ public class CraftChunk implements Chunk { +@@ -129,9 +129,16 @@ public class CraftChunk implements Chunk { @Override public BlockState[] getTileEntities() { @@ -25,7 +25,7 @@ index 1a312a868f6a65e7d4a53406825e9efd96d98607..4aeae5ef72c2d929c86b4f9575f2c162 int index = 0; net.minecraft.server.Chunk chunk = getHandle(); -@@ -144,7 +151,7 @@ public class CraftChunk implements Chunk { +@@ -143,7 +150,7 @@ public class CraftChunk implements Chunk { } BlockPosition position = (BlockPosition) obj; diff --git a/Spigot-Server-Patches/0279-Expose-attack-cooldown-methods-for-Player.patch b/Spigot-Server-Patches/0279-Expose-attack-cooldown-methods-for-Player.patch index 1ade6d313f..ad405aae6d 100644 --- a/Spigot-Server-Patches/0279-Expose-attack-cooldown-methods-for-Player.patch +++ b/Spigot-Server-Patches/0279-Expose-attack-cooldown-methods-for-Player.patch @@ -17,10 +17,10 @@ index cc20b73a993d021789840ed2ee7ba1fc8310dc5a..a6265c71973b67a0b49a41e2163a6f48 return (float) (1.0D / this.b(GenericAttributes.ATTACK_SPEED) * 20.0D); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 18f0d23e38abb9c3e326a727cc4b4e040adb432d..982b8a7028385d38ff0bd88aabd94801ae258037 100644 +index 25175230583bbd6fcfc864dcbae4111dcc0d3b33..b90b35c08cdc9bb44aaf9f4824289fd0824c937f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1993,6 +1993,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1970,6 +1970,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { getInventory().setItemInMainHand(hand); } diff --git a/Spigot-Server-Patches/0280-Improve-death-events.patch b/Spigot-Server-Patches/0280-Improve-death-events.patch index 09acd7301d..b3dc8ccffd 100644 --- a/Spigot-Server-Patches/0280-Improve-death-events.patch +++ b/Spigot-Server-Patches/0280-Improve-death-events.patch @@ -274,7 +274,7 @@ index f193c2778d0f04973546256d648692398b932dca..c54641d984bdd04067f9dba66322b01b return this.isBaby() ? (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.5F : (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F; } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index daeb5a6e005a4b85b5f3ac581c0e7cb6ea64b2c8..db7435c6923235fad63bdf531eca4a95c1b63dc9 100644 +index 7ac4e006c76373d2aedb37adf22bbb3044f9e65b..246de149254a6303b36ba1e2441499497c09bc5b 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -82,6 +82,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -352,10 +352,10 @@ index 9a2e6bedfc50fba10f37c01d825f80415bfb69d3..a4afe638515471159d505a5e402a9342 this.minecraftKey = minecraftKey; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 982b8a7028385d38ff0bd88aabd94801ae258037..6c3b9df31e9c44f7171cf08014561e4b095133b1 100644 +index b90b35c08cdc9bb44aaf9f4824289fd0824c937f..28a04cb8a90ad82b86f658ad17675ab58f7e8d41 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1784,7 +1784,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1761,7 +1761,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void sendHealthUpdate() { @@ -373,7 +373,7 @@ index 982b8a7028385d38ff0bd88aabd94801ae258037..6c3b9df31e9c44f7171cf08014561e4b public void injectScaledMaxHealth(Collection collection, boolean force) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 78f3af7de270750734f6d8d1522e0d755408e17e..4d82634cc4f1f4ef16cb027c7edfc8b7638311b5 100644 +index 95f01296b1a7763f33ec17ab4e11d85549ca95c0..460f473b0158f2392261a55db12fa735969de470 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -791,9 +791,16 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0320-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/Spigot-Server-Patches/0320-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch index f498afa77f..b98c377864 100644 --- a/Spigot-Server-Patches/0320-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/Spigot-Server-Patches/0320-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch @@ -16,7 +16,7 @@ intent to remove) and replace it with two new methods, clearly named and documented as to their purpose. diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index e69fd9985ea99c46ac20bf5cabd961eeccdbc7c1..32b2d592f2e2e736ab46a08ecbad89bc3adc3f2b 100644 +index 0bc51dd94d87b469022183c5a4f94cebe9f1a950..71604e01fe6d7dc5d8c500c10ae8b54075848b4f 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -82,6 +82,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -28,7 +28,7 @@ index e69fd9985ea99c46ac20bf5cabd961eeccdbc7c1..32b2d592f2e2e736ab46a08ecbad89bc public boolean queueHealthUpdatePacket = false; public net.minecraft.server.PacketPlayOutUpdateHealth queuedHealthUpdatePacket; diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 9a552465a262238614a6ee2a7e9118f9866d2441..3af77481c1f4671602058be8f34504b302e20c9c 100644 +index bc31e882e77f5b8657107db1e3a830df4cf561e1..9a56f83e12c65cafe3d1fb00379b78e5ea59b3f1 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -97,6 +97,7 @@ public abstract class PlayerList { @@ -106,7 +106,7 @@ index 00333548b470435aa89fb0f4b29047eb1461e992..5770d4183c1b9ab6119a25930283c023 public Location getBedSpawnLocation() { NBTTagCompound data = getData(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6c3b9df31e9c44f7171cf08014561e4b095133b1..16c0aafcb2f0dc9e44e6f68f410236b3283050e5 100644 +index 28a04cb8a90ad82b86f658ad17675ab58f7e8d41..806c621c6dfec93b7d0e46471dc2757998c90486 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -142,6 +142,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -117,7 +117,7 @@ index 6c3b9df31e9c44f7171cf08014561e4b095133b1..16c0aafcb2f0dc9e44e6f68f410236b3 // Paper end public CraftPlayer(CraftServer server, EntityPlayer entity) { -@@ -1428,6 +1429,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1405,6 +1406,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.firstPlayed = firstPlayed; } @@ -136,7 +136,7 @@ index 6c3b9df31e9c44f7171cf08014561e4b095133b1..16c0aafcb2f0dc9e44e6f68f410236b3 public void readExtraData(NBTTagCompound nbttagcompound) { hasPlayedBefore = true; if (nbttagcompound.hasKey("bukkit")) { -@@ -1450,6 +1463,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1427,6 +1440,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setExtraData(NBTTagCompound nbttagcompound) { @@ -145,7 +145,7 @@ index 6c3b9df31e9c44f7171cf08014561e4b095133b1..16c0aafcb2f0dc9e44e6f68f410236b3 if (!nbttagcompound.hasKey("bukkit")) { nbttagcompound.set("bukkit", new NBTTagCompound()); } -@@ -1464,6 +1479,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1441,6 +1456,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { data.setLong("firstPlayed", getFirstPlayed()); data.setLong("lastPlayed", System.currentTimeMillis()); data.setString("lastKnownName", handle.getName()); diff --git a/Spigot-Server-Patches/0324-Block-Entity-remove-from-being-called-on-Players.patch b/Spigot-Server-Patches/0324-Block-Entity-remove-from-being-called-on-Players.patch index 7d3b0bcc58..9133d11307 100644 --- a/Spigot-Server-Patches/0324-Block-Entity-remove-from-being-called-on-Players.patch +++ b/Spigot-Server-Patches/0324-Block-Entity-remove-from-being-called-on-Players.patch @@ -12,10 +12,10 @@ Player we will look at limiting the scope of this change. It appears to be unintentional in the few cases we've seen so far. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 16c0aafcb2f0dc9e44e6f68f410236b3283050e5..af7838a654978e86b4d2f2ff80c04da245ff1a41 100644 +index 806c621c6dfec93b7d0e46471dc2757998c90486..d43ada6dccb45060ea37acf7a2a8ea6a4d74ab18 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2038,6 +2038,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2015,6 +2015,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetCooldown() { getHandle().resetAttackCooldown(); } diff --git a/Spigot-Server-Patches/0338-Entity-getEntitySpawnReason.patch b/Spigot-Server-Patches/0338-Entity-getEntitySpawnReason.patch index 12569eca34..6536ff432f 100644 --- a/Spigot-Server-Patches/0338-Entity-getEntitySpawnReason.patch +++ b/Spigot-Server-Patches/0338-Entity-getEntitySpawnReason.patch @@ -71,7 +71,7 @@ index 1aecc84479b00a019a5b68f5e726d1c2965ae0f7..c3a5db97fd85b31c6b4bce93527b9d0e // Spigot Start if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) { diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 19d8497d691e0ec6f4451298dcf4b4831062d5ed..5b2cecba3569a35ba259427747a8d39f51d1c8cb 100644 +index cb04de23dd8b506ebfd07d60acd082d6b7e14528..fbed3c1012c5b6fe61598ae6fae64edc2ad2e490 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -262,7 +262,7 @@ public abstract class PlayerList { @@ -96,10 +96,10 @@ index d6c86ce6a6a23ac8e889b0a9e7b8b7b8513ba5d1..21c0450d10e34ba066325af1b1bf7732 if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 61cadd53ca0125585da7fa33bfb8a82908f35cd2..423e6c3d4dc0266b70eae2dfa0aca6d4cc5442c5 100644 +index d55383d8fb471fe3441dbbc8e9344b42f1d7465b..a479ca88dcf60866650c236e885dd55f47915858 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1076,5 +1076,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1066,5 +1066,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public boolean fromMobSpawner() { return getHandle().spawnedViaMobSpawner; } diff --git a/Spigot-Server-Patches/0347-Per-Player-View-Distance-API-placeholders.patch b/Spigot-Server-Patches/0347-Per-Player-View-Distance-API-placeholders.patch index b331808b88..95ded0998c 100644 --- a/Spigot-Server-Patches/0347-Per-Player-View-Distance-API-placeholders.patch +++ b/Spigot-Server-Patches/0347-Per-Player-View-Distance-API-placeholders.patch @@ -40,10 +40,10 @@ index dd4d12f4e3ab5385b85504bde962adce2981dfb5..1511212cbfbece279d9f66473bd6b5bc double deltaZ = this.locZ() - player.locZ(); double distanceSquared = deltaX * deltaX + deltaZ * deltaZ; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index af7838a654978e86b4d2f2ff80c04da245ff1a41..b5088ad2eeef0a3fae0acb3dfea7605b9a861c73 100644 +index 16edb26f9e66e26e5f26b83301613cd1486c7700..748b1c12ccee67a35232cf7a48e68ef7f34147c7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2047,6 +2047,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2024,6 +2024,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { super.remove(); } } diff --git a/Spigot-Server-Patches/0352-Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/0352-Duplicate-UUID-Resolve-Option.patch index 6cb1a0f1fb..5c94afa22e 100644 --- a/Spigot-Server-Patches/0352-Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/0352-Duplicate-UUID-Resolve-Option.patch @@ -81,10 +81,10 @@ index 15e1f9f65280043853544d3bf796f991df2482de..21910dfd1a533e923a8a73e92fea2568 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 6154f7a7973168cbe294bc0f40894f05bf20513e..0f8745ede62894f8d88fc8985e34b32acee5c698 100644 +index 5ee581d1634f44a98756c5d11def9c3d46fd53e9..8e3244fc5c6e5fff22857637b4ab5944d6b1e165 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -502,6 +502,7 @@ public class Chunk implements IChunkAccess { +@@ -499,6 +499,7 @@ public class Chunk implements IChunkAccess { if (i != this.loc.x || j != this.loc.z) { Chunk.LOGGER.warn("Wrong location! ({}, {}) should be ({}, {}), {}", i, j, this.loc.x, this.loc.z, entity); entity.dead = true; diff --git a/Spigot-Server-Patches/0360-Fix-World-isChunkGenerated-calls.patch b/Spigot-Server-Patches/0360-Fix-World-isChunkGenerated-calls.patch index 0633c0a060..96712fe8d2 100644 --- a/Spigot-Server-Patches/0360-Fix-World-isChunkGenerated-calls.patch +++ b/Spigot-Server-Patches/0360-Fix-World-isChunkGenerated-calls.patch @@ -43,10 +43,10 @@ index db6b52850f10d212b3db81dcf86c622e610f02b2..3bfd225db6945cb431238a9a980fb6d1 @Nullable diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 8affcbbb0a970acc83531f7308734552727b00c5..c8aec9380ffb4e27ee41ff478ab984d92a5837b4 100644 +index 1e28061dd83a4bf2daab38aee84ddba3329b28dc..ff859311abb0eeaedb9c9d9cf7a9e858f4e12978 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -419,6 +419,17 @@ public class ChunkRegionLoader { +@@ -407,6 +407,17 @@ public class ChunkRegionLoader { } // Paper end diff --git a/Spigot-Server-Patches/0364-Anti-Xray.patch b/Spigot-Server-Patches/0364-Anti-Xray.patch index 0fd8f45613..6534f0f727 100644 --- a/Spigot-Server-Patches/0364-Anti-Xray.patch +++ b/Spigot-Server-Patches/0364-Anti-Xray.patch @@ -975,10 +975,10 @@ index 0000000000000000000000000000000000000000..333763936897befda5bb6c077944d266 + } +} diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 71efd1efab43d5aeabba2ad385016b616f4e4849..4ff3eff58fa8007eca7eec22ef53d23705a98ed9 100644 +index 62758052546fac25fc90a9d26e5081d92eeba8b5..8dea2c50529478cf8473a53b7f760546812aa7ff 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -426,7 +426,7 @@ public class Chunk implements IChunkAccess { +@@ -423,7 +423,7 @@ public class Chunk implements IChunkAccess { return null; } @@ -1001,7 +1001,7 @@ index ed22ff28ea6c0978ec0d9d1ecf7baa3f422ed677..d2286f1549de563332c3e4181b9ada30 // Paper start diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index c8aec9380ffb4e27ee41ff478ab984d92a5837b4..4036970f4831f49eb0f35e3c11743623ac2eabb5 100644 +index ff859311abb0eeaedb9c9d9cf7a9e858f4e12978..95bc46e8d9c9f75147cfdeaf464ec3ca2e491b1c 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -58,7 +58,7 @@ public class ChunkRegionLoader { @@ -1013,8 +1013,8 @@ index c8aec9380ffb4e27ee41ff478ab984d92a5837b4..4036970f4831f49eb0f35e3c11743623 chunksection.getBlocks().a(nbttagcompound2.getList("Palette", 10), nbttagcompound2.getLongArray("BlockStates")); chunksection.recalcBlockCounts(); -@@ -122,7 +122,7 @@ public class ChunkRegionLoader { - // CraftBukkit end +@@ -116,7 +116,7 @@ public class ChunkRegionLoader { + loadEntities(nbttagcompound1, chunk); }); } else { - ProtoChunk protochunk = new ProtoChunk(chunkcoordintpair, chunkconverter, achunksection, protochunkticklist, protochunkticklist1); @@ -1427,10 +1427,10 @@ index e89b512613e77d1f11acc9dfa5fb5d69c824305f..f4a4902ed161c7fab5c625135f11ff2b convertable = convertable_conversionsession; uuid = WorldUUID.getUUID(convertable_conversionsession.folder.toFile()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 4aeae5ef72c2d929c86b4f9575f2c162710f99f0..d40ef8353b2c025309144b4123d6a7dff04a9c62 100644 +index 3d18a95c9ce9e2fbe142b522d41045992002f715..ddad3440d364ebe98f6fabf00e90766b4ea4a5c2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -@@ -42,7 +42,7 @@ public class CraftChunk implements Chunk { +@@ -41,7 +41,7 @@ public class CraftChunk implements Chunk { private final WorldServer worldServer; private final int x; private final int z; @@ -1439,7 +1439,7 @@ index 4aeae5ef72c2d929c86b4f9575f2c162710f99f0..d40ef8353b2c025309144b4123d6a7df private static final byte[] emptyLight = new byte[2048]; public CraftChunk(net.minecraft.server.Chunk chunk) { -@@ -264,7 +264,7 @@ public class CraftChunk implements Chunk { +@@ -263,7 +263,7 @@ public class CraftChunk implements Chunk { NBTTagCompound data = new NBTTagCompound(); cs[i].getBlocks().a(data, "Palette", "BlockStates"); diff --git a/Spigot-Server-Patches/0369-Avoid-hopper-searches-if-there-are-no-items.patch b/Spigot-Server-Patches/0369-Avoid-hopper-searches-if-there-are-no-items.patch index b85922eb90..76068ef395 100644 --- a/Spigot-Server-Patches/0369-Avoid-hopper-searches-if-there-are-no-items.patch +++ b/Spigot-Server-Patches/0369-Avoid-hopper-searches-if-there-are-no-items.patch @@ -14,7 +14,7 @@ And since minecart hoppers are used _very_ rarely near we can avoid alot of sear Combined, this adds up a lot. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50909bb3d7 100644 +index 8dea2c50529478cf8473a53b7f760546812aa7ff..a6cd89e0850c11ab6dd7f77842583c456c7f93dd 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -85,6 +85,10 @@ public class Chunk implements IChunkAccess { @@ -28,7 +28,7 @@ index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50 // Paper end public Chunk(World world, ChunkCoordIntPair chunkcoordintpair, BiomeStorage biomestorage, ChunkConverter chunkconverter, TickList ticklist, TickList ticklist1, long i, @Nullable ChunkSection[] achunksection, @Nullable Consumer consumer) { -@@ -542,6 +546,13 @@ public class Chunk implements IChunkAccess { +@@ -539,6 +543,13 @@ public class Chunk implements IChunkAccess { entity.chunkZ = this.loc.z; this.entities.add(entity); // Paper - per chunk entity list this.entitySlices[k].add(entity); @@ -42,7 +42,7 @@ index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50 entity.entitySlice = this.entitySlices[k]; // Paper this.markDirty(); // Paper } -@@ -574,6 +585,11 @@ public class Chunk implements IChunkAccess { +@@ -571,6 +582,11 @@ public class Chunk implements IChunkAccess { if (!this.entitySlices[i].remove(entity)) { return; } @@ -54,7 +54,7 @@ index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50 entityCounts.decrement(entity.getMinecraftKeyString()); this.markDirty(); // Paper // Paper end -@@ -857,6 +873,14 @@ public class Chunk implements IChunkAccess { +@@ -854,6 +870,14 @@ public class Chunk implements IChunkAccess { for (int k = i; k <= j; ++k) { Iterator iterator = this.entitySlices[k].iterator(); // Spigot @@ -69,7 +69,7 @@ index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50 while (iterator.hasNext()) { T entity = (T) iterator.next(); // CraftBukkit - decompile error if (entity.shouldBeRemoved) continue; // Paper -@@ -876,9 +900,29 @@ public class Chunk implements IChunkAccess { +@@ -873,9 +897,29 @@ public class Chunk implements IChunkAccess { i = MathHelper.clamp(i, 0, this.entitySlices.length - 1); j = MathHelper.clamp(j, 0, this.entitySlices.length - 1); diff --git a/Spigot-Server-Patches/0370-Asynchronous-chunk-IO-and-loading.patch b/Spigot-Server-Patches/0370-Asynchronous-chunk-IO-and-loading.patch index 59884380f0..3a5d56f1d2 100644 --- a/Spigot-Server-Patches/0370-Asynchronous-chunk-IO-and-loading.patch +++ b/Spigot-Server-Patches/0370-Asynchronous-chunk-IO-and-loading.patch @@ -2495,7 +2495,7 @@ index b49420bdbdd00148fc5f9a21d3f4953457b2cdc6..032464901e02392df4966c68cce8d06f } finally { playerChunkMap.callbackExecutor.run(); diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7c6cb1c64 100644 +index 95bc46e8d9c9f75147cfdeaf464ec3ca2e491b1c..61aef3c14dff6bda603175883f9cb1b9a2c82428 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -6,6 +6,7 @@ import it.unimi.dsi.fastutil.longs.LongOpenHashSet; @@ -2579,7 +2579,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7 } } } -@@ -184,7 +221,7 @@ public class ChunkRegionLoader { +@@ -178,7 +215,7 @@ public class ChunkRegionLoader { } if (chunkstatus_type == ChunkStatus.Type.LEVELCHUNK) { @@ -2588,7 +2588,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7 } else { ProtoChunk protochunk1 = (ProtoChunk) object; -@@ -223,11 +260,83 @@ public class ChunkRegionLoader { +@@ -217,11 +254,83 @@ public class ChunkRegionLoader { protochunk1.a(worldgenstage_features, BitSet.valueOf(nbttagcompound5.getByteArray(s1))); } @@ -2673,7 +2673,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7 ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos(); NBTTagCompound nbttagcompound = new NBTTagCompound(); NBTTagCompound nbttagcompound1 = new NBTTagCompound(); -@@ -236,7 +345,7 @@ public class ChunkRegionLoader { +@@ -230,7 +339,7 @@ public class ChunkRegionLoader { nbttagcompound.set("Level", nbttagcompound1); nbttagcompound1.setInt("xPos", chunkcoordintpair.x); nbttagcompound1.setInt("zPos", chunkcoordintpair.z); @@ -2682,15 +2682,15 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7 nbttagcompound1.setLong("InhabitedTime", ichunkaccess.getInhabitedTime()); nbttagcompound1.setString("Status", ichunkaccess.getChunkStatus().d()); ChunkConverter chunkconverter = ichunkaccess.p(); -@@ -252,14 +361,22 @@ public class ChunkRegionLoader { +@@ -246,14 +355,22 @@ public class ChunkRegionLoader { NBTTagCompound nbttagcompound2; - for (int i = -1; i < 17; ++i) { + for (int i = -1; i < 17; ++i) { // Paper - conflict on loop parameter change - int finalI = i; // CraftBukkit - decompile errors + int finalI = i; ChunkSection chunksection = (ChunkSection) Arrays.stream(achunksection).filter((chunksection1) -> { - return chunksection1 != null && chunksection1.getYPosition() >> 4 == finalI; // CraftBukkit - decompile errors + return chunksection1 != null && chunksection1.getYPosition() >> 4 == finalI; }).findFirst().orElse(Chunk.a); - NibbleArray nibblearray = lightenginethreaded.a(EnumSkyBlock.BLOCK).a(SectionPosition.a(chunkcoordintpair, i)); - NibbleArray nibblearray1 = lightenginethreaded.a(EnumSkyBlock.SKY).a(SectionPosition.a(chunkcoordintpair, i)); @@ -2709,7 +2709,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7 if (chunksection != Chunk.a || nibblearray != null || nibblearray1 != null) { nbttagcompound2 = new NBTTagCompound(); nbttagcompound2.setByte("Y", (byte) (i & 255)); -@@ -326,7 +443,7 @@ public class ChunkRegionLoader { +@@ -314,7 +431,7 @@ public class ChunkRegionLoader { Entity entity = (Entity) iterator1.next(); NBTTagCompound nbttagcompound4 = new NBTTagCompound(); // Paper start @@ -2718,7 +2718,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7 toUpdate.add(entity); continue; } -@@ -369,24 +486,32 @@ public class ChunkRegionLoader { +@@ -357,24 +474,32 @@ public class ChunkRegionLoader { } nbttagcompound1.set("Entities", nbttaglist2); @@ -4094,7 +4094,7 @@ index e741d1f966869b057652a93a1ef1785ad152f303..204ad44454732345be78c5c428dfb178 // Spigot start @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 423e6c3d4dc0266b70eae2dfa0aca6d4cc5442c5..fb6fa1d15dc7d189a38e2cc78d9c7d24cf0af752 100644 +index a479ca88dcf60866650c236e885dd55f47915858..26376c995102753fcd298b1eea6e195bae238d65 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -501,6 +501,28 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/Spigot-Server-Patches/0381-Performance-improvement-for-Chunk.getEntities.patch b/Spigot-Server-Patches/0381-Performance-improvement-for-Chunk.getEntities.patch index c5bcf0e773..1a29e821a7 100644 --- a/Spigot-Server-Patches/0381-Performance-improvement-for-Chunk.getEntities.patch +++ b/Spigot-Server-Patches/0381-Performance-improvement-for-Chunk.getEntities.patch @@ -10,10 +10,10 @@ operation. This patch will reduce the load of plugins which for example implement custom moblimits and depend on Chunk.getEntities(). diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index d40ef8353b2c025309144b4123d6a7dff04a9c62..26210b233bb40565326cf25f568dca0984ce7313 100644 +index ddad3440d364ebe98f6fabf00e90766b4ea4a5c2..2a08a3170fcef666cb3096511d8a592e575c9734 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -@@ -115,14 +115,14 @@ public class CraftChunk implements Chunk { +@@ -114,14 +114,14 @@ public class CraftChunk implements Chunk { Entity[] entities = new Entity[count]; for (int i = 0; i < 16; i++) { diff --git a/Spigot-Server-Patches/0409-Optimise-random-block-ticking.patch b/Spigot-Server-Patches/0409-Optimise-random-block-ticking.patch index 64bbc0bf25..487b0293fc 100644 --- a/Spigot-Server-Patches/0409-Optimise-random-block-ticking.patch +++ b/Spigot-Server-Patches/0409-Optimise-random-block-ticking.patch @@ -83,10 +83,10 @@ index f068436960c96b0df427bcdf337a4dcc6a9f66f5..253423acc3c3697a5e47136f34da9261 return this.d(baseblockposition.getX(), baseblockposition.getY(), baseblockposition.getZ()); } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 211e4353e88ad703c7f6aa8e416e6a50909bb3d7..98401f36f768f36f98007c52c998252e25b07d47 100644 +index a6cd89e0850c11ab6dd7f77842583c456c7f93dd..20c3e425f4299318c49128f3d330b889a0c1c52a 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -596,8 +596,8 @@ public class Chunk implements IChunkAccess { +@@ -593,8 +593,8 @@ public class Chunk implements IChunkAccess { this.entities.remove(entity); // Paper } diff --git a/Spigot-Server-Patches/0418-Optimise-Chunk-getFluid.patch b/Spigot-Server-Patches/0418-Optimise-Chunk-getFluid.patch index 3df0d133c6..d1429a76d8 100644 --- a/Spigot-Server-Patches/0418-Optimise-Chunk-getFluid.patch +++ b/Spigot-Server-Patches/0418-Optimise-Chunk-getFluid.patch @@ -8,10 +8,10 @@ faster on its own, however removing the try catch makes it easier to inline due to code size diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 98401f36f768f36f98007c52c998252e25b07d47..0bdd463a35d4b45fd6e50ab35046f1783600d3ee 100644 +index 20c3e425f4299318c49128f3d330b889a0c1c52a..eebd014f9c0f4285f16d9ffac79e604854a6926c 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -389,17 +389,20 @@ public class Chunk implements IChunkAccess { +@@ -386,17 +386,20 @@ public class Chunk implements IChunkAccess { } public Fluid a(int i, int j, int k) { @@ -39,7 +39,7 @@ index 98401f36f768f36f98007c52c998252e25b07d47..0bdd463a35d4b45fd6e50ab35046f178 CrashReport crashreport = CrashReport.a(throwable, "Getting fluid state"); CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Block being got"); -@@ -408,6 +411,7 @@ public class Chunk implements IChunkAccess { +@@ -405,6 +408,7 @@ public class Chunk implements IChunkAccess { }); throw new ReportedException(crashreport); } diff --git a/Spigot-Server-Patches/0449-Implement-Player-Client-Options-API.patch b/Spigot-Server-Patches/0449-Implement-Player-Client-Options-API.patch index 258768e6d9..a305f3fa33 100644 --- a/Spigot-Server-Patches/0449-Implement-Player-Client-Options-API.patch +++ b/Spigot-Server-Patches/0449-Implement-Player-Client-Options-API.patch @@ -149,7 +149,7 @@ index dbc3552d50c4129e1844c8a379ab5ba396645f52..87ec3987d4b6de836016e91ef90383e3 return this.e; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b5088ad2eeef0a3fae0acb3dfea7605b9a861c73..3c24c1cc5045fbf794e605a5dd5473d8bf8e6542 100644 +index 748b1c12ccee67a35232cf7a48e68ef7f34147c7..e905aa4d668f51f0e0d2d140fcac54e5038aebfe 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1,5 +1,8 @@ @@ -161,7 +161,7 @@ index b5088ad2eeef0a3fae0acb3dfea7605b9a861c73..3c24c1cc5045fbf794e605a5dd5473d8 import com.destroystokyo.paper.Title; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; -@@ -2057,6 +2060,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2034,6 +2037,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setViewDistance(int viewDistance) { throw new NotImplementedException("Per-Player View Distance APIs need further understanding to properly implement (There are per world view distances though!)"); // TODO } diff --git a/Spigot-Server-Patches/0471-No-Tick-view-distance-implementation.patch b/Spigot-Server-Patches/0471-No-Tick-view-distance-implementation.patch index 12929771e1..932abf17bc 100644 --- a/Spigot-Server-Patches/0471-No-Tick-view-distance-implementation.patch +++ b/Spigot-Server-Patches/0471-No-Tick-view-distance-implementation.patch @@ -23,7 +23,7 @@ index c9164dfdb27ddf3709129c8aec54903a1df121ff..e33e889c291d37a821a4fbd40d9aac7b })); diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index a8ab4bcd55d7705542c87079bb9c27db1b381fe0..e884456fac00a81d251f75fb9eea98092dc96408 100644 +index a6dcc3606dd1f8aa963d4f09cad93d918d555339..ab9170c8440dbd30639c2d451b58583fef13220e 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -620,4 +620,9 @@ public class PaperWorldConfig { @@ -37,10 +37,10 @@ index a8ab4bcd55d7705542c87079bb9c27db1b381fe0..e884456fac00a81d251f75fb9eea9809 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 0bdd463a35d4b45fd6e50ab35046f1783600d3ee..b7bfdab0e8ba47cd78bff77efabc6a2a1936157b 100644 +index eebd014f9c0f4285f16d9ffac79e604854a6926c..6ac8670c76eaf0c1292c6e88c63eaf6b18c9fbb8 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -201,7 +201,51 @@ public class Chunk implements IChunkAccess { +@@ -198,7 +198,51 @@ public class Chunk implements IChunkAccess { } protected void onNeighbourChange(final long bitsetBefore, final long bitsetAfter) { diff --git a/Spigot-Server-Patches/0481-Optimize-NibbleArray-to-use-pooled-buffers.patch b/Spigot-Server-Patches/0481-Optimize-NibbleArray-to-use-pooled-buffers.patch index 1b81248663..10babb4196 100644 --- a/Spigot-Server-Patches/0481-Optimize-NibbleArray-to-use-pooled-buffers.patch +++ b/Spigot-Server-Patches/0481-Optimize-NibbleArray-to-use-pooled-buffers.patch @@ -9,10 +9,10 @@ an object pool for these. Uses lots of advanced new capabilities of the Paper codebase :) diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 2582eef2ff24afec14268ee0dbfaba63822b83c1..f18cb4aedc4a6536bf45db591b6d2b64cefce676 100644 +index 937bd0daf84f6b5f382dea73e20f2fd6ad903000..3d06c87b64c209526bee2ea11b58d30fe9b1d062 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -392,11 +392,11 @@ public class ChunkRegionLoader { +@@ -386,11 +386,11 @@ public class ChunkRegionLoader { } if (nibblearray != null && !nibblearray.c()) { @@ -353,10 +353,10 @@ index 6b70df646c6a690ab9437ead96c5ff097e4e12d2..a22f0cccecc85b4e4fe4603bcfa213f1 this.d &= ~(1 << k); if (nibblearray != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 26210b233bb40565326cf25f568dca0984ce7313..42b47634437135a9e9b608283f3ce81c98ca181a 100644 +index 2a08a3170fcef666cb3096511d8a592e575c9734..d2c45157a27c24651c72fd8ab9a0950dec097b84 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -@@ -275,14 +275,14 @@ public class CraftChunk implements Chunk { +@@ -274,14 +274,14 @@ public class CraftChunk implements Chunk { sectionSkyLights[i] = emptyLight; } else { sectionSkyLights[i] = new byte[2048]; diff --git a/Spigot-Server-Patches/0485-Add-option-for-console-having-all-permissions.patch b/Spigot-Server-Patches/0485-Add-option-for-console-having-all-permissions.patch index 8dbbd49676..0eba836a8f 100644 --- a/Spigot-Server-Patches/0485-Add-option-for-console-having-all-permissions.patch +++ b/Spigot-Server-Patches/0485-Add-option-for-console-having-all-permissions.patch @@ -19,10 +19,10 @@ index e750aedfad992635019d1abd7c880f4829b1e41d..d393e37f50e2815da6b486ff0c3e277f + } diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java -index 089fe4a3458ed3106fa214f89a7004a5d3c6bb95..64d1ebf8db91cbf8c1430c80aa089aac49d6163b 100644 +index bfd21a07280a79d279388c785c78fb8fe731102a..e67da10f9bfbb8125d8fbf34695997ecfebcc484 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java +++ b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java -@@ -80,4 +80,16 @@ public class CraftConsoleCommandSender extends ServerCommandSender implements Co +@@ -74,4 +74,16 @@ public class CraftConsoleCommandSender extends ServerCommandSender implements Co public boolean isConversing() { return conversationTracker.isConversing(); } diff --git a/Spigot-Server-Patches/0486-Workaround-for-Client-Lag-Spikes-MC-162253.patch b/Spigot-Server-Patches/0486-Workaround-for-Client-Lag-Spikes-MC-162253.patch index 09d8e94be4..cee63e8ec2 100644 --- a/Spigot-Server-Patches/0486-Workaround-for-Client-Lag-Spikes-MC-162253.patch +++ b/Spigot-Server-Patches/0486-Workaround-for-Client-Lag-Spikes-MC-162253.patch @@ -12,10 +12,10 @@ to the client, so that it doesn't attempt to calculate them. This mitigates the frametime impact to a minimum (but it's still there). diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index b7bfdab0e8ba47cd78bff77efabc6a2a1936157b..083da88c1dd78b8ecdc8329c94430189cecb9d95 100644 +index 6ac8670c76eaf0c1292c6e88c63eaf6b18c9fbb8..299d7d7a55532930e2d4340a6cfe77a5fd8a0a0c 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -233,7 +233,7 @@ public class Chunk implements IChunkAccess { +@@ -230,7 +230,7 @@ public class Chunk implements IChunkAccess { // broadcast Object[] backingSet = inRange.getBackingSet(); diff --git a/Spigot-Server-Patches/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/Spigot-Server-Patches/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch index 5ba804b099..8d74995c25 100644 --- a/Spigot-Server-Patches/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch +++ b/Spigot-Server-Patches/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch @@ -1237,10 +1237,10 @@ index f35dda50fd9015a793708d214c648d75f9f87e2b..ae1f9dde6887988ca682f53cba316ce5 net.minecraft.server.Chunk chunk = (net.minecraft.server.Chunk) either.left().orElse(null); return CompletableFuture.completedFuture(chunk == null ? null : chunk.getBukkitChunk()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3c24c1cc5045fbf794e605a5dd5473d8bf8e6542..453cae339656a52a6d42bc712de546b340a5e91c 100644 +index e905aa4d668f51f0e0d2d140fcac54e5038aebfe..0c45159eb7747d943dc45efc60f5dc7d72b8f022 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -766,6 +766,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -743,6 +743,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { throw new UnsupportedOperationException("Cannot set rotation of players. Consider teleporting instead."); } diff --git a/Spigot-Server-Patches/0488-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch b/Spigot-Server-Patches/0488-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch index a193ebdc2f..11f5e50be7 100644 --- a/Spigot-Server-Patches/0488-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch +++ b/Spigot-Server-Patches/0488-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch @@ -16,29 +16,23 @@ We further improve it by making a copy of the nbt tag with only the memory it needs, so that we dont have to hold a copy to the entire compound. diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index f18cb4aedc4a6536bf45db591b6d2b64cefce676..9e7f63d53727c126023da01613c01d97e32d7a75 100644 +index 3d06c87b64c209526bee2ea11b58d30fe9b1d062..335bb1dcb7285edabb6c5e7ec6ba4d6d40c60dcb 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -156,15 +156,9 @@ public class ChunkRegionLoader { +@@ -156,9 +156,9 @@ public class ChunkRegionLoader { object2 = protochunkticklist1; } - object = new Chunk(worldserver.getMinecraftWorld(), chunkcoordintpair, biomestorage, chunkconverter, (TickList) object1, (TickList) object2, j, achunksection, (chunk) -> { - loadEntities(nbttagcompound1, chunk); -- // CraftBukkit start - load chunk persistent data from nbt -- NBTTagCompound persistentBase = nbttagcompound1.getCompound("BukkitValues"); -- if (persistentBase != null) { -- chunk.persistentDataContainer.putAll(nbttagcompound1); -- } -- // CraftBukkit end - }); + object = new Chunk(worldserver.getMinecraftWorld(), chunkcoordintpair, biomestorage, chunkconverter, (TickList) object1, (TickList) object2, j, achunksection, // Paper start - fix massive nbt memory leak due to lambda. move lambda into a container method to not leak scope. Only clone needed NBT keys. -+ createLoadEntitiesConsumer(new SafeNBTCopy(nbttagcompound1, "TileEntities", "Entities", "BukkitValues")) // Paper - move CB Chunk PDC into here ++ createLoadEntitiesConsumer(new SafeNBTCopy(nbttagcompound1, "TileEntities", "Entities")) + );// Paper end } else { ProtoChunk protochunk = new ProtoChunk(chunkcoordintpair, chunkconverter, achunksection, protochunkticklist, protochunkticklist1, worldserver); // Paper - Anti-Xray - Add parameter -@@ -270,6 +264,45 @@ public class ChunkRegionLoader { +@@ -264,6 +264,37 @@ public class ChunkRegionLoader { return new InProgressChunkHolder(protochunk1, tasksToExecuteOnMain); // Paper - Async chunk loading } } @@ -70,15 +64,7 @@ index f18cb4aedc4a6536bf45db591b6d2b64cefce676..9e7f63d53727c126023da01613c01d97 + } + } + private static java.util.function.Consumer createLoadEntitiesConsumer(NBTTagCompound nbt) { -+ return (chunk) -> { -+ loadEntities(nbt, chunk); -+ // CraftBukkit start - load chunk persistent data from nbt -+ NBTTagCompound persistentBase = nbt.getCompound("BukkitValues"); -+ if (persistentBase != null) { -+ chunk.persistentDataContainer.putAll(nbt); -+ } -+ // CraftBukkit end -+ }; ++ return (chunk) -> loadEntities(nbt, chunk); + } + // Paper end diff --git a/Spigot-Server-Patches/0523-Add-entity-liquid-API.patch b/Spigot-Server-Patches/0523-Add-entity-liquid-API.patch index fa6f3e4fe2..31f98d9597 100644 --- a/Spigot-Server-Patches/0523-Add-entity-liquid-API.patch +++ b/Spigot-Server-Patches/0523-Add-entity-liquid-API.patch @@ -40,10 +40,10 @@ index d903460c32213fa2d5362671efc9e96b142daf9a..3e6ccdd5b54dbe51d4ee9ec979cbc2d0 return !this.justCreated && this.M.getDouble(TagsFluid.LAVA) > 0.0D; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index fb6fa1d15dc7d189a38e2cc78d9c7d24cf0af752..e3026d54cb6b6e8fe9164a1bc7d5500c62ba7211 100644 +index 26376c995102753fcd298b1eea6e195bae238d65..b1fdc5737d332c6210d57793468da1eda8f8b9d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1103,5 +1103,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1093,5 +1093,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason() { return getHandle().spawnReason; } diff --git a/Spigot-Server-Patches/0550-Brand-support.patch b/Spigot-Server-Patches/0550-Brand-support.patch index 3268680313..bf1ff7e1b5 100644 --- a/Spigot-Server-Patches/0550-Brand-support.patch +++ b/Spigot-Server-Patches/0550-Brand-support.patch @@ -65,10 +65,10 @@ index 45cf34c35af9d2ae9a60ff81af5bea3495d4621f..16664a446192c77903ff1f10989c7afa return (!this.player.joining && !this.networkManager.isConnected()) || this.processedDisconnect; // Paper } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 453cae339656a52a6d42bc712de546b340a5e91c..bdfd9f84209dec8ee312f72075c9e71c30cbbdec 100644 +index 0c45159eb7747d943dc45efc60f5dc7d72b8f022..da32f4affd381b08bd50e5882abffa58575737dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2166,6 +2166,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2143,6 +2143,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end }; diff --git a/Spigot-Server-Patches/0560-Brand-support.patch b/Spigot-Server-Patches/0560-Brand-support.patch index 120781781e..ca109b5443 100644 --- a/Spigot-Server-Patches/0560-Brand-support.patch +++ b/Spigot-Server-Patches/0560-Brand-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index bdfd9f84209dec8ee312f72075c9e71c30cbbdec..fb1852ea6bf6997771a3522079bf3a32ebca357c 100644 +index da32f4affd381b08bd50e5882abffa58575737dd..7e91e95941039cce630ed3eb88e1919e1d08c091 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2169,7 +2169,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2146,7 +2146,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper start - brand support @Override public String getClientBrandName() { diff --git a/Spigot-Server-Patches/0580-Entity-isTicking.patch b/Spigot-Server-Patches/0580-Entity-isTicking.patch index c9b1ea1c48..cae363afef 100644 --- a/Spigot-Server-Patches/0580-Entity-isTicking.patch +++ b/Spigot-Server-Patches/0580-Entity-isTicking.patch @@ -19,10 +19,10 @@ index ebdbbeb1b55b428dde3ab1c9691cb153c6c2fe76..28e2d3f0a5e2ab084175bf0bba88816f // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index c08fe368409137c33501aaca369e99a0924f0339..0f419d3e0621c71d43f85aa852bc3fc5405f1cf6 100644 +index 6ceb2d50c59b63a337364605f8a5280d905f2662..6f59f8d4541451573eb50a1a3190788c51490502 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1131,5 +1131,9 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1121,5 +1121,9 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public boolean isInLava() { return getHandle().isInLava(); } diff --git a/work/Bukkit b/work/Bukkit index 01e22e0972..9165c3c0b0 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 01e22e09726e700776739ec0662acd30e7844cec +Subproject commit 9165c3c0b0e34aefce111933495e1c3efb000d4b diff --git a/work/CraftBukkit b/work/CraftBukkit index 4ef13f94d6..055870c4bc 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 4ef13f94d6a4042e0dadd622666a50cee7468d26 +Subproject commit 055870c4bca477067f9113deb1090228cccf67c6 diff --git a/work/Spigot b/work/Spigot index 57bbdd8eb7..988b41197d 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 57bbdd8eb797a51960cf9a47f764b68f97d4f18c +Subproject commit 988b41197dad25f715bf535ec725af7c0c1a1627