diff --git a/gradle.properties b/gradle.properties
index 8c4f874f5..6b03774f4 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,7 +1,7 @@
group = org.purpurmc.purpur
version = 1.19.2-R0.1-SNAPSHOT
-paperCommit = 57555b8c6afc87542b26559e40381b4f0ba508bd
+paperCommit = eb68bd49a24fa6b0296b023b71489afcd4590fda
org.gradle.caching = true
org.gradle.parallel = true
diff --git a/patches/api/0005-Purpur-client-support.patch b/patches/api/0005-Purpur-client-support.patch
index 8e8019822..6b6e02911 100644
--- a/patches/api/0005-Purpur-client-support.patch
+++ b/patches/api/0005-Purpur-client-support.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 1d98abff1ad0116f7a2599f078aa730cb84843c1..a74aee455dffa6eb3a90ac12b9933eb3f0d5a4fc 100644
+index ecb8b4cf48c7d6151ffec92bc6855d1fc57a2b51..6355c9390238775b324b9f4e6795e40495ad3529 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2832,4 +2832,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2850,4 +2850,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override
Spigot spigot();
// Spigot end
diff --git a/patches/api/0007-Ridables.patch b/patches/api/0007-Ridables.patch
index f21b82115..5f2dd40c8 100644
--- a/patches/api/0007-Ridables.patch
+++ b/patches/api/0007-Ridables.patch
@@ -22,10 +22,10 @@ index 8fd399f791b45eb7fc62693ca954eea0c68e2881..22705359d5b3b1af522ff5575c07ca5e
* @deprecated removed in 1.16
*/
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
-index 6dd81f07ef4d6993187987d3352a01771ffb715e..20b00b0c12b848c171fa43d53ce53428e0f424a6 100644
+index 33a6b7a27dc91552799c07a7aad9b3df31ad13f7..83c74245e75b8895404fe4b7214c686a308e00b5 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
-@@ -946,4 +946,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
+@@ -951,4 +951,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
boolean wouldCollideUsing(@NotNull BoundingBox boundingBox);
// Paper End - Collision API
diff --git a/patches/api/0009-Llama-API.patch b/patches/api/0009-Llama-API.patch
index 814d2bc25..cfebb1cee 100644
--- a/patches/api/0009-Llama-API.patch
+++ b/patches/api/0009-Llama-API.patch
@@ -5,24 +5,15 @@ Subject: [PATCH] Llama API
diff --git a/src/main/java/org/bukkit/entity/Llama.java b/src/main/java/org/bukkit/entity/Llama.java
-index d23226ccb0f6c25028f000ce31346cd0a8898e6a..1ef9479c962b3f4f6fed46671a1209c34040d16d 100644
+index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc04d6a829 100644
--- a/src/main/java/org/bukkit/entity/Llama.java
+++ b/src/main/java/org/bukkit/entity/Llama.java
-@@ -3,6 +3,7 @@ package org.bukkit.entity;
- import com.destroystokyo.paper.entity.RangedEntity;
- import org.bukkit.inventory.LlamaInventory;
- import org.jetbrains.annotations.NotNull;
-+import org.jetbrains.annotations.Nullable; // Purpur
-
- /**
- * Represents a Llama.
-@@ -67,4 +68,65 @@ public interface Llama extends ChestedHorse, RangedEntity { // Paper
- @NotNull
- @Override
- LlamaInventory getInventory();
+@@ -119,4 +119,20 @@ public interface Llama extends ChestedHorse, RangedEntity { // Paper
+ @org.jetbrains.annotations.Nullable
+ Llama getCaravanTail();
+ // Paper end
+
+ // Purpur start
-+
+ /**
+ * Check if this Llama should attempt to join a caravan
+ *
@@ -36,50 +27,6 @@ index d23226ccb0f6c25028f000ce31346cd0a8898e6a..1ef9479c962b3f4f6fed46671a1209c3
+ * @param shouldJoinCaravan True to allow joining a caravan
+ */
+ void setShouldJoinCaravan(boolean shouldJoinCaravan);
-+
-+ /**
-+ * Check if Llama is in a caravan
-+ *
-+ * @return True if in caravan
-+ */
-+ boolean inCaravan();
-+
-+ /**
-+ * Join a caravan
-+ *
-+ * @param llama Head of caravan to join
-+ */
-+ void joinCaravan(@NotNull Llama llama);
-+
-+ /**
-+ * Leave current caravan if in one
-+ */
-+ void leaveCaravan();
-+
-+ /**
-+ * Check if another Llama is following this Llama
-+ *
-+ * @return True if being followed in the caravan
-+ */
-+ boolean hasCaravanTail();
-+
-+ /**
-+ * Get the Llama that this Llama is following
-+ *
-+ * Does not necessarily mean the leader of the entire caravan
-+ *
-+ * @return The Llama being followed
-+ */
-+ @Nullable
-+ Llama getCaravanHead();
-+
-+ /**
-+ * Get the Llama following this Llama, if any
-+ *
-+ * @return The Llama following this one
-+ */
-+ @Nullable
-+ Llama getCaravanTail();
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/event/entity/LlamaJoinCaravanEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/LlamaJoinCaravanEvent.java
diff --git a/patches/api/0010-AFK-API.patch b/patches/api/0010-AFK-API.patch
index d5263f015..e1c93f2a0 100644
--- a/patches/api/0010-AFK-API.patch
+++ b/patches/api/0010-AFK-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index a74aee455dffa6eb3a90ac12b9933eb3f0d5a4fc..64f42f8eb62a475c7407be2f461fc0d10ea014e9 100644
+index 6355c9390238775b324b9f4e6795e40495ad3529..a0a108154d64a9ffd89b7ccfb692235a81637dd4 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2840,5 +2840,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2858,5 +2858,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @return True if Player uses Purpur Client
*/
public boolean usesPurpurClient();
diff --git a/patches/api/0017-Player-invulnerabilities.patch b/patches/api/0017-Player-invulnerabilities.patch
index 8f590f551..ad6ce1514 100644
--- a/patches/api/0017-Player-invulnerabilities.patch
+++ b/patches/api/0017-Player-invulnerabilities.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 64f42f8eb62a475c7407be2f461fc0d10ea014e9..f569064325dceed352b3ab993add415526b93950 100644
+index a0a108154d64a9ffd89b7ccfb692235a81637dd4..b4f6f2ee270ce7bfb2e63727244ca7def5fdfcb9 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2859,5 +2859,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2877,5 +2877,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Reset the idle timer back to 0
*/
void resetIdleTimer();
diff --git a/patches/api/0034-API-for-any-mob-to-burn-daylight.patch b/patches/api/0034-API-for-any-mob-to-burn-daylight.patch
index 97737a0b2..f2bb7d865 100644
--- a/patches/api/0034-API-for-any-mob-to-burn-daylight.patch
+++ b/patches/api/0034-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/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
-index 20b00b0c12b848c171fa43d53ce53428e0f424a6..be7ad89699619aba9df4699403c9a70fd2bc9da1 100644
+index 83c74245e75b8895404fe4b7214c686a308e00b5..28be71aa677ed8cb9a9d06b3aba7af40f0992f68 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
-@@ -976,5 +976,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
+@@ -981,5 +981,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
* @return True if ridable in water
*/
boolean isRidableInWater();
diff --git a/patches/api/0035-Flying-Fall-Damage-API.patch b/patches/api/0035-Flying-Fall-Damage-API.patch
index c099f386e..57a455402 100644
--- a/patches/api/0035-Flying-Fall-Damage-API.patch
+++ b/patches/api/0035-Flying-Fall-Damage-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Flying Fall Damage API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index f569064325dceed352b3ab993add415526b93950..878d10ab18d325e82b42f83fce19360d187322ae 100644
+index b4f6f2ee270ce7bfb2e63727244ca7def5fdfcb9..8d1bdf02266799c9ca33ec72a6c063856916e3fc 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2880,5 +2880,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2898,5 +2898,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param invulnerableTicks Invulnerable ticks remaining
*/
void setSpawnInvulnerableTicks(int invulnerableTicks);
diff --git a/patches/api/0036-Add-back-player-spawned-endermite-API.patch b/patches/api/0036-Add-back-player-spawned-endermite-API.patch
index b3addb0c4..1a57eb065 100644
--- a/patches/api/0036-Add-back-player-spawned-endermite-API.patch
+++ b/patches/api/0036-Add-back-player-spawned-endermite-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add back player spawned endermite API
diff --git a/src/main/java/org/bukkit/entity/Endermite.java b/src/main/java/org/bukkit/entity/Endermite.java
-index 9e7f42caab1204036f4203354c115fd40c6def92..1bc6a6930e9a5881a4fe4bf208da4430d90d799a 100644
+index 138d2530de2410f4a9424dabd3e5ce0cd1c1dcd2..10a8d64ad2da0be2c14f34c3e7d1957c6f2883d1 100644
--- a/src/main/java/org/bukkit/entity/Endermite.java
+++ b/src/main/java/org/bukkit/entity/Endermite.java
-@@ -3,24 +3,20 @@ package org.bukkit.entity;
+@@ -3,25 +3,21 @@ package org.bukkit.entity;
public interface Endermite extends Monster {
/**
@@ -36,4 +36,5 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..1bc6a6930e9a5881a4fe4bf208da4430
*/
- @Deprecated
void setPlayerSpawned(boolean playerSpawned);
- }
+ // Paper start
+ /**
diff --git a/patches/api/0050-Debug-Marker-API.patch b/patches/api/0050-Debug-Marker-API.patch
index d5674b7ab..c98038364 100644
--- a/patches/api/0050-Debug-Marker-API.patch
+++ b/patches/api/0050-Debug-Marker-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Debug Marker API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 581c797b660cd190dc368a4d3f1c01717e98a4a6..827ff8d71391a7e7b4273c85fe3b6601dab68f77 100644
+index 6d46cc8674e488aa988722e09749f756a423b9e4..e5943f1313f97dd6a353873d54424ae70d46dcef 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -2500,5 +2500,89 @@ public final class Bukkit {
@@ -99,7 +99,7 @@ index 581c797b660cd190dc368a4d3f1c01717e98a4a6..827ff8d71391a7e7b4273c85fe3b6601
// Purpur end
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 7b499d4501e2123b22fd8311c68b8f7b3c41beed..0e4d5345a5590d1a5d98cf11eb6e3649303c3ebb 100644
+index 3ebce913ff1063de417aa3dc3b4af6d538078db2..a7e2fab3e174fe2c1d79d904f7eaff88dd0c3c82 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2179,5 +2179,75 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -260,10 +260,10 @@ index 8effbbd33c0af0ac421e5aef1586e8579ef097e4..0cd49cb31b21e52009f6220d505aa2a3
/**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 878d10ab18d325e82b42f83fce19360d187322ae..3e9b58f1f63e472fa292d25002c5aff8c474fca1 100644
+index 8d1bdf02266799c9ca33ec72a6c063856916e3fc..d2e749b08ab660ffc8ed50e4243cdb4da3447611 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2894,5 +2894,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2912,5 +2912,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @return True if fall damage is enabled when {@link #getAllowFlight()} is true
*/
public boolean hasFlyingFallDamage();
diff --git a/patches/api/0052-Add-death-screen-API.patch b/patches/api/0052-Add-death-screen-API.patch
index 1f3820d35..2ac75e42a 100644
--- a/patches/api/0052-Add-death-screen-API.patch
+++ b/patches/api/0052-Add-death-screen-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index d0d617284248065e728e4940d240be5bff1103e4..80f0d631a9780ec853b2ab44d5bcbec45f7d4051 100644
+index 876eb0540f328073d8e44e9f75089d945f0a523d..9c2dcca0b6e34a3083226360575f0956a077d767 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2972,5 +2972,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2990,5 +2990,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Clears all debug block highlights
*/
void clearBlockHighlights();
diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch
index ad1504002..f8a940ef1 100644
--- a/patches/server/0001-Pufferfish-Server-Changes.patch
+++ b/patches/server/0001-Pufferfish-Server-Changes.patch
@@ -1881,10 +1881,10 @@ index 540bc9500c35c0db719b00aa26f6fb3a1b08ed9f..806cb760822a99316b08ad95ff8922df
int LARGE_MAX_STACK_SIZE = 64;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a80f4abf8a0c6c395f407c8bf25b44a64b0b9fe3..bf17305137f61455cc477515e054e6a65f976c45 100644
+index a1421689445b9df3f25889845c21cf37a439afe2..d96422f871c18303ce7ff7a182c685b0ddbfa04d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -292,7 +292,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -291,7 +291,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public double yo;
public double zo;
private Vec3 position;
@@ -1893,7 +1893,7 @@ index a80f4abf8a0c6c395f407c8bf25b44a64b0b9fe3..bf17305137f61455cc477515e054e6a6
private ChunkPos chunkPosition;
private Vec3 deltaMovement;
private float yRot;
-@@ -414,6 +414,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -413,6 +413,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return this.originWorld;
}
// Paper end
@@ -1905,7 +1905,7 @@ index a80f4abf8a0c6c395f407c8bf25b44a64b0b9fe3..bf17305137f61455cc477515e054e6a6
public float getBukkitYaw() {
return this.yRot;
}
-@@ -488,17 +493,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -487,17 +492,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.isLegacyTrackingEntity = isLegacyTrackingEntity;
}
@@ -1943,7 +1943,7 @@ index a80f4abf8a0c6c395f407c8bf25b44a64b0b9fe3..bf17305137f61455cc477515e054e6a6
for (Entity passenger : passengers) {
org.spigotmc.TrackingRange.TrackingRangeType passengerType = passenger.trackingRangeType;
int passengerRange = chunkMap.getEntityTrackerRange(passengerType.ordinal());
-@@ -507,6 +531,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -506,6 +530,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
range = passengerRange;
}
}
@@ -1953,7 +1953,7 @@ index a80f4abf8a0c6c395f407c8bf25b44a64b0b9fe3..bf17305137f61455cc477515e054e6a6
return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
}
-@@ -788,6 +815,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -787,6 +814,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// CraftBukkit end
public void baseTick() {
@@ -1966,7 +1966,7 @@ index a80f4abf8a0c6c395f407c8bf25b44a64b0b9fe3..bf17305137f61455cc477515e054e6a6
this.level.getProfiler().push("entityBaseTick");
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking
this.feetBlockState = null;
-@@ -4016,16 +4049,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -4015,16 +4048,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) {
@@ -1992,7 +1992,7 @@ index a80f4abf8a0c6c395f407c8bf25b44a64b0b9fe3..bf17305137f61455cc477515e054e6a6
double d1 = 0.0D;
boolean flag = this.isPushedByFluid();
boolean flag1 = false;
-@@ -4033,14 +4068,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -4032,14 +4067,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
int k1 = 0;
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
@@ -2060,7 +2060,7 @@ index a80f4abf8a0c6c395f407c8bf25b44a64b0b9fe3..bf17305137f61455cc477515e054e6a6
if (d2 >= axisalignedbb.minY) {
flag1 = true;
-@@ -4062,9 +4144,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -4061,9 +4143,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// CraftBukkit end
}
}
@@ -2317,7 +2317,7 @@ index a7575b5ef56af6f53448d391abb4956e130148ca..e752c83df50fb9b670ecea2abc95426c
return false;
}
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
-index 50d4595b81f24949011c7565c5e3fc8c26c86019..234ad92d666775dcf5a29a60551b17cbb1d8e6ec 100644
+index def01d221f36d71640bf4ef982a984909aacc6da..bfea05018d9515fa7a9a8c04d4e2a63e0f3cd0d4 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -253,13 +253,22 @@ public class Bat extends AmbientCreature {
@@ -2584,7 +2584,7 @@ index a1a625a8dacf4d2bbf75ddd90dce1b1be663c919..23e375c9a6955d03e0fc9be91ff04032
return false;
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
-index c61ed38d0a824fee9b45acfc862baf03c85fe54b..85fb907fb149961611310c355d0911d81f1b735c 100644
+index 713c11d6547cb02ac4b6a02aec07a8ba68019f3f..bf828b9a36fc70bcf4c4d87d5db2d37aa384499c 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -42,6 +42,36 @@ public abstract class Projectile extends Entity {
diff --git a/patches/server/0005-Purpur-client-support.patch b/patches/server/0005-Purpur-client-support.patch
index e282c6cae..0c48b69c0 100644
--- a/patches/server/0005-Purpur-client-support.patch
+++ b/patches/server/0005-Purpur-client-support.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index af7acb628b84539b1ee5ef1934f75f091c4cd91e..63aef471ceba18c2b296f4e287837c6df44809d7 100644
+index e5af7ef4ada68922a70f593ccec555ecb50627a9..47d545a15b508454452699fe3e333b2bacc3159e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -261,6 +261,7 @@ public class ServerPlayer extends Player {
@@ -43,10 +43,10 @@ index 59608a53bbf0eccf118b4d65557444f6532fedb4..bfaa37739230107b73f81e227660e950
try {
byte[] data = new byte[packet.data.readableBytes()];
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 968aa80b57a31d89852c6f4bc0ec5ed4a98c6530..e5d1503e89ba42527bd3bdd7fddd45d494a0173c 100644
+index b1136b9c39b16cbb9dfe460f88000f74ccd4f571..622ec4316df5bae2466f28173c121634f73767d1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2937,4 +2937,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2944,4 +2944,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end
diff --git a/patches/server/0007-Component-related-conveniences.patch b/patches/server/0007-Component-related-conveniences.patch
index 6a737b793..a2045bb32 100644
--- a/patches/server/0007-Component-related-conveniences.patch
+++ b/patches/server/0007-Component-related-conveniences.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Component related conveniences
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 63aef471ceba18c2b296f4e287837c6df44809d7..5f854b9d25d5965268a089a992ee9bacf7b3aa0f 100644
+index 47d545a15b508454452699fe3e333b2bacc3159e..57c1ab010ff459dfb4e7d44e6afba36b56a19654 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1690,6 +1690,26 @@ public class ServerPlayer extends Player {
+@@ -1709,6 +1709,26 @@ public class ServerPlayer extends Player {
this.lastSentExp = -1; // CraftBukkit - Added to reset
}
@@ -81,10 +81,10 @@ index 67bce77093dcc126098731047447da2031e3388d..c4088446d30c3b25cf196f51fd394cd0
return this.isFireSource;
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index bf17305137f61455cc477515e054e6a65f976c45..9ea08fc57efd9f593798a7c5feffaf9663ff76ad 100644
+index d96422f871c18303ce7ff7a182c685b0ddbfa04d..4f1ed7708311d8a8d63706592e9feed8de2a4aa2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -3798,6 +3798,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -3797,6 +3797,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return SlotAccess.NULL;
}
diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch
index be13145c6..f43c9ad5c 100644
--- a/patches/server/0008-Ridables.patch
+++ b/patches/server/0008-Ridables.patch
@@ -46,10 +46,10 @@ index 253f2e64f7d287057170ed50180e92d644a11f76..6d1c1c7647006ca2ee72262c9f76fc18
return new Throwable(entity + " Added to world at " + new java.util.Date());
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 5f854b9d25d5965268a089a992ee9bacf7b3aa0f..e0a7a932ebfdec18b28ce5b697400951ea54c0a9 100644
+index 57c1ab010ff459dfb4e7d44e6afba36b56a19654..12e0308373684093736bd558606e5a46e159ca20 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -655,6 +655,15 @@ public class ServerPlayer extends Player {
+@@ -674,6 +674,15 @@ public class ServerPlayer extends Player {
this.trackStartFallingPosition();
this.trackEnteredOrExitedLavaOnVehicle();
this.advancements.flushDirty(this);
@@ -79,10 +79,10 @@ index bfaa37739230107b73f81e227660e950d81d50a0..37f7e6d4ab2c5a043b122b34a4a0e574
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)) {
ServerGamePacketListenerImpl.this.send(new ClientboundAddEntityPacket(entity));
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 9ea08fc57efd9f593798a7c5feffaf9663ff76ad..493b8f4dba23f995235c6e6f433a25ff84a833cb 100644
+index 4f1ed7708311d8a8d63706592e9feed8de2a4aa2..7816aae4b7e1745f138cdcc12575eba32de2f562 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -362,7 +362,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -361,7 +361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
private final Set tags;
private final double[] pistonDeltas;
private long pistonDeltasGameTime;
@@ -91,7 +91,7 @@ index 9ea08fc57efd9f593798a7c5feffaf9663ff76ad..493b8f4dba23f995235c6e6f433a25ff
private float eyeHeight;
public boolean isInPowderSnow;
public boolean wasInPowderSnow;
-@@ -2782,6 +2782,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -2781,6 +2781,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.passengers = ImmutableList.copyOf(list);
}
@@ -104,7 +104,7 @@ index 9ea08fc57efd9f593798a7c5feffaf9663ff76ad..493b8f4dba23f995235c6e6f433a25ff
}
return true; // CraftBukkit
}
-@@ -2822,6 +2828,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -2821,6 +2827,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return false;
}
// Spigot end
@@ -119,8 +119,8 @@ index 9ea08fc57efd9f593798a7c5feffaf9663ff76ad..493b8f4dba23f995235c6e6f433a25ff
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
} else {
-@@ -4568,4 +4582,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
- return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
+@@ -4567,4 +4581,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+ return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end
+
@@ -553,7 +553,7 @@ index 7df56705a4a0de2dc4ff7ab133fc26612c219162..60d21d6171b9af20a4c6fcc0d564a31a
}
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
-index 234ad92d666775dcf5a29a60551b17cbb1d8e6ec..2edc11b093dbfc96d287dc9d3e208cc2a39c537e 100644
+index bfea05018d9515fa7a9a8c04d4e2a63e0f3cd0d4..794bd646fda0d7f2c71b10b8a74880fcdf813d22 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -18,6 +18,7 @@ import net.minecraft.world.entity.EntityDimensions;
@@ -702,7 +702,7 @@ index 1f85f34c1e50f34fb270d2fac7d307c82a550bfa..324f52edd95b5f9a498e46def8c14435
double d = this.wantedX - this.fish.getX();
double e = this.wantedY - this.fish.getY();
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
-index a9cdf9034ad269f7a71358443acc053288cfbe6d..69a214c3a9f49d5b30b56f880263e736548a064f 100644
+index 2e05c953182c27e3571b2c33eceeb379e60b54be..0e3e9c9652da69a66d372173d256e3ca2f1e75f7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -43,6 +43,7 @@ import net.minecraft.world.entity.EntityType;
@@ -1284,7 +1284,7 @@ index e73acfa2f5a4066fa1beee1758082a2fe97a43b3..bdd7d46781598fd54e65d9df1efe7905
float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F;
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
-index e84d4ecc1fd8e196743a37b18306a4769abbcb77..2be73f6dfb7edf8a4019fc29209fee54b9be6b47 100644
+index c4441ef250b95663198cfc9607d714dbe346512c..2bc451088a69fb56ff6a6274d4f91cc1ceed2f9c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -64,6 +64,23 @@ public class MushroomCow extends Cow implements Shearable {
@@ -2564,7 +2564,7 @@ index 34299274e7dd57076a1043d735a41b9c34f0a349..f711ea32db68fb7aece5081e741c4e16
protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)this.generateRandomMaxHealth(random));
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
-index ed8dfabdad28e27054aa0679e06fcf87dc049f77..84faefeb6504a079ca907afcba7ff90873c68f8c 100644
+index 149be8bf166282e651a375a27ca209010f25d688..5db0ed6cc982a276284be50d87e2125921b5d5d6 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -71,7 +71,51 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -3498,7 +3498,7 @@ index f5bb64f9f683cf21e772035e9be100ed2ddf8bc6..a27394f0188f643a602e126c484d0de4
Entity entity = source.getDirectEntity();
boolean flag;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
-index d5b4733915ff0f3219ada055a1bf88a871bec452..8fe770c5d5ed990edd94d707827cba02222975ff 100644
+index e8c3972b889fd6b348a5b0d18444d28faa813879..9af512ac1147c7be9afeb2e1b767f3455d366b79 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
@@ -37,14 +37,33 @@ public class Endermite extends Monster {
@@ -3904,7 +3904,7 @@ index ea4fa9eba301e462c159cdb970079f6d87d25f4d..3a2261687ec8b3b1f69b89ceeb2cc8cc
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
-index cb81c5d37c72845133c4e59acaf8de56dcc9e62a..308debc811b8eb61c8d9d5aeba3e118b9802e401 100644
+index aa8734856ec7b90036afad13bfda46c02e548812..3ee0905bc4d054fef76e1f02e618f06fa4339adc 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -60,6 +60,64 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -4085,7 +4085,7 @@ index 682beb556bbe2b74c0a08e780fa25dcb301c281c..e3e1743e4a8d6ddccdbd08351b3524e6
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
-index a0eee7dc73bd4a96d9a1aa9555093820c5f7c49c..ad5fa8d9146262d569255994c7c7df80efacd5f1 100644
+index 23cd2e1faf0d7b59885e194fc0f0adc558e4921b..c08c95198fb472ac2eb1e0cbf266f2e47c6bd437 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -69,14 +69,39 @@ public class Ravager extends Raider {
@@ -5066,7 +5066,7 @@ index 93077e8c6b5a35adc6febb749d1d08be172402f1..a6519bf96f39fa69ecb65ef25dba8026
this.startTrading(player);
}
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
-index 86e1ba898d6b92735258419fa74352e5116226dc..2ae9a5da91ad20f1b566a686dcc8d4f14c62ecc5 100644
+index af092098cdfc528bd9f5d771ead1b685aa051bee..bb710e97a515d25a5835805cadfca48b2f1f916a 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -66,6 +66,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -5146,10 +5146,10 @@ index 4132c1113f5437a776e5e3c1cb306904775aed88..1a945a32c3d3705a318ebca72a365931
public void tick() {
super.tick();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index d4ea7d19ae16a8ccafcfe5300bb380b28fd42b75..a0d8afdee5db3202d3693ad4d10b61fc3b942920 100644
+index 9368ec01e498f913bc5b7b3e77fe87659090d9b5..9aee601caad5b314cef2e32a57fdb8ab8aeae896 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1372,4 +1372,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1384,4 +1384,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return !this.getHandle().level.noCollision(this.getHandle(), aabb);
}
// Paper End - Collision API
diff --git a/patches/server/0009-Configurable-entity-base-attributes.patch b/patches/server/0009-Configurable-entity-base-attributes.patch
index 6e7d9ddad..decf2b803 100644
--- a/patches/server/0009-Configurable-entity-base-attributes.patch
+++ b/patches/server/0009-Configurable-entity-base-attributes.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 726c4a9dac41a887537b91ade7cb7b2a722a1e63..4227272cc2bac2b603e4d477031d4c71641c5748 100644
+index 7816aae4b7e1745f138cdcc12575eba32de2f562..a21c743d3c5d200346e9a7d93554264dbda6783c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -156,7 +156,7 @@ import org.bukkit.plugin.PluginManager;
+@@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager;
// CraftBukkit end
public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -34,7 +34,7 @@ index 882ab40c8cdea8c214cb8344b3ccecddb2967c1c..cb79d2c958fbd34f8c8818e7e1c0db88
@Override
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 4eb4c99a0284b3bc324f37cf55c09ef0006b1136..dbf1ef9297efd628f8479c63217919d179418295 100644
+index f7d194069b0ef3b4b0a6f360c2b00a2f22d5bcc3..b93edb473c47bd49d0c6f1e39ad36063771672d5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -288,6 +288,7 @@ public abstract class LivingEntity extends Entity {
@@ -55,7 +55,7 @@ index 4eb4c99a0284b3bc324f37cf55c09ef0006b1136..dbf1ef9297efd628f8479c63217919d1
return this.brain;
}
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
-index 2edc11b093dbfc96d287dc9d3e208cc2a39c537e..007c945725721ddb8a3dc4b8085e8c68da741b93 100644
+index 794bd646fda0d7f2c71b10b8a74880fcdf813d22..6a702b0dfd5e40d9f7abbbbf55c286492755e07c 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -90,6 +90,18 @@ public class Bat extends AmbientCreature {
@@ -78,7 +78,7 @@ index 2edc11b093dbfc96d287dc9d3e208cc2a39c537e..007c945725721ddb8a3dc4b8085e8c68
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
-index 69a214c3a9f49d5b30b56f880263e736548a064f..33f2100a9cb7616339c18d9b41293eab8c0e4a65 100644
+index 0e3e9c9652da69a66d372173d256e3ca2f1e75f7..7f57a591172708d5cebbd88335ca60d8972bfb0e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -214,6 +214,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -142,7 +142,7 @@ index 545ef4ab037b3173cc7377ad8147a44a2050d56f..861727f150f28a508d3b1c7067d410f0
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
-index 8f046fb76b6967e72abde523ffb790e0f46b80e0..dd4d5e2e7cbfed18cf3b4664dbe08eaf9d95f61e 100644
+index eccb4af0aba930b04763303e38620700fc991184..b6af466d454ca7d4c0277d2d1db0e23b50677418 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -55,6 +55,11 @@ public class Cow extends Animal {
@@ -206,7 +206,7 @@ index bdd7d46781598fd54e65d9df1efe790579f94c24..4003e4f4128f14e0dffa666ed8f4447a
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
-index 2be73f6dfb7edf8a4019fc29209fee54b9be6b47..380fe61157048da5df1781a0622af290f8adbf82 100644
+index 2bc451088a69fb56ff6a6274d4f91cc1ceed2f9c..763a254d820cff3c776570248b9e905c052dd447 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -79,6 +79,11 @@ public class MushroomCow extends Cow implements Shearable {
@@ -475,7 +475,7 @@ index 3b576e8944bcef78f5769ccd90591f2db4dfd697..ad6a87ba97138253db2b300dec8a89fa
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
-index 04eb870ac7db68f5854e0f52f2b3c988c9f35c6f..77be0c6f6e6061ceee1daa467c20c8d7ece7590e 100644
+index e3a5d18779746e35f63f5103b9d4480b1bf31ee0..1528728bb66b63f3d4080fe10d3ba9abc309a63b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -104,6 +104,11 @@ public class Goat extends Animal {
@@ -589,7 +589,7 @@ index f711ea32db68fb7aece5081e741c4e161123467f..390f630462c907cd6e961c6ca432804e
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
-index 84faefeb6504a079ca907afcba7ff90873c68f8c..7c1120b51d196179f92ce0d3fc5d2bf48e2a1514 100644
+index 5db0ed6cc982a276284be50d87e2125921b5d5d6..8e3b091130d33c6ec113f50930af25642ae54cc0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -115,6 +115,21 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -861,7 +861,7 @@ index a27394f0188f643a602e126c484d0de440d19409..d86aeb3f91a01206e7cb13caae3e5c57
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
-index 8fe770c5d5ed990edd94d707827cba02222975ff..1058897ab91e13884b480ad0e5028fb2a205fe05 100644
+index 9af512ac1147c7be9afeb2e1b767f3455d366b79..400045d30353899edc89907deab14943bc5c37eb 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
@@ -52,6 +52,11 @@ public class Endermite extends Monster {
@@ -1013,7 +1013,7 @@ index 3a2261687ec8b3b1f69b89ceeb2cc8cc524ab57a..69375fdb63b9edde3d161bac7a1946a3
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
-index 308debc811b8eb61c8d9d5aeba3e118b9802e401..022f40b66864940652099e91fad18e02aee8c5b2 100644
+index 3ee0905bc4d054fef76e1f02e618f06fa4339adc..2294458c7e81147a3efd2ef854fbc08f44231050 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -116,6 +116,21 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -1067,7 +1067,7 @@ index e3e1743e4a8d6ddccdbd08351b3524e6e2bed38c..13c0c270dc56f0e3d6e60714a3b9abeb
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
-index ad5fa8d9146262d569255994c7c7df80efacd5f1..6d1d682d193b630706731ba6d4a44955e8a0a2e7 100644
+index c08c95198fb472ac2eb1e0cbf266f2e47c6bd437..94859efec34e6edfd31ff22277e3084218e38b3c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -90,6 +90,11 @@ public class Ravager extends Raider {
@@ -1400,7 +1400,7 @@ index f2afd5f8ad916f0cf4674c6b4f973715999c6641..e99ffbf30652e188e88f8e17ed41d39f
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
-index b5b2d1f8ab8dedfa38e0ed4c99a0e0088fa4e4cc..9a14ac198433e9bdfa2dabd4d3ae88ba17fd86ea 100644
+index e7b3be1e2f36e962239095e81f865792a61aedc9..75fcb651cae925ce5cb0b577a8dc39d71845aa4d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -110,6 +110,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1448,7 +1448,7 @@ index a6519bf96f39fa69ecb65ef25dba80261bb03323..ef08ec3eb88ee1ab624e2bd38aaff5e8
@Override
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
-index 2ae9a5da91ad20f1b566a686dcc8d4f14c62ecc5..8bfa041297db79e8f1452ce7059d1536a6e2854f 100644
+index bb710e97a515d25a5835805cadfca48b2f1f916a..87d2f596ed2c313dd49f3b0c7a1a33d9288844ff 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -81,6 +81,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
diff --git a/patches/server/0011-Llama-API.patch b/patches/server/0011-Llama-API.patch
index 0f42a65d8..b13878e3f 100644
--- a/patches/server/0011-Llama-API.patch
+++ b/patches/server/0011-Llama-API.patch
@@ -25,13 +25,13 @@ index 721971f7618751a2e95f1c49fdc48a9c0c672cab..7b141c495095afcd9c8b04c059d692e8
double d = this.llama.distanceToSqr(this.llama.getCaravanHead());
if (d > 676.0D) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
-index fd5802bf7554590a19b3d5fc50c9ced02232f294..8512103686380c2114851666fce649d573a61355 100644
+index 8e3b091130d33c6ec113f50930af25642ae54cc0..f9da2e58b8df88ad103f2549b27fbedee8520bb1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -68,6 +68,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
private Llama caravanHead;
@Nullable
- private Llama caravanTail;
+ public Llama caravanTail; // Paper
+ public boolean shouldJoinCaravan = true; // Purpur
public Llama(EntityType extends Llama> type, Level world) {
@@ -45,20 +45,16 @@ index fd5802bf7554590a19b3d5fc50c9ced02232f294..8512103686380c2114851666fce649d5
}
@Override
-@@ -176,6 +177,12 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
+@@ -175,7 +176,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
+ if (nbt.contains("DecorItem", 10)) {
this.inventory.setItem(1, ItemStack.of(nbt.getCompound("DecorItem")));
}
-
-+ // Purpur start
-+ if (nbt.contains("Purpur.ShouldJoinCaravan")) {
-+ this.shouldJoinCaravan = nbt.getBoolean("Purpur.ShouldJoinCaravan");
-+ }
-+ // Purpur end
-+
+-
++ if (nbt.contains("Purpur.ShouldJoinCaravan")) this.shouldJoinCaravan = nbt.getBoolean("Purpur.ShouldJoinCaravan"); // Purpur
this.updateContainerEquipment();
}
-@@ -515,6 +522,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
+@@ -515,6 +516,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
public void leaveCaravan() {
if (this.caravanHead != null) {
@@ -66,7 +62,7 @@ index fd5802bf7554590a19b3d5fc50c9ced02232f294..8512103686380c2114851666fce649d5
this.caravanHead.caravanTail = null;
}
-@@ -522,6 +530,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
+@@ -522,6 +524,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
}
public void joinCaravan(Llama llama) {
@@ -74,28 +70,14 @@ index fd5802bf7554590a19b3d5fc50c9ced02232f294..8512103686380c2114851666fce649d5
this.caravanHead = llama;
this.caravanHead.caravanTail = this;
}
-@@ -539,6 +548,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
- return this.caravanHead;
- }
-
-+ // Purpur start
-+ @Nullable
-+ public Llama getCaravanTail() {
-+ return this.caravanTail;
-+ }
-+ // Purpur end
-+
- @Override
- protected double followLeashSpeed() {
- return 2.0D;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
-index ae05f526f9ec70a2992ef3ee66b7f57eca2351fc..b010d7398c657367651fc576af5b0514164cd51c 100644
+index 15e2c2653d7d41e8bafa0ffe1afaa733c569b2ab..a5561a0eecb819e0da13e01cfa41f4a3ee73dfcc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java
-@@ -64,4 +64,46 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys
- public EntityType getType() {
- return EntityType.LLAMA;
+@@ -96,4 +96,16 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys
+ return this.getHandle().caravanTail == null ? null : (Llama) this.getHandle().caravanTail.getBukkitEntity();
}
+ // Paper end
+
+ // Purpur start
+ @Override
@@ -107,35 +89,5 @@ index ae05f526f9ec70a2992ef3ee66b7f57eca2351fc..b010d7398c657367651fc576af5b0514
+ public void setShouldJoinCaravan(boolean shouldJoinCaravan) {
+ getHandle().shouldJoinCaravan = shouldJoinCaravan;
+ }
-+
-+ @Override
-+ public boolean inCaravan() {
-+ return getHandle().inCaravan();
-+ }
-+
-+ @Override
-+ public void joinCaravan(@org.jetbrains.annotations.NotNull Llama llama) {
-+ getHandle().joinCaravan(((CraftLlama) llama).getHandle());
-+ }
-+
-+ @Override
-+ public void leaveCaravan() {
-+ getHandle().leaveCaravan();
-+ }
-+
-+ @Override
-+ public boolean hasCaravanTail() {
-+ return getHandle().hasCaravanTail();
-+ }
-+
-+ @Override
-+ public Llama getCaravanHead() {
-+ return getHandle().getCaravanHead() == null ? null : (Llama) getHandle().getCaravanHead().getBukkitEntity();
-+ }
-+
-+ @Override
-+ public Llama getCaravanTail() {
-+ return getHandle().getCaravanTail() == null ? null : (Llama) getHandle().getCaravanTail().getBukkitEntity();
-+ }
+ // Purpur end
}
diff --git a/patches/server/0012-AFK-API.patch b/patches/server/0012-AFK-API.patch
index aaa3c3670..c0ba21fe4 100644
--- a/patches/server/0012-AFK-API.patch
+++ b/patches/server/0012-AFK-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e0a7a932ebfdec18b28ce5b697400951ea54c0a9..492a7f7d2d0a06c10f11c7cd61edba26e40d9f42 100644
+index 12e0308373684093736bd558606e5a46e159ca20..aa509809e88f85e28698bb22aed77169cbedfcf4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1987,8 +1987,58 @@ public class ServerPlayer extends Player {
+@@ -2006,8 +2006,58 @@ public class ServerPlayer extends Player {
public void resetLastActionTime() {
this.lastActionTime = Util.getMillis();
@@ -213,7 +213,7 @@ index 3f458ddd4dc04ed28510a212be76bb19e7f6a61e..a36469186f72eccf8c4428d920d0583b
if (range < 0.0D || d < range * range) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index e5d1503e89ba42527bd3bdd7fddd45d494a0173c..d39f57ed1903714c5d52817a9ce40d6329f79ded 100644
+index 622ec4316df5bae2466f28173c121634f73767d1..9a8c4da2151cf7bfeef545d754274bb92152e185 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -522,10 +522,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -233,7 +233,7 @@ index e5d1503e89ba42527bd3bdd7fddd45d494a0173c..d39f57ed1903714c5d52817a9ce40d63
for (ServerPlayer player : (List) server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
-@@ -2943,5 +2948,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2950,5 +2955,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() {
return getHandle().purpurClient;
}
diff --git a/patches/server/0019-Player-invulnerabilities.patch b/patches/server/0019-Player-invulnerabilities.patch
index b2bb5e82e..eb4d05161 100644
--- a/patches/server/0019-Player-invulnerabilities.patch
+++ b/patches/server/0019-Player-invulnerabilities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 492a7f7d2d0a06c10f11c7cd61edba26e40d9f42..2044a297f1820b41c41df9a8b3b0bbff9ae08432 100644
+index aa509809e88f85e28698bb22aed77169cbedfcf4..671ef13c7abdd77ad49fc490c2117a224b701311 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -262,6 +262,7 @@ public class ServerPlayer extends Player {
@@ -16,7 +16,7 @@ index 492a7f7d2d0a06c10f11c7cd61edba26e40d9f42..2044a297f1820b41c41df9a8b3b0bbff
public boolean isRealPlayer; // Paper
public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks
-@@ -339,6 +340,7 @@ public class ServerPlayer extends Player {
+@@ -358,6 +359,7 @@ public class ServerPlayer extends Player {
this.bukkitPickUpLoot = true;
this.maxHealthCache = this.getMaxHealth();
this.cachedSingleMobDistanceMap = new com.destroystokyo.paper.util.PooledHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper
@@ -24,7 +24,7 @@ index 492a7f7d2d0a06c10f11c7cd61edba26e40d9f42..2044a297f1820b41c41df9a8b3b0bbff
}
// Yes, this doesn't match Vanilla, but it's the best we can do for now.
-@@ -1003,6 +1005,12 @@ public class ServerPlayer extends Player {
+@@ -1022,6 +1024,12 @@ public class ServerPlayer extends Player {
}
@@ -37,7 +37,7 @@ index 492a7f7d2d0a06c10f11c7cd61edba26e40d9f42..2044a297f1820b41c41df9a8b3b0bbff
@Override
public boolean hurt(DamageSource source, float amount) {
if (this.isInvulnerableTo(source)) {
-@@ -1010,7 +1018,7 @@ public class ServerPlayer extends Player {
+@@ -1029,7 +1037,7 @@ public class ServerPlayer extends Player {
} else {
boolean flag = this.server.isDedicatedServer() && this.isPvpAllowed() && "fall".equals(source.msgId);
@@ -46,7 +46,7 @@ index 492a7f7d2d0a06c10f11c7cd61edba26e40d9f42..2044a297f1820b41c41df9a8b3b0bbff
return false;
} else {
if (source instanceof EntityDamageSource) {
-@@ -1184,6 +1192,7 @@ public class ServerPlayer extends Player {
+@@ -1203,6 +1211,7 @@ public class ServerPlayer extends Player {
}
// Paper end
@@ -54,7 +54,7 @@ index 492a7f7d2d0a06c10f11c7cd61edba26e40d9f42..2044a297f1820b41c41df9a8b3b0bbff
return this;
}
}
-@@ -1973,6 +1982,7 @@ public class ServerPlayer extends Player {
+@@ -1992,6 +2001,7 @@ public class ServerPlayer extends Player {
}
public void sendTexturePack(String url, String hash, boolean required, @Nullable Component resourcePackPrompt) {
@@ -62,7 +62,7 @@ index 492a7f7d2d0a06c10f11c7cd61edba26e40d9f42..2044a297f1820b41c41df9a8b3b0bbff
this.connection.send(new ClientboundResourcePackPacket(url, hash, required, resourcePackPrompt));
}
-@@ -2498,9 +2508,17 @@ public class ServerPlayer extends Player {
+@@ -2517,9 +2527,17 @@ public class ServerPlayer extends Player {
@Override
public boolean isImmobile() {
@@ -121,10 +121,10 @@ index 2da8186b5f34b5cce97512f50323bee091d380ab..e09cfac18f2b952bb54ec75b04505024
return entityplayer1;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d39f57ed1903714c5d52817a9ce40d6329f79ded..279c71e085a0148abfc040c9b84f9b079a1416b6 100644
+index 9a8c4da2151cf7bfeef545d754274bb92152e185..7e81d442b3e304734ad9bc54065bea770885d705 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2963,5 +2963,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2970,5 +2970,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetLastActionTime();
}
diff --git a/patches/server/0046-Minecart-settings-and-WASD-controls.patch b/patches/server/0046-Minecart-settings-and-WASD-controls.patch
index be5b1d7e4..bc22fa686 100644
--- a/patches/server/0046-Minecart-settings-and-WASD-controls.patch
+++ b/patches/server/0046-Minecart-settings-and-WASD-controls.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Minecart settings and WASD controls
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 2044a297f1820b41c41df9a8b3b0bbff9ae08432..ff3561fa225420bfa92fd081a2f54216845be860 100644
+index 671ef13c7abdd77ad49fc490c2117a224b701311..80598d109eba14f719c4c8190d93d4a9febb9248 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1016,6 +1016,7 @@ public class ServerPlayer extends Player {
+@@ -1035,6 +1035,7 @@ public class ServerPlayer extends Player {
if (this.isInvulnerableTo(source)) {
return false;
} else {
diff --git a/patches/server/0060-Configurable-void-damage-height-and-damage.patch b/patches/server/0060-Configurable-void-damage-height-and-damage.patch
index 52030a2af..e86791b5b 100644
--- a/patches/server/0060-Configurable-void-damage-height-and-damage.patch
+++ b/patches/server/0060-Configurable-void-damage-height-and-damage.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height and damage
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4adb8488e2279d6fdf0c8d17de629b597444b468..feaf813a5fbecafe5826af9945f2232d605e2899 100644
+index a21c743d3c5d200346e9a7d93554264dbda6783c..555702ee03b0032f1cced2e63685b6a447216b57 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -891,7 +891,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -890,7 +890,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public void checkOutOfWorld() {
// Paper start - Configurable nether ceiling damage
diff --git a/patches/server/0061-Add-canSaveToDisk-to-Entity.patch b/patches/server/0061-Add-canSaveToDisk-to-Entity.patch
index aa25da2c8..0887127d2 100644
--- a/patches/server/0061-Add-canSaveToDisk-to-Entity.patch
+++ b/patches/server/0061-Add-canSaveToDisk-to-Entity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index feaf813a5fbecafe5826af9945f2232d605e2899..4d600d8d944fb1a20981ebe5f5a4d243f0ae1bfe 100644
+index 555702ee03b0032f1cced2e63685b6a447216b57..7f1939cd6cd4e64c3085e6b24e1fe3d3719589f5 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -4622,5 +4622,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -4621,5 +4621,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public boolean processClick(InteractionHand hand) {
return false;
}
diff --git a/patches/server/0072-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0072-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch
index 22a0f89ed..0d58910a7 100644
--- a/patches/server/0072-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch
+++ b/patches/server/0072-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch
@@ -73,12 +73,12 @@ index 6a08ab40e60b80f8f5c4d3f02da121be9da05111..e1493079d06a91f3e14e333e2a040872
@Override
protected void addAdditionalSaveData(CompoundTag nbt) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
-index 022f40b66864940652099e91fad18e02aee8c5b2..f847e785f4313cd3c814b0fe9156ccbb9536024f 100644
+index 2294458c7e81147a3efd2ef854fbc08f44231050..b9d737a20b8cca81fca290c13cb640c17d25bc6e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy {
Vec3 moveTargetPoint;
- BlockPos anchorPoint;
+ public BlockPos anchorPoint;
Phantom.AttackPhase attackPhase;
+ Vec3 crystalPosition; // Purpur
diff --git a/patches/server/0079-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0079-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch
index 18ee0ce7f..e07fdeaad 100644
--- a/patches/server/0079-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch
+++ b/patches/server/0079-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index ff3561fa225420bfa92fd081a2f54216845be860..7f82a22e308fd8240360300a6f799f4b40aeb6fb 100644
+index 80598d109eba14f719c4c8190d93d4a9febb9248..0d94b1e5ec66713c38e1f524be42bbfaa398dfde 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -2567,4 +2567,26 @@ public class ServerPlayer extends Player {
+@@ -2586,4 +2586,26 @@ public class ServerPlayer extends Player {
return (CraftPlayer) super.getBukkitEntity();
}
// CraftBukkit end
@@ -36,7 +36,7 @@ index ff3561fa225420bfa92fd081a2f54216845be860..7f82a22e308fd8240360300a6f799f4b
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 0f54b1f6024ea4a3d1bb0a86015a084f9c298c7c..fa2404a02d32b8fdcd3a9134bde58c683d542bca 100644
+index 8401577ee010c211c99c174bc70536d606a09b1d..500b702e2d2b6ba4df07d1fb3e85d632feece76c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -44,6 +44,7 @@ import net.minecraft.network.syncher.EntityDataAccessor;
diff --git a/patches/server/0081-Phantoms-burn-in-light.patch b/patches/server/0081-Phantoms-burn-in-light.patch
index 37a2ce2b1..43002cea7 100644
--- a/patches/server/0081-Phantoms-burn-in-light.patch
+++ b/patches/server/0081-Phantoms-burn-in-light.patch
@@ -5,11 +5,11 @@ Subject: [PATCH] Phantoms burn in light
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
-index f847e785f4313cd3c814b0fe9156ccbb9536024f..77716d29aa50887bfa704ebafe2a304faddcc5c2 100644
+index b9d737a20b8cca81fca290c13cb640c17d25bc6e..11cbb89eb062de0cd30158dbfbef13554f81cf9f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy {
- BlockPos anchorPoint;
+ public BlockPos anchorPoint;
Phantom.AttackPhase attackPhase;
Vec3 crystalPosition; // Purpur
+ private static final net.minecraft.world.item.crafting.Ingredient TORCH = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.item.Items.TORCH, net.minecraft.world.item.Items.SOUL_TORCH); // Purpur
diff --git a/patches/server/0091-Stop-squids-floating-on-top-of-water.patch b/patches/server/0091-Stop-squids-floating-on-top-of-water.patch
index bc4bc8d3f..b0653a3f3 100644
--- a/patches/server/0091-Stop-squids-floating-on-top-of-water.patch
+++ b/patches/server/0091-Stop-squids-floating-on-top-of-water.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4d600d8d944fb1a20981ebe5f5a4d243f0ae1bfe..79a2a7ed3f8812a4ffb58a9ccc0a907754af6610 100644
+index 7f1939cd6cd4e64c3085e6b24e1fe3d3719589f5..0a263c0d15611bcba46fec13a2ce2d32ee260d79 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -4076,6 +4076,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -4075,6 +4075,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.yRotO = this.getYRot();
}
diff --git a/patches/server/0093-Entities-can-use-portals-configuration.patch b/patches/server/0093-Entities-can-use-portals-configuration.patch
index c0e36e31a..ae9868a87 100644
--- a/patches/server/0093-Entities-can-use-portals-configuration.patch
+++ b/patches/server/0093-Entities-can-use-portals-configuration.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 79a2a7ed3f8812a4ffb58a9ccc0a907754af6610..42d1c18ef4a69113519440ba1f2884d6cb8e1077 100644
+index 0a263c0d15611bcba46fec13a2ce2d32ee260d79..8e5087ca2df8ca26f3cbfeacdb33d846628ca658 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -2893,7 +2893,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -2892,7 +2892,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public void handleInsidePortal(BlockPos pos) {
if (this.isOnPortalCooldown()) {
this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 79a2a7ed3f8812a4ffb58a9ccc0a907754af6610..42d1c18ef4a69113519440ba1f2884d6
if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable();
}
-@@ -3565,7 +3565,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -3564,7 +3564,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean canChangeDimensions() {
diff --git a/patches/server/0115-Add-boat-fall-damage-config.patch b/patches/server/0115-Add-boat-fall-damage-config.patch
index 9a9aff40c..7a6542f1b 100644
--- a/patches/server/0115-Add-boat-fall-damage-config.patch
+++ b/patches/server/0115-Add-boat-fall-damage-config.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add boat fall damage config
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 7f82a22e308fd8240360300a6f799f4b40aeb6fb..e619420b635d41ed564493ed0b28b3d06fbd86e1 100644
+index 0d94b1e5ec66713c38e1f524be42bbfaa398dfde..030d41cad8af901cfbe525ffc3f1e6657456f3a4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1016,7 +1016,16 @@ public class ServerPlayer extends Player {
+@@ -1035,7 +1035,16 @@ public class ServerPlayer extends Player {
if (this.isInvulnerableTo(source)) {
return false;
} else {
@@ -27,7 +27,7 @@ index 7f82a22e308fd8240360300a6f799f4b40aeb6fb..e619420b635d41ed564493ed0b28b3d0
if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
-index 57c23247cb3a09b215b0718cc477b4c071e6426c..4bf80aba46dee82cbbd1243f5f3357039f1d9835 100644
+index 78bbb55ef2c9370f38253b27f528c6d2e62a7fb3..0671853ed91ad046ad02cbb09188766e7afbaa9d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -115,6 +115,7 @@ public class PurpurWorldConfig {
diff --git a/patches/server/0125-Implement-TPSBar.patch b/patches/server/0125-Implement-TPSBar.patch
index 8ba3f38b8..29dde32e1 100644
--- a/patches/server/0125-Implement-TPSBar.patch
+++ b/patches/server/0125-Implement-TPSBar.patch
@@ -41,7 +41,7 @@ index a18abdcbc51f3b6fda96a4f6dd8674521338f37f..f69d1f11fffbca1ddd297e3793f1bcfe
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e619420b635d41ed564493ed0b28b3d06fbd86e1..ca7199452cbfc7d18203eae17c417c829c3b39bf 100644
+index 030d41cad8af901cfbe525ffc3f1e6657456f3a4..a82c8bf74a943adfd7ccf16b1c8787c31af060e6 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -263,6 +263,7 @@ public class ServerPlayer extends Player {
@@ -52,7 +52,7 @@ index e619420b635d41ed564493ed0b28b3d06fbd86e1..ca7199452cbfc7d18203eae17c417c82
public boolean isRealPlayer; // Paper
public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks
-@@ -470,6 +471,7 @@ public class ServerPlayer extends Player {
+@@ -489,6 +490,7 @@ public class ServerPlayer extends Player {
}
}
@@ -60,7 +60,7 @@ index e619420b635d41ed564493ed0b28b3d06fbd86e1..ca7199452cbfc7d18203eae17c417c82
}
@Override
-@@ -530,6 +532,7 @@ public class ServerPlayer extends Player {
+@@ -549,6 +551,7 @@ public class ServerPlayer extends Player {
}
this.getBukkitEntity().setExtraData(nbt); // CraftBukkit
@@ -68,7 +68,7 @@ index e619420b635d41ed564493ed0b28b3d06fbd86e1..ca7199452cbfc7d18203eae17c417c82
}
// CraftBukkit start - World fallback code, either respawn location or global spawn
-@@ -2597,5 +2600,13 @@ public class ServerPlayer extends Player {
+@@ -2616,5 +2619,13 @@ public class ServerPlayer extends Player {
this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck);
}
}
diff --git a/patches/server/0134-Movement-options-for-armor-stands.patch b/patches/server/0134-Movement-options-for-armor-stands.patch
index e003283df..5e829fe65 100644
--- a/patches/server/0134-Movement-options-for-armor-stands.patch
+++ b/patches/server/0134-Movement-options-for-armor-stands.patch
@@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 42d1c18ef4a69113519440ba1f2884d6cb8e1077..801d253b42293c7dfe5c103ef28b6b0d7dec4ac2 100644
+index 8e5087ca2df8ca26f3cbfeacdb33d846628ca658..9276b51813e1e0ac6cf8cf9a295d92db2f52b11e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -1733,7 +1733,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -1732,7 +1732,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return this.isInWater() || flag;
}
diff --git a/patches/server/0135-Fix-stuck-in-portals.patch b/patches/server/0135-Fix-stuck-in-portals.patch
index 041d05e1d..2af06d5b6 100644
--- a/patches/server/0135-Fix-stuck-in-portals.patch
+++ b/patches/server/0135-Fix-stuck-in-portals.patch
@@ -5,10 +5,10 @@ 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 ca7199452cbfc7d18203eae17c417c829c3b39bf..743a5cf750cc56856477cf2b4d75ceb241ef1eb6 100644
+index a82c8bf74a943adfd7ccf16b1c8787c31af060e6..83ab6eb805c5d6f2fff9da91e4e0d74f3d999f65 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1169,6 +1169,7 @@ public class ServerPlayer extends Player {
+@@ -1188,6 +1188,7 @@ public class ServerPlayer extends Player {
playerlist.sendPlayerPermissionLevel(this);
worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
this.unsetRemoved();
@@ -17,10 +17,10 @@ index ca7199452cbfc7d18203eae17c417c829c3b39bf..743a5cf750cc56856477cf2b4d75ceb2
// CraftBukkit end
this.setLevel(worldserver);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 801d253b42293c7dfe5c103ef28b6b0d7dec4ac2..e801f801b4ca511158be678448a1d0ba03810b5d 100644
+index 9276b51813e1e0ac6cf8cf9a295d92db2f52b11e..6a914c3185bac2f3cce6c45d98012ed53fbdab24 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -2890,12 +2890,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -2889,12 +2889,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return Vec3.directionFromRotation(this.getRotationVector());
}
diff --git a/patches/server/0143-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0143-Config-to-ignore-nearby-mobs-when-sleeping.patch
index 1026508a1..813c3bf79 100644
--- a/patches/server/0143-Config-to-ignore-nearby-mobs-when-sleeping.patch
+++ b/patches/server/0143-Config-to-ignore-nearby-mobs-when-sleeping.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 743a5cf750cc56856477cf2b4d75ceb241ef1eb6..5d989ef08080bc6622b64b1eea8ae63ac59dfa4d 100644
+index 83ab6eb805c5d6f2fff9da91e4e0d74f3d999f65..68a6d76edb9915c9bb8629cf90f323aed33c722c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1326,7 +1326,7 @@ public class ServerPlayer extends Player {
+@@ -1345,7 +1345,7 @@ public class ServerPlayer extends Player {
return entitymonster.isPreventingPlayerRest(this);
});
@@ -18,7 +18,7 @@ index 743a5cf750cc56856477cf2b4d75ceb241ef1eb6..5d989ef08080bc6622b64b1eea8ae63a
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
-index 0312fcb2889c2557c1693c52f3813afc4d38415c..b04d1dd43bec362f0632fe52436aa14c8988b1e1 100644
+index 63434a7e92dbc10ec957bd14a040997e56944f6e..a1ed00066243e86c796acf49ed830b184e4871c5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -354,6 +354,7 @@ public class PurpurWorldConfig {
diff --git a/patches/server/0144-Add-back-player-spawned-endermite-API.patch b/patches/server/0144-Add-back-player-spawned-endermite-API.patch
index 7e2b83467..3929f440a 100644
--- a/patches/server/0144-Add-back-player-spawned-endermite-API.patch
+++ b/patches/server/0144-Add-back-player-spawned-endermite-API.patch
@@ -5,13 +5,13 @@ Subject: [PATCH] Add back player spawned endermite API
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
-index df1d1085419b41920542260a75262b1a6ab3eb41..41d5465db97dee4ab5d0b7deb29f684ea605a80c 100644
+index 9b14ad63c2f2fea0e6c0e69a5632621c98b7a28f..195bcfee5961bb69f98532a15f625593b04321cc 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
@@ -31,6 +31,7 @@ import net.minecraft.world.level.block.state.BlockState;
public class Endermite extends Monster {
private static final int MAX_LIFE = 2400;
- private int life;
+ public int life;
+ private boolean isPlayerSpawned; // Purpur
public Endermite(EntityType extends Endermite> type, Level world) {
@@ -59,10 +59,10 @@ index b72618209be2b99221686aef0d3732785bc55357..332e12bdb686532333bb95682f420dab
this.level.addFreshEntity(entityendermite, CreatureSpawnEvent.SpawnReason.ENDER_PEARL);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java
-index 04976616da8c85b1278dad33ff05554aa74a6b33..046e0e174119e65686e74eaf11853e6832b90e80 100644
+index 75c7645fb5732c43d1da15181cf5c7ee4c3ecd6c..e7f5ea4d8d72672cf03483e720c6389425f28f6d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java
-@@ -27,11 +27,11 @@ public class CraftEndermite extends CraftMonster implements Endermite {
+@@ -27,12 +27,12 @@ public class CraftEndermite extends CraftMonster implements Endermite {
@Override
public boolean isPlayerSpawned() {
@@ -75,4 +75,5 @@ index 04976616da8c85b1278dad33ff05554aa74a6b33..046e0e174119e65686e74eaf11853e68
- // Nop
+ getHandle().setPlayerSpawned(playerSpawned); // Purpur
}
- }
+ // Paper start
+ @Override
diff --git a/patches/server/0148-Config-to-disable-Llama-caravans.patch b/patches/server/0148-Config-to-disable-Llama-caravans.patch
index 893f894bb..c64d7a4cc 100644
--- a/patches/server/0148-Config-to-disable-Llama-caravans.patch
+++ b/patches/server/0148-Config-to-disable-Llama-caravans.patch
@@ -19,10 +19,10 @@ index 7b141c495095afcd9c8b04c059d692e829259e7a..ad30f2d678cfc4b0d693e84e6e152c63
List list = this.llama.level.getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0D, 4.0D, 9.0D), (entity) -> {
EntityType> entityType = entity.getType();
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
-index a83bc1451fe7895bba46aae2da2bc8cb29c7da04..06177b60406aa949c71277f75158f154e68ec0d8 100644
+index 43fa12c5e53cc4d1bb9a8c8603f389bc24177e53..eaf44b0d0c6ea1a137d12998b164def3272ad1a3 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
-@@ -540,7 +540,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
+@@ -534,7 +534,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
}
public void joinCaravan(Llama llama) {
diff --git a/patches/server/0155-Drowning-Settings.patch b/patches/server/0155-Drowning-Settings.patch
index 8769906b0..a62fb5ebc 100644
--- a/patches/server/0155-Drowning-Settings.patch
+++ b/patches/server/0155-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 e801f801b4ca511158be678448a1d0ba03810b5d..8304890f8e4ffb9c98e7e3d22aed30a706eedfba 100644
+index 6a914c3185bac2f3cce6c45d98012ed53fbdab24..c3be1e6d54862dc7e1615e4fe3771b8f38e44f8a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -3129,7 +3129,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -3128,7 +3128,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public int getMaxAirSupply() {
@@ -18,7 +18,7 @@ index e801f801b4ca511158be678448a1d0ba03810b5d..8304890f8e4ffb9c98e7e3d22aed30a7
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 5e063e52a580d311227d08a6ed4ba996d5393b56..a7f3781e73db0bffe7acdd678f436a14dc5898a2 100644
+index c5f0c5ce4e20670fe2a61e4775e01094a0d36ed6..0c830930522c38a7baf689beebf65970e96c3461 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -423,7 +423,7 @@ public abstract class LivingEntity extends Entity {
diff --git a/patches/server/0170-Configurable-broadcast-settings.patch b/patches/server/0170-Configurable-broadcast-settings.patch
index 81ea96711..74d05bb8f 100644
--- a/patches/server/0170-Configurable-broadcast-settings.patch
+++ b/patches/server/0170-Configurable-broadcast-settings.patch
@@ -17,10 +17,10 @@ index 897e761be8c1f79562f54101173fbba7656a37ec..ce42e91a95ccd42deff65e1942b918e9
// Paper end
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 5d989ef08080bc6622b64b1eea8ae63ac59dfa4d..93afb1cb8c0980a2a66590a27de28fd79595635b 100644
+index 68a6d76edb9915c9bb8629cf90f323aed33c722c..b9112a8aa9f821e08e26941715cadc36672a5338 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -907,6 +907,7 @@ public class ServerPlayer extends Player {
+@@ -926,6 +926,7 @@ public class ServerPlayer extends Player {
}));
Team scoreboardteambase = this.getTeam();
diff --git a/patches/server/0183-API-for-any-mob-to-burn-daylight.patch b/patches/server/0183-API-for-any-mob-to-burn-daylight.patch
index c5cbf3eb3..52643e13b 100644
--- a/patches/server/0183-API-for-any-mob-to-burn-daylight.patch
+++ b/patches/server/0183-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 8304890f8e4ffb9c98e7e3d22aed30a706eedfba..9199ed472730c5ad1232770aedc8bde87a66f4fc 100644
+index c3be1e6d54862dc7e1615e4fe3771b8f38e44f8a..c44392af107fe4f5e3a77d69067f49cba2eee771 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -4635,5 +4635,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -4634,5 +4634,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public boolean canSaveToDisk() {
return true;
}
@@ -211,7 +211,7 @@ index 47e4f62d177c14ceffeb13a3fee5bfa342da7184..bcbce83f9e304809fb946f80c9dd32c4
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
-index 93ce4f81ca03c003596f86810d4a869502c76242..67b940682dc84a8843119e1e990a69aa9dc9c0c4 100644
+index 6b7baf977972b624c5745820d5c3a4375c6854b0..f032a45969d6835a36e2c7598425bc09a850fa58 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -60,6 +60,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -351,7 +351,7 @@ index cfecf0322ea22b42fa83bafe3cd2f5d74f0d1311..da2f736bd162a1e2e39473a963ef20bc
// 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 7bca861c3ebfc7550b82ae74483464b11f8d6b55..b6e0d832a5685fd6105c5307015d58a2d7900221 100644
+index fbddb90fdbaa99c5f243b6e93c55fc1f7430e337..403085673b87291799538f4f3aad2dfe65b35660 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -205,6 +205,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0187-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0187-Add-toggle-for-end-portal-safe-teleporting.patch
index 05059d4ae..fcb024381 100644
--- a/patches/server/0187-Add-toggle-for-end-portal-safe-teleporting.patch
+++ b/patches/server/0187-Add-toggle-for-end-portal-safe-teleporting.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 9199ed472730c5ad1232770aedc8bde87a66f4fc..8430a99f48f4d881b69a81c55a1937cbcd9e24f1 100644
+index c44392af107fe4f5e3a77d69067f49cba2eee771..de68663faebbfc019025d83d70b825ed6a6b8f11 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -2949,7 +2949,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -2948,7 +2948,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.processPortalCooldown();
diff --git a/patches/server/0188-Flying-Fall-Damage-API.patch b/patches/server/0188-Flying-Fall-Damage-API.patch
index 84877ae55..ce7f1d516 100644
--- a/patches/server/0188-Flying-Fall-Damage-API.patch
+++ b/patches/server/0188-Flying-Fall-Damage-API.patch
@@ -26,10 +26,10 @@ index 45dc5eeb3794492324bd316719524ea797f7ef6a..bbfb5f8f88e972a770d0ce5373c67ffe
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 47f0743ecc1bef6ce55e4ae0c4cbc31a428332df..14e72f9ec0ed6d09b8ca370bd55b4ff29171aff2 100644
+index 60e586e10ba60192aaa87652629d69375ccdc85b..ae8b9dc19224c18177c3bf3490ba9470e832c85d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2988,5 +2988,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2995,5 +2995,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) {
getHandle().spawnInvulnerableTime = spawnInvulnerableTime;
}
diff --git a/patches/server/0210-Add-compass-command.patch b/patches/server/0210-Add-compass-command.patch
index 1730ce33c..cebc455aa 100644
--- a/patches/server/0210-Add-compass-command.patch
+++ b/patches/server/0210-Add-compass-command.patch
@@ -17,7 +17,7 @@ index 6a044a9c97db9bba75f8dbbaa8515e3167841855..edd378813873ed367784379b0f1666d1
if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 93afb1cb8c0980a2a66590a27de28fd79595635b..40dc37c7acabc8eb601035d5a61cf09ef0c96ccd 100644
+index b9112a8aa9f821e08e26941715cadc36672a5338..74ac7e6a2e95f4920dde94bfff5ff26dbc99edaa 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -264,6 +264,7 @@ public class ServerPlayer extends Player {
@@ -28,7 +28,7 @@ index 93afb1cb8c0980a2a66590a27de28fd79595635b..40dc37c7acabc8eb601035d5a61cf09e
public boolean isRealPlayer; // Paper
public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks
-@@ -472,6 +473,7 @@ public class ServerPlayer extends Player {
+@@ -491,6 +492,7 @@ public class ServerPlayer extends Player {
}
if (nbt.contains("Purpur.TPSBar")) { this.tpsBar = nbt.getBoolean("Purpur.TPSBar"); } // Purpur
@@ -36,7 +36,7 @@ index 93afb1cb8c0980a2a66590a27de28fd79595635b..40dc37c7acabc8eb601035d5a61cf09e
}
@Override
-@@ -533,6 +535,7 @@ public class ServerPlayer extends Player {
+@@ -552,6 +554,7 @@ public class ServerPlayer extends Player {
this.getBukkitEntity().setExtraData(nbt); // CraftBukkit
nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur
@@ -44,7 +44,7 @@ index 93afb1cb8c0980a2a66590a27de28fd79595635b..40dc37c7acabc8eb601035d5a61cf09e
}
// CraftBukkit start - World fallback code, either respawn location or global spawn
-@@ -2610,5 +2613,13 @@ public class ServerPlayer extends Player {
+@@ -2629,5 +2632,13 @@ public class ServerPlayer extends Player {
public void tpsBar(boolean tpsBar) {
this.tpsBar = tpsBar;
}
@@ -89,7 +89,7 @@ index 695e6376fcf3306be49e593126576c1773b5792e..bf3bbe2d26f5ce6e6b00b36d9ea269df
hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector);
uptimeFormat = getString("settings.command.uptime.format", uptimeFormat);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
-index 56a0d27364805a71541cc2a9ccd2c6d7e1fe8804..3b1f31ee2c49da4a8006fb4f9f1676ac24cb764c 100644
+index 0fe874bb1eb3bd3eb644602416153b39a5dd5c0c..700c40fd0ba469ba034153f422ad179ece61e330 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -223,6 +223,7 @@ public class PurpurWorldConfig {
diff --git a/patches/server/0238-Signs-allow-color-codes.patch b/patches/server/0238-Signs-allow-color-codes.patch
index d5f48185a..287d2f397 100644
--- a/patches/server/0238-Signs-allow-color-codes.patch
+++ b/patches/server/0238-Signs-allow-color-codes.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Signs allow color codes
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 40dc37c7acabc8eb601035d5a61cf09ef0c96ccd..4abac5e3ba5dcf27248bda31d95c85bb5e23c19d 100644
+index 74ac7e6a2e95f4920dde94bfff5ff26dbc99edaa..9698aa558ac2e68133adfa72e1b38a72748426a1 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1501,6 +1501,7 @@ public class ServerPlayer extends Player {
+@@ -1520,6 +1520,7 @@ public class ServerPlayer extends Player {
@Override
public void openTextEdit(SignBlockEntity sign) {
diff --git a/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch b/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch
index ebe371777..68904ca17 100644
--- a/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch
+++ b/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Option to prevent spiders from climbing world border
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 8430a99f48f4d881b69a81c55a1937cbcd9e24f1..7147478e33f531ab70ef8982a37ae88250aa892d 100644
+index de68663faebbfc019025d83d70b825ed6a6b8f11..c0ad8f069d78719e01d92c42a190a4e57d6b6d67 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -305,6 +305,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -304,6 +304,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public boolean verticalCollision;
public boolean verticalCollisionBelow;
public boolean minorHorizontalCollision;
@@ -16,7 +16,7 @@ index 8430a99f48f4d881b69a81c55a1937cbcd9e24f1..7147478e33f531ab70ef8982a37ae882
public boolean hurtMarked;
protected Vec3 stuckSpeedMultiplier;
@Nullable
-@@ -1417,7 +1418,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -1416,7 +1417,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
io.papermc.paper.util.CollisionUtil.getCollisions(world, this, collisionBox, potentialCollisions, false, this.level.paperConfig().chunks.preventMovingIntoUnloadedChunks,
false, false, null, null);
diff --git a/patches/server/0283-Add-toggle-for-RNG-manipulation.patch b/patches/server/0283-Add-toggle-for-RNG-manipulation.patch
index 485448fcd..02b6d575a 100644
--- a/patches/server/0283-Add-toggle-for-RNG-manipulation.patch
+++ b/patches/server/0283-Add-toggle-for-RNG-manipulation.patch
@@ -7,10 +7,10 @@ Paper patches RNG maniplulation by using a shared (and locked) random source.
This comes with a performance gain, but technical players may prefer the ability to manipulate RNG.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index fd48485c7baac356da7498a14a28749a97eba7c0..4f5c3c4285dd3b7ac901fb55e1ebbfec37ca601f 100644
+index c0ad8f069d78719e01d92c42a190a4e57d6b6d67..0ffaccb3e6ae2a400f1def283b62024e8bfc05e4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -577,7 +577,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -576,7 +576,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.bb = Entity.INITIAL_AABB;
this.stuckSpeedMultiplier = Vec3.ZERO;
this.nextStep = 1.0F;
@@ -33,7 +33,7 @@ index 21f5304e01e0844f1bbf3e1b2f9d50c01f8bf8fd..8afdb5d4fecbb45bad2ed801fc0e526d
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
-index 9c9f0ae1a8b21dedcbaf46af8e605f62ff00731e..b36da7cf4267ea537a2fad0bc4c87a456e311a3b 100644
+index 1c0d12579bcb375698ce40804279094d03d7133b..f4c1698a7e8a929313bbc5aec6df197237cc2680 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -207,9 +207,11 @@ public class PurpurWorldConfig {
diff --git a/patches/server/0289-Remove-Mojang-Profiler.patch b/patches/server/0289-Remove-Mojang-Profiler.patch
index e3baf6079..d17f557d9 100644
--- a/patches/server/0289-Remove-Mojang-Profiler.patch
+++ b/patches/server/0289-Remove-Mojang-Profiler.patch
@@ -754,10 +754,10 @@ index 725621bce1b82f44cea1247d1238644726ac3a2f..571a1cbee376032b6b9f36c9fe3f9199
while (iterator.hasNext()) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 4abac5e3ba5dcf27248bda31d95c85bb5e23c19d..6979305279996be59756d0424e5bc16a19fde6b0 100644
+index 9698aa558ac2e68133adfa72e1b38a72748426a1..3a1c0ac15131f31021864c0d799ee21b96bec3ec 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1138,7 +1138,7 @@ public class ServerPlayer extends Player {
+@@ -1157,7 +1157,7 @@ public class ServerPlayer extends Player {
PortalInfo shapedetectorshape = this.findDimensionEntryPoint(worldserver);
if (shapedetectorshape != null) {
@@ -766,7 +766,7 @@ index 4abac5e3ba5dcf27248bda31d95c85bb5e23c19d..6979305279996be59756d0424e5bc16a
worldserver = shapedetectorshape.world; // CraftBukkit
if (worldserver == null) { } else // CraftBukkit - empty to fall through to null to event
if (resourcekey == LevelStem.OVERWORLD && worldserver.getTypeKey() == LevelStem.NETHER) { // CraftBukkit
-@@ -1161,8 +1161,8 @@ public class ServerPlayer extends Player {
+@@ -1180,8 +1180,8 @@ public class ServerPlayer extends Player {
worldserver = ((CraftWorld) exit.getWorld()).getHandle();
// CraftBukkit end
@@ -777,7 +777,7 @@ index 4abac5e3ba5dcf27248bda31d95c85bb5e23c19d..6979305279996be59756d0424e5bc16a
if (true) { // CraftBukkit
this.isChangingDimension = true; // CraftBukkit - Set teleport invulnerability only if player changing worlds
-@@ -1181,7 +1181,7 @@ public class ServerPlayer extends Player {
+@@ -1200,7 +1200,7 @@ public class ServerPlayer extends Player {
worldserver.addDuringPortalTeleport(this);
this.connection.teleport(exit); // CraftBukkit - use internal teleport without event
this.connection.resetPosition(); // CraftBukkit - sync position after changing it (from PortalTravelAgent#findAndteleport)
@@ -1013,10 +1013,10 @@ index 5725c6593480fada65facc29664a00a8cc073512..ccb1f998ae3122d1856d77149ff7e7df
};
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa061ea699 100644
+index 0ffaccb3e6ae2a400f1def283b62024e8bfc05e4..bef8f4d080fb6067f87b9df986ac33f7003c2a84 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -822,7 +822,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -821,7 +821,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return;
}
// Pufferfish end - entity TTL
@@ -1025,7 +1025,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking
this.feetBlockState = null;
if (this.isPassenger() && this.getVehicle().isRemoved()) {
-@@ -883,7 +883,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -882,7 +882,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.firstTick = false;
@@ -1034,7 +1034,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
}
public void setSharedFlagOnFire(boolean onFire) {
-@@ -1057,7 +1057,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -1056,7 +1056,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
}
@@ -1043,7 +1043,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) {
movement = movement.multiply(this.stuckSpeedMultiplier);
this.stuckSpeedMultiplier = Vec3.ZERO;
-@@ -1066,7 +1066,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -1065,7 +1065,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// Paper start - ignore movement changes while inactive.
if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) {
setDeltaMovement(Vec3.ZERO);
@@ -1052,7 +1052,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
return;
}
// Paper end
-@@ -1087,8 +1087,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -1086,8 +1086,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z);
}
@@ -1063,7 +1063,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
boolean flag = !Mth.equal(movement.x, vec3d1.x);
boolean flag1 = !Mth.equal(movement.z, vec3d1.z);
-@@ -1107,7 +1107,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -1106,7 +1106,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.checkFallDamage(vec3d1.y, this.onGround, iblockdata, blockposition);
if (this.isRemoved()) {
@@ -1072,7 +1072,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
} else {
if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement();
-@@ -1248,7 +1248,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -1247,7 +1247,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.setRemainingFireTicks(-this.getFireImmuneTicks());
}
@@ -1081,7 +1081,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
}
}
// Paper start - detailed watchdog information
-@@ -2917,7 +2917,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -2916,7 +2916,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey);
if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit
@@ -1090,7 +1090,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
this.portalTime = i;
// Paper start
io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER);
-@@ -2935,7 +2935,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -2934,7 +2934,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
} // Paper
// CraftBukkit end
@@ -1099,7 +1099,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
}
this.isInsidePortal = false;
-@@ -3389,14 +3389,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -3388,14 +3388,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
// Paper end
if (this.level instanceof ServerLevel && !this.isRemoved()) {
@@ -1116,7 +1116,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit
if (shapedetectorshape == null) {
-@@ -3430,7 +3430,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -3429,7 +3429,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.unRide();
// CraftBukkit end
@@ -1125,7 +1125,7 @@ index a4cfb3227db4d276f08d0b644cdc9dbe36fa3d05..2fea14c75d161d542c7694373763ddfa
// Paper start - Change lead drop timing to prevent dupe
if (this instanceof Mob) {
((Mob) this).dropLeash(true, true); // Paper drop lead
-@@ -3453,10 +3453,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
+@@ -3452,10 +3452,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.removeAfterChangingDimensions();
diff --git a/patches/server/0292-Debug-Marker-API.patch b/patches/server/0292-Debug-Marker-API.patch
index 8aa25f287..7bf035e01 100644
--- a/patches/server/0292-Debug-Marker-API.patch
+++ b/patches/server/0292-Debug-Marker-API.patch
@@ -99,10 +99,10 @@ index 68eb990c7d461c611310419c1eefaed79a7c8538..dabf1649f5bf14ec17dad6d43dcd7e2b
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4260f540717afe6ed16f4f87f394c483537079e1..ab5ce7e867a3668d21071da73b84d197a34d3571 100644
+index 98ba88906a817bbfedd0e326b0faf59ea4cdcb66..fc20789aae6f30cc5ae71a7ae391a6b2eefa4e9c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3019,5 +3019,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3026,5 +3026,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean hasFlyingFallDamage() {
return getHandle().flyingFallDamage;
}
diff --git a/patches/server/0299-Add-death-screen-API.patch b/patches/server/0299-Add-death-screen-API.patch
index ba099bbe4..fa499d2ee 100644
--- a/patches/server/0299-Add-death-screen-API.patch
+++ b/patches/server/0299-Add-death-screen-API.patch
@@ -30,10 +30,10 @@ index 53b75f5737a910ffc5448cd9a85eae57f9c1488f..ea95873dd034779e56a8b924cd27f937
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0586829db912f7f952844db14d2f03b5ead9e708..76a9d1769ccafe68bd587b0d27aacb537338f97f 100644
+index e203fb432bf359c1e708bb32e2f96f4f7f2c7964..1ca26e7757fa8af885bfb3870128f8b48e0a7745 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3069,5 +3069,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3076,5 +3076,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return;
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket(ClientboundCustomPayloadPacket.DEBUG_GAME_TEST_CLEAR, new FriendlyByteBuf(io.netty.buffer.Unpooled.buffer())));
}
diff --git a/patches/server/0300-Implement-ram-and-rambar-commands.patch b/patches/server/0300-Implement-ram-and-rambar-commands.patch
index 8df6df8b5..89a985d10 100644
--- a/patches/server/0300-Implement-ram-and-rambar-commands.patch
+++ b/patches/server/0300-Implement-ram-and-rambar-commands.patch
@@ -18,7 +18,7 @@ index eb4dac2239592d680ef31edf47f1ab660299762d..1b956c3f50750a00eaf7851112004115
if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 6979305279996be59756d0424e5bc16a19fde6b0..12637019da44019475042e4cf88d3e0ebd0fd068 100644
+index 3a1c0ac15131f31021864c0d799ee21b96bec3ec..43be9e2af0711773103af63eb4e15572e5fee39b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -263,6 +263,7 @@ public class ServerPlayer extends Player {
@@ -29,7 +29,7 @@ index 6979305279996be59756d0424e5bc16a19fde6b0..12637019da44019475042e4cf88d3e0e
private boolean tpsBar = false; // Purpur
private boolean compassBar = false; // Purpur
-@@ -472,6 +473,7 @@ public class ServerPlayer extends Player {
+@@ -491,6 +492,7 @@ public class ServerPlayer extends Player {
}
}
@@ -37,7 +37,7 @@ index 6979305279996be59756d0424e5bc16a19fde6b0..12637019da44019475042e4cf88d3e0e
if (nbt.contains("Purpur.TPSBar")) { this.tpsBar = nbt.getBoolean("Purpur.TPSBar"); } // Purpur
if (nbt.contains("Purpur.CompassBar")) { this.compassBar = nbt.getBoolean("Purpur.CompassBar"); } // Purpur
}
-@@ -534,6 +536,7 @@ public class ServerPlayer extends Player {
+@@ -553,6 +555,7 @@ public class ServerPlayer extends Player {
}
this.getBukkitEntity().setExtraData(nbt); // CraftBukkit
@@ -45,7 +45,7 @@ index 6979305279996be59756d0424e5bc16a19fde6b0..12637019da44019475042e4cf88d3e0e
nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur
nbt.putBoolean("Purpur.CompassBar", this.compassBar); // Purpur
}
-@@ -2607,6 +2610,14 @@ public class ServerPlayer extends Player {
+@@ -2626,6 +2629,14 @@ public class ServerPlayer extends Player {
}
}