diff --git a/patches/unapplied/server/0143-Profile-Lookup-Events.patch b/patches/server/0142-Profile-Lookup-Events.patch similarity index 100% rename from patches/unapplied/server/0143-Profile-Lookup-Events.patch rename to patches/server/0142-Profile-Lookup-Events.patch diff --git a/patches/unapplied/server/0144-Block-player-logins-during-server-shutdown.patch b/patches/server/0143-Block-player-logins-during-server-shutdown.patch similarity index 87% rename from patches/unapplied/server/0144-Block-player-logins-during-server-shutdown.patch rename to patches/server/0143-Block-player-logins-during-server-shutdown.patch index 2133806ab7..85cf55389a 100644 --- a/patches/unapplied/server/0144-Block-player-logins-during-server-shutdown.patch +++ b/patches/server/0143-Block-player-logins-during-server-shutdown.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Block player logins during server shutdown diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 7a9094e69684c2d963411525a09872024c6f62e3..6e9e0385881c60c6921b06663869546f7c852804 100644 +index db07502d4d7b73c0e74814334be6603121f60673..a738f70c9c2f8832277a239e6d79d91d663d4cf9 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -72,6 +72,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -74,6 +74,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @Override public void tick() { diff --git a/patches/unapplied/server/0145-Entity-fromMobSpawner.patch b/patches/server/0144-Entity-fromMobSpawner.patch similarity index 74% rename from patches/unapplied/server/0145-Entity-fromMobSpawner.patch rename to patches/server/0144-Entity-fromMobSpawner.patch index 13f020fb4f..4739889fa4 100644 --- a/patches/unapplied/server/0145-Entity-fromMobSpawner.patch +++ b/patches/server/0144-Entity-fromMobSpawner.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bea207f8fc4cd1af06622e10ff904d9459d4bc66..4e20bdcd15b030b408a8ee640f36c51b45a90e26 100644 +index ffd38defdd9b56b1849a3b4e312de2cff7b964c2..ba96a1c657d4e81076536d0d6432e4d6584bda2c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -388,6 +388,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -393,6 +393,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Spigot end // Paper start protected int numCollisions = 0; // Paper @@ -16,18 +16,18 @@ index bea207f8fc4cd1af06622e10ff904d9459d4bc66..4e20bdcd15b030b408a8ee640f36c51b @javax.annotation.Nullable private org.bukkit.util.Vector origin; @javax.annotation.Nullable -@@ -2177,6 +2178,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2200,6 +2201,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } - nbt.put("Paper.Origin", this.newDoubleList(origin.getX(), origin.getY(), origin.getZ())); + nbttagcompound.put("Paper.Origin", this.newDoubleList(origin.getX(), origin.getY(), origin.getZ())); } + // Save entity's from mob spawner status + if (spawnedViaMobSpawner) { + nbt.putBoolean("Paper.FromMobSpawner", true); + } // Paper end - return nbt; + return nbttagcompound; } catch (Throwable throwable) { -@@ -2317,6 +2322,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2340,6 +2345,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.originWorld = originWorld; origin = new org.bukkit.util.Vector(originTag.getDouble(0), originTag.getDouble(1), originTag.getDouble(2)); } @@ -37,10 +37,10 @@ index bea207f8fc4cd1af06622e10ff904d9459d4bc66..4e20bdcd15b030b408a8ee640f36c51b } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 7ae0465091db8e8061737bf93884afa3db49feeb..5d6403fa27521860a69a707dc4358b013adfafd7 100644 +index bd48f49d50709354abc5bcff155b5abb9ab20191..1a5fb001e28997a113ad8133e9dc946206b85c35 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java -@@ -165,6 +165,7 @@ public abstract class BaseSpawner { +@@ -167,6 +167,7 @@ public abstract class BaseSpawner { // Spigot End } @@ -49,10 +49,10 @@ index 7ae0465091db8e8061737bf93884afa3db49feeb..5d6403fa27521860a69a707dc4358b01 if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) { continue; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 68d00a158751d24c7f0e38920d78c0547f1928eb..cc858aa0bdcfca69c37f962137e8caf9a8e33fd2 100644 +index 6100b2e718954b40f63ed30ab32e1dea4edba9a6..09cae000b1ff23ab3a0f2a43d83bc7ec05b5623f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1317,5 +1317,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1361,5 +1361,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { //noinspection ConstantConditions return originVector.toLocation(world); } diff --git a/patches/unapplied/server/0146-Improve-the-Saddle-API-for-Horses.patch b/patches/server/0145-Improve-the-Saddle-API-for-Horses.patch similarity index 100% rename from patches/unapplied/server/0146-Improve-the-Saddle-API-for-Horses.patch rename to patches/server/0145-Improve-the-Saddle-API-for-Horses.patch diff --git a/patches/unapplied/server/0147-Implement-ensureServerConversions-API.patch b/patches/server/0146-Implement-ensureServerConversions-API.patch similarity index 87% rename from patches/unapplied/server/0147-Implement-ensureServerConversions-API.patch rename to patches/server/0146-Implement-ensureServerConversions-API.patch index e75e93f212..534e55e44d 100644 --- a/patches/unapplied/server/0147-Implement-ensureServerConversions-API.patch +++ b/patches/server/0146-Implement-ensureServerConversions-API.patch @@ -7,10 +7,10 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr to ensure it meets latest minecraft expectations. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index cae548dbb5a3027e2de0bfbe38918ec7c2803e8e..c95c51605ae75cf340c7b0a88ae9146d8b31063e 100644 +index e6a47317eb24fc65ed02a4d4f9c4b19b5abc920d..8e8bcf829818fbbaedb13d9eddca096d457c511a 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -206,7 +206,7 @@ public final class ItemStack { +@@ -229,7 +229,7 @@ public final class ItemStack { // Called to run this stack through the data converter to handle older storage methods and serialized items public void convertStack(int version) { @@ -20,10 +20,10 @@ index cae548dbb5a3027e2de0bfbe38918ec7c2803e8e..c95c51605ae75cf340c7b0a88ae9146d this.save(savedStack); savedStack = (CompoundTag) MinecraftServer.getServer().fixerUpper.update(References.ITEM_STACK, new Dynamic(NbtOps.INSTANCE, savedStack), version, CraftMagicNumbers.INSTANCE.getDataVersion()).getValue(); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index bb522d4b7485383186cb3ce82a48ae7160ae7e0e..e21999ac116d6788fb8c367cee67190cb49c5f63 100644 +index 4c5ef6472947baf2ca3cc294eed77ceebd6cd5af..edb3b4efb38a644e312bf4dde4c756bec21192f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -508,4 +508,11 @@ public final class CraftItemFactory implements ItemFactory { +@@ -511,4 +511,11 @@ public final class CraftItemFactory implements ItemFactory { return io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(itemStack).getDisplayName()); } // Paper end - Adventure diff --git a/patches/unapplied/server/0148-Implement-getI18NDisplayName.patch b/patches/server/0147-Implement-getI18NDisplayName.patch similarity index 89% rename from patches/unapplied/server/0148-Implement-getI18NDisplayName.patch rename to patches/server/0147-Implement-getI18NDisplayName.patch index c3c3780802..7248d82fa0 100644 --- a/patches/unapplied/server/0148-Implement-getI18NDisplayName.patch +++ b/patches/server/0147-Implement-getI18NDisplayName.patch @@ -8,10 +8,10 @@ Currently the server only supports the English language. To override this, You must replace the language file embedded in the server jar. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index e21999ac116d6788fb8c367cee67190cb49c5f63..8a89fd0f771e0df439dc9070df7dfa6f2cbd5de2 100644 +index edb3b4efb38a644e312bf4dde4c756bec21192f7..b6f5e63c7e7e45dd3eb15bad5c6bee9d5417311e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -515,4 +515,19 @@ public final class CraftItemFactory implements ItemFactory { +@@ -518,4 +518,19 @@ public final class CraftItemFactory implements ItemFactory { return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item)); } // Paper end - ensure server conversions API diff --git a/patches/unapplied/server/0149-ProfileWhitelistVerifyEvent.patch b/patches/server/0148-ProfileWhitelistVerifyEvent.patch similarity index 93% rename from patches/unapplied/server/0149-ProfileWhitelistVerifyEvent.patch rename to patches/server/0148-ProfileWhitelistVerifyEvent.patch index 6e1073f18e..a5420968c0 100644 --- a/patches/unapplied/server/0149-ProfileWhitelistVerifyEvent.patch +++ b/patches/server/0148-ProfileWhitelistVerifyEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ProfileWhitelistVerifyEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index daabc5739b7bf6b1cbeb497fe0e9b7ed6ed30975..d767d9259877ecf250d624a489e3f322df318e55 100644 +index 486e9e3dca76c047753b87927735c98698d5ca5a..3564d97af63494ede27941b63a7255239fa8a126 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -633,9 +633,9 @@ public abstract class PlayerList { +@@ -631,9 +631,9 @@ public abstract class PlayerList { // return chatmessage; event.disallow(PlayerLoginEvent.Result.KICK_BANNED, io.papermc.paper.adventure.PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure @@ -21,7 +21,7 @@ index daabc5739b7bf6b1cbeb497fe0e9b7ed6ed30975..d767d9259877ecf250d624a489e3f322 } else if (this.getIpBans().isBanned(socketaddress) && !this.getIpBans().get(socketaddress).hasExpired()) { IpBanListEntry ipbanentry = this.ipBans.get(socketaddress); -@@ -1026,7 +1026,23 @@ public abstract class PlayerList { +@@ -1024,7 +1024,23 @@ public abstract class PlayerList { } public boolean isWhiteListed(GameProfile profile) { diff --git a/patches/unapplied/server/0150-Fix-this-stupid-bullshit.patch b/patches/server/0149-Fix-this-stupid-bullshit.patch similarity index 94% rename from patches/unapplied/server/0150-Fix-this-stupid-bullshit.patch rename to patches/server/0149-Fix-this-stupid-bullshit.patch index 13c470a8dc..3686090d91 100644 --- a/patches/unapplied/server/0150-Fix-this-stupid-bullshit.patch +++ b/patches/server/0149-Fix-this-stupid-bullshit.patch @@ -31,12 +31,12 @@ index 8ff786c366332588a2df053438f23cc9fb7e2b84..c887d34171f89c731d76c4ca92c70be2 Bootstrap.isBootstrapped = true; Instant instant = Instant.now(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 6f359e225eb11f22c61beb6463f9918002ce0086..ec442f1a6437f449d55739b990a4b69fcd48e8e0 100644 +index de7f0db02cdc730ccc89111396c031a267198f04..bb2ed43dccac698ea7265739bc1ed253f345d314 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -258,10 +258,12 @@ public class Main { Calendar deadline = Calendar.getInstance(); - deadline.add(Calendar.DAY_OF_YEAR, -21); + deadline.add(Calendar.DAY_OF_YEAR, -3); if (buildDate.before(deadline.getTime())) { - System.err.println("*** Error, this build is outdated ***"); + // Paper start - This is some stupid bullshit diff --git a/patches/unapplied/server/0151-LivingEntity-setKiller.patch b/patches/server/0150-LivingEntity-setKiller.patch similarity index 89% rename from patches/unapplied/server/0151-LivingEntity-setKiller.patch rename to patches/server/0150-LivingEntity-setKiller.patch index 5879bc677e..9411e6e937 100644 --- a/patches/unapplied/server/0151-LivingEntity-setKiller.patch +++ b/patches/server/0150-LivingEntity-setKiller.patch @@ -7,10 +7,10 @@ Subject: [PATCH] LivingEntity#setKiller public net.minecraft.world.entity.LivingEntity lastHurtByPlayerTime diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 2be4b3f8129e38f72c6c0013cc0de7060a78ae76..5c0c4051e2f63e923e99a621d04d6a5dd7c86b44 100644 +index afbf6af7198bc69053882ac200892b5b695a4d36..1d5b84449fb91dba87de040c1c37ad77e0741320 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -365,6 +365,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -366,6 +366,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return this.getHandle().lastHurtByPlayer == null ? null : (Player) this.getHandle().lastHurtByPlayer.getBukkitEntity(); } diff --git a/patches/unapplied/server/0152-Ocelot-despawns-should-honor-nametags-and-leash.patch b/patches/server/0151-Ocelot-despawns-should-honor-nametags-and-leash.patch similarity index 100% rename from patches/unapplied/server/0152-Ocelot-despawns-should-honor-nametags-and-leash.patch rename to patches/server/0151-Ocelot-despawns-should-honor-nametags-and-leash.patch diff --git a/patches/unapplied/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/patches/server/0152-Reset-spawner-timer-when-spawner-event-is-cancelled.patch similarity index 84% rename from patches/unapplied/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch rename to patches/server/0152-Reset-spawner-timer-when-spawner-event-is-cancelled.patch index 71cdedc8fa..876e3e1533 100644 --- a/patches/unapplied/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch +++ b/patches/server/0152-Reset-spawner-timer-when-spawner-event-is-cancelled.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Reset spawner timer when spawner event is cancelled diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 5d6403fa27521860a69a707dc4358b013adfafd7..20c39481bcf05e0d43c97b7e841ec9f5f6a0d45d 100644 +index 1a5fb001e28997a113ad8133e9dc946206b85c35..393b77043cbaf58200fca6e56c22c36aa2aa2cfb 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java -@@ -166,6 +166,7 @@ public abstract class BaseSpawner { +@@ -168,6 +168,7 @@ public abstract class BaseSpawner { } entity.spawnedViaMobSpawner = true; // Paper @@ -16,7 +16,7 @@ index 5d6403fa27521860a69a707dc4358b013adfafd7..20c39481bcf05e0d43c97b7e841ec9f5 // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) { continue; -@@ -182,7 +183,7 @@ public abstract class BaseSpawner { +@@ -184,7 +185,7 @@ public abstract class BaseSpawner { ((Mob) entity).spawnAnim(); } diff --git a/patches/unapplied/server/0154-Allow-specifying-a-custom-authentication-servers-dow.patch b/patches/server/0153-Allow-specifying-a-custom-authentication-servers-dow.patch similarity index 90% rename from patches/unapplied/server/0154-Allow-specifying-a-custom-authentication-servers-dow.patch rename to patches/server/0153-Allow-specifying-a-custom-authentication-servers-dow.patch index 8d96eb72e6..7cac368e87 100644 --- a/patches/unapplied/server/0154-Allow-specifying-a-custom-authentication-servers-dow.patch +++ b/patches/server/0153-Allow-specifying-a-custom-authentication-servers-dow.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow specifying a custom "authentication servers down" kick diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 6e9e0385881c60c6921b06663869546f7c852804..85f1591d1f87b314d18b4eb46b6388b7c9d57be7 100644 +index a738f70c9c2f8832277a239e6d79d91d663d4cf9..2337d5f0a29201b5f2d3d1734d8feb6c6177b4b3 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -259,7 +259,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -255,7 +255,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, ServerLoginPacketListenerImpl.LOGGER.warn("Authentication servers are down but will let them in anyway!"); ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(s1)); // Spigot } else { diff --git a/patches/unapplied/server/0155-Handle-plugin-prefixes-using-Log4J-configuration.patch b/patches/server/0154-Handle-plugin-prefixes-using-Log4J-configuration.patch similarity index 100% rename from patches/unapplied/server/0155-Handle-plugin-prefixes-using-Log4J-configuration.patch rename to patches/server/0154-Handle-plugin-prefixes-using-Log4J-configuration.patch diff --git a/patches/unapplied/server/0156-Improve-Log4J-Configuration-Plugin-Loggers.patch b/patches/server/0155-Improve-Log4J-Configuration-Plugin-Loggers.patch similarity index 100% rename from patches/unapplied/server/0156-Improve-Log4J-Configuration-Plugin-Loggers.patch rename to patches/server/0155-Improve-Log4J-Configuration-Plugin-Loggers.patch diff --git a/patches/unapplied/server/0157-Add-PlayerJumpEvent.patch b/patches/server/0156-Add-PlayerJumpEvent.patch similarity index 94% rename from patches/unapplied/server/0157-Add-PlayerJumpEvent.patch rename to patches/server/0156-Add-PlayerJumpEvent.patch index d5fd6d3ddf..e0986fd966 100644 --- a/patches/unapplied/server/0157-Add-PlayerJumpEvent.patch +++ b/patches/server/0156-Add-PlayerJumpEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerJumpEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 098d182cc8cf048eb7b4a4640dc2338150f48f2e..6e2957e31ad4be418bcd475b2e3a4e56b5be591e 100644 +index 268ce65aa944295b0107daa2824fc93b55afeb89..6b1885cd2dd03772e2a8f3ea2b58ce68e70e97e7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1200,7 +1200,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1227,7 +1227,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean flag = d7 > 0.0D; if (this.player.onGround() && !packet.isOnGround() && flag) { diff --git a/patches/unapplied/server/0158-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0157-handle-ServerboundKeepAlivePacket-async.patch similarity index 95% rename from patches/unapplied/server/0158-handle-ServerboundKeepAlivePacket-async.patch rename to patches/server/0157-handle-ServerboundKeepAlivePacket-async.patch index cf3849b225..9c56c65f63 100644 --- a/patches/unapplied/server/0158-handle-ServerboundKeepAlivePacket-async.patch +++ b/patches/server/0157-handle-ServerboundKeepAlivePacket-async.patch @@ -15,7 +15,7 @@ also adding some additional logging in order to help work out what is causing random disconnections for clients. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 1dec537f96cb612de73a2d682392f14c872d031c..aa4d8ccb9cd5af57ffd3a2b4ce34d22f6f3d632c 100644 +index 70168fb930c24689c98da064f7d04cc98d729358..75a61cab28928a145fd22159822dd04844c626ac 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -83,14 +83,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/unapplied/server/0159-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch similarity index 96% rename from patches/unapplied/server/0159-Expose-client-protocol-version-and-virtual-host.patch rename to patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch index 2dcb1d9f37..9f39585da6 100644 --- a/patches/unapplied/server/0159-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch @@ -90,10 +90,10 @@ index 0d9658b1c6b5912a34058c0ce53b8e7f8c28afac..203fc53142bb0c9b6e2d1876fe8dfbe3 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4a5f67c47b7ff2e47630bd78421dd103e6278ed4..3836c1d2c2565333072fbbae1fc163125663ba3c 100644 +index 6b8734cda9d1384d929795f69de36887acafd698..34d9f11430ac8502774458fe02118a5c5ca49b44 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -288,6 +288,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -295,6 +295,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } diff --git a/patches/unapplied/server/0160-revert-serverside-behavior-of-keepalives.patch b/patches/server/0159-revert-serverside-behavior-of-keepalives.patch similarity index 97% rename from patches/unapplied/server/0160-revert-serverside-behavior-of-keepalives.patch rename to patches/server/0159-revert-serverside-behavior-of-keepalives.patch index fd167198a6..bcafbe9349 100644 --- a/patches/unapplied/server/0160-revert-serverside-behavior-of-keepalives.patch +++ b/patches/server/0159-revert-serverside-behavior-of-keepalives.patch @@ -17,7 +17,7 @@ from networking or during connections flood of chunk packets on slower clients, at the cost of dead connections being kept open for longer. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index aa4d8ccb9cd5af57ffd3a2b4ce34d22f6f3d632c..4e450a3d7f2db7d7d346103cc9467654ca1b8a1f 100644 +index 75a61cab28928a145fd22159822dd04844c626ac..4286dcc7ec46b446f60e41acd2dcaaa8760fd8b1 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -48,11 +48,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/unapplied/server/0161-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/patches/server/0160-Send-attack-SoundEffects-only-to-players-who-can-see.patch similarity index 92% rename from patches/unapplied/server/0161-Send-attack-SoundEffects-only-to-players-who-can-see.patch rename to patches/server/0160-Send-attack-SoundEffects-only-to-players-who-can-see.patch index a8aa65e361..fc0cd96eb2 100644 --- a/patches/unapplied/server/0161-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/patches/server/0160-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index cd55aa48063fa4dc9646ab487b307b87b8b41315..cafcb53b9a35971a4c0c45fb20de072d2f07b829 100644 +index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..a135b539a250966939370bba35261cf1bb276128 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1240,7 +1240,7 @@ public abstract class Player extends LivingEntity { +@@ -1235,7 +1235,7 @@ public abstract class Player extends LivingEntity { int i = b0 + EnchantmentHelper.getKnockbackBonus(this); if (this.isSprinting() && flag) { @@ -18,7 +18,7 @@ index cd55aa48063fa4dc9646ab487b307b87b8b41315..cafcb53b9a35971a4c0c45fb20de072d ++i; flag1 = true; } -@@ -1315,7 +1315,7 @@ public abstract class Player extends LivingEntity { +@@ -1310,7 +1310,7 @@ public abstract class Player extends LivingEntity { } } @@ -27,7 +27,7 @@ index cd55aa48063fa4dc9646ab487b307b87b8b41315..cafcb53b9a35971a4c0c45fb20de072d this.sweepAttack(); } -@@ -1343,15 +1343,15 @@ public abstract class Player extends LivingEntity { +@@ -1338,15 +1338,15 @@ public abstract class Player extends LivingEntity { } if (flag2) { @@ -46,7 +46,7 @@ index cd55aa48063fa4dc9646ab487b307b87b8b41315..cafcb53b9a35971a4c0c45fb20de072d } } -@@ -1403,7 +1403,7 @@ public abstract class Player extends LivingEntity { +@@ -1398,7 +1398,7 @@ public abstract class Player extends LivingEntity { this.causeFoodExhaustion(this.level().spigotConfig.combatExhaustion, EntityExhaustionEvent.ExhaustionReason.ATTACK); // CraftBukkit - EntityExhaustionEvent // Spigot - Change to use configurable value } else { @@ -55,7 +55,7 @@ index cd55aa48063fa4dc9646ab487b307b87b8b41315..cafcb53b9a35971a4c0c45fb20de072d if (flag4) { target.clearFire(); } -@@ -1877,6 +1877,14 @@ public abstract class Player extends LivingEntity { +@@ -1792,6 +1792,14 @@ public abstract class Player extends LivingEntity { public int getXpNeededForNextLevel() { return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); } diff --git a/patches/unapplied/server/0162-Add-PlayerArmorChangeEvent.patch b/patches/server/0161-Add-PlayerArmorChangeEvent.patch similarity index 97% rename from patches/unapplied/server/0162-Add-PlayerArmorChangeEvent.patch rename to patches/server/0161-Add-PlayerArmorChangeEvent.patch index b990010a33..f02d40a6ee 100644 --- a/patches/unapplied/server/0162-Add-PlayerArmorChangeEvent.patch +++ b/patches/server/0161-Add-PlayerArmorChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmorChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 47726c9d2c5384d31983e53fd17d91cd12da8961..f687bfd7cf820c1e7443c8b86ef9ca28a4768b02 100644 +index b8ac19ae63579bf5325b0ebfa37293c170df6205..226afea543b581dd1b8ba0f81ff7dab7cce96395 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1,5 +1,6 @@ @@ -15,7 +15,7 @@ index 47726c9d2c5384d31983e53fd17d91cd12da8961..f687bfd7cf820c1e7443c8b86ef9ca28 import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -@@ -3050,6 +3051,13 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3047,6 +3048,13 @@ public abstract class LivingEntity extends Entity implements Attackable { ItemStack itemstack1 = this.getItemBySlot(enumitemslot); if (this.equipmentHasChanged(itemstack, itemstack1)) { diff --git a/patches/unapplied/server/0163-Prevent-logins-from-being-processed-when-the-player-.patch b/patches/server/0162-Prevent-logins-from-being-processed-when-the-player-.patch similarity index 88% rename from patches/unapplied/server/0163-Prevent-logins-from-being-processed-when-the-player-.patch rename to patches/server/0162-Prevent-logins-from-being-processed-when-the-player-.patch index e9d4e23a55..095914573d 100644 --- a/patches/unapplied/server/0163-Prevent-logins-from-being-processed-when-the-player-.patch +++ b/patches/server/0162-Prevent-logins-from-being-processed-when-the-player-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Prevent logins from being processed when the player has diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 85f1591d1f87b314d18b4eb46b6388b7c9d57be7..2ecc29755eb0e79d49f0713e56849d7971dd38ed 100644 +index 2337d5f0a29201b5f2d3d1734d8feb6c6177b4b3..b7ddb05d7b4ec66def973f15bb2408b0a4fc136a 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -79,7 +79,9 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -81,7 +81,9 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, } // Paper end if (this.state == ServerLoginPacketListenerImpl.State.VERIFYING) { diff --git a/patches/unapplied/server/0164-Fix-MC-117075-TE-Unload-Lag-Spike.patch b/patches/server/0163-Fix-MC-117075-TE-Unload-Lag-Spike.patch similarity index 81% rename from patches/unapplied/server/0164-Fix-MC-117075-TE-Unload-Lag-Spike.patch rename to patches/server/0163-Fix-MC-117075-TE-Unload-Lag-Spike.patch index c917550a2f..2339985ad6 100644 --- a/patches/unapplied/server/0164-Fix-MC-117075-TE-Unload-Lag-Spike.patch +++ b/patches/server/0163-Fix-MC-117075-TE-Unload-Lag-Spike.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 407607babfb200152bb0e5c6d56bb66c82217077..3f88b1caf5f99499adeaa8ba24e2c9d8647ea7d5 100644 +index c6e56303ec8ee466a6de7e6bd76c4f6814e8db30..35b6e7a0cf8ec57763858fa8e4f287769271a85b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -805,6 +805,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - // Spigot start - // Iterator iterator = this.blockEntityTickers.iterator(); +@@ -816,6 +816,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + boolean flag = this.tickRateManager().runsNormally(); + int tilesThisCycle = 0; + var toRemove = new it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet(net.minecraft.Util.identityStrategy()); // Paper - use removeAll + toRemove.add(null); for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0; TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition); -@@ -812,7 +814,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -823,7 +825,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (tickingblockentity == null) { this.getCraftServer().getLogger().severe("Spigot has detected a null entity and has removed it, preventing a crash"); tilesThisCycle--; @@ -25,14 +25,14 @@ index 407607babfb200152bb0e5c6d56bb66c82217077..3f88b1caf5f99499adeaa8ba24e2c9d8 continue; } // Spigot end -@@ -820,12 +821,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -831,12 +832,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (tickingblockentity.isRemoved()) { // Spigot start tilesThisCycle--; - this.blockEntityTickers.remove(this.tileTickPosition--); + toRemove.add(tickingblockentity); // Paper - use removeAll // Spigot end - } else if (this.shouldTickBlocksAt(tickingblockentity.getPos())) { + } else if (flag && this.shouldTickBlocksAt(tickingblockentity.getPos())) { tickingblockentity.tick(); } } diff --git a/patches/unapplied/server/0165-use-CB-BlockState-implementations-for-captured-block.patch b/patches/server/0164-use-CB-BlockState-implementations-for-captured-block.patch similarity index 91% rename from patches/unapplied/server/0165-use-CB-BlockState-implementations-for-captured-block.patch rename to patches/server/0164-use-CB-BlockState-implementations-for-captured-block.patch index a0e6c95310..cb57abd279 100644 --- a/patches/unapplied/server/0165-use-CB-BlockState-implementations-for-captured-block.patch +++ b/patches/server/0164-use-CB-BlockState-implementations-for-captured-block.patch @@ -18,10 +18,10 @@ the blockstate that will be valid for restoration, as opposed to dropping information on restoration when the event is cancelled. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 3f88b1caf5f99499adeaa8ba24e2c9d8647ea7d5..be48f90db79509035a87103f20582fb2500449ad 100644 +index 35b6e7a0cf8ec57763858fa8e4f287769271a85b..82cd225802ecc518c34426c010525192ef544f34 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -154,7 +154,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -157,7 +157,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean preventPoiUpdated = false; // CraftBukkit - SPIGOT-5710 public boolean captureBlockStates = false; public boolean captureTreeGeneration = false; @@ -30,7 +30,7 @@ index 3f88b1caf5f99499adeaa8ba24e2c9d8647ea7d5..be48f90db79509035a87103f20582fb2 public Map capturedTileEntities = new HashMap<>(); public List captureDrops; public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); -@@ -469,7 +469,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -472,7 +472,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { @@ -39,7 +39,7 @@ index 3f88b1caf5f99499adeaa8ba24e2c9d8647ea7d5..be48f90db79509035a87103f20582fb2 if (blockstate == null) { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); -@@ -489,7 +489,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -492,7 +492,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start - capture blockstates boolean captured = false; if (this.captureBlockStates && !this.capturedBlockStates.containsKey(pos)) { @@ -49,7 +49,7 @@ index 3f88b1caf5f99499adeaa8ba24e2c9d8647ea7d5..be48f90db79509035a87103f20582fb2 this.capturedBlockStates.put(pos.immutable(), blockstate); captured = true; } -@@ -695,7 +696,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -698,7 +699,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public BlockState getBlockState(BlockPos pos) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { diff --git a/patches/unapplied/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0165-API-to-get-a-BlockState-without-a-snapshot.patch similarity index 95% rename from patches/unapplied/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch rename to patches/server/0165-API-to-get-a-BlockState-without-a-snapshot.patch index 2f5cac0839..0d88c9181a 100644 --- a/patches/unapplied/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch +++ b/patches/server/0165-API-to-get-a-BlockState-without-a-snapshot.patch @@ -51,10 +51,10 @@ index 63acd109a79ed752a05df3d4f1b99309297c2055..d156f7cc71050f13b2feca00c52ca6b6 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 1f5962457a15cae2162ce3899e0e7f167a854d11..9aa8c6c11d5aee83627cb91258c16844f791cd26 100644 +index 61d696a59d7bea0b1908fe4fb63e4143bb1e218d..29bbd44a0d15d78e13d91003fea1460efdf19e88 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -327,6 +327,13 @@ public class CraftBlock implements Block { +@@ -328,6 +328,13 @@ public class CraftBlock implements Block { return CraftBlockStates.getBlockState(this); } @@ -114,10 +114,10 @@ index 22af1b41eec06d660dbe47c463014bcdd96fc5b6..f046f507a095e0cb8f839b9b4b06add3 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java -index 8561c16da0dccc55c89c7796cbe4f8792d01194f..c9ef19bdeeb130561659ff8161bf4e196cf4f53f 100644 +index 183d6146dec231629b4892fcb2fe96d88cc74b4c..2fe8f7dfefd6e1f9b06f1d4821894091a8e6400e 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java -@@ -379,15 +379,30 @@ public final class CraftBlockStates { +@@ -383,15 +383,30 @@ public final class CraftBlockStates { } public static BlockState getBlockState(Block block) { diff --git a/patches/unapplied/server/0167-AsyncTabCompleteEvent.patch b/patches/server/0166-AsyncTabCompleteEvent.patch similarity index 96% rename from patches/unapplied/server/0167-AsyncTabCompleteEvent.patch rename to patches/server/0166-AsyncTabCompleteEvent.patch index b8617c18e5..110bde7b7e 100644 --- a/patches/unapplied/server/0167-AsyncTabCompleteEvent.patch +++ b/patches/server/0166-AsyncTabCompleteEvent.patch @@ -16,10 +16,10 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6e2957e31ad4be418bcd475b2e3a4e56b5be591e..b5abb0d433322224ccbbed8755fb3ebf77b5a36c 100644 +index 6b1885cd2dd03772e2a8f3ea2b58ce68e70e97e7..9aa8c643d0a338afefeb8ff6a1f016cc0ffdb00f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -688,12 +688,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -691,12 +691,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } @@ -38,7 +38,7 @@ index 6e2957e31ad4be418bcd475b2e3a4e56b5be591e..b5abb0d433322224ccbbed8755fb3ebf return; } // Paper start -@@ -704,18 +708,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -707,18 +711,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Paper end // CraftBukkit end @@ -91,10 +91,10 @@ index 6e2957e31ad4be418bcd475b2e3a4e56b5be591e..b5abb0d433322224ccbbed8755fb3ebf @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6b9675a1170f9e536432826e52b3cb3fa5195272..3ceebd86f44d1997201c34559d1b63004a973282 100644 +index 4c3d6286a0718694df2bebb94f42082bb96dc4f0..781922298273c77ef92cf683034d4239deb02599 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2195,7 +2195,7 @@ public final class CraftServer implements Server { +@@ -2227,7 +2227,7 @@ public final class CraftServer implements Server { offers = this.tabCompleteChat(player, message); } diff --git a/patches/unapplied/server/0168-PlayerPickupExperienceEvent.patch b/patches/server/0167-PlayerPickupExperienceEvent.patch similarity index 93% rename from patches/unapplied/server/0168-PlayerPickupExperienceEvent.patch rename to patches/server/0167-PlayerPickupExperienceEvent.patch index 3eeeb053ac..88bec9ad2a 100644 --- a/patches/unapplied/server/0168-PlayerPickupExperienceEvent.patch +++ b/patches/server/0167-PlayerPickupExperienceEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] PlayerPickupExperienceEvent Allows plugins to cancel a player picking up an experience orb diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 9d1cce3fb02bb2c3ff71055fbafc974b6b98625a..2a192d0c1de8ab5440daacf591ff08f74cff9ff3 100644 +index 627fcf000f40e1bda025da874c447a99c727b98b..7eb84b1aad4f031ad17a461d174b23c213014995 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -312,7 +312,7 @@ public class ExperienceOrb extends Entity { diff --git a/patches/unapplied/server/0169-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch similarity index 94% rename from patches/unapplied/server/0169-Ability-to-apply-mending-to-XP-API.patch rename to patches/server/0168-Ability-to-apply-mending-to-XP-API.patch index 36c186c604..5f8ecd7cf4 100644 --- a/patches/unapplied/server/0169-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch @@ -14,10 +14,10 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3836c1d2c2565333072fbbae1fc163125663ba3c..e4e36c273af4dc2253030823d51dd25a166c391e 100644 +index 34d9f11430ac8502774458fe02118a5c5ca49b44..168c1d20320f23182ff2de519d28e8401f12b6b3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1542,7 +1542,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1549,7 +1549,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override diff --git a/patches/unapplied/server/0170-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0169-PlayerNaturallySpawnCreaturesEvent.patch similarity index 66% rename from patches/unapplied/server/0170-PlayerNaturallySpawnCreaturesEvent.patch rename to patches/server/0169-PlayerNaturallySpawnCreaturesEvent.patch index dacc3de348..e2b32f2465 100644 --- a/patches/unapplied/server/0170-PlayerNaturallySpawnCreaturesEvent.patch +++ b/patches/server/0169-PlayerNaturallySpawnCreaturesEvent.patch @@ -40,41 +40,34 @@ index e580df88baadfd943756b1e440c7253a287fa0e9..ea520b828378c268d05425096c6493ca return true; diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index b2367f3836689f3aa27b1b4905219e07e6173c93..821b2c8860c1328e2ecc009deeb533648ce16540 100644 +index fe4fc7792ac1bfcde0980884a6369d08e81a6b65..d30373d369049827b5b7611d35c8b7fc8fc08d23 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -565,6 +565,15 @@ public class ServerChunkCache extends ChunkSource { - boolean flag2 = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit +@@ -557,6 +557,15 @@ public class ServerChunkCache extends ChunkSource { + boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit - Collections.shuffle(list); -+ // Paper start - call player naturally spawn event -+ int chunkRange = level.spigotConfig.mobSpawnRange; -+ chunkRange = (chunkRange > level.spigotConfig.viewDistance) ? (byte) level.spigotConfig.viewDistance : chunkRange; -+ chunkRange = Math.min(chunkRange, 8); -+ for (ServerPlayer entityPlayer : this.level.players()) { -+ entityPlayer.playerNaturallySpawnedEvent = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(entityPlayer.getBukkitEntity(), (byte) chunkRange); -+ entityPlayer.playerNaturallySpawnedEvent.callEvent(); -+ }; -+ // Paper end - Iterator iterator1 = list.iterator(); - - while (iterator1.hasNext()) { + Util.shuffle(list, this.level.random); ++ // Paper start - call player naturally spawn event ++ int chunkRange = level.spigotConfig.mobSpawnRange; ++ chunkRange = (chunkRange > level.spigotConfig.viewDistance) ? (byte) level.spigotConfig.viewDistance : chunkRange; ++ chunkRange = Math.min(chunkRange, 8); ++ for (ServerPlayer entityPlayer : this.level.players()) { ++ entityPlayer.playerNaturallySpawnedEvent = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(entityPlayer.getBukkitEntity(), (byte) chunkRange); ++ entityPlayer.playerNaturallySpawnedEvent.callEvent(); ++ } ++ // Paper end + int l = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); + boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit + Iterator iterator1 = list.iterator(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 43e454be3f18d092913739bb6a92d5b82059ba59..9b670eb2925caa275cae6f51eb75183a9f5208b0 100644 +index 75d2213aadcbd1d0a49fd4c8cef2d4d51669c73d..1b56d6b05fee0aa430dab666f50c5b886c3910d0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1,5 +1,6 @@ - package net.minecraft.server.level; - -+import com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent; - import com.google.common.collect.Lists; - import com.google.common.net.InetAddresses; - import com.mojang.authlib.GameProfile; -@@ -257,6 +258,7 @@ public class ServerPlayer extends Player { +@@ -265,6 +265,7 @@ public class ServerPlayer extends Player { // CraftBukkit end public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper -+ public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper ++ public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/patches/unapplied/server/0171-Add-setPlayerProfile-API-for-Skulls.patch b/patches/server/0170-Add-setPlayerProfile-API-for-Skulls.patch similarity index 100% rename from patches/unapplied/server/0171-Add-setPlayerProfile-API-for-Skulls.patch rename to patches/server/0170-Add-setPlayerProfile-API-for-Skulls.patch diff --git a/patches/unapplied/server/0172-PreCreatureSpawnEvent.patch b/patches/server/0171-PreCreatureSpawnEvent.patch similarity index 97% rename from patches/unapplied/server/0172-PreCreatureSpawnEvent.patch rename to patches/server/0171-PreCreatureSpawnEvent.patch index ba6c94c19d..2e32504f7e 100644 --- a/patches/unapplied/server/0172-PreCreatureSpawnEvent.patch +++ b/patches/server/0171-PreCreatureSpawnEvent.patch @@ -59,10 +59,10 @@ index b77ebe04f1018962b85110258c8a0a2db8612485..028d69907a988e191213a17e072ef227 if (t0 != null) { diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index cea1a8eaae8dfc36efd09e3ac57a7062bf536aac..5981b2bd5745ac32cdb377c15c4384d074a47680 100644 +index 382b55167dede435b034866bd394455f0f6f2a00..9d16fc698b0771bcb3c95f5fb017879c37ebb39b 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java -@@ -414,6 +414,20 @@ public class EntityType implements FeatureElement, EntityTypeT +@@ -418,6 +418,20 @@ public class EntityType implements FeatureElement, EntityTypeT @Nullable public T spawn(ServerLevel worldserver, @Nullable CompoundTag nbttagcompound, @Nullable Consumer consumer, BlockPos blockposition, MobSpawnType enummobspawn, boolean flag, boolean flag1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason) { // CraftBukkit end @@ -84,7 +84,7 @@ index cea1a8eaae8dfc36efd09e3ac57a7062bf536aac..5981b2bd5745ac32cdb377c15c4384d0 if (t0 != null) { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index b3127238cea62c47d710abab44f6570103ba9364..7d7390dc76f683178fc332ea3c2c945ba8e9b84b 100644 +index a0a313fa5e7e4e1973c020d0262e34381a19dea7..0429b927e63ec12f53a6ce1ebe1e64d99bf7e129 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -975,7 +975,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -97,10 +97,10 @@ index b3127238cea62c47d710abab44f6570103ba9364..7d7390dc76f683178fc332ea3c2c945b } } diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 20c39481bcf05e0d43c97b7e841ec9f5f6a0d45d..fc7719d12b5f6011aec2e41a36b4bacd77672b6d 100644 +index 393b77043cbaf58200fca6e56c22c36aa2aa2cfb..04cce4380e6e833b1d5e0a613eb0a167fdfe4e16 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java -@@ -128,6 +128,27 @@ public abstract class BaseSpawner { +@@ -130,6 +130,27 @@ public abstract class BaseSpawner { } else if (!SpawnPlacements.checkSpawnRules((EntityType) optional.get(), world, MobSpawnType.SPAWNER, blockposition1, world.getRandom())) { continue; } diff --git a/patches/unapplied/server/0173-Fill-Profile-Property-Events.patch b/patches/server/0172-Fill-Profile-Property-Events.patch similarity index 73% rename from patches/unapplied/server/0173-Fill-Profile-Property-Events.patch rename to patches/server/0172-Fill-Profile-Property-Events.patch index 4e37684e36..61905d003c 100644 --- a/patches/unapplied/server/0173-Fill-Profile-Property-Events.patch +++ b/patches/server/0172-Fill-Profile-Property-Events.patch @@ -38,15 +38,15 @@ index ea906c9942be4c37b0daf866c759771af0b1e0ed..48fcfe223f807ccb903804adfead4b97 return super.fetchProfile(profileId, requireSecure); } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java -index f5162f7171c348ff523b18e577246561d79e1c20..238b6cd88cb24ca63770db607f2241fcd7210574 100644 +index 92b770d10f34596ce52392a0db1ccd825108730b..4430520d32024d897c93c1d9f8652ccb2c202c01 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java -@@ -216,7 +216,7 @@ public class SkullBlockEntity extends BlockEntity { - MinecraftSessionService minecraftsessionservice = SkullBlockEntity.sessionService; +@@ -74,7 +74,7 @@ public class SkullBlockEntity extends BlockEntity { + return apiServices.profileCache().getAsync(name).thenApplyAsync((optional) -> { + if (optional.isPresent() && !booleansupplier.getAsBoolean()) { + UUID uuid = ((GameProfile) optional.get()).getId(); +- ProfileResult profileresult = apiServices.sessionService().fetchProfile(uuid, true); ++ ProfileResult profileresult = apiServices.sessionService() instanceof com.destroystokyo.paper.profile.PaperMinecraftSessionService paperMinecraftSessionService ? paperMinecraftSessionService.fetchProfile(optional.get(), true) : apiServices.sessionService().fetchProfile(uuid, true); // Paper - if (minecraftsessionservice != null) { -- ProfileResult profileresult = minecraftsessionservice.fetchProfile(profile.getId(), true); -+ ProfileResult profileresult = minecraftsessionservice instanceof com.destroystokyo.paper.profile.PaperMinecraftSessionService paperMinecraftSessionService ? paperMinecraftSessionService.fetchProfile(profile, true) : minecraftsessionservice.fetchProfile(profile.getId(), true); // Paper - - return profileresult == null ? Optional.of(profile) : Optional.of(profileresult.profile()); + return profileresult != null ? Optional.ofNullable(profileresult.profile()) : optional; } else { diff --git a/patches/unapplied/server/0174-Add-PlayerAdvancementCriterionGrantEvent.patch b/patches/server/0173-Add-PlayerAdvancementCriterionGrantEvent.patch similarity index 87% rename from patches/unapplied/server/0174-Add-PlayerAdvancementCriterionGrantEvent.patch rename to patches/server/0173-Add-PlayerAdvancementCriterionGrantEvent.patch index 4ac554554f..aa33b255e7 100644 --- a/patches/unapplied/server/0174-Add-PlayerAdvancementCriterionGrantEvent.patch +++ b/patches/server/0173-Add-PlayerAdvancementCriterionGrantEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerAdvancementCriterionGrantEvent diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index f5f26c0327f0dae47badcc914fc89a4019c784a3..6487bf016e646ca772b667a2a81c85e82c027c05 100644 +index dbd5f1d052348d6adae8b13ae1f2686553b7a4bf..f6daa77856f5d57b1a3b38e709bff47214372973 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java -@@ -226,6 +226,12 @@ public class PlayerAdvancements { +@@ -225,6 +225,12 @@ public class PlayerAdvancements { boolean flag1 = advancementprogress.isDone(); if (advancementprogress.grantProgress(criterionName)) { diff --git a/patches/unapplied/server/0175-Add-ArmorStand-Item-Meta.patch b/patches/server/0174-Add-ArmorStand-Item-Meta.patch similarity index 98% rename from patches/unapplied/server/0175-Add-ArmorStand-Item-Meta.patch rename to patches/server/0174-Add-ArmorStand-Item-Meta.patch index 53033be4f9..7f2bdd0c95 100644 --- a/patches/unapplied/server/0175-Add-ArmorStand-Item-Meta.patch +++ b/patches/server/0174-Add-ArmorStand-Item-Meta.patch @@ -255,10 +255,10 @@ index b77f5832265be5aaf96d95fcac4737919720fa6e..e15723080445b09852512132039ca2cd + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 57bd07e7aa9d09e843bf33f4c6c2c610aca5401e..3d749e6d6193878f1b4f288946afcec9461dc8df 100644 +index cd0c885ed63a3c43b915da239a8dddfee2622c76..4c66a0357c06e0b286e38624c874e33e45933fc9 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -1463,6 +1463,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1464,6 +1464,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { CraftMetaCrossbow.CHARGED.NBT, CraftMetaCrossbow.CHARGED_PROJECTILES.NBT, CraftMetaSuspiciousStew.EFFECTS.NBT, diff --git a/patches/unapplied/server/0176-Extend-Player-Interact-cancellation.patch b/patches/server/0175-Extend-Player-Interact-cancellation.patch similarity index 95% rename from patches/unapplied/server/0176-Extend-Player-Interact-cancellation.patch rename to patches/server/0175-Extend-Player-Interact-cancellation.patch index 2622e55cf4..006fd25c7b 100644 --- a/patches/unapplied/server/0176-Extend-Player-Interact-cancellation.patch +++ b/patches/server/0175-Extend-Player-Interact-cancellation.patch @@ -13,7 +13,7 @@ Update adjacent blocks of doors, double plants, pistons and beds when cancelling interaction. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 61bc50ef899d2867d4f3c762b71012b27d74e7f6..5f79367fda576300c59774d69089f8f1c4408f8a 100644 +index 45236a077d798d6a257a2e982b58901167ecd06e..e3b7441d875b55ffce295c948f3dc867be09e042 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -519,7 +519,13 @@ public class ServerPlayerGameMode { diff --git a/patches/unapplied/server/0177-Tameable-getOwnerUniqueId-API.patch b/patches/server/0176-Tameable-getOwnerUniqueId-API.patch similarity index 100% rename from patches/unapplied/server/0177-Tameable-getOwnerUniqueId-API.patch rename to patches/server/0176-Tameable-getOwnerUniqueId-API.patch diff --git a/patches/unapplied/server/0178-Toggleable-player-crits-helps-mitigate-hacked-client.patch b/patches/server/0177-Toggleable-player-crits-helps-mitigate-hacked-client.patch similarity index 85% rename from patches/unapplied/server/0178-Toggleable-player-crits-helps-mitigate-hacked-client.patch rename to patches/server/0177-Toggleable-player-crits-helps-mitigate-hacked-client.patch index 36fe95f2c9..d494f9714a 100644 --- a/patches/unapplied/server/0178-Toggleable-player-crits-helps-mitigate-hacked-client.patch +++ b/patches/server/0177-Toggleable-player-crits-helps-mitigate-hacked-client.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggleable player crits, helps mitigate hacked clients. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index cafcb53b9a35971a4c0c45fb20de072d2f07b829..695f19c77074f910fcd8c1a31d2e70cab10abb19 100644 +index a135b539a250966939370bba35261cf1bb276128..26ddbd14831f6d7f2f1e8fd460f6253245f32a04 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1247,6 +1247,7 @@ public abstract class Player extends LivingEntity { +@@ -1242,6 +1242,7 @@ public abstract class Player extends LivingEntity { boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; diff --git a/patches/unapplied/server/0179-Disable-Explicit-Network-Manager-Flushing.patch b/patches/server/0178-Disable-Explicit-Network-Manager-Flushing.patch similarity index 100% rename from patches/unapplied/server/0179-Disable-Explicit-Network-Manager-Flushing.patch rename to patches/server/0178-Disable-Explicit-Network-Manager-Flushing.patch diff --git a/patches/unapplied/server/0180-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0179-Implement-extended-PaperServerListPingEvent.patch similarity index 98% rename from patches/unapplied/server/0180-Implement-extended-PaperServerListPingEvent.patch rename to patches/server/0179-Implement-extended-PaperServerListPingEvent.patch index 289bb25aae..b0a2da7411 100644 --- a/patches/unapplied/server/0180-Implement-extended-PaperServerListPingEvent.patch +++ b/patches/server/0179-Implement-extended-PaperServerListPingEvent.patch @@ -181,7 +181,7 @@ index 0000000000000000000000000000000000000000..6b0bdc266109cdfb874f08bf74323603 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 73155c8cb02a6156c1e48f9c75f512441f8b85a1..beebc3ed13b200a0d6585387bb7e06a6aaa07940 100644 +index 6e6a8a7d9af2e5de6782fd5935d22d7de3f248ee..65625a84de2980f4d719cf5a2bec205cd1f3d835 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,6 +3,9 @@ package net.minecraft.server; @@ -194,7 +194,7 @@ index 73155c8cb02a6156c1e48f9c75f512441f8b85a1..beebc3ed13b200a0d6585387bb7e06a6 import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -@@ -1328,7 +1331,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop