From e0765e16ab3e4ac9cfb70dd1309139f1df0a2118 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Tue, 8 Aug 2023 18:54:48 +0800 Subject: [PATCH] Updated Upstream (Gale) --- gradle.properties | 2 +- patches/api/0002-Purpur-API-Changes.patch | 36 ++-- patches/api/0003-Leaf-config-files.patch | 4 +- patches/api/0004-Bump-Dependencies.patch | 6 +- patches/api/0006-KeYi-Player-Skull-API.patch | 6 +- patches/api/0007-Slice-Smooth-Teleports.patch | 4 +- patches/server/0001-Rebrand.patch | 12 +- patches/server/0002-Leaf-Config.patch | 15 +- ...005-Pufferfish-Optimize-mob-spawning.patch | 8 +- patches/server/0009-Purpur-Base.patch | 4 +- .../server/0010-Purpur-Server-Changes.patch | 178 +++++++++--------- ...-Purpur-Configurable-server-mod-name.patch | 6 +- patches/server/0012-Bump-Dependencies.patch | 6 +- ...Remove-UseItemOnPacket-Too-Far-Check.patch | 4 +- .../server/0018-KeYi-Player-Skull-API.patch | 8 +- .../server/0024-Slice-Smooth-Teleports.patch | 8 +- .../server/0028-Leaves-Jade-Protocol.patch | 14 +- .../0029-Leaves-Appleskin-Protocol.patch | 10 +- .../0037-Petal-Multithreaded-Tracker.patch | 4 +- 19 files changed, 169 insertions(+), 166 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2f332e87..6aac19d6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = org.dreeam.leaf version = 1.20.1-R0.1-SNAPSHOT -galeCommit = 28e266d7d0bef890cc087bb83f413cfb54ccd489 +galeCommit = 9ea4827350d827c685dfe0eeb937914744c98f6c org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0002-Purpur-API-Changes.patch b/patches/api/0002-Purpur-API-Changes.patch index 6ec9a4d6..8f3cb5b7 100644 --- a/patches/api/0002-Purpur-API-Changes.patch +++ b/patches/api/0002-Purpur-API-Changes.patch @@ -53,10 +53,10 @@ index a736d7bcdc5861a01b66ba36158db1c716339346..22fc165fd9c95f0f3ae1be7a0857e48c @Override diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 6523d1525c41892fd007d9bba00bc84bea299ca6..1245e4497630df0a4932c5418d37a054526d0b53 100644 +index cf5cae753357bbe82d280a5c83800be2bb83f299..fc090ec47cf4ea78e2984b60cebbd486aca5d0d7 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2729,4 +2729,127 @@ public final class Bukkit { +@@ -2781,4 +2781,127 @@ public final class Bukkit { public static Server.Spigot spigot() { return server.spigot(); } @@ -320,10 +320,10 @@ index 03b47012447430a350e152920f754d993d4023db..3ad843d519e239430c5f4f5754a8da30 + // Purpur end } diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index 08ae501e97ae2a3f22b1994c9616fc7134cfc0c3..e2c3271c4b7b8eb5ac14ffd1c4492a4d3c17123c 100644 +index 9b84cb5abdf3db55cbc7ba19c8cd6955bf4fc5ec..5616d2acfa8180f71ae4123845fc126508f73b90 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -476,4 +476,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -506,4 +506,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio */ @Nullable public Location getLastDeathLocation(); @@ -439,10 +439,10 @@ index 08ae501e97ae2a3f22b1994c9616fc7134cfc0c3..e2c3271c4b7b8eb5ac14ffd1c4492a4d + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index c4d45446b18268c822ee06ae4781f7909d02e04a..1004eb6d6872d7e099a34a1521bec58b82b7cb7b 100644 +index 093ba28cc5ab0bf5ef4a9198c1231d160713dbe7..38bcfc1e517e7a4b1edccb5c9eba85c853cfc2fe 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2083,6 +2083,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2134,6 +2134,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi // Paper end @@ -461,7 +461,7 @@ index c4d45446b18268c822ee06ae4781f7909d02e04a..1004eb6d6872d7e099a34a1521bec58b /** * Sends the component to the player * -@@ -2392,4 +2404,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2443,4 +2455,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi long getLastTickOversleepTime(); // Gale end - YAPFA - last tick time - API @@ -718,25 +718,25 @@ index ac9a28922f8a556944a4c3649d74c32c622f0cb0..e43d0e0a2c5edfcc82a677b6c4db9314 if (target.timings == null) { target.timings = co.aikar.timings.TimingsManager.getCommandTiming(null, target); diff --git a/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/src/main/java/org/bukkit/command/defaults/VersionCommand.java -index e40f017f87d6b6b4770501b106c76dc69ec69abb..eac5830986cd0638950bbb1e6f10a30e246e09a7 100644 +index fd5d9881abfd930bb883120f018f76dc78b62b14..eefba8c812a7adc012d75d97c0a31ce8ef7ddf0c 100644 --- a/src/main/java/org/bukkit/command/defaults/VersionCommand.java +++ b/src/main/java/org/bukkit/command/defaults/VersionCommand.java -@@ -198,7 +198,7 @@ public class VersionCommand extends BukkitCommand { +@@ -214,7 +214,7 @@ public class VersionCommand extends BukkitCommand { String version = Bukkit.getVersion(); // Paper start if (version.startsWith("null")) { // running from ide? -- setVersionMessage(net.kyori.adventure.text.Component.text("Unknown version, custom build?", net.kyori.adventure.text.format.NamedTextColor.YELLOW)); +- setVersionMessage(Component.text("Unknown version, custom build?", NamedTextColor.YELLOW)); + setVersionMessage(net.kyori.adventure.text.Component.text("* Unknown version, custom build?", net.kyori.adventure.text.format.NamedTextColor.RED)); // Purpur return; } setVersionMessage(getVersionFetcher().getVersionMessage(version)); -@@ -239,9 +239,11 @@ public class VersionCommand extends BukkitCommand { +@@ -255,9 +255,11 @@ public class VersionCommand extends BukkitCommand { // Paper start - private void setVersionMessage(final @NotNull net.kyori.adventure.text.Component msg) { + private void setVersionMessage(final @NotNull Component msg) { lastCheck = System.currentTimeMillis(); -- final net.kyori.adventure.text.Component message = net.kyori.adventure.text.TextComponent.ofChildren( -- net.kyori.adventure.text.Component.text(Bukkit.getVersionMessage(), net.kyori.adventure.text.format.NamedTextColor.WHITE), -- net.kyori.adventure.text.Component.newline(), +- final Component message = Component.textOfChildren( +- Component.text(Bukkit.getVersionMessage(), NamedTextColor.WHITE), +- Component.newline(), + // Purpur start + int distance = getVersionFetcher().distance(); + final net.kyori.adventure.text.Component message = net.kyori.adventure.text.Component.join(net.kyori.adventure.text.JoinConfiguration.separator(net.kyori.adventure.text.Component.newline()), @@ -744,7 +744,7 @@ index e40f017f87d6b6b4770501b106c76dc69ec69abb..eac5830986cd0638950bbb1e6f10a30e + // Purpur end msg ); - this.versionMessage = net.kyori.adventure.text.Component.text() + this.versionMessage = Component.text() diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java index 455ff52d90565838fe7640c3f045b27082a6c2f1..45f5493eebfecf56b7c0ef4659c078dfc62c0612 100644 --- a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java @@ -1036,10 +1036,10 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc + // Purpur end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 760e6f96d3c43d6ab3d4e2e147a3472724c9ec25..466a2164328bbd2e3cf46d3b71dbf1627216aa92 100644 +index da3e990b2e888387736ffda4a6c9165c5d84248e..e6bfe7346d200c569900d3fd96a217d755e0dd0c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3187,4 +3187,143 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3253,4 +3253,143 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0003-Leaf-config-files.patch b/patches/api/0003-Leaf-config-files.patch index 00ebc706..6c0a51af 100644 --- a/patches/api/0003-Leaf-config-files.patch +++ b/patches/api/0003-Leaf-config-files.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Leaf config files diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 1004eb6d6872d7e099a34a1521bec58b82b7cb7b..9ab046093e0d3f31d5ddc64e8ac4db87c11f55f4 100644 +index 38bcfc1e517e7a4b1edccb5c9eba85c853cfc2fe..11c597d20752b7a6d6cc3e6cf762bc086e0cb4a8 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2095,6 +2095,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2146,6 +2146,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi } // Purpur end diff --git a/patches/api/0004-Bump-Dependencies.patch b/patches/api/0004-Bump-Dependencies.patch index 14673e04..a20d2f67 100644 --- a/patches/api/0004-Bump-Dependencies.patch +++ b/patches/api/0004-Bump-Dependencies.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies diff --git a/build.gradle.kts b/build.gradle.kts -index 9796d6d0a1b8fba6f694e8c4d9446d0887aed1ee..ada7bddaad17ec3cc4cf942ade0bc1faf1b9ba38 100644 +index b9fe57f709de6dc262295a0a0134c371ddd69baa..81f1a546264e4a9b09896ababfbf7090333894f2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,8 +9,8 @@ java { @@ -83,7 +83,7 @@ index 9796d6d0a1b8fba6f694e8c4d9446d0887aed1ee..ada7bddaad17ec3cc4cf942ade0bc1fa } configure { -@@ -117,7 +120,7 @@ tasks.withType { +@@ -116,7 +119,7 @@ tasks.withType { options.use() options.isDocFilesSubDirs = true options.links( @@ -92,7 +92,7 @@ index 9796d6d0a1b8fba6f694e8c4d9446d0887aed1ee..ada7bddaad17ec3cc4cf942ade0bc1fa "https://javadoc.io/doc/org.yaml/snakeyaml/2.0/", "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", // Paper - we don't want Java 5 annotations // Paper start -@@ -163,6 +166,9 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks. +@@ -161,6 +164,9 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks. jarToScan.set(tasks.jar.flatMap { it.archiveFile }) classpath.from(configurations.compileClasspath) } diff --git a/patches/api/0006-KeYi-Player-Skull-API.patch b/patches/api/0006-KeYi-Player-Skull-API.patch index bcea4549..4a0e335f 100644 --- a/patches/api/0006-KeYi-Player-Skull-API.patch +++ b/patches/api/0006-KeYi-Player-Skull-API.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 466a2164328bbd2e3cf46d3b71dbf1627216aa92..bf3d39ab87b4cdfdd609fbb28c1d613940404999 100644 +index e6bfe7346d200c569900d3fd96a217d755e0dd0c..d5f3c795fa5f18a7deadd7160b26c074ad5ca2b4 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -6,8 +6,11 @@ import java.util.Collection; +@@ -8,8 +8,11 @@ import java.util.Collection; import java.util.Date; import java.util.Map; import java.util.UUID; @@ -23,7 +23,7 @@ index 466a2164328bbd2e3cf46d3b71dbf1627216aa92..bf3d39ab87b4cdfdd609fbb28c1d6139 import org.bukkit.DyeColor; import org.bukkit.Effect; import org.bukkit.GameMode; -@@ -3326,4 +3329,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3392,4 +3395,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM sendDeathScreen(message); } // Purpur end diff --git a/patches/api/0007-Slice-Smooth-Teleports.patch b/patches/api/0007-Slice-Smooth-Teleports.patch index a62e346f..d85f35bb 100644 --- a/patches/api/0007-Slice-Smooth-Teleports.patch +++ b/patches/api/0007-Slice-Smooth-Teleports.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/Cryptite/Slice diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index bf3d39ab87b4cdfdd609fbb28c1d613940404999..696a59845a638bf20559843f6da53324977283df 100644 +index d5f3c795fa5f18a7deadd7160b26c074ad5ca2b4..d1c916caa04472a88a6f7b091045aec1ce8a4db2 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3072,6 +3072,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3138,6 +3138,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 14693519..bc2f8a93 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index f1804bfc661b597733d612e51129097ebc076bca..966ef0a1a64997aec585209a57087baa1849b440 100644 +index 6827ccd77dbba737b80bd14456c54fc54f8058f2..43a72d2fb4b6e73fa258c414eaada65ac366d1e3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,7 +15,7 @@ val alsoShade: Configuration by configurations.creating @@ -17,7 +17,7 @@ index f1804bfc661b597733d612e51129097ebc076bca..966ef0a1a64997aec585209a57087baa // Depend on Paper MojangAPI implementation("io.papermc.paper:paper-mojangapi:1.20.1-R0.1-SNAPSHOT") { exclude("io.papermc.paper", "paper-api") -@@ -89,7 +89,7 @@ tasks.jar { +@@ -88,7 +88,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -40,10 +40,10 @@ index e45e6b44b2a8f2cdae6e0048a812b92126aa17ca..b5f3f213da8a40d5184098af017c8e26 .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index be40609be0b35e2cfbdbd9e00877507c6825e2a7..ff5c9492f2933cc9ba5a4e15998ba756497eac89 100644 +index 77dd3605bede2f8d2574961a21560df4631f6277..6246949f1f0eea1b8177ebae61cab11d66f642df 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -905,7 +905,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop atomicreference = new AtomicReference(); Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 8ba7f4aad1ff28d5f38b895e8eb47e141390e5ea..2298fc54be24f5464632066be14c68356e37ab71 100644 +index 4ee7ce28263ed1cca7ee98c81404d62ae1128aeb..c332d533dfec69cbb9f41b4b235b1b1b0751f99d 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -358,6 +358,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -342,6 +342,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface DedicatedServer.LOGGER.info("JMX monitoring enabled"); } diff --git a/patches/server/0009-Purpur-Base.patch b/patches/server/0009-Purpur-Base.patch index 8274fea2..866dd112 100644 --- a/patches/server/0009-Purpur-Base.patch +++ b/patches/server/0009-Purpur-Base.patch @@ -9,7 +9,7 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/build.gradle.kts b/build.gradle.kts -index 4a7ae3c1513e5c979010ce7275052f27f029498a..53240be3a1bea29c0d26aecc8801642c0bc147c4 100644 +index 84a499e4f7daed0a40e3c1f30ba2be1469596c8c..faad0e4195d43cb28631722b3a2e29787d2f3b57 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -54,6 +54,10 @@ dependencies { @@ -23,7 +23,7 @@ index 4a7ae3c1513e5c979010ce7275052f27f029498a..53240be3a1bea29c0d26aecc8801642c runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5") runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3") runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3") -@@ -182,7 +186,7 @@ fun TaskContainer.registerRunTask( +@@ -181,7 +185,7 @@ fun TaskContainer.registerRunTask( } } // Gale end - use default Java installation for development runs diff --git a/patches/server/0010-Purpur-Server-Changes.patch b/patches/server/0010-Purpur-Server-Changes.patch index 85796089..6cb77867 100644 --- a/patches/server/0010-Purpur-Server-Changes.patch +++ b/patches/server/0010-Purpur-Server-Changes.patch @@ -563,10 +563,10 @@ index 9ec6145fe04ec64bbee8ec6a837719caebdbc6f5..358d610ad020cada1bb83e393deeeaae public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { this.gameTime = time; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b2cb60cfffbe2b6c5ff4b29f8d242cfb00f6ebb6..2758e02d6f3a66b2fdd47f1db69f71940ab7a81a 100644 +index 3f8f0c991f563a1f4622f4da3e31dc4d33ce40aa..1a6b8b764a762821e5b7b2342658df7bc09323c3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -278,6 +278,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; public Commands vanillaCommandDispatcher; -@@ -287,11 +288,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop playersInRange = reducedRange ? playerchunk.playersInMobSpawnRange : playerchunk.playersInChunkTickRange; diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 59ce2175afd1210344ce2c9f557193ff9139bcee..04e749a0b3842fd9e1d8ca801e0c826aa07cbdec 100644 +index d23fe810b1b971abe4ed52018929a40817060fdc..7eed6e8f586055b87717a5c4ee39c640a03b883e 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -70,7 +70,7 @@ public class ServerEntity { @@ -1202,7 +1202,7 @@ index 5d6c0f5d2d993ae3a044a1a02716a2662e9080d0..b77a84a5ab85839e37aee24da0f4356b } // Paper end diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 00ce8b78e35055da01a053cb0d4ed914d50acebc..227368ac352e14f4d9f32d3847162cff13f5cf9b 100644 +index 43c170fe1eed27e1b0367a3b277cc6d034bc34e1..7eb08a51474fa0ead38c57ee7b486a68f47251ab 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -278,6 +278,11 @@ public class ServerPlayer extends Player { @@ -1565,10 +1565,10 @@ index f830ff98ac6e94fa4f0c9d85bcdd8f3816ecc645..24405fb76f0995350f259d5c5b775863 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cfccf03469 100644 +index cafe296c9613c3363971a04a9fcd96bf1be8781b..fc43b6892f651af1cd6017aa15e07f60ae0be013 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -347,6 +347,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -349,6 +349,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private boolean justTeleported = false; private boolean hasMoved; // Spigot @@ -1589,7 +1589,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf public CraftPlayer getCraftPlayer() { return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity(); } -@@ -460,6 +474,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -462,6 +476,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits. @@ -1602,7 +1602,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } -@@ -778,6 +798,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -780,6 +800,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -1611,7 +1611,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -854,6 +876,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -856,6 +878,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (packet.getId() == this.awaitingTeleport) { if (this.awaitingPositionFromClient == null) { this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause @@ -1619,7 +1619,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf return; } -@@ -1258,10 +1281,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1260,10 +1283,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax; double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier)); long byteAllowed = maxBookPageSize; @@ -1632,7 +1632,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause return; } -@@ -1285,6 +1310,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1287,6 +1312,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); @@ -1640,7 +1640,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause return; } -@@ -1338,13 +1364,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1340,13 +1366,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic itemstack1.setTag(nbttagcompound.copy()); } @@ -1660,7 +1660,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf this.updateBookPages(pages, (s) -> { return Component.Serializer.toJson(Component.literal(s)); -@@ -1356,10 +1385,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1358,10 +1387,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private void updateBookPages(List list, UnaryOperator unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit ListTag nbttaglist = new ListTag(); @@ -1676,7 +1676,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf Objects.requireNonNull(nbttaglist); stream.forEach(nbttaglist::add); -@@ -1369,11 +1401,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1371,11 +1403,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic for (int j = list.size(); i < j; ++i) { FilteredText filteredtext = (FilteredText) list.get(i); @@ -1690,7 +1690,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf } } -@@ -1386,6 +1418,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1388,6 +1420,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) } @@ -1707,7 +1707,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf @Override public void handleEntityTagQuery(ServerboundEntityTagQuery packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); -@@ -1415,8 +1457,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1417,8 +1459,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); @@ -1725,7 +1725,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf } else { ServerLevel worldserver = this.player.serverLevel(); -@@ -1581,7 +1631,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1583,7 +1633,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot flag2 = true; // Paper - diff on change, this should be moved wrongly @@ -1734,7 +1734,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf } // Paper start - optimise out extra getCubes -@@ -1632,6 +1682,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1634,6 +1684,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -1743,7 +1743,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf // Skip the first time we do this if (from.getX() != Double.MAX_VALUE) { Location oldTo = to.clone(); -@@ -1670,6 +1722,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1672,6 +1724,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.resetFallDistance(); } @@ -1757,7 +1757,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1702,6 +1761,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1704,6 +1763,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } // Paper end - optimise out extra getCubes @@ -1771,7 +1771,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf private boolean isPlayerCollidingWithAnythingNew(LevelReader world, AABB box, double newX, double newY, double newZ) { AABB axisalignedbb1 = this.player.getBoundingBox().move(newX - this.player.getX(), newY - this.player.getY(), newZ - this.player.getZ()); Iterable iterable = world.getCollisions(this.player, axisalignedbb1.deflate(9.999999747378752E-6D)); -@@ -2047,6 +2113,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2049,6 +2115,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { @@ -1779,7 +1779,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemstack, enumhand); cancelled = event.useItemInHand() == Event.Result.DENY; } else { -@@ -2101,12 +2168,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2103,12 +2170,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleResourcePackResponse(ServerboundResourcePackPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); @@ -1801,7 +1801,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf player.getBukkitEntity().setResourcePackStatus(packStatus); this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit // Paper end -@@ -2411,7 +2487,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2413,7 +2489,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic do { instant1 = (Instant) this.lastChatTimeStamp.get(); if (timestamp.isBefore(instant1)) { @@ -1810,7 +1810,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf } } while (!this.lastChatTimeStamp.compareAndSet(instant1, timestamp)); -@@ -2844,6 +2920,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2843,6 +2919,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic AABB axisalignedbb = entity.getBoundingBox(); if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.getMaxInteractionDistanceSquared(this.player.level())) { // Gale - make max interaction distance configurable @@ -1818,7 +1818,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf packet.dispatch(new ServerboundInteractPacket.Handler() { private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand); -@@ -2857,6 +2934,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2856,6 +2933,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -1827,7 +1827,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf // Entity in bucket - SPIGOT-4048 and SPIGOT-6859a if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. -@@ -3409,6 +3488,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3435,6 +3514,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } } @@ -1840,7 +1840,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf boolean flag1 = packet.getSlotNum() >= 1 && packet.getSlotNum() <= 45; boolean flag2 = itemstack.isEmpty() || itemstack.getDamageValue() >= 0 && itemstack.getCount() <= 64 && !itemstack.isEmpty(); -@@ -3564,6 +3649,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3590,6 +3675,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support @@ -1848,7 +1848,7 @@ index b3205b20643cf380fa75f0c35bcb77f4496f7055..468866fddd92eef313df413a1d0b94cf @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -@@ -3588,6 +3674,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3614,6 +3700,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } @@ -1885,7 +1885,7 @@ index ded7811cd10bc436957ed9f1576f3231f1af7b7b..badb262810effd22ca1ba021a1e746a7 } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ba5027dbd5dd20aee5a06d7feeb4dd1313f8661c..9a7a6bea60e85ffadb5b3f68d919f7032367f345 100644 +index 016640e983367174603957049fc3d4d205e05103..155e5f5df5ba2d908f86d46fcff255469ba84597 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -492,6 +492,7 @@ public abstract class PlayerList { @@ -2282,7 +2282,7 @@ index 14fab63346d56c72cd7534a04760efd10eef4295..745e792482f61c571e2efbd4200dd1bd @Override diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1d3977fe43c75c955160bf8d9775182e20be7dcb..af7ad38a2ad1c252616af6355f67ba0fd3982e0f 100644 +index 1bc6a4f616efbb9b78a894da0f501769e28394f4..136b9c7e21cb6eed24066efe81e9a7a33b1fd907 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -156,7 +156,7 @@ import org.bukkit.plugin.PluginManager; @@ -4723,7 +4723,7 @@ index 0263acf81330ada1bb8ae7d52a3b04e08d0c4dcb..3cee7d5656b2df2997ceaee3489c02ce + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index 4ec6dc8ddcb940091956fdf014f43832db287d8d..91e9a872b0282f50e2389ab21798fc06da8dbd6a 100644 +index 8448c5d778998390cf2b683f36e4e18ca7ffdc34..91e9a872b0282f50e2389ab21798fc06da8dbd6a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java @@ -82,19 +82,104 @@ public class Dolphin extends WaterAnimal { @@ -4876,14 +4876,16 @@ index 4ec6dc8ddcb940091956fdf014f43832db287d8d..91e9a872b0282f50e2389ab21798fc06 if (this.isNoAi()) { this.setAirSupply(this.getMaxAirSupply()); } else { -@@ -405,6 +499,7 @@ public class Dolphin extends WaterAnimal { +@@ -405,7 +499,8 @@ public class Dolphin extends WaterAnimal { @Override public boolean canUse() { +- return this.dolphin.gotFish() && this.dolphin.getAirSupply() >= 100; + if (this.dolphin.level().purpurConfig.dolphinDisableTreasureSearching) return false; // Purpur - return this.dolphin.gotFish() && this.dolphin.getAirSupply() >= 100 && this.dolphin.level().getWorld().canGenerateStructures(); // MC-151364, SPIGOT-5494: hangs if generate-structures=false ++ return this.dolphin.gotFish() && this.dolphin.getAirSupply() >= 100 && this.dolphin.level().getWorld().canGenerateStructures(); // MC-151364, SPIGOT-5494: hangs if generate-structures=false } + @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java index 62604ed2e82afd3603ccac5d9c6e285c431542b1..ca3096abbd54745af591101c7b306ed87f212954 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -14093,7 +14095,7 @@ index 578c3db52dda4c169b5ea615a4ce4a79f15a4cad..0bd98b802f246a3f6061f716d470a479 return true; diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java -index a433910fb4d0bd8d7b6b0d66c8fc88d62a0e4879..73275b38c08a5ab85538625510fd8aac59f9a092 100644 +index eede02c3f125d230af537bb67bebed9b88f7d1b4..2c51a73ebfd05af21b0f5d731fc9f1df77fed1a1 100644 --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java @@ -64,7 +64,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { @@ -14114,7 +14116,7 @@ index a433910fb4d0bd8d7b6b0d66c8fc88d62a0e4879..73275b38c08a5ab85538625510fd8aac ItemStack itemstack1 = shooter.getProjectile(crossbow); ItemStack itemstack2 = itemstack1.copy(); -@@ -295,6 +295,14 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { +@@ -291,6 +291,14 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { entityarrow.setPierceLevel((byte) i); } @@ -14129,7 +14131,7 @@ index a433910fb4d0bd8d7b6b0d66c8fc88d62a0e4879..73275b38c08a5ab85538625510fd8aac return entityarrow; } -@@ -304,7 +312,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { +@@ -300,7 +308,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { for (int i = 0; i < list.size(); ++i) { ItemStack itemstack1 = (ItemStack) list.get(i); @@ -14285,7 +14287,7 @@ index 180aec596110309aade13d2080f8824d152b07cb..c4aec1e5135a79837918b692e75a7b55 return InteractionResult.PASS; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index b681ed94170d1d8bc7904b050cb20a609d266a3b..fcc433802d509ee210d781911cb79542fb049c7f 100644 +index 0116eeff6de9948c398486c4f910d58862f88eb9..ff8059553976ec7ce1a977ec6e6c90731d405573 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -113,6 +113,7 @@ import org.bukkit.event.world.StructureGrowEvent; @@ -14296,7 +14298,7 @@ index b681ed94170d1d8bc7904b050cb20a609d266a3b..fcc433802d509ee210d781911cb79542 public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { return instance.group(BuiltInRegistries.ITEM.byNameCodec().fieldOf("id").forGetter(ItemStack::getItem), Codec.INT.fieldOf("Count").forGetter(ItemStack::getCount), CompoundTag.CODEC.optionalFieldOf("tag").forGetter((itemstack) -> { return Optional.ofNullable(itemstack.getTag()); -@@ -422,6 +423,7 @@ public final class ItemStack { +@@ -426,6 +427,7 @@ public final class ItemStack { world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710 for (BlockState blockstate : blocks) { blockstate.update(true, false); @@ -14304,7 +14306,7 @@ index b681ed94170d1d8bc7904b050cb20a609d266a3b..fcc433802d509ee210d781911cb79542 } world.preventPoiUpdated = false; -@@ -451,6 +453,7 @@ public final class ItemStack { +@@ -455,6 +457,7 @@ public final class ItemStack { if (!(block.getBlock() instanceof BaseEntityBlock)) { // Containers get placed automatically block.getBlock().onPlace(block, world, newblockposition, oldBlock, true, context); // Paper - pass context } @@ -14312,7 +14314,7 @@ index b681ed94170d1d8bc7904b050cb20a609d266a3b..fcc433802d509ee210d781911cb79542 world.notifyAndUpdatePhysics(newblockposition, null, oldBlock, block, world.getBlockState(newblockposition), updateFlag, 512); // send null chunk as chunk.k() returns false by this point } -@@ -579,6 +582,16 @@ public final class ItemStack { +@@ -583,6 +586,16 @@ public final class ItemStack { return this.isDamageableItem() && this.getDamageValue() > 0; } @@ -14329,7 +14331,7 @@ index b681ed94170d1d8bc7904b050cb20a609d266a3b..fcc433802d509ee210d781911cb79542 public int getDamageValue() { return this.tag == null ? 0 : this.tag.getInt("Damage"); } -@@ -598,7 +611,7 @@ public final class ItemStack { +@@ -602,7 +615,7 @@ public final class ItemStack { int j; if (amount > 0) { @@ -14338,7 +14340,7 @@ index b681ed94170d1d8bc7904b050cb20a609d266a3b..fcc433802d509ee210d781911cb79542 int k = 0; for (int l = 0; j > 0 && l < amount; ++l) { -@@ -653,6 +666,12 @@ public final class ItemStack { +@@ -657,6 +670,12 @@ public final class ItemStack { if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent breakCallback.accept(entity); Item item = this.getItem(); @@ -14351,7 +14353,7 @@ index b681ed94170d1d8bc7904b050cb20a609d266a3b..fcc433802d509ee210d781911cb79542 // CraftBukkit start - Check for item breaking if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) { org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((net.minecraft.world.entity.player.Player) entity, this); -@@ -1179,7 +1198,7 @@ public final class ItemStack { +@@ -1183,7 +1202,7 @@ public final class ItemStack { ListTag nbttaglist = this.tag.getList("Enchantments", 10); @@ -14360,7 +14362,7 @@ index b681ed94170d1d8bc7904b050cb20a609d266a3b..fcc433802d509ee210d781911cb79542 processEnchantOrder(this.tag); // Paper } -@@ -1187,6 +1206,12 @@ public final class ItemStack { +@@ -1191,6 +1210,12 @@ public final class ItemStack { return this.tag != null && this.tag.contains("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false; } @@ -14866,10 +14868,10 @@ index 2a7813209d664fd8c123488ce9c530b4440be163..63f397a5d90d7f05d17db2a5f57dbf1b Set set = Sets.newHashSet(); boolean flag = true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5efa854354796ff3b045947e1a430ef633b29b63..1928eb11489732308c7675302dc7ab5b31b056c6 100644 +index 8e84db48bb2658ce9d24c31f413aa23924839731..947619426529d747dbee477bfa8cfa5365ec8432 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -174,6 +174,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -175,6 +175,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Gale end - Gale configuration public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray @@ -14877,7 +14879,7 @@ index 5efa854354796ff3b045947e1a430ef633b29b63..1928eb11489732308c7675302dc7ab5b public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -193,6 +194,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -194,6 +195,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } // Paper end - fix and optimise world upgrading @@ -14927,7 +14929,7 @@ index 5efa854354796ff3b045947e1a430ef633b29b63..1928eb11489732308c7675302dc7ab5b public CraftWorld getWorld() { return this.world; } -@@ -286,6 +330,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -287,6 +331,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper this.galeConfig = galeWorldConfigCreator.apply(this.spigotConfig); // Gale - Gale configuration @@ -14936,7 +14938,7 @@ index 5efa854354796ff3b045947e1a430ef633b29b63..1928eb11489732308c7675302dc7ab5b this.generator = gen; this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); -@@ -1557,4 +1603,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1566,4 +1612,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } // Paper end @@ -17302,10 +17304,10 @@ index ffc76354ead6937daf366c3d87bcb51d3e4c47f5..5b98d42b5d6bc07265fbb017e51a6281 + // Purpur } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -index 0857c22236080df80d06e2c50eb43c9e05cc8d24..a0edd8d92ec536ecbd8405aa222cf23cc99e46b2 100644 +index c6129dc565b8f874b73e2fefcabd4be1c221fd73..07050f97621c0cb68b48bf39fb9c90673f7caf64 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -@@ -548,4 +548,213 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa +@@ -560,4 +560,213 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa manager.save(); } } @@ -17520,10 +17522,10 @@ index 0857c22236080df80d06e2c50eb43c9e05cc8d24..a0edd8d92ec536ecbd8405aa222cf23c + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 997b098c5e5d2e6b4742e4e387d0e84177b23f47..f00dc5b06519f2827a068649394e09ecbdf1a131 100644 +index 03455a6cf97b8bec5c84978fdae2c5cc5d27c7ff..cc34d64ae522f69d1d4cbd0be75c50e12e9371f1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -400,6 +400,20 @@ public final class CraftServer implements Server { +@@ -401,6 +401,20 @@ public final class CraftServer implements Server { this.dataPackManager = new CraftDataPackManager(this.getServer().getPackRepository()); Bukkit.setServer(this); @@ -17544,7 +17546,7 @@ index 997b098c5e5d2e6b4742e4e387d0e84177b23f47..f00dc5b06519f2827a068649394e09ec // Register all the Enchantments and PotionTypes now so we can stop new registration immediately after Enchantments.SHARPNESS.getClass(); -@@ -1061,6 +1075,7 @@ public final class CraftServer implements Server { +@@ -1062,6 +1076,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); this.console.galeConfigurations.reloadConfigs(this.console); // Gale - Gale configuration @@ -17552,7 +17554,7 @@ index 997b098c5e5d2e6b4742e4e387d0e84177b23f47..f00dc5b06519f2827a068649394e09ec for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -1076,6 +1091,7 @@ public final class CraftServer implements Server { +@@ -1077,6 +1092,7 @@ public final class CraftServer implements Server { } } world.spigotConfig.init(); // Spigot @@ -17560,7 +17562,7 @@ index 997b098c5e5d2e6b4742e4e387d0e84177b23f47..f00dc5b06519f2827a068649394e09ec } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -1091,6 +1107,7 @@ public final class CraftServer implements Server { +@@ -1092,6 +1108,7 @@ public final class CraftServer implements Server { this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper @@ -17568,7 +17570,7 @@ index 997b098c5e5d2e6b4742e4e387d0e84177b23f47..f00dc5b06519f2827a068649394e09ec this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -1531,6 +1548,55 @@ public final class CraftServer implements Server { +@@ -1556,6 +1573,55 @@ public final class CraftServer implements Server { return true; } @@ -17624,7 +17626,7 @@ index 997b098c5e5d2e6b4742e4e387d0e84177b23f47..f00dc5b06519f2827a068649394e09ec @Override public List getRecipesFor(ItemStack result) { Preconditions.checkArgument(result != null, "ItemStack cannot be null"); -@@ -2827,6 +2893,7 @@ public final class CraftServer implements Server { +@@ -2865,6 +2931,7 @@ public final class CraftServer implements Server { @Override public double[] getTPS() { return new double[] { @@ -17632,7 +17634,7 @@ index 997b098c5e5d2e6b4742e4e387d0e84177b23f47..f00dc5b06519f2827a068649394e09ec net.minecraft.server.MinecraftServer.getServer().tps1.getAverage(), net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(), net.minecraft.server.MinecraftServer.getServer().tps15.getAverage() -@@ -2919,6 +2986,18 @@ public final class CraftServer implements Server { +@@ -2957,6 +3024,18 @@ public final class CraftServer implements Server { } // Gale end - Gale configuration - API @@ -17651,7 +17653,7 @@ index 997b098c5e5d2e6b4742e4e387d0e84177b23f47..f00dc5b06519f2827a068649394e09ec @Override public void restart() { org.spigotmc.RestartCommand.restart(); -@@ -3150,4 +3229,15 @@ public final class CraftServer implements Server { +@@ -3188,4 +3267,15 @@ public final class CraftServer implements Server { } // Gale end - YAPFA - last tick time - API @@ -17721,7 +17723,7 @@ index 550dcb7d595221b221e4710890d8a3cad789fc07..f30c6e09adb3a6aa485357f859fc2a22 public PersistentDataContainer getPersistentDataContainer() { return this.persistentDataContainer; diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index b3d557dcd284a20ce9db569401e2d682b2904f4f..28792f259a94e5de652903abfef681cd440047b6 100644 +index 98eb3f64f9e057564ad041085d1676945a1ac182..89107a4aaecbb38fb061bc45d8a6d689a69c87fc 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -194,6 +194,20 @@ public class Main { @@ -17942,7 +17944,7 @@ index fc0dc8e607cc24020106ea1af92b4421a5f9393d..edd9fb7154d1082b3fe6d7b6e470f4f4 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 0f3e696582cd288357598490e8af0131ab30bdfc..355797357f1c1cfceb8dbc016ef1b675c9a0759a 100644 +index 5fe9a0985432ac6cdd28a2a138854a24f10e42ba..9163bb797a22daedbc822ecc2ad33683a2d8a022 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -266,6 +266,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -18126,10 +18128,10 @@ index 4d7a2c4c1001aefe9fcd4be8dbcb414f721bfff9..2c7716a9d65ebda209a144b82c2126b6 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index dbdeb913e228651cadf5dbd7ec98afc738c80522..95bc2947ac44fa46f11c528da7f241ba410b7eb6 100644 +index 5bbded65095dccfadaf7576fc41b5f62974878b4..cdbbdb3f5a8b43811c564d1444a2b102add3ba72 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -508,10 +508,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -510,10 +510,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setPlayerListName(String name) { @@ -18146,7 +18148,7 @@ index dbdeb913e228651cadf5dbd7ec98afc738c80522..95bc2947ac44fa46f11c528da7f241ba for (ServerPlayer player : (List) server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); -@@ -1341,6 +1346,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1343,6 +1348,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API @@ -18157,7 +18159,7 @@ index dbdeb913e228651cadf5dbd7ec98afc738c80522..95bc2947ac44fa46f11c528da7f241ba return false; } -@@ -2409,6 +2418,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2441,6 +2450,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().getAbilities().walkingSpeed * 2f; } @@ -18186,7 +18188,7 @@ index dbdeb913e228651cadf5dbd7ec98afc738c80522..95bc2947ac44fa46f11c528da7f241ba private void validateSpeed(float value) { Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value); } -@@ -3180,4 +3211,90 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3212,4 +3243,90 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end @@ -18359,10 +18361,10 @@ index e43fd3e59fd8c74828ae65965fade27f56beef65..b2f133c8baabba1cffa6e92ea0f85453 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index acb38f927c2418c91adf91c7b790ea6869835537..f1479e5a3cbccd34edfb22d3c1c3ea0a7438926b 100644 +index 26e1a9002d675245d4cf91e6682605314b078fb2..6db204dead67aac300410a6d2627cde8446630b5 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -565,6 +565,15 @@ public class CraftEventFactory { +@@ -590,6 +590,15 @@ public class CraftEventFactory { // Paper end craftServer.getPluginManager().callEvent(event); @@ -18378,7 +18380,7 @@ index acb38f927c2418c91adf91c7b790ea6869835537..f1479e5a3cbccd34edfb22d3c1c3ea0a return event; } -@@ -1005,6 +1014,7 @@ public class CraftEventFactory { +@@ -1031,6 +1040,7 @@ public class CraftEventFactory { damageCause = DamageCause.ENTITY_EXPLOSION; } event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions, source.isCritical()); // Paper - add critical damage API @@ -18386,7 +18388,7 @@ index acb38f927c2418c91adf91c7b790ea6869835537..f1479e5a3cbccd34edfb22d3c1c3ea0a } event.setCancelled(cancelled); -@@ -1119,6 +1129,7 @@ public class CraftEventFactory { +@@ -1145,6 +1155,7 @@ public class CraftEventFactory { } else { entity.lastDamageCancelled = true; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled } @@ -18394,7 +18396,7 @@ index acb38f927c2418c91adf91c7b790ea6869835537..f1479e5a3cbccd34edfb22d3c1c3ea0a return event; } -@@ -1182,6 +1193,7 @@ public class CraftEventFactory { +@@ -1208,6 +1219,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, critical); // Paper - add critical damage API @@ -18403,10 +18405,10 @@ index acb38f927c2418c91adf91c7b790ea6869835537..f1479e5a3cbccd34edfb22d3c1c3ea0a event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, modifiers, modifierFunctions); } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java -index 081e6c7ce4a0185ba75e48bbb581fd531cdb10a8..30d43b77424467b2525fc32d4c451e818ac46651 100644 +index 633e6f4922ccaf59979a22885162f42c65bf628a..15001e7c8eae3a89f9d8669be532d56b70d538ef 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java -@@ -180,8 +180,19 @@ public class CraftContainer extends AbstractContainerMenu { +@@ -181,8 +181,19 @@ public class CraftContainer extends AbstractContainerMenu { case PLAYER: case CHEST: case ENDER_CHEST: diff --git a/patches/server/0011-Purpur-Configurable-server-mod-name.patch b/patches/server/0011-Purpur-Configurable-server-mod-name.patch index a58befdf..46b486c0 100644 --- a/patches/server/0011-Purpur-Configurable-server-mod-name.patch +++ b/patches/server/0011-Purpur-Configurable-server-mod-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur: Configurable server mod name diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2758e02d6f3a66b2fdd47f1db69f71940ab7a81a..724c67fd1d534339d3006d92da613fec1efd42c9 100644 +index 1a6b8b764a762821e5b7b2342658df7bc09323c3..8f6dced165b6b35579f6efe4396864ae40a5a361 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1678,7 +1678,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 1.18.x update by Mojang. By removing this check, it enable hackers to use some modules of hack clients. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 468866fddd92eef313df413a1d0b94cfccf03469..c3529ae180349b7131e87bd41fbe06ea6aecf062 100644 +index fc43b6892f651af1cd6017aa15e07f60ae0be013..5fc20f52e33765c59fbdf77f0a5fe6aae485f245 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2046,7 +2046,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2048,7 +2048,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Vec3 vec3d2 = vec3d.subtract(vec3d1); double d0 = 1.0000001D; diff --git a/patches/server/0018-KeYi-Player-Skull-API.patch b/patches/server/0018-KeYi-Player-Skull-API.patch index 5354059e..e25a067f 100644 --- a/patches/server/0018-KeYi-Player-Skull-API.patch +++ b/patches/server/0018-KeYi-Player-Skull-API.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e21cd8c4015cd726bb10d51545d52c3010381848..517e20901356c162c499284fa294236ef22ccda4 100644 +index cdbbdb3f5a8b43811c564d1444a2b102add3ba72..01df6c21ea460fd0be1188088767dcb534db37ae 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -27,6 +27,11 @@ import java.util.Optional; +@@ -29,6 +29,11 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.WeakHashMap; @@ -22,7 +22,7 @@ index e21cd8c4015cd726bb10d51545d52c3010381848..517e20901356c162c499284fa294236e import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nullable; -@@ -162,6 +167,7 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; +@@ -164,6 +169,7 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.InventoryView.Property; import org.bukkit.inventory.ItemStack; @@ -30,7 +30,7 @@ index e21cd8c4015cd726bb10d51545d52c3010381848..517e20901356c162c499284fa294236e import org.bukkit.map.MapCursor; import org.bukkit.map.MapView; import org.bukkit.metadata.MetadataValue; -@@ -3297,4 +3303,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3329,4 +3335,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message))); } // Purpur end diff --git a/patches/server/0024-Slice-Smooth-Teleports.patch b/patches/server/0024-Slice-Smooth-Teleports.patch index cdaab020..b7926cc7 100644 --- a/patches/server/0024-Slice-Smooth-Teleports.patch +++ b/patches/server/0024-Slice-Smooth-Teleports.patch @@ -7,7 +7,7 @@ Original license: MIT Original project: https://github.com/Cryptite/Slice diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 227368ac352e14f4d9f32d3847162cff13f5cf9b..7dd1d1162844e0f1fe0eab022800d910ce1e5a7d 100644 +index 7eb08a51474fa0ead38c57ee7b486a68f47251ab..9bac4b009ae35f86b1a3fa0215620eb695d12752 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -283,6 +283,7 @@ public class ServerPlayer extends Player { @@ -19,7 +19,7 @@ index 227368ac352e14f4d9f32d3847162cff13f5cf9b..7dd1d1162844e0f1fe0eab022800d910 private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); public io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9a7a6bea60e85ffadb5b3f68d919f7032367f345..63eb73d075eb395b2ba9a2e4d4ff5914b3e8b627 100644 +index 155e5f5df5ba2d908f86d46fcff255469ba84597..0a927f938089e2d5dde9b3ab07e554d38014d118 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -945,12 +945,12 @@ public abstract class PlayerList { @@ -38,10 +38,10 @@ index 9a7a6bea60e85ffadb5b3f68d919f7032367f345..63eb73d075eb395b2ba9a2e4d4ff5914 // entityplayer1.connection.teleport(entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 04ababa56f9b0d93bae7c4c2972d82c5feeea231..e35b28d42dd34f00576efec526661817389a4b0c 100644 +index 01df6c21ea460fd0be1188088767dcb534db37ae..b9e3eadb481b07d339e92d1a9f6d7f0c91095f6a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1256,6 +1256,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1258,6 +1258,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end } diff --git a/patches/server/0028-Leaves-Jade-Protocol.patch b/patches/server/0028-Leaves-Jade-Protocol.patch index 70b28113..db9641b8 100644 --- a/patches/server/0028-Leaves-Jade-Protocol.patch +++ b/patches/server/0028-Leaves-Jade-Protocol.patch @@ -9,10 +9,10 @@ Original project: https://github.com/LeavesMC/Leaves This patch is Powered by Jade(https://github.com/Snownee/Jade) diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c3529ae180349b7131e87bd41fbe06ea6aecf062..94b763ef0125781173c7ad9a06e6d43b9f532a4d 100644 +index 5fc20f52e33765c59fbdf77f0a5fe6aae485f245..da8ae7fd90389d0e0d9f665fd496f856b81fa408 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -248,6 +248,7 @@ import org.bukkit.inventory.CraftingInventory; +@@ -250,6 +250,7 @@ import org.bukkit.inventory.CraftingInventory; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.SmithingInventory; @@ -20,7 +20,7 @@ index c3529ae180349b7131e87bd41fbe06ea6aecf062..94b763ef0125781173c7ad9a06e6d43b // CraftBukkit end public class ServerGamePacketListenerImpl implements ServerPlayerConnection, TickablePacketListener, ServerGamePacketListener { -@@ -3695,6 +3696,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3721,6 +3722,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper end this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data); @@ -31,7 +31,7 @@ index c3529ae180349b7131e87bd41fbe06ea6aecf062..94b763ef0125781173c7ad9a06e6d43b ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 63eb73d075eb395b2ba9a2e4d4ff5914b3e8b627..ba3278bde95344852bed678438a51dd5596892e2 100644 +index 0a927f938089e2d5dde9b3ab07e554d38014d118..847db9e18f0eebece00d49076ee8fababcd0c700 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,8 @@ public abstract class PlayerList { @@ -57,10 +57,10 @@ index e91b4d63d42276f8a498cab7c439c785730f3f6f..a2d7c5008c6d6716d9530e00de0db027 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f00dc5b06519f2827a068649394e09ecbdf1a131..c3d4eafb353448059932bd0065a6e5ab56feac45 100644 +index cc34d64ae522f69d1d4cbd0be75c50e12e9371f1..98b31a9e7e5bad4cfa1f21afd6eb77dc3ea346ec 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -483,6 +483,7 @@ public final class CraftServer implements Server { +@@ -484,6 +484,7 @@ public final class CraftServer implements Server { MapPalette.setMapColorCache(new CraftMapColorCache(this.logger)); } datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper @@ -68,7 +68,7 @@ index f00dc5b06519f2827a068649394e09ecbdf1a131..c3d4eafb353448059932bd0065a6e5ab } public boolean getCommandBlockOverride(String command) { -@@ -1076,6 +1077,11 @@ public final class CraftServer implements Server { +@@ -1077,6 +1078,11 @@ public final class CraftServer implements Server { this.console.paperConfigurations.reloadConfigs(this.console); this.console.galeConfigurations.reloadConfigs(this.console); // Gale - Gale configuration org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur diff --git a/patches/server/0029-Leaves-Appleskin-Protocol.patch b/patches/server/0029-Leaves-Appleskin-Protocol.patch index 8536f425..1600c77b 100644 --- a/patches/server/0029-Leaves-Appleskin-Protocol.patch +++ b/patches/server/0029-Leaves-Appleskin-Protocol.patch @@ -7,10 +7,10 @@ Original license: GPLv3 Original project: https://github.com/LeavesMC/Leaves diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 724c67fd1d534339d3006d92da613fec1efd42c9..89ed7ae9546f3ff76fb7d3114b9bebdceebfaa3b 100644 +index 8f6dced165b6b35579f6efe4396864ae40a5a361..916362c7cdef8415b416d21b17d44b713f6e3160 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1586,6 +1586,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop