summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--patches/api/0001-Convert-project-to-Gradle.patch14
-rw-r--r--patches/api/0005-Adventure.patch46
-rw-r--r--patches/api/0007-Use-ASM-for-event-executors.patch6
-rw-r--r--patches/api/0008-Paper-Plugins.patch4
-rw-r--r--patches/api/0010-Timings-v2.patch6
-rw-r--r--patches/api/0012-Player-affects-spawning-API.patch4
-rw-r--r--patches/api/0017-Add-view-distance-API.patch4
-rw-r--r--patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch4
-rw-r--r--patches/api/0025-Player-Tab-List-and-Title-APIs.patch18
-rw-r--r--patches/api/0027-Complete-resource-pack-API.patch6
-rw-r--r--patches/api/0046-Add-String-based-Action-Bar-API.patch36
-rw-r--r--patches/api/0055-Fix-upstream-javadocs.patch8
-rw-r--r--patches/api/0069-Allow-plugins-to-use-SLF4J-for-logging.patch6
-rw-r--r--patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch4
-rw-r--r--patches/api/0080-Ability-to-apply-mending-to-XP-API.patch4
-rw-r--r--patches/api/0091-Player.setPlayerProfile-API.patch4
-rw-r--r--patches/api/0094-Add-openSign-method-to-HumanEntity.patch4
-rw-r--r--patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch4
-rw-r--r--patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch4
-rw-r--r--patches/api/0172-Fix-Spigot-annotation-mistakes.patch8
-rw-r--r--patches/api/0189-Add-Player-Client-Options-API.patch14
-rw-r--r--patches/api/0206-Brand-support.patch4
-rw-r--r--patches/api/0220-Player-elytra-boost-API.patch6
-rw-r--r--patches/api/0248-Add-sendOpLevel-API.patch4
-rw-r--r--patches/api/0297-Add-PlayerKickEvent-causes.patch6
-rw-r--r--patches/api/0332-Add-player-health-update-API.patch4
-rw-r--r--patches/api/0347-Multi-Block-Change-API.patch8
-rw-r--r--patches/api/0375-More-Teleport-API.patch4
-rw-r--r--patches/api/0377-Custom-Chat-Completion-Suggestions-API.patch4
-rw-r--r--patches/api/0381-Add-custom-destroyerIdentity-to-sendBlockDamage.patch6
-rw-r--r--patches/api/0388-Elder-Guardian-appearance-API.patch4
-rw-r--r--patches/api/0396-Add-Player-Warden-Warning-API.patch4
-rw-r--r--patches/api/0405-fix-Instruments.patch4
-rw-r--r--patches/api/0407-Add-Sneaking-API-for-Entities.patch6
-rw-r--r--patches/api/0410-Flying-Fall-Damage-API.patch4
-rw-r--r--patches/api/0413-Add-Player-sendEquipmentChange-Map-API.patch33
-rw-r--r--patches/api/0413-Win-Screen-API.patch (renamed from patches/api/0414-Win-Screen-API.patch)4
-rw-r--r--patches/api/0414-Add-Entity-Body-Yaw-API.patch (renamed from patches/api/0415-Add-Entity-Body-Yaw-API.patch)0
-rw-r--r--patches/api/0415-Add-missing-isFuel-Material-entries.patch (renamed from patches/api/0416-Add-missing-isFuel-Material-entries.patch)0
-rw-r--r--patches/api/0416-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch (renamed from patches/api/0417-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch)0
-rw-r--r--patches/api/0417-Add-EntityFertilizeEggEvent.patch (renamed from patches/api/0418-Add-EntityFertilizeEggEvent.patch)0
-rw-r--r--patches/api/0418-Add-CompostItemEvent-and-EntityCompostItemEvent.patch (renamed from patches/api/0419-Add-CompostItemEvent-and-EntityCompostItemEvent.patch)0
-rw-r--r--patches/server/0001-Setup-Gradle-project.patch24
-rw-r--r--patches/server/0003-Build-system-changes.patch10
-rw-r--r--patches/server/0004-Test-changes.patch6
-rw-r--r--patches/server/0005-Paper-config-files.patch8
-rw-r--r--patches/server/0010-Adventure.patch48
-rw-r--r--patches/server/0013-Paper-Plugins.patch4
-rw-r--r--patches/server/0014-Timings-v2.patch10
-rw-r--r--patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch4
-rw-r--r--patches/server/0028-Implement-Paper-VersionChecker.patch4
-rw-r--r--patches/server/0030-Player-affects-spawning-API.patch4
-rw-r--r--patches/server/0032-Only-refresh-abilities-if-needed.patch4
-rw-r--r--patches/server/0040-Optimize-explosions.patch4
-rw-r--r--patches/server/0041-Disable-explosion-knockback.patch4
-rw-r--r--patches/server/0045-Implement-PlayerLocaleChangeEvent.patch4
-rw-r--r--patches/server/0059-Configurable-inter-world-teleportation-safety.patch4
-rw-r--r--patches/server/0065-Complete-resource-pack-API.patch6
-rw-r--r--patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch4
-rw-r--r--patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch8
-rw-r--r--patches/server/0152-Fix-this-stupid-bullshit.patch4
-rw-r--r--patches/server/0157-Handle-plugin-prefixes-using-Log4J-configuration.patch4
-rw-r--r--patches/server/0171-Ability-to-apply-mending-to-XP-API.patch4
-rw-r--r--patches/server/0184-Player.setPlayerProfile-API.patch10
-rw-r--r--patches/server/0189-Flag-to-disable-the-channel-limit.patch4
-rw-r--r--patches/server/0218-InventoryCloseEvent-Reason-API.patch6
-rw-r--r--patches/server/0254-Expose-attack-cooldown-methods-for-Player.patch4
-rw-r--r--patches/server/0255-Improve-death-events.patch6
-rw-r--r--patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch10
-rw-r--r--patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch4
-rw-r--r--patches/server/0353-Remove-garbage-Java-version-check.patch6
-rw-r--r--patches/server/0366-Add-Raw-Byte-ItemStack-Serialization.patch4
-rw-r--r--patches/server/0397-Deobfuscate-stacktraces-in-log-messages-crash-report.patch4
-rw-r--r--patches/server/0407-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch4
-rw-r--r--patches/server/0458-Brand-support.patch6
-rw-r--r--patches/server/0480-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch4
-rw-r--r--patches/server/0506-Fix-Player-spawnParticle-x-y-z-precision-loss.patch4
-rw-r--r--patches/server/0583-Expand-world-key-API.patch4
-rw-r--r--patches/server/0585-Item-Rarity-API.patch4
-rw-r--r--patches/server/0591-Expose-protocol-version.patch4
-rw-r--r--patches/server/0619-additions-to-PlayerGameModeChangeEvent.patch6
-rw-r--r--patches/server/0620-ItemStack-repair-check-API.patch4
-rw-r--r--patches/server/0627-Attributes-API-for-item-defaults.patch4
-rw-r--r--patches/server/0667-Add-PlayerSetSpawnEvent.patch4
-rw-r--r--patches/server/0684-Get-entity-default-attributes.patch4
-rw-r--r--patches/server/0690-Add-isCollidable-methods-to-various-places.patch4
-rw-r--r--patches/server/0693-Add-Raw-Byte-Entity-Serialization.patch4
-rw-r--r--patches/server/0757-Add-player-health-update-API.patch6
-rw-r--r--patches/server/0844-Add-support-for-Proxy-Protocol.patch4
-rw-r--r--patches/server/0867-More-Teleport-API.patch12
-rw-r--r--patches/server/0881-Add-NamespacedKey-biome-methods.patch4
-rw-r--r--patches/server/0905-Elder-Guardian-appearance-API.patch4
-rw-r--r--patches/server/0922-Add-Player-Warden-Warning-API.patch4
-rw-r--r--patches/server/0942-Fix-explosion-yield-with-new-gamerules.patch4
-rw-r--r--patches/server/0946-Add-exploded-block-state-to-BlockExplodeEvent.patch4
-rw-r--r--patches/server/0950-Flying-Fall-Damage.patch4
-rw-r--r--patches/server/0955-Add-Player-sendEquipmentChange-Map-API.patch38
-rw-r--r--patches/server/0955-Win-Screen-API.patch (renamed from patches/server/0956-Win-Screen-API.patch)4
-rw-r--r--patches/server/0956-Remove-CraftItemStack-setAmount-null-assignment.patch (renamed from patches/server/0957-Remove-CraftItemStack-setAmount-null-assignment.patch)0
-rw-r--r--patches/server/0957-Fix-force-opening-enchantment-tables.patch (renamed from patches/server/0958-Fix-force-opening-enchantment-tables.patch)0
-rw-r--r--patches/server/0958-Add-Entity-Body-Yaw-API.patch (renamed from patches/server/0959-Add-Entity-Body-Yaw-API.patch)0
-rw-r--r--patches/server/0959-Add-missing-isFuel-Material-entries.patch (renamed from patches/server/0960-Add-missing-isFuel-Material-entries.patch)0
-rw-r--r--patches/server/0960-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch (renamed from patches/server/0962-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch)0
-rw-r--r--patches/server/0961-Temp-fix-for-EntityType.translationKey.patch24
-rw-r--r--patches/server/0961-Update-the-flag-when-a-captured-block-state-is-outda.patch (renamed from patches/server/0963-Update-the-flag-when-a-captured-block-state-is-outda.patch)0
-rw-r--r--patches/server/0962-Add-EntityFertilizeEggEvent.patch (renamed from patches/server/0964-Add-EntityFertilizeEggEvent.patch)0
-rw-r--r--patches/server/0963-Fix-HumanEntity-drop-not-updating-the-client-inv.patch (renamed from patches/server/0965-Fix-HumanEntity-drop-not-updating-the-client-inv.patch)0
-rw-r--r--patches/server/0964-Add-CompostItemEvent-and-EntityCompostItemEvent.patch (renamed from patches/server/0966-Add-CompostItemEvent-and-EntityCompostItemEvent.patch)0
-rw-r--r--patches/server/0965-Correctly-handle-ArmorStand-invisibility.patch (renamed from patches/server/0967-Correctly-handle-ArmorStand-invisibility.patch)0
m---------work/Bukkit0
m---------work/CraftBukkit0
m---------work/Spigot0
112 files changed, 272 insertions, 443 deletions
diff --git a/patches/api/0001-Convert-project-to-Gradle.patch b/patches/api/0001-Convert-project-to-Gradle.patch
index a815082dfe..5c21cf5dbb 100644
--- a/patches/api/0001-Convert-project-to-Gradle.patch
+++ b/patches/api/0001-Convert-project-to-Gradle.patch
@@ -27,7 +27,7 @@ index 11038da2e071699d6561a331565db0c8d7850d0e..317acfec5894101294a55abff6181943
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
-index 0000000000000000000000000000000000000000..9686f621c7b837a7a38ffb2fea10ae492b18556d
+index 0000000000000000000000000000000000000000..386d8c36510e69a69ce4536e67af4a6e4e886685
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,81 @@
@@ -59,7 +59,7 @@ index 0000000000000000000000000000000000000000..9686f621c7b837a7a38ffb2fea10ae49
+ testImplementation("org.apache.commons:commons-lang3:3.12.0")
+ testImplementation("junit:junit:4.13.2")
+ testImplementation("org.hamcrest:hamcrest-library:1.3")
-+ testImplementation("org.ow2.asm:asm-tree:9.3")
++ testImplementation("org.ow2.asm:asm-tree:9.4")
+}
+
+configure<PublishingExtension> {
@@ -114,10 +114,10 @@ index 0000000000000000000000000000000000000000..9686f621c7b837a7a38ffb2fea10ae49
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
-index 389f3761876d2a667309d317d1a99b545f36771a..0000000000000000000000000000000000000000
+index afe250e329e19a56f58085efeaa28d86b79118ec..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
-@@ -1,252 +0,0 @@
+@@ -1,254 +0,0 @@
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -220,7 +220,7 @@ index 389f3761876d2a667309d317d1a99b545f36771a..00000000000000000000000000000000
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm-tree</artifactId>
-- <version>9.3</version>
+- <version>9.4</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
@@ -274,7 +274,7 @@ index 389f3761876d2a667309d317d1a99b545f36771a..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
-- <version>3.2.4</version>
+- <version>3.4.1</version>
- <executions>
- <execution>
- <phase>package</phase>
@@ -294,6 +294,8 @@ index 389f3761876d2a667309d317d1a99b545f36771a..00000000000000000000000000000000
- </filters>
- <!-- when downloading via Maven we can pull depends individually -->
- <shadedArtifactAttached>true</shadedArtifactAttached>
+- <!-- In 3.3.0 and later, shadedArtifactAttached causes dependant projects to use dependency reduced pom (bug?) -->
+- <createDependencyReducedPom>false</createDependencyReducedPom>
- </configuration>
- </plugin>
- <plugin>
diff --git a/patches/api/0005-Adventure.patch b/patches/api/0005-Adventure.patch
index 1ba871ec5a..e57921943c 100644
--- a/patches/api/0005-Adventure.patch
+++ b/patches/api/0005-Adventure.patch
@@ -1952,7 +1952,7 @@ index 8489a0b009223b727b0393840374550a1cc192ff..bdcf5219ff1e4d4c0dc8a3423bc17b45
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd800851d6 100644
+index 9f49dc054e7755392139ffbacc6365f9c742b085..b4a27acb8579e86483646379878fbf67a7783865 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -39,7 +39,28 @@ import org.jetbrains.annotations.Nullable;
@@ -2116,7 +2116,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
+ // Paper start
+ /**
+ * Kicks the player with the default kick message.
-+ * @see #kick(Component)
++ * @see #kick(net.kyori.adventure.text.Component)
+ */
+ void kick();
+ /**
@@ -2130,9 +2130,9 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
/**
* Says a message (or runs a command).
*
-@@ -563,6 +649,90 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -573,6 +659,90 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
- public void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull EquipmentSlot slot, @NotNull ItemStack item);
+ public void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull Map<EquipmentSlot, ItemStack> items);
+ // Paper start
+ /**
@@ -2221,7 +2221,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
/**
* Send a sign change. This fakes a sign change packet for a user at
* a certain location. This will not actually change the world in any way.
-@@ -577,7 +747,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -587,7 +757,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param lines the new text on the sign or null to clear it
* @throws IllegalArgumentException if location is null
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
@@ -2231,7 +2231,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException;
/**
-@@ -596,7 +768,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -606,7 +778,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException if location is null
* @throws IllegalArgumentException if dyeColor is null
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
@@ -2241,7 +2241,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException;
/**
-@@ -616,7 +790,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -626,7 +800,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException if location is null
* @throws IllegalArgumentException if dyeColor is null
* @throws IllegalArgumentException if lines is non-null and has a length less than 4
@@ -2251,7 +2251,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor, boolean hasGlowingText) throws IllegalArgumentException;
/**
-@@ -1048,6 +1224,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1058,6 +1234,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* pack correctly.
* </ul>
*
@@ -2259,7 +2259,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
* @param url The URL from which the client will download the resource
* pack. The string must contain only US-ASCII characters and should
* be encoded as per RFC 1738.
-@@ -1104,8 +1281,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1114,8 +1291,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException Thrown if the hash is not 20 bytes
* long.
*/
@@ -2270,7 +2270,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
/**
* Request that the player's client download and switch resource packs.
* <p>
-@@ -1141,6 +1320,54 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1151,6 +1330,54 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param hash The sha1 hash sum of the resource pack file which is used
* to apply a cached version of the pack directly without downloading
* if it is available. Hast to be 20 bytes long!
@@ -2325,7 +2325,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
* @param force If true, the client will be disconnected from the server
* when it declines to use the resource pack.
* @throws IllegalArgumentException Thrown if the URL is null.
-@@ -1195,8 +1422,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1205,8 +1432,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException Thrown if the hash is not 20 bytes
* long.
*/
@@ -2383,7 +2383,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
/**
* Gets the Scoreboard displayed to this player
*
-@@ -1312,7 +1588,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1322,7 +1598,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param title Title text
* @param subtitle Subtitle text
@@ -2392,7 +2392,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
*/
@Deprecated
public void sendTitle(@Nullable String title, @Nullable String subtitle);
-@@ -1331,7 +1607,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1341,7 +1617,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param fadeIn time in ticks for titles to fade in. Defaults to 10.
* @param stay time in ticks for titles to stay. Defaults to 70.
* @param fadeOut time in ticks for titles to fade out. Defaults to 20.
@@ -2402,7 +2402,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
public void sendTitle(@Nullable String title, @Nullable String subtitle, int fadeIn, int stay, int fadeOut);
/**
-@@ -1558,6 +1836,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1568,6 +1846,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public int getClientViewDistance();
@@ -2417,7 +2417,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
/**
* Gets the player's estimated ping in milliseconds.
*
-@@ -1583,8 +1869,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1593,8 +1879,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* they wish.
*
* @return the player's locale
@@ -2428,7 +2428,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
public String getLocale();
/**
-@@ -1626,6 +1914,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1636,6 +1924,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public boolean isAllowingServerListings();
@@ -2443,7 +2443,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
// Spigot start
public class Spigot extends Entity.Spigot {
-@@ -1680,11 +1976,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1690,11 +1986,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -2457,7 +2457,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
@Override
public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");
-@@ -1695,7 +1993,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1705,7 +2003,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param position the screen position
* @param component the components to send
@@ -2467,7 +2467,7 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
-@@ -1705,7 +2005,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1715,7 +2015,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param position the screen position
* @param components the components to send
@@ -2477,24 +2477,24 @@ index 74152aa68883973c896c35f538c402fce377144b..4053c086a9ef9aa071402818672643bd
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");
}
-@@ -1716,7 +2018,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1726,7 +2028,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param position the screen position
* @param sender the sender of the message
* @param component the components to send
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
*/
+ @Deprecated // Paper
- public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
+ public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
-@@ -1727,7 +2031,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1737,7 +2041,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param position the screen position
* @param sender the sender of the message
* @param components the components to send
+ * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
*/
+ @Deprecated // Paper
- public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
+ public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java b/src/main/java/org/bukkit/entity/minecart/CommandMinecart.java
diff --git a/patches/api/0007-Use-ASM-for-event-executors.patch b/patches/api/0007-Use-ASM-for-event-executors.patch
index 83326165cf..60a7c14e4f 100644
--- a/patches/api/0007-Use-ASM-for-event-executors.patch
+++ b/patches/api/0007-Use-ASM-for-event-executors.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Use ASM for event executors.
Uses method handles for private or static methods.
diff --git a/build.gradle.kts b/build.gradle.kts
-index 4ad00c44b635e1d0b882399b0c76ab32d6bb2501..d54ed6f7c4fa7e287e8daf35f7ae978b5a0a0d51 100644
+index 45f29dd1b1d683f6a4d8b91b81274565d75d4d73..44af6bd382dca476e4afd458a743ae56c91a8dee 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -39,6 +39,9 @@ dependencies {
@@ -14,8 +14,8 @@ index 4ad00c44b635e1d0b882399b0c76ab32d6bb2501..d54ed6f7c4fa7e287e8daf35f7ae978b
apiAndDocs("net.kyori:adventure-text-serializer-plain")
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
+
-+ implementation("org.ow2.asm:asm:9.2")
-+ implementation("org.ow2.asm:asm-commons:9.2")
++ implementation("org.ow2.asm:asm:9.4")
++ implementation("org.ow2.asm:asm-commons:9.4")
// Paper end
compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
diff --git a/patches/api/0008-Paper-Plugins.patch b/patches/api/0008-Paper-Plugins.patch
index 7bdf5ebe9b..1d10b9ab51 100644
--- a/patches/api/0008-Paper-Plugins.patch
+++ b/patches/api/0008-Paper-Plugins.patch
@@ -5,11 +5,11 @@ Subject: [PATCH] Paper Plugins
diff --git a/build.gradle.kts b/build.gradle.kts
-index d54ed6f7c4fa7e287e8daf35f7ae978b5a0a0d51..5aa294bdc1251df8798709a04ce9d34c316c7a17 100644
+index 44af6bd382dca476e4afd458a743ae56c91a8dee..f5aa8d96dce1dbac78a99535786cf9c0085b3b80 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -44,7 +44,7 @@ dependencies {
- implementation("org.ow2.asm:asm-commons:9.2")
+ implementation("org.ow2.asm:asm-commons:9.4")
// Paper end
- compileOnly("org.apache.maven:maven-resolver-provider:3.8.5")
diff --git a/patches/api/0010-Timings-v2.patch b/patches/api/0010-Timings-v2.patch
index f34621159e..8102412e83 100644
--- a/patches/api/0010-Timings-v2.patch
+++ b/patches/api/0010-Timings-v2.patch
@@ -3392,12 +3392,12 @@ index 516d7fc7812aac343782861d0d567f54aa578c2a..00000000000000000000000000000000
- // Spigot end
-}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 4053c086a9ef9aa071402818672643bd800851d6..705644a2e0d209ef717470da07d34fafc88a0640 100644
+index b4a27acb8579e86483646379878fbf67a7783865..05d8c6e65d5aed5c0b38e9d3c5becdca361a4829 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2036,7 +2036,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2046,7 +2046,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Deprecated // Paper
- public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
+ public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");
+
+ }
diff --git a/patches/api/0012-Player-affects-spawning-API.patch b/patches/api/0012-Player-affects-spawning-API.patch
index 231bbfca9b..79b855356c 100644
--- a/patches/api/0012-Player-affects-spawning-API.patch
+++ b/patches/api/0012-Player-affects-spawning-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Player affects spawning API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 705644a2e0d209ef717470da07d34fafc88a0640..1c3d9ac922c189adc139c2646b4bdc97dbfadb43 100644
+index 05d8c6e65d5aed5c0b38e9d3c5becdca361a4829..ab29ddf09a178b70c7afad33d282cb39fcd7e92a 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -1875,6 +1875,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1885,6 +1885,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Deprecated // Paper
public String getLocale();
diff --git a/patches/api/0017-Add-view-distance-API.patch b/patches/api/0017-Add-view-distance-API.patch
index 9c146dfd15..8c17924c18 100644
--- a/patches/api/0017-Add-view-distance-API.patch
+++ b/patches/api/0017-Add-view-distance-API.patch
@@ -75,10 +75,10 @@ index ed57cd69d88504b78782271c9a3d423a29471674..8a6a548314eef8d486be908e38e3a456
public class Spigot {
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 1c3d9ac922c189adc139c2646b4bdc97dbfadb43..7efbc8540d3a42ae8ec9b4e4343e1352e0cfa993 100644
+index ab29ddf09a178b70c7afad33d282cb39fcd7e92a..3c7665d5e96e710eb1ebb439a0bc0fd441bd2532 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -1889,6 +1889,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1899,6 +1899,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param affects Whether the player can affect mob spawning
*/
public void setAffectsSpawning(boolean affects);
diff --git a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
index ba52e08d1b..8a7f6124fb 100644
--- a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
+++ b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
@@ -76,10 +76,10 @@ index 6a7b91af3e738613cf79c13e2844efe9a2efd254..bef555b3de44fed312b45a5d5cd811b1
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 7efbc8540d3a42ae8ec9b4e4343e1352e0cfa993..6120eeefb8ffcb39bac81ba60ff3a5d9a3687dd5 100644
+index 3c7665d5e96e710eb1ebb439a0bc0fd441bd2532..1fe1d5a0a777ecaab9ac1d8092e5a46ddacf4e18 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -803,6 +803,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -813,6 +813,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendMap(@NotNull MapView map);
diff --git a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch b/patches/api/0025-Player-Tab-List-and-Title-APIs.patch
index 06d9807549..9e9998bd47 100644
--- a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch
+++ b/patches/api/0025-Player-Tab-List-and-Title-APIs.patch
@@ -432,18 +432,10 @@ index 0000000000000000000000000000000000000000..9e90c3df567a65b48a0b9341f784eb90
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 6120eeefb8ffcb39bac81ba60ff3a5d9a3687dd5..5de2fbb69c8950a5f85476b60993b3d6b2164162 100644
+index 1fe1d5a0a777ecaab9ac1d8092e5a46ddacf4e18..d108c0485110be014b7dc05a3ade660b750f1dce 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -3,6 +3,7 @@ package org.bukkit.entity;
- import java.net.InetSocketAddress;
- import java.util.Collection;
- import java.util.UUID;
-+import com.destroystokyo.paper.Title; // Paper
- import org.bukkit.DyeColor;
- import org.bukkit.Effect;
- import org.bukkit.GameMode;
-@@ -837,6 +838,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -847,6 +847,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public default void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) {
spigot().sendMessage(position, components);
}
@@ -544,14 +536,14 @@ index 6120eeefb8ffcb39bac81ba60ff3a5d9a3687dd5..5de2fbb69c8950a5f85476b60993b3d6
+ /**
+ * Show the title to the player, overriding any previously displayed title.
+ *
-+ * <p>This method overrides any previous title, use {@link #updateTitle(Title)} to change the existing one.</p>
++ * <p>This method overrides any previous title, use {@link #updateTitle(com.destroystokyo.paper.Title)} to change the existing one.</p>
+ *
+ * @param title the title to send
+ * @throws NullPointerException if the title is null
+ * @deprecated Use {@link #showTitle(net.kyori.adventure.title.Title)} or {@link #sendTitlePart(net.kyori.adventure.title.TitlePart, Object)}
+ */
+ @Deprecated
-+ void sendTitle(@NotNull Title title);
++ void sendTitle(@NotNull com.destroystokyo.paper.Title title);
+
+ /**
+ * Show the title to the player, overriding any previously displayed title.
@@ -563,7 +555,7 @@ index 6120eeefb8ffcb39bac81ba60ff3a5d9a3687dd5..5de2fbb69c8950a5f85476b60993b3d6
+ * @deprecated Use {@link #showTitle(net.kyori.adventure.title.Title)} or {@link #sendTitlePart(net.kyori.adventure.title.TitlePart, Object)}
+ */
+ @Deprecated
-+ void updateTitle(@NotNull Title title);
++ void updateTitle(@NotNull com.destroystokyo.paper.Title title);
+
+ /**
+ * Hide any title that is currently visible to the player
diff --git a/patches/api/0027-Complete-resource-pack-API.patch b/patches/api/0027-Complete-resource-pack-API.patch
index 87a1f02236..6658f5134c 100644
--- a/patches/api/0027-Complete-resource-pack-API.patch
+++ b/patches/api/0027-Complete-resource-pack-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 5de2fbb69c8950a5f85476b60993b3d6b2164162..60bfbf979899df20e0f7ab5f1dcf79ff3cb483a9 100644
+index d108c0485110be014b7dc05a3ade660b750f1dce..e3bd8634defd69ecb8146ea19e11c0ffc14374d9 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -1354,7 +1354,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1363,7 +1363,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException Thrown if the URL is null.
* @throws IllegalArgumentException Thrown if the URL is too long. The
* length restriction is an implementation specific arbitrary value.
@@ -18,7 +18,7 @@ index 5de2fbb69c8950a5f85476b60993b3d6b2164162..60bfbf979899df20e0f7ab5f1dcf79ff
public void setResourcePack(@NotNull String url);
/**
-@@ -2170,6 +2172,124 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2179,6 +2181,124 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
default net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowEntity> asHoverEvent(final @NotNull java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowEntity> op) {
return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.of(this.getType().getKey(), this.getUniqueId(), this.displayName())));
}
diff --git a/patches/api/0046-Add-String-based-Action-Bar-API.patch b/patches/api/0046-Add-String-based-Action-Bar-API.patch
index d2e11a89db..1ef6da305a 100644
--- a/patches/api/0046-Add-String-based-Action-Bar-API.patch
+++ b/patches/api/0046-Add-String-based-Action-Bar-API.patch
@@ -5,18 +5,10 @@ Subject: [PATCH] Add String based Action Bar API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 60bfbf979899df20e0f7ab5f1dcf79ff3cb483a9..92d1f84e3fdd2c0d69239e1ddc77ff799a2897c1 100644
+index e3bd8634defd69ecb8146ea19e11c0ffc14374d9..da9febacac135ebecf0236a7cda589cb1d527ef0 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -4,6 +4,7 @@ import java.net.InetSocketAddress;
- import java.util.Collection;
- import java.util.UUID;
- import com.destroystokyo.paper.Title; // Paper
-+import net.kyori.adventure.text.Component;
- import org.bukkit.DyeColor;
- import org.bukkit.Effect;
- import org.bukkit.GameMode;
-@@ -805,6 +806,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -814,6 +814,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendMap(@NotNull MapView map);
// Paper start
@@ -27,7 +19,7 @@ index 60bfbf979899df20e0f7ab5f1dcf79ff3cb483a9..92d1f84e3fdd2c0d69239e1ddc77ff79
+ * Use Section symbols for legacy color codes to send formatting.
+ *
+ * @param message The message to send
-+ * @deprecated use {@link #sendActionBar(Component)}
++ * @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)}
+ */
+ @Deprecated
+ public void sendActionBar(@NotNull String message);
@@ -39,7 +31,7 @@ index 60bfbf979899df20e0f7ab5f1dcf79ff3cb483a9..92d1f84e3fdd2c0d69239e1ddc77ff79
+ *
+ * @param alternateChar Alternate symbol such as '&'
+ * @param message The message to send
-+ * @deprecated use {@link #sendActionBar(Component)}
++ * @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)}
+ */
+ @Deprecated
+ public void sendActionBar(char alternateChar, @NotNull String message);
@@ -48,7 +40,7 @@ index 60bfbf979899df20e0f7ab5f1dcf79ff3cb483a9..92d1f84e3fdd2c0d69239e1ddc77ff79
+ * Sends an Action Bar message to the client.
+ *
+ * @param message The components to send
-+ * @deprecated use {@link #sendActionBar(Component)}
++ * @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)}
+ */
+ @Deprecated
+ public void sendActionBar(@NotNull net.md_5.bungee.api.chat.BaseComponent... message);
@@ -56,7 +48,7 @@ index 60bfbf979899df20e0f7ab5f1dcf79ff3cb483a9..92d1f84e3fdd2c0d69239e1ddc77ff79
/**
* Sends the component to the player
*
-@@ -832,9 +866,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -841,9 +874,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Sends an array of components as a single message to the specified screen position of this player
*
@@ -68,19 +60,3 @@ index 60bfbf979899df20e0f7ab5f1dcf79ff3cb483a9..92d1f84e3fdd2c0d69239e1ddc77ff79
public default void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) {
spigot().sendMessage(position, components);
}
-@@ -2361,6 +2397,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
- /**
- * Sends the component to the specified screen position of this player
- *
-+ * @deprecated This is unlikely the API you want to use. See {@link #sendActionBar(String)} for a more proper Action Bar API. This deprecated API may send unsafe items to the client.
- * @param position the screen position
- * @param component the components to send
- * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
-@@ -2373,6 +2410,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
- /**
- * Sends an array of components as a single message to the specified screen position of this player
- *
-+ * @deprecated This is unlikely the API you want to use. See {@link #sendActionBar(String)} for a more proper Action Bar API. This deprecated API may send unsafe items to the client.
- * @param position the screen position
- * @param components the components to send
- * @deprecated use {@code sendMessage} methods that accept {@link net.kyori.adventure.text.Component}
diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0055-Fix-upstream-javadocs.patch
index 33f96dea90..4426cb60ef 100644
--- a/patches/api/0055-Fix-upstream-javadocs.patch
+++ b/patches/api/0055-Fix-upstream-javadocs.patch
@@ -134,10 +134,10 @@ index 2926fa6071bc7640cc10280b5c3962b0ce7686f1..4f63988848443aff55619bc12ef12c92
* Instructs this Mob to set the specified LivingEntity as its target.
* <p>
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 92d1f84e3fdd2c0d69239e1ddc77ff799a2897c1..e15a9525b989abee62ca2d8ec924ee492118abb2 100644
+index da9febacac135ebecf0236a7cda589cb1d527ef0..7e3e717d6831ac6a206d58313c7f2da0c4b92e6b 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -312,15 +312,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -310,15 +310,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Saves the players current location, health, inventory, motion, and
@@ -157,14 +157,14 @@ index 92d1f84e3fdd2c0d69239e1ddc77ff799a2897c1..e15a9525b989abee62ca2d8ec924ee49
* <p>
* Note: This will overwrite the players current inventory, health,
* motion, etc, with the state from the saved dat file.
-@@ -823,7 +823,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -831,7 +831,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* Use supplied alternative character to the section symbol to represent legacy color codes.
*
- * @param alternateChar Alternate symbol such as '&'
+ * @param alternateChar Alternate symbol such as '&amp;'
* @param message The message to send
- * @deprecated use {@link #sendActionBar(Component)}
+ * @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)}
*/
diff --git a/src/main/java/org/bukkit/entity/Slime.java b/src/main/java/org/bukkit/entity/Slime.java
index a5ad3250cebfeb302c58e0bfd6db1295913c927e..bfac874840cf1f36afba16ae4d176c5821a68cfb 100644
diff --git a/patches/api/0069-Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/0069-Allow-plugins-to-use-SLF4J-for-logging.patch
index 83582332b8..07b00d1fb8 100644
--- a/patches/api/0069-Allow-plugins-to-use-SLF4J-for-logging.patch
+++ b/patches/api/0069-Allow-plugins-to-use-SLF4J-for-logging.patch
@@ -14,7 +14,7 @@ it without having to shade it in the plugin and going through
several layers of logging abstraction.
diff --git a/build.gradle.kts b/build.gradle.kts
-index 5aa294bdc1251df8798709a04ce9d34c316c7a17..7ba2b08b8c5eb405a64f9edfa72195dcf48f82bd 100644
+index f5aa8d96dce1dbac78a99535786cf9c0085b3b80..9421e45653e68922a51cf0071792e6fa7999d0b8 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -39,6 +39,8 @@ dependencies {
@@ -24,8 +24,8 @@ index 5aa294bdc1251df8798709a04ce9d34c316c7a17..7ba2b08b8c5eb405a64f9edfa72195dc
+ api("org.apache.logging.log4j:log4j-api:2.17.1")
+ api("org.slf4j:slf4j-api:1.8.0-beta4")
- implementation("org.ow2.asm:asm:9.2")
- implementation("org.ow2.asm:asm-commons:9.2")
+ implementation("org.ow2.asm:asm:9.4")
+ implementation("org.ow2.asm:asm-commons:9.4")
diff --git a/src/main/java/org/bukkit/plugin/Plugin.java b/src/main/java/org/bukkit/plugin/Plugin.java
index 8c76716249e44ed8bf6be94c1f5c7b6d9bb35be2..4eb639fbb46a0848be207149ea433455550fae1c 100644
--- a/src/main/java/org/bukkit/plugin/Plugin.java
diff --git a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch b/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch
index b8c4f58271..72133bbfdb 100644
--- a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch
+++ b/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch
@@ -57,10 +57,10 @@ index 0000000000000000000000000000000000000000..7b2af1bd72dfbcf4e962a982940fc49b
+
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index e15a9525b989abee62ca2d8ec924ee492118abb2..7efa33336a6f6309cf11677185fd11a7c0757bb3 100644
+index 7e3e717d6831ac6a206d58313c7f2da0c4b92e6b..0267319ee4e4a7ec3b28ad83572c8e8684d2f9fe 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -41,7 +41,7 @@ import org.jetbrains.annotations.Nullable;
+@@ -39,7 +39,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents a player, connected or not
*/
diff --git a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch b/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch
index 757c0b1d45..48e0860138 100644
--- a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch
@@ -10,10 +10,10 @@ of giving the player experience points.
Both an API To standalone mend, and apply mending logic to .giveExp has been added.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 7efa33336a6f6309cf11677185fd11a7c0757bb3..a2a207ea9aa7e6a09af75cf8975153b9abc10ec2 100644
+index 0267319ee4e4a7ec3b28ad83572c8e8684d2f9fe..d68c7751d135c0e600907ae3a1ddd55f591dcade 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -1089,12 +1089,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1097,12 +1097,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void resetPlayerWeather();
diff --git a/patches/api/0091-Player.setPlayerProfile-API.patch b/patches/api/0091-Player.setPlayerProfile-API.patch
index 2e0e0ff318..7da06195ba 100644
--- a/patches/api/0091-Player.setPlayerProfile-API.patch
+++ b/patches/api/0091-Player.setPlayerProfile-API.patch
@@ -93,10 +93,10 @@ index bf1102b4481b8c9b9c4f5ba0c561556b75fea077..8539bac19bf9ba1a66689a9af90e088a
/**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index a2a207ea9aa7e6a09af75cf8975153b9abc10ec2..c2723b0e34f5d63b4b26ddb3b7c7e8b349a5521e 100644
+index d68c7751d135c0e600907ae3a1ddd55f591dcade..ccde3d91163b27e27334d859120e0eb851846d1d 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2347,6 +2347,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2355,6 +2355,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* was {@link org.bukkit.event.player.PlayerResourcePackStatusEvent.Status#SUCCESSFULLY_LOADED}
*/
boolean hasResourcePack();
diff --git a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch b/patches/api/0094-Add-openSign-method-to-HumanEntity.patch
index b0e1448977..fada2d1393 100644
--- a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch
+++ b/patches/api/0094-Add-openSign-method-to-HumanEntity.patch
@@ -24,10 +24,10 @@ index abdca9fe5acc90f167219eb769ece66c35682bb1..9715a9d36187e2eecfeab1a05087d27c
/**
* Make the entity drop the item in their hand.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index c2723b0e34f5d63b4b26ddb3b7c7e8b349a5521e..6a33b5d7fc34a78a131a0ef280cddd1b9718e125 100644
+index ccde3d91163b27e27334d859120e0eb851846d1d..b35d53ef3fd560a4790b5d7850c5d50f7bea2163 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2202,7 +2202,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2210,7 +2210,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Open a Sign for editing by the Player.
*
diff --git a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch
index 4c2078ecb1..7d5a95c9c7 100644
--- a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch
+++ b/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch
@@ -74,10 +74,10 @@ index 3ba8ff1a41ac9fd96fd4dec5cbe0f714fef93022..b39ed4eb2e7d9e40805e201d77973877
/**
* Checks if this player is whitelisted or not
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 6a33b5d7fc34a78a131a0ef280cddd1b9718e125..41188fb005807f3adfcdd81e72da122309850383 100644
+index b35d53ef3fd560a4790b5d7850c5d50f7bea2163..cfa1a685fbf2be603a6f95eaa6519c7ffe954c23 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -806,6 +806,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -814,6 +814,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendMap(@NotNull MapView map);
// Paper start
diff --git a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch b/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch
index fe319a1efb..3852129e7a 100644
--- a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch
+++ b/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 41188fb005807f3adfcdd81e72da122309850383..01c530297bfdb7a0279be7af7eecef3eb95cd369 100644
+index cfa1a685fbf2be603a6f95eaa6519c7ffe954c23..98b50de33b9c48e25da0a19747cd1599df5becfc 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2517,6 +2517,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2525,6 +2525,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param profile The new profile to use
*/
void setPlayerProfile(@NotNull com.destroystokyo.paper.profile.PlayerProfile profile);
diff --git a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
index 7ee8a90b5e..005e2563d7 100644
--- a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
@@ -357,10 +357,10 @@ index 95c79c5fa0c4e30201f887da6467ce5f81c8a255..7f9c4d4b430a3f0276461346ff2621ba
/**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 01c530297bfdb7a0279be7af7eecef3eb95cd369..0dd3fcd86099e5a032b09b46309894d5c3e6f39d 100644
+index 98b50de33b9c48e25da0a19747cd1599df5becfc..fec96fff783995ccb7df24bd40368885ed9eefa1 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -1424,9 +1424,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1432,9 +1432,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param plugin Plugin that wants to hide the entity
* @param entity Entity to hide
@@ -371,7 +371,7 @@ index 01c530297bfdb7a0279be7af7eecef3eb95cd369..0dd3fcd86099e5a032b09b46309894d5
public void hideEntity(@NotNull Plugin plugin, @NotNull Entity entity);
/**
-@@ -1436,9 +1435,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1444,9 +1443,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param plugin Plugin that wants to show the entity
* @param entity Entity to show
@@ -382,7 +382,7 @@ index 01c530297bfdb7a0279be7af7eecef3eb95cd369..0dd3fcd86099e5a032b09b46309894d5
public void showEntity(@NotNull Plugin plugin, @NotNull Entity entity);
/**
-@@ -1447,9 +1445,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1455,9 +1453,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param entity Entity to check
* @return True if the provided entity is not being hidden from this
* player
diff --git a/patches/api/0189-Add-Player-Client-Options-API.patch b/patches/api/0189-Add-Player-Client-Options-API.patch
index c04d29472e..0c8b5c3795 100644
--- a/patches/api/0189-Add-Player-Client-Options-API.patch
+++ b/patches/api/0189-Add-Player-Client-Options-API.patch
@@ -229,18 +229,10 @@ index 0000000000000000000000000000000000000000..cf67dc7d465223710adbf2b798109f52
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 0dd3fcd86099e5a032b09b46309894d5c3e6f39d..e277cf56c8c2c005efdbe1dd450c158debf46569 100644
+index fec96fff783995ccb7df24bd40368885ed9eefa1..36735fff136986bf4d3fac0ad431d36a95a6439f 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -3,6 +3,7 @@ package org.bukkit.entity;
- import java.net.InetSocketAddress;
- import java.util.Collection;
- import java.util.UUID;
-+import com.destroystokyo.paper.ClientOption; // Paper
- import com.destroystokyo.paper.Title; // Paper
- import net.kyori.adventure.text.Component;
- import org.bukkit.DyeColor;
-@@ -2534,6 +2535,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2542,6 +2542,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Reset the cooldown counter to 0, effectively starting the cooldown period.
*/
void resetCooldown();
@@ -249,7 +241,7 @@ index 0dd3fcd86099e5a032b09b46309894d5c3e6f39d..e277cf56c8c2c005efdbe1dd450c158d
+ * @return the client option value of the player
+ */
+ @NotNull
-+ <T> T getClientOption(@NotNull ClientOption<T> option);
++ <T> T getClientOption(@NotNull com.destroystokyo.paper.ClientOption<T> option);
// Paper end
// Spigot start
diff --git a/patches/api/0206-Brand-support.patch b/patches/api/0206-Brand-support.patch
index fb38631c64..40d09661e3 100644
--- a/patches/api/0206-Brand-support.patch
+++ b/patches/api/0206-Brand-support.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Brand support
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index e277cf56c8c2c005efdbe1dd450c158debf46569..91a5ddaee8b5e4581e3cdef7aecf21788d21bbba 100644
+index 36735fff136986bf4d3fac0ad431d36a95a6439f..5d65fc6f2f87810999144f97cdf08fdbe2859d4b 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2669,6 +2669,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2674,6 +2674,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
// Paper end
}
diff --git a/patches/api/0220-Player-elytra-boost-API.patch b/patches/api/0220-Player-elytra-boost-API.patch
index 8ab8153eac..6d77f7e606 100644
--- a/patches/api/0220-Player-elytra-boost-API.patch
+++ b/patches/api/0220-Player-elytra-boost-API.patch
@@ -5,13 +5,13 @@ Subject: [PATCH] Player elytra boost API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 91a5ddaee8b5e4581e3cdef7aecf21788d21bbba..ea824a19e3e75bbfd7382c977a5409c9d6ed03ab 100644
+index 5d65fc6f2f87810999144f97cdf08fdbe2859d4b..43bee9f08f02564d48c21f350f54131e6c63f321 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2541,6 +2541,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2548,6 +2548,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
@NotNull
- <T> T getClientOption(@NotNull ClientOption<T> option);
+ <T> T getClientOption(@NotNull com.destroystokyo.paper.ClientOption<T> option);
+
+ /**
+ * Boost a Player that's {@link #isGliding()} using a {@link Firework}.
diff --git a/patches/api/0248-Add-sendOpLevel-API.patch b/patches/api/0248-Add-sendOpLevel-API.patch
index 30329ebd74..5ea68e2387 100644
--- a/patches/api/0248-Add-sendOpLevel-API.patch
+++ b/patches/api/0248-Add-sendOpLevel-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index ea824a19e3e75bbfd7382c977a5409c9d6ed03ab..c3db4783a05020cf91e2fd314dddf22d1ccfc02b 100644
+index 43bee9f08f02564d48c21f350f54131e6c63f321..e499452a8be3f3eec2429c4958877e40117ae594 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2554,6 +2554,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2561,6 +2561,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
@Nullable
Firework boostElytra(@NotNull ItemStack firework);
diff --git a/patches/api/0297-Add-PlayerKickEvent-causes.patch b/patches/api/0297-Add-PlayerKickEvent-causes.patch
index a216a1fe7d..bba583f005 100644
--- a/patches/api/0297-Add-PlayerKickEvent-causes.patch
+++ b/patches/api/0297-Add-PlayerKickEvent-causes.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerKickEvent causes
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index c3db4783a05020cf91e2fd314dddf22d1ccfc02b..ba45de407168f34511af34bcd1a0e209ddfe2374 100644
+index e499452a8be3f3eec2429c4958877e40117ae594..528fee6866f6bb988e62627161e62f7b74fdb574 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -252,6 +252,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -249,6 +249,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param message kick message
*/
void kick(final @Nullable net.kyori.adventure.text.Component message);
@@ -19,7 +19,7 @@ index c3db4783a05020cf91e2fd314dddf22d1ccfc02b..ba45de407168f34511af34bcd1a0e209
+ * @param message kick message
+ * @param cause kick cause
+ */
-+ void kick(final @Nullable Component message, @NotNull org.bukkit.event.player.PlayerKickEvent.Cause cause);
++ void kick(final @Nullable net.kyori.adventure.text.Component message, @NotNull org.bukkit.event.player.PlayerKickEvent.Cause cause);
// Paper end
/**
diff --git a/patches/api/0332-Add-player-health-update-API.patch b/patches/api/0332-Add-player-health-update-API.patch
index 49930e7153..65256c5aa7 100644
--- a/patches/api/0332-Add-player-health-update-API.patch
+++ b/patches/api/0332-Add-player-health-update-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add player health update API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index ba45de407168f34511af34bcd1a0e209ddfe2374..0c3a4a3ebd6f16c1c45c2b82620d5ca6cdace8a1 100644
+index 528fee6866f6bb988e62627161e62f7b74fdb574..b8649646550d92e74d81f8502ce7a0e3479ebced 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -1942,6 +1942,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1949,6 +1949,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public double getHealthScale();
diff --git a/patches/api/0347-Multi-Block-Change-API.patch b/patches/api/0347-Multi-Block-Change-API.patch
index 09612ae46c..32dc167c98 100644
--- a/patches/api/0347-Multi-Block-Change-API.patch
+++ b/patches/api/0347-Multi-Block-Change-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Multi Block Change API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 0c3a4a3ebd6f16c1c45c2b82620d5ca6cdace8a1..17ad43c24dc2e18f5cde0ac0bfae1de9fe415964 100644
+index b8649646550d92e74d81f8502ce7a0e3479ebced..596af6bb00429bad7d36ea9b06573ec0aacc4cff 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -649,6 +649,27 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -646,6 +646,27 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendBlockDamage(@NotNull Location loc, float progress);
@@ -34,5 +34,5 @@ index 0c3a4a3ebd6f16c1c45c2b82620d5ca6cdace8a1..17ad43c24dc2e18f5cde0ac0bfae1de9
+ // Paper end
+
/**
- * Send the equipment change of an entity. This fakes the equipment change
- * of an entity for a user. This will not actually change the inventory of
+ * Send an equipment change for the target entity. This will not
+ * actually change the entity's equipment in any way.
diff --git a/patches/api/0375-More-Teleport-API.patch b/patches/api/0375-More-Teleport-API.patch
index af9380f40b..926db17d83 100644
--- a/patches/api/0375-More-Teleport-API.patch
+++ b/patches/api/0375-More-Teleport-API.patch
@@ -165,10 +165,10 @@ index b878509ff536f2d728c800a0ae6cd36802570b31..ec2adecad37c321b7852c34020dc1c61
* Teleports this entity to the given location. If this entity is riding a
* vehicle, it will be dismounted prior to teleportation.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 17ad43c24dc2e18f5cde0ac0bfae1de9fe415964..02979f3bce2d771120a39287cdfcb12c5487a23f 100644
+index 596af6bb00429bad7d36ea9b06573ec0aacc4cff..7b239b001288e773920195f3602b3f7103f80884 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2757,6 +2757,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2762,6 +2762,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
String getClientBrandName();
// Paper end
diff --git a/patches/api/0377-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0377-Custom-Chat-Completion-Suggestions-API.patch
index 61ef59a573..bab0808013 100644
--- a/patches/api/0377-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/api/0377-Custom-Chat-Completion-Suggestions-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 6fbdcf6e5df2e613db022d38fc1e170578ef5e8a..30e8f60762235e87db0445c041e47969223ce570 100644
+index 7c9e61e8a85b06561b1b2d5dac32b92eade94205..529d07aa4581b8ab036fab5e93c2179c860efc0c 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2619,6 +2619,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2626,6 +2626,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @throws IllegalArgumentException If the level is negative or greater than {@code 4} (i.e. not within {@code [0, 4]}).
*/
void sendOpLevel(byte level);
diff --git a/patches/api/0381-Add-custom-destroyerIdentity-to-sendBlockDamage.patch b/patches/api/0381-Add-custom-destroyerIdentity-to-sendBlockDamage.patch
index 04accb0303..655e7e4ee8 100644
--- a/patches/api/0381-Add-custom-destroyerIdentity-to-sendBlockDamage.patch
+++ b/patches/api/0381-Add-custom-destroyerIdentity-to-sendBlockDamage.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add custom destroyerIdentity to sendBlockDamage
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 30e8f60762235e87db0445c041e47969223ce570..478c175d1fcb9a6d1211c50618eec4b9b14bc0ba 100644
+index 529d07aa4581b8ab036fab5e93c2179c860efc0c..a6ad21303a03f7a09707ed28ab9e24443f3a62bf 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -641,7 +641,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -638,7 +638,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Send block damage. This fakes block break progress for a user at a
* certain location. This will not actually change the block's break
@@ -17,7 +17,7 @@ index 30e8f60762235e87db0445c041e47969223ce570..478c175d1fcb9a6d1211c50618eec4b9
*
* @param loc the location of the damaged block
* @param progress the progress from 0.0 - 1.0 where 0 is no damage and
-@@ -650,6 +650,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -647,6 +647,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendBlockDamage(@NotNull Location loc, float progress);
// Paper start
diff --git a/patches/api/0388-Elder-Guardian-appearance-API.patch b/patches/api/0388-Elder-Guardian-appearance-API.patch
index 81a6ca50fa..67f57fff47 100644
--- a/patches/api/0388-Elder-Guardian-appearance-API.patch
+++ b/patches/api/0388-Elder-Guardian-appearance-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index ebe926bff51954785a6f2ad518ba31eaf8bc8f82..2c4ee85e845f145ae7c6d27e4cac46ab9c23b5b2 100644
+index 8ad4b7b85c86259b3ba415cea2e398403bd91ffe..9f5dfdf6318860f2a2a5f213425d1a2d945b0ea4 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2831,6 +2831,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2836,6 +2836,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
void lookAt(@NotNull org.bukkit.entity.Entity entity, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor, @NotNull io.papermc.paper.entity.LookAnchor entityAnchor);
// Paper end - Teleport API
diff --git a/patches/api/0396-Add-Player-Warden-Warning-API.patch b/patches/api/0396-Add-Player-Warden-Warning-API.patch
index 5b59ae5930..c18b7a64d3 100644
--- a/patches/api/0396-Add-Player-Warden-Warning-API.patch
+++ b/patches/api/0396-Add-Player-Warden-Warning-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Player Warden Warning API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 2c4ee85e845f145ae7c6d27e4cac46ab9c23b5b2..c480f251f912d14726f3f2fc8f40bd921eb39fe6 100644
+index 9f5dfdf6318860f2a2a5f213425d1a2d945b0ea4..33c2dd4ef74f20d33cc81eccd6a55f02550ce3ea 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -2847,6 +2847,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -2852,6 +2852,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param silent whether sound should be silenced
*/
void showElderGuardian(boolean silent);
diff --git a/patches/api/0405-fix-Instruments.patch b/patches/api/0405-fix-Instruments.patch
index 199e7067e4..ff62e930b4 100644
--- a/patches/api/0405-fix-Instruments.patch
+++ b/patches/api/0405-fix-Instruments.patch
@@ -105,10 +105,10 @@ index de976be7132d05506fde7a839cac3954b0dd8da4..27dafd1850d3b984a6af155f5c08ee54
public static Instrument getByType(final byte type) {
return BY_DATA.get(type);
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 3a450af12df6c71e91eab34237dcbf870708f3c6..4d7089da20e0667fd7e67ef4da073d938e7b9a67 100644
+index a7adeb2f77bcc4e7d2402d21d3f3189bc09144b7..cdb6ad62da2cdc38807550555753447af3b40fb2 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -393,9 +393,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -390,9 +390,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void playNote(@NotNull Location loc, byte instrument, byte note);
/**
diff --git a/patches/api/0407-Add-Sneaking-API-for-Entities.patch b/patches/api/0407-Add-Sneaking-API-for-Entities.patch
index 69b2e6b650..a5e5ca0571 100644
--- a/patches/api/0407-Add-Sneaking-API-for-Entities.patch
+++ b/patches/api/0407-Add-Sneaking-API-for-Entities.patch
@@ -35,10 +35,10 @@ index 833a8abcdcbe70b2912779f6e179fa3739d099bd..11cf1bb585e2754bda443b776e9fcaf0
* Get the category of spawn to which this entity belongs.
*
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index d162b838a25d7eed6b8fc66c630e8c68e809c4cd..3f2025023dc5cecb37af136042809e9800c77594 100644
+index ac992523f09ffe35a55ef6f67115d3862504c2a6..213eb6bf962b4bd6fcab9f8a5fa90962e7805d8c 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -296,6 +296,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -293,6 +293,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @return true if player is in sneak mode
*/
@@ -46,7 +46,7 @@ index d162b838a25d7eed6b8fc66c630e8c68e809c4cd..3f2025023dc5cecb37af136042809e98
public boolean isSneaking();
/**
-@@ -303,6 +304,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -300,6 +301,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param sneak true if player should appear sneaking
*/
diff --git a/patches/api/0410-Flying-Fall-Damage-API.patch b/patches/api/0410-Flying-Fall-Damage-API.patch
index 4ef427e75e..3feb79f975 100644
--- a/patches/api/0410-Flying-Fall-Damage-API.patch
+++ b/patches/api/0410-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 b27d7414f34f1d49c56dbc33d6d23bc822adf721..b06f759b6188d87cf406072b6d7ef8266512ce50 100644
+index b6284a2e4f66b1f2ec2ac59f36190a44bbce260f..43c9cfef868b2e68e2c5741c095cc214d2095b70 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -1416,6 +1416,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -1423,6 +1423,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void setAllowFlight(boolean flight);
diff --git a/patches/api/0413-Add-Player-sendEquipmentChange-Map-API.patch b/patches/api/0413-Add-Player-sendEquipmentChange-Map-API.patch
deleted file mode 100644
index b62f95da72..0000000000
--- a/patches/api/0413-Add-Player-sendEquipmentChange-Map-API.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Aya <[email protected]>
-Date: Fri, 20 Jan 2023 13:49:35 +0000
-Subject: [PATCH] Add Player#sendEquipmentChange(Map) API
-
-
-diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index b06f759b6188d87cf406072b6d7ef8266512ce50..1604351236f748b5009eed29f6051e68092d6090 100644
---- a/src/main/java/org/bukkit/entity/Player.java
-+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -691,7 +691,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
- * @param slot The slot of the spoofed equipment change
- * @param item The ItemStack to display for the player
- */
-- public void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull EquipmentSlot slot, @NotNull ItemStack item);
-+ // Paper start
-+ default void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull EquipmentSlot slot, @NotNull ItemStack item) {
-+ this.sendEquipmentChange(entity, java.util.Map.of(slot, item));
-+ };
-+
-+ /**
-+ * Send an equipment change for an entity. This fakes the equipment change
-+ * of an entity for a user. This will not actually change the inventory of
-+ * the specified entity in any way.
-+ *
-+ * @param entity The entity that the player will see the change for
-+ * @param equipmentChanges A map of slots to the items they will be changed to, cannot contain null values.
-+ */
-+ void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull java.util.Map<EquipmentSlot, ItemStack> equipmentChanges);
-+ // Paper end
-
- // Paper start
- /**
diff --git a/patches/api/0414-Win-Screen-API.patch b/patches/api/0413-Win-Screen-API.patch
index ba18c74e5a..75167568ff 100644
--- a/patches/api/0414-Win-Screen-API.patch
+++ b/patches/api/0413-Win-Screen-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Win Screen API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 1604351236f748b5009eed29f6051e68092d6090..d7d94b954262da0cbe11850cbc3ebd45e32c8c76 100644
+index 43c9cfef868b2e68e2c5741c095cc214d2095b70..49a797325be9a9e7174610dccba12b0a19cf6723 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
-@@ -861,6 +861,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+@@ -854,6 +854,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public void sendMap(@NotNull MapView map);
diff --git a/patches/api/0415-Add-Entity-Body-Yaw-API.patch b/patches/api/0414-Add-Entity-Body-Yaw-API.patch
index ffe913f4aa..ffe913f4aa 100644
--- a/patches/api/0415-Add-Entity-Body-Yaw-API.patch
+++ b/patches/api/0414-Add-Entity-Body-Yaw-API.patch
diff --git a/patches/api/0416-Add-missing-isFuel-Material-entries.patch b/patches/api/0415-Add-missing-isFuel-Material-entries.patch
index e240cc62ea..e240cc62ea 100644
--- a/patches/api/0416-Add-missing-isFuel-Material-entries.patch
+++ b/patches/api/0415-Add-missing-isFuel-Material-entries.patch
diff --git a/patches/api/0417-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0416-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
index 98799cd97d..98799cd97d 100644
--- a/patches/api/0417-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
+++ b/patches/api/0416-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
diff --git a/patches/api/0418-Add-EntityFertilizeEggEvent.patch b/patches/api/0417-Add-EntityFertilizeEggEvent.patch
index f9604adba0..f9604adba0 100644
--- a/patches/api/0418-Add-EntityFertilizeEggEvent.patch
+++ b/patches/api/0417-Add-EntityFertilizeEggEvent.patch
diff --git a/patches/api/0419-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0418-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
index f720032bf2..f720032bf2 100644
--- a/patches/api/0419-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
+++ b/patches/api/0418-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch
index a969954713..de7d3b2aa3 100644
--- a/patches/server/0001-Setup-Gradle-project.patch
+++ b/patches/server/0001-Setup-Gradle-project.patch
@@ -28,7 +28,7 @@ index 3df8c60ab5cd1454660980883f80668d535b742b..37c3a00659ce21623be07317f4f6a45b
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
-index 0000000000000000000000000000000000000000..43bf332213712237e0695e1f9a71267377dbdd22
+index 0000000000000000000000000000000000000000..c9950851db38df64fd82a3a549072d240e37d64d
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,137 @@
@@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..43bf332213712237e0695e1f9a712673
+ implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") {
+ exclude(group = "org.apache.logging.log4j", module = "log4j-api")
+ }
-+ implementation("org.ow2.asm:asm:9.3")
++ implementation("org.ow2.asm:asm:9.4")
+ implementation("commons-lang:commons-lang:2.6")
+ runtimeOnly("org.xerial:sqlite-jdbc:3.36.0.3")
+ runtimeOnly("mysql:mysql-connector-java:8.0.29")
@@ -171,10 +171,10 @@ index 0000000000000000000000000000000000000000..43bf332213712237e0695e1f9a712673
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
-index 30e4978569bcda9e38a326b8fcd9953e1e319c21..0000000000000000000000000000000000000000
+index 1f24a779e3dd95a796f7eae2b2097b5aabc4fdb8..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
-@@ -1,629 +0,0 @@
+@@ -1,617 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
@@ -238,7 +238,7 @@ index 30e4978569bcda9e38a326b8fcd9953e1e319c21..00000000000000000000000000000000
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm</artifactId>
-- <version>9.3</version>
+- <version>9.4</version>
- <scope>compile</scope>
- </dependency>
- <!-- Mojang depends -->
@@ -559,19 +559,7 @@ index 30e4978569bcda9e38a326b8fcd9953e1e319c21..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
-- <version>3.2.4</version>
-- <dependencies>
-- <dependency>
-- <groupId>org.ow2.asm</groupId>
-- <artifactId>asm</artifactId>
-- <version>9.3</version>
-- </dependency>
-- <dependency>
-- <groupId>org.ow2.asm</groupId>
-- <artifactId>asm-commons</artifactId>
-- <version>9.3</version>
-- </dependency>
-- </dependencies>
+- <version>3.4.1</version>
- <executions>
- <execution>
- <phase>package</phase>
diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch
index 84e51e0fe4..8670553269 100644
--- a/patches/server/0003-Build-system-changes.patch
+++ b/patches/server/0003-Build-system-changes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Build system changes
diff --git a/build.gradle.kts b/build.gradle.kts
-index 43bf332213712237e0695e1f9a71267377dbdd22..74ca0d83f207da2e18634e85a6947abc414fc74f 100644
+index c9950851db38df64fd82a3a549072d240e37d64d..ce176ef04e211b82020fa082b9cb1bdc4769a526 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,10 +9,9 @@ plugins {
@@ -16,8 +16,8 @@ index 43bf332213712237e0695e1f9a71267377dbdd22..74ca0d83f207da2e18634e85a6947abc
- exclude(group = "org.apache.logging.log4j", module = "log4j-api")
- }
+ implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
- implementation("org.ow2.asm:asm:9.3")
-+ implementation("org.ow2.asm:asm-commons:9.3") // Paper - ASM event executor generation
+ implementation("org.ow2.asm:asm:9.4")
++ implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation
implementation("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.36.0.3")
runtimeOnly("mysql:mysql-connector-java:8.0.29")
@@ -67,7 +67,7 @@ index 43bf332213712237e0695e1f9a71267377dbdd22..74ca0d83f207da2e18634e85a6947abc
exclude("org/bukkit/craftbukkit/inventory/ItemStack*Test.class")
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 19c669347c5f3a70e7f378c836798e6787094e26..8842ac222e0dea1afb7ba4584512147bb53ccb56 100644
+index 2e216027fc38fabf3e3e49dbc310ecb648ab63d6..2ae4dbd8cc49efb93ecceeb9a7a08e1a8af1d84a 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -192,7 +192,7 @@ public class Main {
@@ -78,7 +78,7 @@ index 19c669347c5f3a70e7f378c836798e6787094e26..8842ac222e0dea1afb7ba4584512147b
+ Date buildDate = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").parse(Main.class.getPackage().getImplementationVendor()); // Paper
Calendar deadline = Calendar.getInstance();
- deadline.add(Calendar.DAY_OF_YEAR, -14);
+ deadline.add(Calendar.DAY_OF_YEAR, -28);
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 93046379d0cefd5d3236fc59e698809acdc18f80..774556a62eb240da42e84db4502e2ed43495be17 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch
index a13d84f5c7..78b6cf28a0 100644
--- a/patches/server/0004-Test-changes.patch
+++ b/patches/server/0004-Test-changes.patch
@@ -5,13 +5,13 @@ Subject: [PATCH] Test changes
diff --git a/build.gradle.kts b/build.gradle.kts
-index 74ca0d83f207da2e18634e85a6947abc414fc74f..66c49e3d29fa18845d0deb43c91fa45f236d60c5 100644
+index ce176ef04e211b82020fa082b9cb1bdc4769a526..15456e54d8a392e702a30dfb3d06a3f74156dce7 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -12,6 +12,7 @@ dependencies {
implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
- implementation("org.ow2.asm:asm:9.3")
- implementation("org.ow2.asm:asm-commons:9.3") // Paper - ASM event executor generation
+ implementation("org.ow2.asm:asm:9.4")
+ implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation
+ testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito
implementation("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.36.0.3")
diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch
index 7fc809342d..7925568dde 100644
--- a/patches/server/0005-Paper-config-files.patch
+++ b/patches/server/0005-Paper-config-files.patch
@@ -14,12 +14,12 @@ public org.spigotmc.SpigotWorldConfig getString(Ljava/lang/String;Ljava/lang/Str
public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES
diff --git a/build.gradle.kts b/build.gradle.kts
-index 66c49e3d29fa18845d0deb43c91fa45f236d60c5..1ad9c90511bf0ec7a2e966cb4177ed26bd094a44 100644
+index 15456e54d8a392e702a30dfb3d06a3f74156dce7..4294f230f91f03db2181d355d3be84bf032eeffb 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -13,6 +13,7 @@ dependencies {
- implementation("org.ow2.asm:asm:9.3")
- implementation("org.ow2.asm:asm-commons:9.3") // Paper - ASM event executor generation
+ implementation("org.ow2.asm:asm:9.4")
+ implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation
testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito
+ implementation("org.spongepowered:configurate-yaml:4.1.2") // Paper - config files
implementation("commons-lang:commons-lang:2.6")
@@ -4576,7 +4576,7 @@ index 9afc0881f6891ef2696b6f2b37c0826f3beb0666..8873bf84c71c48297a360df9c99e511f
world.serverLevelData.setDifficulty(config.difficulty);
world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals);
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 8842ac222e0dea1afb7ba4584512147bb53ccb56..7e9381fcdaafb15b22d9f79592422b165b3e2523 100644
+index 2ae4dbd8cc49efb93ecceeb9a7a08e1a8af1d84a..fd213200dcc5fe08f4b28e94ce2a0cf5b3c7ad5b 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -131,6 +131,19 @@ public class Main {
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index 6eaab053de..d7a0e0b84b 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -2073,7 +2073,7 @@ index 0f7dd33d51281b383be0fb47d4e6b133f123ce1f..011c3d2dbd34dd0c2afba477202c937c
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 56016d59d66d90de2ac4326c16b09f86e4ac390b..722422c214ae346b5b6d29b5b99553eae5c64b5b 100644
+index 39f60f3878b57feeb6c2645a8ed4432fb53a0269..650d28ce34239d3ae9caa3852e1bac518790fd83 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -156,6 +156,7 @@ import net.minecraft.world.scores.Score;
@@ -2178,7 +2178,7 @@ index 56016d59d66d90de2ac4326c16b09f86e4ac390b..722422c214ae346b5b6d29b5b99553ea
// CraftBukkit end
this.chatVisibility = packet.chatVisibility();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 478d40c7cc0374cddb76486b6bd148a846a16813..6878af0ad58c40f54a216c12b28b990424ecd414 100644
+index 1cf586f485fcfb4e10bc239200367177b5f0da94..e5407a092c602cfec4bcc80198d2a9f3f5d3680b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -185,6 +185,8 @@ import net.minecraft.world.phys.shapes.VoxelShape;
@@ -2305,20 +2305,7 @@ index 478d40c7cc0374cddb76486b6bd148a846a16813..6878af0ad58c40f54a216c12b28b9904
} else {
this.chat(s, message, true);
}
-@@ -2357,6 +2369,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
- }
-
- public void sendPlayerChatMessage(PlayerChatMessage message, ChatType.Bound params) {
-+ // Paper start
-+ if (!this.getCraftPlayer().canSee(message.link().sender())) {
-+ this.sendDisguisedChatMessage(message.decoratedContent(), params);
-+ return;
-+ }
-+ // Paper end
- this.send(new ClientboundPlayerChatPacket(message.link().sender(), message.link().index(), message.signature(), message.signedBody().pack(this.messageSignatureCache), message.unsignedContent(), message.filterMask(), params.toNetwork(this.player.level.registryAccess())));
- this.addPendingMessage(message);
- }
-@@ -2980,30 +2998,30 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2986,30 +2998,30 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return;
}
@@ -2852,7 +2839,7 @@ index 57ed87689c7cb709d54e611bfbdbb70890021df2..fd1da8431578832bcd1f3ca7890dd215
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 7e9381fcdaafb15b22d9f79592422b165b3e2523..5448d2a6fe8cace246b81742da19666ec24ca48c 100644
+index fd213200dcc5fe08f4b28e94ce2a0cf5b3c7ad5b..481c1f853bbe81da123cfb3f79ed4509cf127db8 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -19,6 +19,12 @@ public class Main {
@@ -3334,7 +3321,7 @@ index 446fdca49a5a6999626a7ee3a1d5c168b15a09dd..f9863e138994f6c7a7975a852f106faa
public boolean isOp() {
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 87c9e95a184e316d1273debc9fc5f3ff6a5aa91f..8a78d0bde6f833b745c8a125bc251eb13ab2bb50 100644
+index 2864661527c55752bb43de3430ca29151a7502ab..ec27b75c4cf292ffc95ebad63617ffab48a10a16 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -277,14 +277,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3507,20 +3494,7 @@ index 87c9e95a184e316d1273debc9fc5f3ff6a5aa91f..8a78d0bde6f833b745c8a125bc251eb1
}
@Override
-@@ -1351,6 +1423,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- return !this.hiddenEntities.containsKey(entity.getUniqueId());
- }
-
-+ // Paper start
-+ public boolean canSee(UUID entityUUID) {
-+ return !this.hiddenEntities.containsKey(entityUUID);
-+ }
-+ // Paper end
-+
- @Override
- public Map<String, Object> serialize() {
- Map<String, Object> result = new LinkedHashMap<String, Object>();
-@@ -1488,7 +1566,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1502,7 +1574,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url) {
@@ -3529,7 +3503,7 @@ index 87c9e95a184e316d1273debc9fc5f3ff6a5aa91f..8a78d0bde6f833b745c8a125bc251eb1
}
@Override
-@@ -1503,7 +1581,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1517,7 +1589,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url, byte[] hash, boolean force) {
@@ -3538,7 +3512,7 @@ index 87c9e95a184e316d1273debc9fc5f3ff6a5aa91f..8a78d0bde6f833b745c8a125bc251eb1
}
@Override
-@@ -1519,6 +1597,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1533,6 +1605,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@@ -3560,7 +3534,7 @@ index 87c9e95a184e316d1273debc9fc5f3ff6a5aa91f..8a78d0bde6f833b745c8a125bc251eb1
public void addChannel(String channel) {
Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel);
channel = StandardMessenger.validateAndCorrectChannel(channel);
-@@ -1923,6 +2016,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1937,6 +2024,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().clientViewDistance == null) ? Bukkit.getViewDistance() : this.getHandle().clientViewDistance;
}
@@ -3573,7 +3547,7 @@ index 87c9e95a184e316d1273debc9fc5f3ff6a5aa91f..8a78d0bde6f833b745c8a125bc251eb1
@Override
public int getPing() {
return this.getHandle().latency;
-@@ -1968,6 +2067,254 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1982,6 +2075,254 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().allowsListing();
}
@@ -4599,7 +4573,7 @@ index 78ea79b66cc9e90402ef5cdc2e5e04e0c74b1c26..4fede2161792ba3e7cdf0cc5a1f53318
boolean hadFormat = false;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index b39ded554ee86bf840ce04eba58ac19d40226c9f..750f4b3930278c291f10015c7a8a8df57d04a286 100644
+index 21ca79fa628d9cc970942bcd5368d971d800753a..0bf46f90333d79e2cada286b493c5fc2b6903970 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -72,6 +72,43 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/server/0013-Paper-Plugins.patch
index 362e6d903d..f3d1374d6e 100644
--- a/patches/server/0013-Paper-Plugins.patch
+++ b/patches/server/0013-Paper-Plugins.patch
@@ -6633,10 +6633,10 @@ index 909b2c98e7a9117d2f737245e4661792ffafb744..d96399e9bf1a58db5a4a22e58abb99e7
@Override
public FileConfiguration getConfig() {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 750f4b3930278c291f10015c7a8a8df57d04a286..3d2303dbd06a12968302cb100e36be9de28700f0 100644
+index 0bf46f90333d79e2cada286b493c5fc2b6903970..59f0c09f657416c723fa69b71bd31e0e5922c073 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -436,6 +436,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -437,6 +437,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack);
return nmsItemStack.getItem().getDescriptionId(nmsItemStack);
}
diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch
index 46b5e45db4..a1210bcddf 100644
--- a/patches/server/0014-Timings-v2.patch
+++ b/patches/server/0014-Timings-v2.patch
@@ -1262,7 +1262,7 @@ index 8784b0702f10eb7582c309c15f18fe13eebd9c8e..6f81aa6b0a835bf10e0d5f2b32fe9fb2
this.entityManager.saveAll();
} else {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 032a21ffd22630c0d4d0456ac651b05105449350..fdb7314784a2232a96a9ccdb049bd240e1cc9b06 100644
+index 2f7e63a1206f954aac9ded087eeda3d566443189..c47ae6b97e0bb6a52430c01f0b989bf9f81744a9 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -335,7 +335,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1825,10 +1825,10 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8a78d0bde6f833b745c8a125bc251eb13ab2bb50..b09d8420ffe3c7e2ba173ee98643bc17909db563 100644
+index ec27b75c4cf292ffc95ebad63617ffab48a10a16..ef1a0db17276178717b83a6d081a9e111d34e4e5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2401,6 +2401,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2409,6 +2409,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
CraftPlayer.this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(components, position == net.md_5.bungee.api.ChatMessageType.ACTION_BAR));
}
@@ -2021,7 +2021,7 @@ index e52ef47b783785dc214746b678e7b549aea9a274..3d90b3426873a3528af14f7f1ab0adae
this.value = value;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 3d2303dbd06a12968302cb100e36be9de28700f0..8324787573510df3e23e6833f06aa1618336b7bb 100644
+index 59f0c09f657416c723fa69b71bd31e0e5922c073..d22210c6aaeed8ac6df296f47a699f2e5b67abf4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -222,6 +222,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -2037,7 +2037,7 @@ index 3d2303dbd06a12968302cb100e36be9de28700f0..8324787573510df3e23e6833f06aa161
public static byte toLegacyData(BlockState data) {
return CraftLegacy.toLegacyData(data);
-@@ -443,6 +449,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -444,6 +450,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
}
// Paper end
diff --git a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
index 83f31264af..ab778676bc 100644
--- a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
+++ b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
@@ -32,11 +32,11 @@ index d82e0dd38ef2b32d82e906d5bc71b46052eb0625..e5aa25abee4d4c5447920e64ad45acf9
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index a51581263f1c9d72aab7c9223a816d034630f702..d453c630da1780a7aeab80cf95adcee62f4e8a14 100644
+index 985aae207e23584519b4c096f2aaaf0e80b6c163..49f6d20706e8fb94c41834f5addcd015d18acd7e 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -223,12 +223,25 @@ public class Main {
- deadline.add(Calendar.DAY_OF_YEAR, -14);
+ deadline.add(Calendar.DAY_OF_YEAR, -28);
if (buildDate.before(deadline.getTime())) {
System.err.println("*** Error, this build is outdated ***");
- System.err.println("*** Please download a new build as per instructions from https://www.spigotmc.org/go/outdated-spigot ***");
diff --git a/patches/server/0028-Implement-Paper-VersionChecker.patch b/patches/server/0028-Implement-Paper-VersionChecker.patch
index 701eb0a55b..4f3c7316ef 100644
--- a/patches/server/0028-Implement-Paper-VersionChecker.patch
+++ b/patches/server/0028-Implement-Paper-VersionChecker.patch
@@ -140,10 +140,10 @@ index 0000000000000000000000000000000000000000..351159bbdb0c8045f4983f54dee34430
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 8324787573510df3e23e6833f06aa1618336b7bb..0ee761fa0d42fd90e82f3284ee756ddd60c6178d 100644
+index d22210c6aaeed8ac6df296f47a699f2e5b67abf4..289276ae40409868c6293c5ab3bafe54c2ccf15c 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -454,6 +454,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -455,6 +455,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
public String getTimingsServerName() {
return io.papermc.paper.configuration.GlobalConfiguration.get().timings.serverName;
}
diff --git a/patches/server/0030-Player-affects-spawning-API.patch b/patches/server/0030-Player-affects-spawning-API.patch
index da16ad1762..32fec191c1 100644
--- a/patches/server/0030-Player-affects-spawning-API.patch
+++ b/patches/server/0030-Player-affects-spawning-API.patch
@@ -137,10 +137,10 @@ index be6e3e21ad62da01e5e2dd78e300cbc8efdbeb42..ea98625fe7c00743b8df74a24e6d4b75
for(Player player : this.players()) {
if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 9a6c9c42b162315115781246cdf91af816d93293..69e197c78b4e6265f61f42232ac2d06687b6ca5e 100644
+index 92e5b781049122e3de3784ec4197557f2730b3b3..eecfbd4e835bfc3d98194365e360a827fb02bb38 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2105,8 +2105,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2113,8 +2113,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {
return this.getHandle().locale;
diff --git a/patches/server/0032-Only-refresh-abilities-if-needed.patch b/patches/server/0032-Only-refresh-abilities-if-needed.patch
index ab9f46dccf..2708f1d2af 100644
--- a/patches/server/0032-Only-refresh-abilities-if-needed.patch
+++ b/patches/server/0032-Only-refresh-abilities-if-needed.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Only refresh abilities if needed
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 69e197c78b4e6265f61f42232ac2d06687b6ca5e..a6b1cd3361018ce3c7e0760a101184e2d15b69bb 100644
+index eecfbd4e835bfc3d98194365e360a827fb02bb38..27f4387a3ac750114c99e41e855c8fb8081a507d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1774,12 +1774,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1782,12 +1782,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setFlying(boolean value) {
diff --git a/patches/server/0040-Optimize-explosions.patch b/patches/server/0040-Optimize-explosions.patch
index 3c4dbcae07..7927aa4c7c 100644
--- a/patches/server/0040-Optimize-explosions.patch
+++ b/patches/server/0040-Optimize-explosions.patch
@@ -22,7 +22,7 @@ index ac81428f19e2d445f315000d34173c2d650a9aeb..28d58f402f15ee37cc1bfa3114839db2
this.profiler.popPush("connection");
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index 735442e98fc9f5a182ff15a526d9601162c9418d..c834b4a7f5fb4eded402df116f14d4c14704d95c 100644
+index c5544f952be057bae9407725d885798f461081ea..b71cd16a63889d8a286b642158f9ab45af89b7c4 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -221,7 +221,7 @@ public class Explosion {
@@ -34,7 +34,7 @@ index 735442e98fc9f5a182ff15a526d9601162c9418d..c834b4a7f5fb4eded402df116f14d4c1
double d13 = (1.0D - d7) * d12;
// CraftBukkit start
-@@ -491,4 +491,84 @@ public class Explosion {
+@@ -494,4 +494,84 @@ public class Explosion {
private BlockInteraction() {}
}
diff --git a/patches/server/0041-Disable-explosion-knockback.patch b/patches/server/0041-Disable-explosion-knockback.patch
index 4831565dcc..3c85d2dc89 100644
--- a/patches/server/0041-Disable-explosion-knockback.patch
+++ b/patches/server/0041-Disable-explosion-knockback.patch
@@ -33,10 +33,10 @@ index c6ce813f7ea6c4dcbd45e9d8c55f56c29dc3ea53..7e4f95e04a880ecb459228c90be462cb
if (!this.checkTotemDeathProtection(source)) {
SoundEvent soundeffect = this.getDeathSound();
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index c834b4a7f5fb4eded402df116f14d4c14704d95c..c4f1b98de5b7db95ca886c0f8b7b893428e1b460 100644
+index b71cd16a63889d8a286b642158f9ab45af89b7c4..a9f45dbc2997c4deeba932d04a52e21f4dbfea95 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
-@@ -257,14 +257,14 @@ public class Explosion {
+@@ -260,14 +260,14 @@ public class Explosion {
double d14 = d13;
if (entity instanceof LivingEntity) {
diff --git a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
index d41f976a1e..b03de0c378 100644
--- a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
+++ b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
@@ -30,10 +30,10 @@ index d7b581a34d95b038e548a7380ce00ebba9835606..a95e2e05db626edbedaa604f059e19a5
this.locale = packet.language;
// Paper start
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a6b1cd3361018ce3c7e0760a101184e2d15b69bb..63e01d1380135072735444724a9b060be364cec4 100644
+index 27f4387a3ac750114c99e41e855c8fb8081a507d..31172053e26a8df53d0987e816b3e03a560332e6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2105,8 +2105,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2113,8 +2113,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {
diff --git a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
index 62705fa37c..e711fe672c 100644
--- a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
+++ b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
@@ -16,10 +16,10 @@ The wanted destination was on top of the emerald block however the player ended
This only is the case if the player is teleporting between worlds.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8db291b3dceaa49f095cf7486e4b7f69209548b4..f552e14a3164c8b877c5017911eada24ed067e9c 100644
+index 0a92f895922f5eacb87fc6cf4cd9e3783703cdf9..8b97cf87bff848b60f506ae0cde14e369e4afca8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1145,7 +1145,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1155,7 +1155,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (fromWorld == toWorld) {
entity.connection.teleport(to);
} else {
diff --git a/patches/server/0065-Complete-resource-pack-API.patch b/patches/server/0065-Complete-resource-pack-API.patch
index 9e136e551d..28d589c62f 100644
--- a/patches/server/0065-Complete-resource-pack-API.patch
+++ b/patches/server/0065-Complete-resource-pack-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f9f18e263d29421bdc83993a6fd55f47cb7ab926..f49a8a0f56bc3dd9e8a33cfefefed414e56153fd 100644
+index 706e777cad3e5d56896b05740d42216aa2660f0b..38aad9faade27d1362711915cd4ccabedd8521e2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1764,8 +1764,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -23,7 +23,7 @@ index f9f18e263d29421bdc83993a6fd55f47cb7ab926..f49a8a0f56bc3dd9e8a33cfefefed414
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f552e14a3164c8b877c5017911eada24ed067e9c..e4cbd5bee86f7ad26eb78b3c1d279a65b896fb77 100644
+index 8b97cf87bff848b60f506ae0cde14e369e4afca8..673e4dc85e5c3ae43170564108f6b74187720d07 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -152,6 +152,7 @@ import org.bukkit.plugin.Plugin;
@@ -45,7 +45,7 @@ index f552e14a3164c8b877c5017911eada24ed067e9c..e4cbd5bee86f7ad26eb78b3c1d279a65
public CraftPlayer(CraftServer server, ServerPlayer entity) {
super(server, entity);
-@@ -2228,6 +2233,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2236,6 +2241,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean getAffectsSpawning() {
return this.getHandle().affectsSpawning;
}
diff --git a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index e01a3e800a..fbca2d3be2 100644
--- a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -44,10 +44,10 @@ index 29495ff2d2c31f6b6ef6e2817662d143e538f926..b2871726eb4dd7f16d161097cbf0f287
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index e4cbd5bee86f7ad26eb78b3c1d279a65b896fb77..2338f20c1af3b93cb6dd1a3c518499e6dd2130c3 100644
+index 673e4dc85e5c3ae43170564108f6b74187720d07..b08b72f8c029faae9b9d425e8ce77a1ff23addd7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2033,6 +2033,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2041,6 +2041,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setRealHealth(double health) {
diff --git a/patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch
index 4e6e2ebfa3..44ff255f6b 100644
--- a/patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -19,7 +19,7 @@ Other changes:
configuration
diff --git a/build.gradle.kts b/build.gradle.kts
-index 1ad9c90511bf0ec7a2e966cb4177ed26bd094a44..f17f91e50f49b1d45b1bab469f2cf8ac3b9db042 100644
+index 4294f230f91f03db2181d355d3be84bf032eeffb..26987f66704ae01dc25edc52734c95b9b73f4b57 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,7 +8,17 @@ plugins {
@@ -39,8 +39,8 @@ index 1ad9c90511bf0ec7a2e966cb4177ed26bd094a44..f17f91e50f49b1d45b1bab469f2cf8ac
+ runtimeOnly("org.apache.logging.log4j:log4j-core:2.14.1")
+ // Paper end
implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
- implementation("org.ow2.asm:asm:9.3")
- implementation("org.ow2.asm:asm-commons:9.3") // Paper - ASM event executor generation
+ implementation("org.ow2.asm:asm:9.4")
+ implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation
diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4070b59e261f0f1ac4beec47b11492f4724bf27
@@ -262,7 +262,7 @@ index 50218a10a86926fb050b7e9ef3b17ba17fec59f7..5f6ddee55b2289d80c55015f44c431b7
@Override
public PluginCommand getPluginCommand(String name) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 47c97c16eb23cdd485858c39c571a7ef5ac6d594..7004baa10a6df287239db868dce64d054105040c 100644
+index ef46dc1ed538b783213651f624326b2d49c786e0..d50be10ddc8c215374c97662f839a9710fc863b4 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -12,7 +12,7 @@ import java.util.logging.Level;
diff --git a/patches/server/0152-Fix-this-stupid-bullshit.patch b/patches/server/0152-Fix-this-stupid-bullshit.patch
index c198fc05b3..0e38e136bf 100644
--- a/patches/server/0152-Fix-this-stupid-bullshit.patch
+++ b/patches/server/0152-Fix-this-stupid-bullshit.patch
@@ -31,12 +31,12 @@ index e43096e69a00f9ea96badd7c966443cfcf3e7b95..ac2b7b5161eaaca3620268ae865d6f2a
Bootstrap.isBootstrapped = true;
if (BuiltInRegistries.REGISTRY.keySet().isEmpty()) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 7004baa10a6df287239db868dce64d054105040c..127b05c44aa1e20ce097f1c1fe6b6ca2b32226c0 100644
+index d50be10ddc8c215374c97662f839a9710fc863b4..c9c0c17651b05094f96840b4fc0fd60825eef146 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -241,10 +241,12 @@ public class Main {
Calendar deadline = Calendar.getInstance();
- deadline.add(Calendar.DAY_OF_YEAR, -14);
+ deadline.add(Calendar.DAY_OF_YEAR, -28);
if (buildDate.before(deadline.getTime())) {
- System.err.println("*** Error, this build is outdated ***");
+ // Paper start - This is some stupid bullshit
diff --git a/patches/server/0157-Handle-plugin-prefixes-using-Log4J-configuration.patch b/patches/server/0157-Handle-plugin-prefixes-using-Log4J-configuration.patch
index 84398986d6..2738068841 100644
--- a/patches/server/0157-Handle-plugin-prefixes-using-Log4J-configuration.patch
+++ b/patches/server/0157-Handle-plugin-prefixes-using-Log4J-configuration.patch
@@ -15,7 +15,7 @@ This may cause additional prefixes to be disabled for plugins bypassing
the plugin logger.
diff --git a/build.gradle.kts b/build.gradle.kts
-index f17f91e50f49b1d45b1bab469f2cf8ac3b9db042..ecce63a519c9603c2cff47c4affbd481ccdd07e7 100644
+index 26987f66704ae01dc25edc52734c95b9b73f4b57..c909ad3e263cdce6766dcc2ac64412effaa9a784 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -17,7 +17,7 @@ dependencies {
@@ -26,7 +26,7 @@ index f17f91e50f49b1d45b1bab469f2cf8ac3b9db042..ecce63a519c9603c2cff47c4affbd481
+ implementation("org.apache.logging.log4j:log4j-core:2.14.1") // Paper - implementation
// Paper end
implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
- implementation("org.ow2.asm:asm:9.3")
+ implementation("org.ow2.asm:asm:9.4")
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index 0a0aa6de31a94a701074cc5f43c94be7515a185c..489ce6f439778b26eb33ede9432681d4bf9e0116 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java
diff --git a/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch
index 89bd767245..0fddb45cac 100644
--- a/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch
@@ -14,10 +14,10 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I
public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index dfabf22bb14bbbd6b2d2b9beafa3815303f32f7f..d7d47a3dce2c15d39531344a9eaac3990dc1dfc2 100644
+index dfc5a445744520388bd09cf4a68a232885c6e2c9..43fed86150b15294ed4aeb1a6139891456754c97 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1460,7 +1460,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1470,7 +1470,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
@Override
diff --git a/patches/server/0184-Player.setPlayerProfile-API.patch b/patches/server/0184-Player.setPlayerProfile-API.patch
index 7211262325..cc79f13f6b 100644
--- a/patches/server/0184-Player.setPlayerProfile-API.patch
+++ b/patches/server/0184-Player.setPlayerProfile-API.patch
@@ -42,7 +42,7 @@ index e7442952ef1f03969949014492a7ddc6d0796ba5..69a1852905dd4724c30ac8ab88c14251
public Server getServer() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d7d47a3dce2c15d39531344a9eaac3990dc1dfc2..5843e7a364a2fc190adc522c6a99f27094ac1337 100644
+index 43fed86150b15294ed4aeb1a6139891456754c97..8e36073d0519f341c3356cb460b26d1221d3b187 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -81,6 +81,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
@@ -65,7 +65,7 @@ index d7d47a3dce2c15d39531344a9eaac3990dc1dfc2..5843e7a364a2fc190adc522c6a99f270
@Override
public InetSocketAddress getAddress() {
if (this.getHandle().connection == null) return null;
-@@ -1593,8 +1589,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1603,8 +1599,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.hiddenEntities.put(entity.getUniqueId(), hidingPlugins);
// Remove this entity from the hidden player's EntityTrackerEntry
@@ -82,7 +82,7 @@ index d7d47a3dce2c15d39531344a9eaac3990dc1dfc2..5843e7a364a2fc190adc522c6a99f270
ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId());
if (entry != null) {
entry.removePlayer(this.getHandle());
-@@ -1607,8 +1610,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1617,8 +1620,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(new ClientboundPlayerInfoRemovePacket(List.of(otherPlayer.getUUID())));
}
}
@@ -91,7 +91,7 @@ index d7d47a3dce2c15d39531344a9eaac3990dc1dfc2..5843e7a364a2fc190adc522c6a99f270
}
@Override
-@@ -1645,8 +1646,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1655,8 +1656,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
this.hiddenEntities.remove(entity.getUniqueId());
@@ -108,7 +108,7 @@ index d7d47a3dce2c15d39531344a9eaac3990dc1dfc2..5843e7a364a2fc190adc522c6a99f270
if (other instanceof ServerPlayer) {
ServerPlayer otherPlayer = (ServerPlayer) other;
-@@ -1657,10 +1665,63 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1667,10 +1675,63 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (entry != null && !entry.seenBy.contains(this.getHandle().connection)) {
entry.updatePlayer(this.getHandle());
}
diff --git a/patches/server/0189-Flag-to-disable-the-channel-limit.patch b/patches/server/0189-Flag-to-disable-the-channel-limit.patch
index ed477cb37a..926ebc84aa 100644
--- a/patches/server/0189-Flag-to-disable-the-channel-limit.patch
+++ b/patches/server/0189-Flag-to-disable-the-channel-limit.patch
@@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs.
provide an optional flag to disable this check, at your own risk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5843e7a364a2fc190adc522c6a99f27094ac1337..569ea39bfc3d3eb39e0a69655f91eda09b36b09d 100644
+index 8e36073d0519f341c3356cb460b26d1221d3b187..1d217d3795abe2e0e0d40746a523f78c84127ea4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -175,6 +175,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -20,7 +20,7 @@ index 5843e7a364a2fc190adc522c6a99f27094ac1337..569ea39bfc3d3eb39e0a69655f91eda0
// Paper end
public CraftPlayer(CraftServer server, ServerPlayer entity) {
-@@ -1926,7 +1927,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1934,7 +1935,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
public void addChannel(String channel) {
diff --git a/patches/server/0218-InventoryCloseEvent-Reason-API.patch b/patches/server/0218-InventoryCloseEvent-Reason-API.patch
index 95664847f0..0070bf4011 100644
--- a/patches/server/0218-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0218-InventoryCloseEvent-Reason-API.patch
@@ -75,7 +75,7 @@ index 673252f54103a7ab34650db85d6200953755c745..ab71db25415e87e2ebd299e4d491be5e
this.doCloseContainer();
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b11f6e5c55e4eeeac82b1567a27b013867a570e3..0a4c9fa74b294e9aa15658b7e6a36603f3c55516 100644
+index 180e9073db54c15585d204c39cb3ba93fd108ab8..2b98424cdb8a5cacd51ba3902360b80aac712e4d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -217,6 +217,7 @@ import org.bukkit.event.inventory.ClickType;
@@ -173,10 +173,10 @@ index 787ccb37a39bb506cf9fd8d54cf772b346981f85..f5b3190ffb9e9f92977afc9e40ddfa15
@Override
public boolean isBlocking() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 38abee17ad6db9f593cca06efb1d14049b3307e6..6bec3eb7180ef24c5c1480acd35ca43fdd4e6c3e 100644
+index 18b57fef0a5b48a8f88e8e05282171f3666a6d72..df53b772db2394c8927eac39ad62c51a06704965 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1174,7 +1174,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1184,7 +1184,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Close any foreign inventory
if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) {
diff --git a/patches/server/0254-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0254-Expose-attack-cooldown-methods-for-Player.patch
index aab55eee84..dcb8c2ce3c 100644
--- a/patches/server/0254-Expose-attack-cooldown-methods-for-Player.patch
+++ b/patches/server/0254-Expose-attack-cooldown-methods-for-Player.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5fb1e25722bd08da00f9bd970e7c176329df6e05..0d955b34bb61beeddf08941e92081ac89e8f46c6 100644
+index d9a5a6719be998b9e40ab76519e4f207ee5c6bf9..c75fb5c096da9a20298ad857352298dbd5b5ef3f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2683,6 +2683,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2691,6 +2691,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.adventure$pointers;
}
diff --git a/patches/server/0255-Improve-death-events.patch b/patches/server/0255-Improve-death-events.patch
index ef7f3ce738..965cbff328 100644
--- a/patches/server/0255-Improve-death-events.patch
+++ b/patches/server/0255-Improve-death-events.patch
@@ -19,7 +19,7 @@ public net.minecraft.world.entity.LivingEntity getDeathSound()Lnet/minecraft/sou
public net.minecraft.world.entity.LivingEntity getSoundVolume()F
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index d815679423557606ae653073ce6f9740a766fa03..b847973ef8b1293a821cffd723cec0c9aff248ad 100644
+index 20c4ba5d00f5a40f5c7da282c9c069b365273041..4c8b1d30b82fd7a87f79983577695c680013d3f4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -235,6 +235,10 @@ public class ServerPlayer extends Player {
@@ -347,10 +347,10 @@ index f70f75867a8f03d42f240a0d007d2221269f2fdb..4edd48ce10caf31ac0136af35f19836b
this.gameEvent(GameEvent.ENTITY_DIE);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0d955b34bb61beeddf08941e92081ac89e8f46c6..aec0434f1885ba465fd7874e693b16fdf60a7f59 100644
+index c75fb5c096da9a20298ad857352298dbd5b5ef3f..088a95b0f1574f293fe535b763c3768dbf95c9cc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2186,7 +2186,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2194,7 +2194,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void sendHealthUpdate() {
diff --git a/patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
index d9be16fd24..c871008098 100644
--- a/patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
+++ b/patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
@@ -16,7 +16,7 @@ intent to remove) and replace it with two new methods, clearly named and
documented as to their purpose.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 63e2e281b693b25159f9359190e5500a4be01e5f..e795d04d218219c701f058cd70f13076ed3e72ba 100644
+index 4f851879aaea3b604e45c2f608edd3c2972bd038..c0ba5e308d8ef8333eeea6217f95022cf59c76b7 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -235,6 +235,7 @@ public class ServerPlayer extends Player {
@@ -106,7 +106,7 @@ index 69a1852905dd4724c30ac8ab88c14251eee2c371..17b3d5de58a9ef3acc67624c46cd6bbd
public Location getLastDeathLocation() {
if (this.getData().contains("LastDeathLocation", 10)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index aec0434f1885ba465fd7874e693b16fdf60a7f59..93196c1e4ca9427c77ead10f7e0c98e4f571bf7f 100644
+index 088a95b0f1574f293fe535b763c3768dbf95c9cc..3f23d3bc3b35b48f3c8962b2622c54dbb675e02d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -176,6 +176,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -117,7 +117,7 @@ index aec0434f1885ba465fd7874e693b16fdf60a7f59..93196c1e4ca9427c77ead10f7e0c98e4
// Paper end
public CraftPlayer(CraftServer server, ServerPlayer entity) {
-@@ -1798,6 +1799,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1806,6 +1807,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.firstPlayed = firstPlayed;
}
@@ -136,7 +136,7 @@ index aec0434f1885ba465fd7874e693b16fdf60a7f59..93196c1e4ca9427c77ead10f7e0c98e4
public void readExtraData(CompoundTag nbttagcompound) {
this.hasPlayedBefore = true;
if (nbttagcompound.contains("bukkit")) {
-@@ -1820,6 +1833,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1828,6 +1841,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setExtraData(CompoundTag nbttagcompound) {
@@ -145,7 +145,7 @@ index aec0434f1885ba465fd7874e693b16fdf60a7f59..93196c1e4ca9427c77ead10f7e0c98e4
if (!nbttagcompound.contains("bukkit")) {
nbttagcompound.put("bukkit", new CompoundTag());
}
-@@ -1834,6 +1849,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1842,6 +1857,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
data.putLong("firstPlayed", this.getFirstPlayed());
data.putLong("lastPlayed", System.currentTimeMillis());
data.putString("lastKnownName", handle.getScoreboardName());
diff --git a/patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch b/patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch
index 46e3622fb2..41a375e16e 100644
--- a/patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch
+++ b/patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch
@@ -12,10 +12,10 @@ Player we will look at limiting the scope of this change. It appears to
be unintentional in the few cases we've seen so far.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 93196c1e4ca9427c77ead10f7e0c98e4f571bf7f..7a7de6ce7ac0a713f86ff49c98e74b7997918ef4 100644
+index 3f23d3bc3b35b48f3c8962b2622c54dbb675e02d..d21faa3e7a97c28e380323b503d32de5e5705d11 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2730,6 +2730,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2738,6 +2738,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetCooldown() {
getHandle().resetAttackStrengthTicker();
}
diff --git a/patches/server/0353-Remove-garbage-Java-version-check.patch b/patches/server/0353-Remove-garbage-Java-version-check.patch
index 56a2300cea..67418476be 100644
--- a/patches/server/0353-Remove-garbage-Java-version-check.patch
+++ b/patches/server/0353-Remove-garbage-Java-version-check.patch
@@ -5,15 +5,15 @@ Subject: [PATCH] Remove garbage Java version check
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 127b05c44aa1e20ce097f1c1fe6b6ca2b32226c0..4f666a16a46d86cd0919bbe8f8b918a7f451d254 100644
+index c9c0c17651b05094f96840b4fc0fd60825eef146..08e74f41516a545a2371a7418d995ab288831834 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -196,10 +196,6 @@ public class Main {
System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 17. Check your Java version with the command 'java -version'.");
return;
}
-- if (javaVersion > 63.0) {
-- System.err.println("Unsupported Java detected (" + javaVersion + "). Only up to Java 19 is supported.");
+- if (javaVersion > 64.0) {
+- System.err.println("Unsupported Java detected (" + javaVersion + "). Only up to Java 20 is supported.");
- return;
- }
diff --git a/patches/server/0366-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/server/0366-Add-Raw-Byte-ItemStack-Serialization.patch
index f371e21c28..b0e2f299b7 100644
--- a/patches/server/0366-Add-Raw-Byte-ItemStack-Serialization.patch
+++ b/patches/server/0366-Add-Raw-Byte-ItemStack-Serialization.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add Raw Byte ItemStack Serialization
Serializes using NBT which is safer for server data migrations than bukkits format.
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 0ee761fa0d42fd90e82f3284ee756ddd60c6178d..70c4eb21b3730a6bb7c44671eaaba9a7bc3ee5a3 100644
+index 289276ae40409868c6293c5ab3bafe54c2ccf15c..69b126c8bbba26f517e0d314b3629b2445349770 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -459,6 +459,52 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -460,6 +460,52 @@ public final class CraftMagicNumbers implements UnsafeValues {
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
return new com.destroystokyo.paper.PaperVersionFetcher();
}
diff --git a/patches/server/0397-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0397-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
index c4d9c3312e..85baa9a0ee 100644
--- a/patches/server/0397-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
+++ b/patches/server/0397-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Deobfuscate stacktraces in log messages, crash reports, and
diff --git a/build.gradle.kts b/build.gradle.kts
-index bba43db4bdde5e40a316f7f94009d41cca12fa6c..54b55e0691e6169017a988074a9f3a52703d0839 100644
+index 243e40cb0e14f62e284fc272aeb0b6a1bc54ea9f..daf75df1e515511fd28ed555c2c0c8ea70ec47dd 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -19,6 +19,7 @@ dependencies {
@@ -16,7 +16,7 @@ index bba43db4bdde5e40a316f7f94009d41cca12fa6c..54b55e0691e6169017a988074a9f3a52
+ annotationProcessor("org.apache.logging.log4j:log4j-core:2.14.1") // Paper - Needed to generate meta for our Log4j plugins
// Paper end
implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
- implementation("org.ow2.asm:asm:9.3")
+ implementation("org.ow2.asm:asm:9.4")
@@ -26,6 +27,7 @@ dependencies {
testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito
implementation("org.spongepowered:configurate-yaml:4.1.2") // Paper - config files
diff --git a/patches/server/0407-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0407-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
index 6e84017fa3..6cd55247ad 100644
--- a/patches/server/0407-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
+++ b/patches/server/0407-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
@@ -13,7 +13,7 @@ A config is provided if you rather let players use these exploits, and let
them destroy the worlds End Portals and get on top of the nether easy.
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index cc8dcb77f2b6d447c0e8d769a3d233dc2eb64efa..0a2f5e929d34c933755e9bc4b205e1b2ad0ce3bc 100644
+index 1582f8aad002c14ed45a5748e99f259896e8c9e9..4eb2b90596d2a538c1ea380f11fcd23f2465d611 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -168,6 +168,7 @@ public class Explosion {
@@ -24,7 +24,7 @@ index cc8dcb77f2b6d447c0e8d769a3d233dc2eb64efa..0a2f5e929d34c933755e9bc4b205e1b2
FluidState fluid = iblockdata.getFluidState(); // Paper
if (!this.level.isInWorldBounds(blockposition)) {
-@@ -347,7 +348,7 @@ public class Explosion {
+@@ -350,7 +351,7 @@ public class Explosion {
BlockState iblockdata = this.level.getBlockState(blockposition);
Block block = iblockdata.getBlock();
diff --git a/patches/server/0458-Brand-support.patch b/patches/server/0458-Brand-support.patch
index 68eef7dc3f..84447bf737 100644
--- a/patches/server/0458-Brand-support.patch
+++ b/patches/server/0458-Brand-support.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Brand support
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 662cad3da78c131e865dc4a09fe5ebd603d737eb..cb9d7bb244331830855b57b8cfb9a8b668985c69 100644
+index 75519699066f93c10b2d1affee651bd0bf7e482b..3553e36b45fe8c0cce2588bb88137bef269ede66 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -298,6 +298,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -56,10 +56,10 @@ index 662cad3da78c131e865dc4a09fe5ebd603d737eb..cb9d7bb244331830855b57b8cfb9a8b6
return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f0d18b144da254847640cbbf215a74d5794f1550..51f8cbd4ae78c55720ef641237c69c739f17da80 100644
+index 7dfa2ce4028b7ab3b1ebe063f497b8adda397079..f0146fc5f294a54bbcc2df5eed1082c0809a88b3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2858,6 +2858,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2866,6 +2866,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
};
diff --git a/patches/server/0480-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0480-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
index 4f8b381046..67ca418316 100644
--- a/patches/server/0480-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
+++ b/patches/server/0480-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
@@ -21,10 +21,10 @@ index 873206bb65b2412d3066a0f7e35fe0684e29661a..d170254265a789998be96ce1dcaf71c9
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 70c4eb21b3730a6bb7c44671eaaba9a7bc3ee5a3..26e6fab362db3f5880bb5daddd4795465e969c27 100644
+index 69b126c8bbba26f517e0d314b3629b2445349770..75be35b61608a0266fe2b734290077a27f05122b 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -505,6 +505,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -506,6 +506,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
Preconditions.checkArgument(dataVersion <= getDataVersion(), "Newer version! Server downgrades are not supported!");
return compound;
}
diff --git a/patches/server/0506-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0506-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
index 14fe56aad5..b7736b2fcc 100644
--- a/patches/server/0506-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
+++ b/patches/server/0506-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index c7bef9df5592eba20ac3b64e5b68070be1405698..da6a74c139ac75521a5cb9648642a4a835055e99 100644
+index b6a7fc3602d7af1de9ecd8eff23a8e7b07d8667f..96c9cc8c86dbf022c6cbc5c3da130ad6f477d350 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2379,7 +2379,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2387,7 +2387,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (data != null && !particle.getDataType().isInstance(data)) {
throw new IllegalArgumentException("data should be " + particle.getDataType() + " got " + data.getClass());
}
diff --git a/patches/server/0583-Expand-world-key-API.patch b/patches/server/0583-Expand-world-key-API.patch
index fa39a0a15e..764e30feeb 100644
--- a/patches/server/0583-Expand-world-key-API.patch
+++ b/patches/server/0583-Expand-world-key-API.patch
@@ -67,10 +67,10 @@ index b68b19f32754c9c426e711892235b469a85fefb2..3135b7254776a96c581a5f8008c9712e
// Check if a World already exists with the UID.
if (this.getWorld(world.getUID()) != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 1caee283ae73943f936eddd822fbe64dc7815fdf..88074c487de90a7adc86c2345830147ac9f3ae77 100644
+index c05024b813264669d559cf18a15b1a60f427186a..443bf7db58d091348be741cb3b61a6140e6c7b9a 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -516,6 +516,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -517,6 +517,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
public int nextEntityId() {
return net.minecraft.world.entity.Entity.nextEntityId();
}
diff --git a/patches/server/0585-Item-Rarity-API.patch b/patches/server/0585-Item-Rarity-API.patch
index a481dc1afb..6e804eef11 100644
--- a/patches/server/0585-Item-Rarity-API.patch
+++ b/patches/server/0585-Item-Rarity-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Item Rarity API
public net.minecraft.world.item.Item rarity
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 88074c487de90a7adc86c2345830147ac9f3ae77..9c24c1f163fe6dd71239e6fb888d66a130e4596b 100644
+index 443bf7db58d091348be741cb3b61a6140e6c7b9a..adb841b8f4506fee2fd8c76339c1b5bf73093e39 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -521,6 +521,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -522,6 +522,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
public String getMainLevelName() {
return ((net.minecraft.server.dedicated.DedicatedServer) net.minecraft.server.MinecraftServer.getServer()).getProperties().levelName;
}
diff --git a/patches/server/0591-Expose-protocol-version.patch b/patches/server/0591-Expose-protocol-version.patch
index fc90422cc0..d705eb4ba4 100644
--- a/patches/server/0591-Expose-protocol-version.patch
+++ b/patches/server/0591-Expose-protocol-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose protocol version
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 9c24c1f163fe6dd71239e6fb888d66a130e4596b..9efcc26d49204255831a14115af09a8db7ad4636 100644
+index adb841b8f4506fee2fd8c76339c1b5bf73093e39..30b4ac8e5b813024b2e8fc9f173a3434b8123ca8 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -535,6 +535,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -536,6 +536,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
public io.papermc.paper.inventory.ItemRarity getItemStackRarity(org.bukkit.inventory.ItemStack itemStack) {
return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()];
}
diff --git a/patches/server/0619-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0619-additions-to-PlayerGameModeChangeEvent.patch
index d5f9198d1d..05594f8fa2 100644
--- a/patches/server/0619-additions-to-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0619-additions-to-PlayerGameModeChangeEvent.patch
@@ -129,7 +129,7 @@ index 645a226c2e3f6dcf1c25187d006d425038b4545d..17c313b9cb45c8158cab751ffc4e0dc3
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7794964b08ac64e87fe83ebf7d7d483316172246..b069d3b3f68adbde23f69407a8803c13d15f7d9e 100644
+index 1468125664acb4594e0fe12e3b74b5b7610eceeb..a4e92b8b0a6192c3f805591eaef09da40864fb8d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2773,7 +2773,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -142,10 +142,10 @@ index 7794964b08ac64e87fe83ebf7d7d483316172246..b069d3b3f68adbde23f69407a8803c13
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 69cfbe2c3ba14d7ebf4b29a89161b6d1d00ebc91..4315db62aa597de5fa2a022513ada129ae19a3f8 100644
+index c221a8543da2e3c8fafa77fc63db7e1de222f0c9..ceb277b8c69de3ffef29784494b16d1c364707c4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1485,7 +1485,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1495,7 +1495,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
throw new IllegalArgumentException("Mode cannot be null");
}
diff --git a/patches/server/0620-ItemStack-repair-check-API.patch b/patches/server/0620-ItemStack-repair-check-API.patch
index 85b3141e7e..9f4ef58587 100644
--- a/patches/server/0620-ItemStack-repair-check-API.patch
+++ b/patches/server/0620-ItemStack-repair-check-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack repair check API
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 9efcc26d49204255831a14115af09a8db7ad4636..73fa833ecf2e783f25f24de48b00829a813c1d19 100644
+index 30b4ac8e5b813024b2e8fc9f173a3434b8123ca8..60b2a96ebfae85762daa5ecc94d3e46f0434c9cc 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -536,6 +536,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -537,6 +537,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()];
}
diff --git a/patches/server/0627-Attributes-API-for-item-defaults.patch b/patches/server/0627-Attributes-API-for-item-defaults.patch
index 96a30561d7..a1895ea21d 100644
--- a/patches/server/0627-Attributes-API-for-item-defaults.patch
+++ b/patches/server/0627-Attributes-API-for-item-defaults.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Attributes API for item defaults
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 73fa833ecf2e783f25f24de48b00829a813c1d19..23b322f077312ad6b40964b12dff1ac03ad1a2b8 100644
+index 60b2a96ebfae85762daa5ecc94d3e46f0434c9cc..119ef8f4db4f4aa6129b6d246fdae0be790718f8 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -544,6 +544,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -545,6 +545,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
return CraftMagicNumbers.getItem(itemToBeRepaired.getType()).isValidRepairItem(CraftItemStack.asNMSCopy(itemToBeRepaired), CraftItemStack.asNMSCopy(repairMaterial));
}
diff --git a/patches/server/0667-Add-PlayerSetSpawnEvent.patch b/patches/server/0667-Add-PlayerSetSpawnEvent.patch
index f27961e337..cd968f756d 100644
--- a/patches/server/0667-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0667-Add-PlayerSetSpawnEvent.patch
@@ -129,10 +129,10 @@ index 37e111589134d80fdfd7a04d624b8c1d58a2d664..53b35f003034e7f4c9dd8ccfaf773891
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 99753168f6611b9844c43766f2e54a9e721cfdbc..485cbeeae012383ec959503c8b909441c25fa4d1 100644
+index a345baf095ee766092e5b09e50a2c7d60965d995..ba0231ef9d0cc1c0e67b90457e08f0386daf4f42 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1305,9 +1305,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1315,9 +1315,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setBedSpawnLocation(Location location, boolean override) {
if (location == null) {
diff --git a/patches/server/0684-Get-entity-default-attributes.patch b/patches/server/0684-Get-entity-default-attributes.patch
index a11e6eebe5..082e7ea26c 100644
--- a/patches/server/0684-Get-entity-default-attributes.patch
+++ b/patches/server/0684-Get-entity-default-attributes.patch
@@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..cf9d28ea97d93cec05c9fb768d59e283
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 23b322f077312ad6b40964b12dff1ac03ad1a2b8..c18829fb68db70296ddf546a903ed38cb12a593e 100644
+index 119ef8f4db4f4aa6129b6d246fdae0be790718f8..3691072d04c37ffdeb4d55aae2805dd2f3a3e844 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -561,6 +561,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -562,6 +562,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
public int getProtocolVersion() {
return net.minecraft.SharedConstants.getCurrentVersion().getProtocolVersion();
}
diff --git a/patches/server/0690-Add-isCollidable-methods-to-various-places.patch b/patches/server/0690-Add-isCollidable-methods-to-various-places.patch
index 1ece66e444..3094688930 100644
--- a/patches/server/0690-Add-isCollidable-methods-to-various-places.patch
+++ b/patches/server/0690-Add-isCollidable-methods-to-various-places.patch
@@ -39,10 +39,10 @@ index 7b9e943b391c061782fccd2b8d705ceec8db50fe..966ac60daebb7bb211ab8096fc0c5f33
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index c18829fb68db70296ddf546a903ed38cb12a593e..368693d93700390915f538de37409b5a37f916b7 100644
+index 3691072d04c37ffdeb4d55aae2805dd2f3a3e844..a0fbbcda1eccaadc7071e54968a0bf0588962d66 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -573,6 +573,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -574,6 +574,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
var supplier = net.minecraft.world.entity.ai.attributes.DefaultAttributes.getSupplier((net.minecraft.world.entity.EntityType<? extends net.minecraft.world.entity.LivingEntity>) net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(bukkitEntityKey)));
return new io.papermc.paper.attribute.UnmodifiableAttributeMap(supplier);
}
diff --git a/patches/server/0693-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0693-Add-Raw-Byte-Entity-Serialization.patch
index 31523bbd5f..b39643ede6 100644
--- a/patches/server/0693-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/server/0693-Add-Raw-Byte-Entity-Serialization.patch
@@ -45,10 +45,10 @@ index f1ee89047e8cd916c762b91162842e3f981856b3..726a4ae7ab928eda3ae1c1e98f342157
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 368693d93700390915f538de37409b5a37f916b7..57a1b4f0e179deec31bcda23a1ebafe2c745df11 100644
+index a0fbbcda1eccaadc7071e54968a0bf0588962d66..b25b645df6be2ace22c280473f5f1a2c911ee239 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -484,6 +484,29 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -485,6 +485,29 @@ public final class CraftMagicNumbers implements UnsafeValues {
return CraftItemStack.asCraftMirror(net.minecraft.world.item.ItemStack.of(ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.ITEM_STACK, compound, dataVersion, getDataVersion())));
}
diff --git a/patches/server/0757-Add-player-health-update-API.patch b/patches/server/0757-Add-player-health-update-API.patch
index 91a3ca64b2..a42564ec47 100644
--- a/patches/server/0757-Add-player-health-update-API.patch
+++ b/patches/server/0757-Add-player-health-update-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add player health update API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6ca632786ff21cdddd5333b574d8bd7211481bbc..eacb64671049def9daccc08ba63176bd1257db46 100644
+index dda1f3e9370110c08ed28fd404c8a246fa468db9..13855196d3c5405116bcd60518e8dd6b4fa0bf3f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2258,9 +2258,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2266,9 +2266,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().maxHealthCache = getMaxHealth();
}
@@ -22,7 +22,7 @@ index 6ca632786ff21cdddd5333b574d8bd7211481bbc..eacb64671049def9daccc08ba63176bd
if (this.getHandle().queueHealthUpdatePacket) {
this.getHandle().queuedHealthUpdatePacket = packet;
} else {
-@@ -2268,7 +2270,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2276,7 +2278,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
}
diff --git a/patches/server/0844-Add-support-for-Proxy-Protocol.patch b/patches/server/0844-Add-support-for-Proxy-Protocol.patch
index 01638b044d..1f15547b0e 100644
--- a/patches/server/0844-Add-support-for-Proxy-Protocol.patch
+++ b/patches/server/0844-Add-support-for-Proxy-Protocol.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol
diff --git a/build.gradle.kts b/build.gradle.kts
-index 3c493f7eeffefee013c7837c3b46531fd20aac0f..4cc7d15f43b2547a723ea231bcf98bc13bdb85bf 100644
+index dc61ebe468740b0b9359bf6e3a6050726136941c..1919a8e9cb7c995b2a9c876ff4980bdc98977133 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -20,6 +20,7 @@ dependencies {
@@ -15,7 +15,7 @@ index 3c493f7eeffefee013c7837c3b46531fd20aac0f..4cc7d15f43b2547a723ea231bcf98bc1
+ implementation("io.netty:netty-codec-haproxy:4.1.87.Final") // Paper - Add support for proxy protocol
// Paper end
implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
- implementation("org.ow2.asm:asm:9.3")
+ implementation("org.ow2.asm:asm:9.4")
diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
index cfdbcd024de6ad0f9d4e83b2f912b36ef3299458..abcc3266d18f34d160eac87fdea153dce24c60b8 100644
--- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
diff --git a/patches/server/0867-More-Teleport-API.patch b/patches/server/0867-More-Teleport-API.patch
index a001e776a1..0f0e673633 100644
--- a/patches/server/0867-More-Teleport-API.patch
+++ b/patches/server/0867-More-Teleport-API.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] More Teleport API
public net.minecraft.server.network.ServerGamePacketListenerImpl internalTeleport(DDDFFLjava/util/Set;Z)V
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 5f2ca04a299b61f2cce8a4dfd060485e05153650..28a2ccb8da1c448873802e1056a08f34a8e27e68 100644
+index a603bc195462227a6737d2d3f9bc247c630c4012..a5734228fbad1b9e704573ea220084a8c142e069 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1718,11 +1718,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -74,10 +74,10 @@ index 32b9816283c8c1de929d5664733553277cf6bf3c..13dbac3b3aa7d67320203b64eaa13092
// Let the server handle cross world teleports
if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 118a671cdeee8c5fd051192b7b72ad63f79e7eca..8c1c3f7203eb2c30f2d2e909799071c31e234db7 100644
+index 7034ca7b50c12b000abf33b14fbe216fe8b14a8c..977063eeaa1d8864a86f48f87d820d01d14e5bb6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1198,13 +1198,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1208,13 +1208,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setRotation(float yaw, float pitch) {
@@ -179,7 +179,7 @@ index 118a671cdeee8c5fd051192b7b72ad63f79e7eca..8c1c3f7203eb2c30f2d2e909799071c3
location.checkFinite();
ServerPlayer entity = this.getHandle();
-@@ -1217,7 +1304,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1227,7 +1314,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return false;
}
@@ -188,7 +188,7 @@ index 118a671cdeee8c5fd051192b7b72ad63f79e7eca..8c1c3f7203eb2c30f2d2e909799071c3
return false;
}
-@@ -1235,7 +1322,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1245,7 +1332,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// If this player is riding another entity, we must dismount before teleporting.
@@ -197,7 +197,7 @@ index 118a671cdeee8c5fd051192b7b72ad63f79e7eca..8c1c3f7203eb2c30f2d2e909799071c3
// SPIGOT-5509: Wakeup, similar to riding
if (this.isSleeping()) {
-@@ -1251,13 +1338,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1261,13 +1348,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
ServerLevel toWorld = ((CraftWorld) to.getWorld()).getHandle();
// Close any foreign inventory
diff --git a/patches/server/0881-Add-NamespacedKey-biome-methods.patch b/patches/server/0881-Add-NamespacedKey-biome-methods.patch
index 81bbcfdda0..0b21a6a077 100644
--- a/patches/server/0881-Add-NamespacedKey-biome-methods.patch
+++ b/patches/server/0881-Add-NamespacedKey-biome-methods.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add NamespacedKey biome methods
Co-authored-by: Thonk <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 57a1b4f0e179deec31bcda23a1ebafe2c745df11..2d5c4d4170e9a7cae9200280de3706e4be317413 100644
+index b25b645df6be2ace22c280473f5f1a2c911ee239..81ffcca62c2ebb15889d286bfe9138b86ccfe71e 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -602,6 +602,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -603,6 +603,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
Preconditions.checkArgument(material.isBlock(), material + " is not a block");
return getBlock(material).hasCollision;
}
diff --git a/patches/server/0905-Elder-Guardian-appearance-API.patch b/patches/server/0905-Elder-Guardian-appearance-API.patch
index e5f6394504..da13501a8a 100644
--- a/patches/server/0905-Elder-Guardian-appearance-API.patch
+++ b/patches/server/0905-Elder-Guardian-appearance-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index eee94df12d5915f5b6dcd0686dd204df82c301ad..fd8be33b4661e0d761b300b216d8bcb9cb04ff2e 100644
+index fb2c4547896fc39a78bc28261a5a6c3764527f6a..8d03824629d7a407f6b94c7ee306cce5ffcea1d3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3038,6 +3038,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3046,6 +3046,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/patches/server/0922-Add-Player-Warden-Warning-API.patch b/patches/server/0922-Add-Player-Warden-Warning-API.patch
index 81f7ca0245..c4d561f57b 100644
--- a/patches/server/0922-Add-Player-Warden-Warning-API.patch
+++ b/patches/server/0922-Add-Player-Warden-Warning-API.patch
@@ -10,10 +10,10 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index fd8be33b4661e0d761b300b216d8bcb9cb04ff2e..d35cc0cab93ea3db0dddb0bdfb4c33bb516e8367 100644
+index 8d03824629d7a407f6b94c7ee306cce5ffcea1d3..bd202861639727012506415e4b90f6de808081db 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3043,6 +3043,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3051,6 +3051,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void showElderGuardian(boolean silent) {
if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F));
}
diff --git a/patches/server/0942-Fix-explosion-yield-with-new-gamerules.patch b/patches/server/0942-Fix-explosion-yield-with-new-gamerules.patch
index 744161902a..c2d0079207 100644
--- a/patches/server/0942-Fix-explosion-yield-with-new-gamerules.patch
+++ b/patches/server/0942-Fix-explosion-yield-with-new-gamerules.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix explosion yield with new gamerules
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index f607c40cde7ac2a79ee2cfd618c0c11abbab6e46..ab8467a64202ccafa8188641eb9e3a5941331812 100644
+index 092ba9e1f5bf331d65b549d54689b337e67a6d58..4a7733c259d75bf2b3ea559fd4eba398bc56195d 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
-@@ -325,13 +325,13 @@ public class Explosion {
+@@ -328,13 +328,13 @@ public class Explosion {
float yield;
if (explode != null) {
diff --git a/patches/server/0946-Add-exploded-block-state-to-BlockExplodeEvent.patch b/patches/server/0946-Add-exploded-block-state-to-BlockExplodeEvent.patch
index 8302db7860..1eecab80fa 100644
--- a/patches/server/0946-Add-exploded-block-state-to-BlockExplodeEvent.patch
+++ b/patches/server/0946-Add-exploded-block-state-to-BlockExplodeEvent.patch
@@ -35,10 +35,10 @@ index 8795c94e6b6474addddbb0b337a962e8fac46b2b..2848cb7c76e94d8349f042dc92daf013
public String toString() {
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index ab8467a64202ccafa8188641eb9e3a5941331812..a213f4098859858a73ddd601bbe8c7511972e0d5 100644
+index 4a7733c259d75bf2b3ea559fd4eba398bc56195d..5ef6b5ad4dd69a57595914c7af8422ee2f6ad054 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
-@@ -331,7 +331,7 @@ public class Explosion {
+@@ -334,7 +334,7 @@ public class Explosion {
bukkitBlocks = event.blockList();
yield = event.getYield();
} else {
diff --git a/patches/server/0950-Flying-Fall-Damage.patch b/patches/server/0950-Flying-Fall-Damage.patch
index e59e188713..b864987ca5 100644
--- a/patches/server/0950-Flying-Fall-Damage.patch
+++ b/patches/server/0950-Flying-Fall-Damage.patch
@@ -26,10 +26,10 @@ index 875a7d2b2ecd75a51af7d158b7acee358b5082fe..1116116e4ba6c5ecec400cd371b70b9e
} 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 d83df7194a60d713e725a38ccc2c5f293a678d06..e2b750697b59240253aefe71915882a7a7d15d9d 100644
+index 42cff4d205f36a4342e645139bcff86027239b55..b7fb3af8a32c18e1eb078224a69f2fafe203c231 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2205,6 +2205,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2213,6 +2213,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().onUpdateAbilities();
}
diff --git a/patches/server/0955-Add-Player-sendEquipmentChange-Map-API.patch b/patches/server/0955-Add-Player-sendEquipmentChange-Map-API.patch
deleted file mode 100644
index d57a7ebad4..0000000000
--- a/patches/server/0955-Add-Player-sendEquipmentChange-Map-API.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Aya <[email protected]>
-Date: Fri, 20 Jan 2023 13:49:59 +0000
-Subject: [PATCH] Add Player#sendEquipmentChange(Map) API
-
-
-diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b1d01555cb919edd16d46df28d6b09661317b233..5ec97491d6c2888e360de1d53f3edcc75ccac95a 100644
---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1068,17 +1068,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- this.sendSignChange0(components, loc, dyeColor, hasGlowingText); // Paper
- }
-
-+ // Paper start
- @Override
-- public void sendEquipmentChange(LivingEntity entity, EquipmentSlot slot, ItemStack item) {
-+ public void sendEquipmentChange(LivingEntity entity, Map<EquipmentSlot, ItemStack> equipmentChanges) {
- Preconditions.checkArgument(entity != null, "entity must not be null");
-- Preconditions.checkArgument(slot != null, "slot must not be null");
-- Preconditions.checkArgument(item != null, "item must not be null");
-+ Preconditions.checkNotNull(equipmentChanges, "equipmentChanges must not be null");
-
- if (this.getHandle().connection == null) return;
-
-- List<Pair<net.minecraft.world.entity.EquipmentSlot, net.minecraft.world.item.ItemStack>> equipment = Arrays.asList(
-- new Pair<>(CraftEquipmentSlot.getNMS(slot), CraftItemStack.asNMSCopy(item))
-- );
-+ List<Pair<net.minecraft.world.entity.EquipmentSlot, net.minecraft.world.item.ItemStack>> equipment = new ArrayList<>(equipmentChanges.size());
-+ for (Map.Entry<EquipmentSlot, ItemStack> entry : equipmentChanges.entrySet()) {
-+ Preconditions.checkNotNull(entry.getKey(), "EquipmentSlot key must not be null");
-+ Preconditions.checkNotNull(entry.getValue(), "ItemStack value must not be null");
-+ equipment.add(new Pair<>(CraftEquipmentSlot.getNMS(entry.getKey()), CraftItemStack.asNMSCopy(entry.getValue())));
-+ }
-+ // Paper end
-
- this.getHandle().connection.send(new ClientboundSetEquipmentPacket(entity.getEntityId(), equipment));
- }
diff --git a/patches/server/0956-Win-Screen-API.patch b/patches/server/0955-Win-Screen-API.patch
index 07502c9fdf..0ca67bcf37 100644
--- a/patches/server/0956-Win-Screen-API.patch
+++ b/patches/server/0955-Win-Screen-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Win Screen API
public net.minecraft.server.level.ServerPlayer seenCredits
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5ec97491d6c2888e360de1d53f3edcc75ccac95a..03430916a8107c1b0f04d84e1dce494e2da06e7a 100644
+index d57ace8a5dd316d259644342579aeaaf1810245d..8d4e03c9c9bd41433c9a6a4a9378ed3f0681bfdf 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1179,6 +1179,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1185,6 +1185,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
diff --git a/patches/server/0957-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0956-Remove-CraftItemStack-setAmount-null-assignment.patch
index 29c3ba9471..29c3ba9471 100644
--- a/patches/server/0957-Remove-CraftItemStack-setAmount-null-assignment.patch
+++ b/patches/server/0956-Remove-CraftItemStack-setAmount-null-assignment.patch
diff --git a/patches/server/0958-Fix-force-opening-enchantment-tables.patch b/patches/server/0957-Fix-force-opening-enchantment-tables.patch
index 8f0bd48367..8f0bd48367 100644
--- a/patches/server/0958-Fix-force-opening-enchantment-tables.patch
+++ b/patches/server/0957-Fix-force-opening-enchantment-tables.patch
diff --git a/patches/server/0959-Add-Entity-Body-Yaw-API.patch b/patches/server/0958-Add-Entity-Body-Yaw-API.patch
index 54c306ec99..54c306ec99 100644
--- a/patches/server/0959-Add-Entity-Body-Yaw-API.patch
+++ b/patches/server/0958-Add-Entity-Body-Yaw-API.patch
diff --git a/patches/server/0960-Add-missing-isFuel-Material-entries.patch b/patches/server/0959-Add-missing-isFuel-Material-entries.patch
index a17daf160f..a17daf160f 100644
--- a/patches/server/0960-Add-missing-isFuel-Material-entries.patch
+++ b/patches/server/0959-Add-missing-isFuel-Material-entries.patch
diff --git a/patches/server/0962-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0960-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
index efaf1a6e90..efaf1a6e90 100644
--- a/patches/server/0962-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
+++ b/patches/server/0960-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
diff --git a/patches/server/0961-Temp-fix-for-EntityType.translationKey.patch b/patches/server/0961-Temp-fix-for-EntityType.translationKey.patch
deleted file mode 100644
index 1d8e910ec4..0000000000
--- a/patches/server/0961-Temp-fix-for-EntityType.translationKey.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Shane Freeder <[email protected]>
-Date: Thu, 16 Feb 2023 03:19:19 +0000
-Subject: [PATCH] Temp fix for EntityType.translationKey()
-
-
-diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 2d5c4d4170e9a7cae9200280de3706e4be317413..1244c1ca5e0907298b1ca6de538db82b2209ec4d 100644
---- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -440,7 +440,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
-
- @Override
- public String getTranslationKey(EntityType entityType) {
-- return net.minecraft.world.entity.EntityType.byString(entityType.name()).map(net.minecraft.world.entity.EntityType::getDescriptionId).orElseThrow();
-+ // Paper start
-+ if (entityType.getName() == null || entityType == EntityType.UNKNOWN) {
-+ throw new IllegalArgumentException("Cannot lookup translation key of entity type " + entityType);
-+ }
-+ return net.minecraft.world.entity.EntityType.byString(entityType.getName()).map(net.minecraft.world.entity.EntityType::getDescriptionId).orElseThrow();
-+ // Paper end
- }
-
- @Override
diff --git a/patches/server/0963-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0961-Update-the-flag-when-a-captured-block-state-is-outda.patch
index 6c2cd5cb19..6c2cd5cb19 100644
--- a/patches/server/0963-Update-the-flag-when-a-captured-block-state-is-outda.patch
+++ b/patches/server/0961-Update-the-flag-when-a-captured-block-state-is-outda.patch
diff --git a/patches/server/0964-Add-EntityFertilizeEggEvent.patch b/patches/server/0962-Add-EntityFertilizeEggEvent.patch
index 4b05bb180b..4b05bb180b 100644
--- a/patches/server/0964-Add-EntityFertilizeEggEvent.patch
+++ b/patches/server/0962-Add-EntityFertilizeEggEvent.patch
diff --git a/patches/server/0965-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0963-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
index 824266cdb6..824266cdb6 100644
--- a/patches/server/0965-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
+++ b/patches/server/0963-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
diff --git a/patches/server/0966-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0964-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
index d98c945613..d98c945613 100644
--- a/patches/server/0966-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
+++ b/patches/server/0964-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
diff --git a/patches/server/0967-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0965-Correctly-handle-ArmorStand-invisibility.patch
index 103ddcbb11..103ddcbb11 100644
--- a/patches/server/0967-Correctly-handle-ArmorStand-invisibility.patch
+++ b/patches/server/0965-Correctly-handle-ArmorStand-invisibility.patch
diff --git a/work/Bukkit b/work/Bukkit
-Subproject 37262de84b9613e61809f31691e6f9db48dce0a
+Subproject 6b3c598b975cca10e0027f624dc5115e0f32a0b
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject a50301aa51aab7aa25869d921fa0c6a65eeda54
+Subproject b56426c7aeb086a363d7a8ee7f228b31249c7fb
diff --git a/work/Spigot b/work/Spigot
-Subproject 19641c7577eefd3f47df12167c5e01f449bce47
+Subproject a2190e302dde05a08e245990d97fb0918481558