diff --git a/gradle.properties b/gradle.properties index 95bd0f76f..dc18dffaf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.21.3-R0.1-SNAPSHOT mcVersion = 1.21.3 -paperCommit = c28d89d625c60243c52857e0c7e6398b73602156 +paperCommit = bb32b054986f808204941388152fd2051b2f536c org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0012-Bring-back-server-name.patch b/patches/api/0012-Bring-back-server-name.patch index aebeda481..951169520 100644 --- a/patches/api/0012-Bring-back-server-name.patch +++ b/patches/api/0012-Bring-back-server-name.patch @@ -25,13 +25,13 @@ index 391a1e3e07657a404520c1462507a2c731f32b27..51a071668ff708cae93900ea09765f62 + // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 625421183a3953d0d72d477e231f6831c87b7843..ba7d4682671b643c8af2a1bfaa79186da1fa065e 100644 +index a3a0b9c974792d735ec235b01d831e2e1e4a6768..513b34f1043e74184da179f1a9d86880731d4c70 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2584,4 +2584,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2600,4 +2600,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ - boolean isOwnedByCurrentRegion(@NotNull Entity entity); - // Paper end - Folia region threading API + void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value); + // Paper end - API to check if the server is sleeping + + // Purpur start + /** diff --git a/patches/api/0014-Lagging-threshold.patch b/patches/api/0014-Lagging-threshold.patch index 71bb3bbba..415bd3359 100644 --- a/patches/api/0014-Lagging-threshold.patch +++ b/patches/api/0014-Lagging-threshold.patch @@ -24,10 +24,10 @@ index 51a071668ff708cae93900ea09765f62a4fd8a07..76a86df9c0f9bfbd4f5d67e288c81994 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index ba7d4682671b643c8af2a1bfaa79186da1fa065e..ae5b8ae3294957e26dc807eb0cb84175a6c16eb5 100644 +index 513b34f1043e74184da179f1a9d86880731d4c70..58d6a38a1a48b4dee428051718f185b962782e64 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2592,5 +2592,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2608,5 +2608,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull String getServerName(); diff --git a/patches/api/0032-Added-the-ability-to-add-combustible-items.patch b/patches/api/0032-Added-the-ability-to-add-combustible-items.patch index 821c9f3d5..96bfcbd9b 100644 --- a/patches/api/0032-Added-the-ability-to-add-combustible-items.patch +++ b/patches/api/0032-Added-the-ability-to-add-combustible-items.patch @@ -34,10 +34,10 @@ index 76a86df9c0f9bfbd4f5d67e288c81994879592bc..1496957997198b64b9a55b5c882a4df6 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index ae5b8ae3294957e26dc807eb0cb84175a6c16eb5..40aaa5123a5a15c434e422c0fa6adf686df6d7bd 100644 +index 58d6a38a1a48b4dee428051718f185b962782e64..65527ab58a7247408889f71c02ef40c2c183e0ed 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2599,5 +2599,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2615,5 +2615,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return True if lagging */ boolean isLagging(); diff --git a/patches/api/0039-Debug-Marker-API.patch b/patches/api/0039-Debug-Marker-API.patch index 5df975d04..ae17961fb 100644 --- a/patches/api/0039-Debug-Marker-API.patch +++ b/patches/api/0039-Debug-Marker-API.patch @@ -99,10 +99,10 @@ index 1496957997198b64b9a55b5c882a4df633be71c6..8f5fde63b195d08029305ee0172687df // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 40aaa5123a5a15c434e422c0fa6adf686df6d7bd..ddb1ff894910761a78b91a343f32e129f03a03c4 100644 +index 65527ab58a7247408889f71c02ef40c2c183e0ed..6328d4da00fedc1d59635254a95a2a76a4ef16a1 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2614,5 +2614,75 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2630,5 +2630,75 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @param material The material that will no longer be a fuel */ public void removeFuel(@NotNull Material material); diff --git a/patches/server/0007-Ridables.patch b/patches/server/0007-Ridables.patch index d1eeab336..f84aa06eb 100644 --- a/patches/server/0007-Ridables.patch +++ b/patches/server/0007-Ridables.patch @@ -22,10 +22,10 @@ index f58a94efafbc01d402cd03a108bb90f60930a316..21ea63da99c5b3e2e1ab9cc1049c903b super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 64b56abf8900d0424100da460fc68ac964394793..e37e11c7912cc2824b67928811a8e542fa0a9337 100644 +index 663b4ecd520e82aa108d44f2d5c2a20cfc7bc01f..1c1ce108840c522d5db49846ad3cac08916a7911 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1853,6 +1853,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.updateLagCompensationTick(); // Paper - lag compensation @@ -79,7 +79,7 @@ index b5d5dbc50a7b8c40739a15f164ffd08fdc534f9c..5d322e613a0116057373a3c9d7125620 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8be1b051543cda2b2e9e3d337834757e53f442de..9df3c915456e054790127e544b6a9af5f92d73d8 100644 +index ed5b00620527c1776722d25b1b45f1544802a341..697c8c8fd0cdca4bb8bc3db62f7de8999785ec1e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -384,7 +384,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -91,7 +91,7 @@ index 8be1b051543cda2b2e9e3d337834757e53f442de..9df3c915456e054790127e544b6a9af5 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -3330,6 +3330,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3338,6 +3338,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.passengers = ImmutableList.copyOf(list); } @@ -105,7 +105,7 @@ index 8be1b051543cda2b2e9e3d337834757e53f442de..9df3c915456e054790127e544b6a9af5 this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); } } -@@ -3369,6 +3376,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3377,6 +3384,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return false; } // CraftBukkit end @@ -120,7 +120,7 @@ index 8be1b051543cda2b2e9e3d337834757e53f442de..9df3c915456e054790127e544b6a9af5 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -5361,4 +5376,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -5369,4 +5384,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return ((net.minecraft.server.level.ServerLevel) this.level).isPositionEntityTicking(this.blockPosition()); } // Paper end - Expose entity id counter @@ -1963,7 +1963,7 @@ index d6605c15111dbdb6ee61a24822bc0a9aed7198d6..a9aae028195c0646d1692f55d2ebfe58 this.turtle.setSpeed(Mth.lerp(0.125F, this.turtle.getSpeed(), f1)); this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0D, (double) this.turtle.getSpeed() * d1 * 0.1D, 0.0D)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index fc19bd326f00d1e8bd08ef6cc430c555337a6e3d..6eadd5064148a7b75a1946274c25ff90fa49096a 100644 +index fb84ee1225cd762ef306d1fc3e1baed42c034a3c..04b6cb63bac767b386b8f67cf80a4d75df9d7fe5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -124,9 +124,32 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c98083c33458c506f045ff6f2f7bd5956a2b44df..8a8676424d2b87542e583040fc0b5b1c8ccd91ca 100644 +index 2add41657b8f868bcd4755ca843e457b8dfc7ef0..9d8c26a59b23e8c3cf82168b3716280cfb380f43 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2050,7 +2050,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2058,7 +2058,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.isInWater() || flag; } diff --git a/patches/server/0121-Fix-stuck-in-portals.patch b/patches/server/0121-Fix-stuck-in-portals.patch index 8f9c398e7..734199323 100644 --- a/patches/server/0121-Fix-stuck-in-portals.patch +++ b/patches/server/0121-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 976dfffac3895015d0eb00bab0ea93f9e5cc27a2..430ea84cbca69b6d119c2739bed9de37a970c2e5 100644 +index 6ffb7d0c9c6c7410af9efaf899296a8cb74ee105..ab14a199a588cec0d7df92e55fee596aeebde6f0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1687,6 +1687,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -17,10 +17,10 @@ index 976dfffac3895015d0eb00bab0ea93f9e5cc27a2..430ea84cbca69b6d119c2739bed9de37 this.connection.internalTeleport(PositionMoveRotation.of(teleportTarget), teleportTarget.relatives()); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8a8676424d2b87542e583040fc0b5b1c8ccd91ca..4971daaad718e1f37fb72c2d1a00dcb7cdf70af0 100644 +index 9d8c26a59b23e8c3cf82168b3716280cfb380f43..d61840da8edad607b6bb3e0b6e168417e4c59f23 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3471,14 +3471,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3479,14 +3479,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return Vec3.directionFromRotation(this.getRotationVector()); } diff --git a/patches/server/0140-Drowning-Settings.patch b/patches/server/0140-Drowning-Settings.patch index b84f55d80..7a5005495 100644 --- a/patches/server/0140-Drowning-Settings.patch +++ b/patches/server/0140-Drowning-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4971daaad718e1f37fb72c2d1a00dcb7cdf70af0..20df4a12d8e5fd5c167f03403d1331d2a0974c00 100644 +index d61840da8edad607b6bb3e0b6e168417e4c59f23..b4668e9f49aba4ae68c7d51a37f26c9bf754accc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3698,7 +3698,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3706,7 +3706,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public int getMaxAirSupply() { @@ -18,7 +18,7 @@ index 4971daaad718e1f37fb72c2d1a00dcb7cdf70af0..20df4a12d8e5fd5c167f03403d1331d2 public int getAirSupply() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b9038151cb69d018b89d65ab3af9f64447e6df8c..9777719cae27035bdf0c81e5f866dae96095a9c4 100644 +index 713b84c2c07145febc1e5cf4af833dd8f5f1588e..34aca945029f061ca21e8b3e0a2bde490140dd54 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -491,7 +491,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0166-API-for-any-mob-to-burn-daylight.patch b/patches/server/0166-API-for-any-mob-to-burn-daylight.patch index f9c1429e6..a21ca088a 100644 --- a/patches/server/0166-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0166-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 24ab4e40d9edb4834dd91c7638e2b0fd27927513..8097b31867b1095ff826510df9c51e3b08f6eb0d 100644 +index b4668e9f49aba4ae68c7d51a37f26c9bf754accc..5720e700b0e4bf2b58cbfd07efc80accdeac2734 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -618,6 +618,22 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -619,6 +619,22 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } // Purpur end @@ -31,7 +31,7 @@ index 24ab4e40d9edb4834dd91c7638e2b0fd27927513..8097b31867b1095ff826510df9c51e3b + public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); - this.passengers = ImmutableList.of(); + this.despawnTime = type == EntityType.PLAYER ? -1 : world.paperConfig().entities.spawning.despawnTime.getOrDefault(type, io.papermc.paper.configuration.type.number.IntOr.Disabled.DISABLED).or(-1); // Paper - entity despawn time limit diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java index 42e9c9842a2fd08ac64d7906251da2298f5735f6..b3be740bbffc16622da64d7ea609adacdab176bd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/patches/server/0209-UPnP-Port-Forwarding.patch b/patches/server/0209-UPnP-Port-Forwarding.patch index f30cd07b1..365a26172 100644 --- a/patches/server/0209-UPnP-Port-Forwarding.patch +++ b/patches/server/0209-UPnP-Port-Forwarding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] UPnP Port Forwarding diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 11a93d772164bd104be860ac9e8855ba5b6904c3..f46523e4eeeca027fe116625741b7af21041a027 100644 +index 3ae09a3459c804c57ce08001216120ee2d0fead2..3901b66cb8f3c2629b8f6094160498610e7686b9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -330,6 +330,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop this.getY() >= v) && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end - Configurable nether ceiling damage diff --git a/patches/server/0287-config-for-startup-commands.patch b/patches/server/0287-config-for-startup-commands.patch index d03d89b0a..c5de60f51 100644 --- a/patches/server/0287-config-for-startup-commands.patch +++ b/patches/server/0287-config-for-startup-commands.patch @@ -5,10 +5,10 @@ Subject: [PATCH] config for startup commands diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d1c13456353b5c83bd764bfa1ec2076b88e356ba..0a5cbfee55020e16af86044dbcd173cd3cd96f34 100644 +index 4c46d084befe48ec1f98a956033a58ee2f2c0bbc..2274a9c6c6db0a04a6e7ba6783a55db67f80e5ba 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1290,6 +1290,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop