diff --git a/gradle.properties b/gradle.properties index ce6c1ed5c..3fa175ad9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ version = 1.18-pre8-R0.1-SNAPSHOT mcVersion = 1.18-pre8 packageVersion = 1_18_R1 -paperCommit = cadb66410d4ccd069f380ac68d5897bce4b09c9a +paperCommit = 91936884865c893bd4a271b705e8e4d0266443e4 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0005-Ridables.patch b/patches/api/0005-Ridables.patch index 5210e3b38..26f8ecd57 100644 --- a/patches/api/0005-Ridables.patch +++ b/patches/api/0005-Ridables.patch @@ -173,12 +173,12 @@ index 0000000000000000000000000000000000000000..c0ec5a130985e8da4cc9e596a6b70503 + } +} diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 18795003815d5bb6e04a15256430f69a31b2ace5..0de88cfff94a17ff41d28b569b8d283ad8bf0b49 100644 +index bafad5764cc3933fcd9602d37bd2e68424cbd575..f1740d0d50e251fa029f22eeaacf2a68b3cd2e96 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -768,4 +768,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -795,4 +795,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ - @NotNull Set getTrackedPlayers(); + public boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason); // Paper end + + // Purpur start diff --git a/patches/api/0027-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0027-Fix-javadoc-warnings-missing-param-and-return.patch index 31085db5e..937aa10ea 100644 --- a/patches/api/0027-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0027-Fix-javadoc-warnings-missing-param-and-return.patch @@ -503,7 +503,7 @@ index 1910f88c155c6d19d02494e4fea2b86509235e5a..7e138e0b7d9c0ced83911035c1d8a956 @NotNull diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index c8c2e5bc2ec1d8d7ea445a1203c9d5a904dfc666..61f682f068749de11320e7b02244fbe6aeb38888 100644 +index 014c9984018ad5e51a26228a137e1ba4eb3e80c8..a39c0da1663f53b828bb35e662dd81df63b9d045 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -87,6 +87,8 @@ public interface UnsafeValues { @@ -515,7 +515,7 @@ index c8c2e5bc2ec1d8d7ea445a1203c9d5a904dfc666..61f682f068749de11320e7b02244fbe6 */ default com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { return new com.destroystokyo.paper.util.VersionFetcher.DummyVersionFetcher(); -@@ -105,6 +107,8 @@ public interface UnsafeValues { +@@ -113,6 +115,8 @@ public interface UnsafeValues { /** * Return the translation key for the Material, so the client can translate it into the active * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. @@ -524,7 +524,7 @@ index c8c2e5bc2ec1d8d7ea445a1203c9d5a904dfc666..61f682f068749de11320e7b02244fbe6 * @return the translation key */ String getTranslationKey(Material mat); -@@ -112,6 +116,8 @@ public interface UnsafeValues { +@@ -120,6 +124,8 @@ public interface UnsafeValues { /** * Return the translation key for the Block, so the client can translate it into the active * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. @@ -533,7 +533,7 @@ index c8c2e5bc2ec1d8d7ea445a1203c9d5a904dfc666..61f682f068749de11320e7b02244fbe6 * @return the translation key */ String getTranslationKey(org.bukkit.block.Block block); -@@ -120,6 +126,8 @@ public interface UnsafeValues { +@@ -128,6 +134,8 @@ public interface UnsafeValues { * Return the translation key for the EntityType, so the client can translate it into the active * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}.
* This is null, when the EntityType isn't known to NMS (custom entities) @@ -542,7 +542,7 @@ index c8c2e5bc2ec1d8d7ea445a1203c9d5a904dfc666..61f682f068749de11320e7b02244fbe6 * @return the translation key */ String getTranslationKey(org.bukkit.entity.EntityType type); -@@ -135,6 +143,8 @@ public interface UnsafeValues { +@@ -143,6 +151,8 @@ public interface UnsafeValues { * Creates and returns the next EntityId available. *

* Use this when sending custom packets, so that there are no collisions on the client or server. @@ -787,7 +787,7 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..f76ddd80f9fc926f73b1cc50f0a2767a /** diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 0de88cfff94a17ff41d28b569b8d283ad8bf0b49..55a40189d92b2bdf60023c1cc6096cc37dbb1630 100644 +index f1740d0d50e251fa029f22eeaacf2a68b3cd2e96..6fdb484f7eda40155898849cb5ae963f75fafa40 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -668,6 +668,9 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/api/0035-API-for-any-mob-to-burn-daylight.patch b/patches/api/0035-API-for-any-mob-to-burn-daylight.patch index 6c3992d21..7ddacd47b 100644 --- a/patches/api/0035-API-for-any-mob-to-burn-daylight.patch +++ b/patches/api/0035-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 55a40189d92b2bdf60023c1cc6096cc37dbb1630..037b6923f6e548619e5d196b6fa93bfb0dcab8a1 100644 +index 6fdb484f7eda40155898849cb5ae963f75fafa40..52b3ba61bd58bdee339ecabeb047564aeaa46bdc 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -815,5 +815,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -842,5 +842,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return True if ridable in water */ boolean isRidableInWater(); diff --git a/patches/server/0002-Rebrand.patch b/patches/server/0002-Rebrand.patch index 795d92152..6456f033d 100644 --- a/patches/server/0002-Rebrand.patch +++ b/patches/server/0002-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index 7d69f9e39361644796895254dfa518ef83d9e578..79bfdabe48fbc4caae7745a1b7d6678cc00fa169 100644 +index e572f524046d4799adec7f08b1609d82a64ab94f..19a16f6689c68854fa91978da71debea3472b87a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,8 +19,8 @@ repositories { @@ -19,16 +19,16 @@ index 7d69f9e39361644796895254dfa518ef83d9e578..79bfdabe48fbc4caae7745a1b7d6678c // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -49,6 +49,8 @@ dependencies { - runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.0") +@@ -50,6 +50,8 @@ dependencies { implementation("net.fabricmc:mapping-io:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation + implementation("com.velocitypowered:velocity-native:1.1.0-SNAPSHOT") // Paper + implementation("cat.inspiracio:rhino-js-engine:1.7.7.1") // Purpur + implementation("dev.omega24:upnp4j:1.0") // Purpur testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("junit:junit:4.13.1") -@@ -67,7 +69,7 @@ tasks.jar { +@@ -68,7 +70,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -37,7 +37,7 @@ index 7d69f9e39361644796895254dfa518ef83d9e578..79bfdabe48fbc4caae7745a1b7d6678c "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -159,7 +161,7 @@ fun TaskContainer.registerRunTask( +@@ -160,7 +162,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -113,10 +113,10 @@ index e0b1f0671d16ddddcb6725acd25a1d1d69e42701..8c3c68465197fafc14849dc38a572e30 .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 983bc6b8600489696899b5aaa09e7f7b674d2e42..3a17733fc6d6cf7e9a792a65e8d9565209640b87 100644 +index 309e960ba7678e09d7eb7af11f57e5c3ff4f3d9e..0a98fddbccd2733bb4fbf6d429d934579566257e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1615,7 +1615,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop resourcekey, final DimensionType dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env) { this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper diff --git a/patches/server/0004-Purpur-client-support.patch b/patches/server/0004-Purpur-client-support.patch index 3f73fcbaf..233b3d794 100644 --- a/patches/server/0004-Purpur-client-support.patch +++ b/patches/server/0004-Purpur-client-support.patch @@ -5,22 +5,22 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a6ec320bdca4a1c6e23461cd10a6f7bed681f243..87a15e63671f9e22283745b04af5e23e8296984f 100644 +index b6f9c99d580d985f2b84efaa655d9ae40073e72b..c856b38b49969f6eb0b2a82bff6d80967857643d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -252,6 +252,7 @@ public class ServerPlayer extends Player { +@@ -254,6 +254,7 @@ public class ServerPlayer extends Player { public Integer clientViewDistance; // CraftBukkit end public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper + public boolean purpurClient = false; // Purpur + public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper - public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7b6cf326dfab9bd0b13dfc330d143d2efeea9aa1..0d4315c4a2a9703f63bbebacd10209a904833749 100644 +index 3eba6962040f33b7b31b16c9de22d90f225710b4..23074f0b00cde60e3a42335c7aa3eb4f6162d44d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3053,6 +3053,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3058,6 +3058,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support @@ -28,7 +28,7 @@ index 7b6cf326dfab9bd0b13dfc330d143d2efeea9aa1..0d4315c4a2a9703f63bbebacd10209a9 @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -@@ -3077,6 +3078,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3082,6 +3083,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser 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 } @@ -43,10 +43,10 @@ index 7b6cf326dfab9bd0b13dfc330d143d2efeea9aa1..0d4315c4a2a9703f63bbebacd10209a9 try { byte[] data = new byte[packet.data.readableBytes()]; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9b136a877ff07262b1694c6cad43da756602384e..3efa7e395d05386e095ff2fd04d9012285599473 100644 +index bc529afc8aff97b620209332aa2a4c8111075d62..653f038a76ac6a0674fbfbe193d38a15105224a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2520,4 +2520,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2530,4 +2530,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end diff --git a/patches/server/0005-Component-related-conveniences.patch b/patches/server/0005-Component-related-conveniences.patch index 2b2ecfa6d..4410f5fcf 100644 --- a/patches/server/0005-Component-related-conveniences.patch +++ b/patches/server/0005-Component-related-conveniences.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Component related conveniences diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 87a15e63671f9e22283745b04af5e23e8296984f..ba31b14bf27fe43eeacf067755ecf45dd50d3ff5 100644 +index c856b38b49969f6eb0b2a82bff6d80967857643d..ed8b90e90dc4878bce9eecbbf944f5264630f6bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1663,6 +1663,26 @@ public class ServerPlayer extends Player { +@@ -1693,6 +1693,26 @@ public class ServerPlayer extends Player { } // CraftBukkit end @@ -36,10 +36,10 @@ index 87a15e63671f9e22283745b04af5e23e8296984f..ba31b14bf27fe43eeacf067755ecf45d public void displayClientMessage(Component message, boolean actionBar) { this.sendMessage(message, actionBar ? ChatType.GAME_INFO : ChatType.CHAT, Util.NIL_UUID); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index dca3b995c02507e5df299abe60f518480ce56d21..50bdaf7edc14f6de7ed5562df9d6ed424a022f80 100644 +index f90eea21300746ef510e6dccc1eda9cca6ac5a64..0e647bb7b4efefe8a56d8b9c01f747feea700e96 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1359,6 +1359,62 @@ public abstract class PlayerList { +@@ -1372,6 +1372,62 @@ public abstract class PlayerList { } // CraftBukkit end @@ -103,10 +103,10 @@ index dca3b995c02507e5df299abe60f518480ce56d21..50bdaf7edc14f6de7ed5562df9d6ed42 this.server.sendMessage(message, sender); Iterator iterator = this.players.iterator(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index dcfc726ab96dccc05848219e824ad7612dbfbdab..30f11e94e18222bb69c4c69f688923ef62877a8e 100644 +index 3febcc7e88b74d4bdb45e633fdaa9d3313a6ae0b..23c17a1ebb63290168b2b67f2dbeb7741c368e7b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3378,6 +3378,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -3514,6 +3514,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i return SlotAccess.NULL; } diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index ee596b4c4..b9aa5bb13 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ridables diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 0dcf75c5c792650d7a5b9354222df16bcd1cfbd2..d3d8fa34f89534c057f4e5c7f93da956c349a369 100644 +index 14610e6144ec144ebbec6fb0945c67bb0ea86795..6833eb5dc7aa64bef1b3b38de5e282bdf1e10ec7 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -41,6 +41,12 @@ public class BlockPos extends Vec3i { @@ -22,10 +22,10 @@ index 0dcf75c5c792650d7a5b9354222df16bcd1cfbd2..d3d8fa34f89534c057f4e5c7f93da956 super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3a17733fc6d6cf7e9a792a65e8d9565209640b87..3ab79c0a12d0e6e91578e8649c7157122086bf25 100644 +index 0a98fddbccd2733bb4fbf6d429d934579566257e..da7a83973afe93bfeab947b412a2839a3146b0af 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1493,6 +1493,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper @@ -34,10 +34,10 @@ index 3a17733fc6d6cf7e9a792a65e8d9565209640b87..3ab79c0a12d0e6e91578e8649c715712 this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b8e7f70f4ee1b28635537e04f7bd0d0cd6afb4b3..e0d8702b0e758367955813b92b6a72572f23ea86 100644 +index 1cf809480d9ad7dd24c697d79621106544d32146..338fa80f3fde1918b8ccf23c017d386719d7ead8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -206,6 +206,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -208,6 +208,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper public boolean hasEntityMoveEvent = false; // Paper @@ -46,10 +46,10 @@ index b8e7f70f4ee1b28635537e04f7bd0d0cd6afb4b3..e0d8702b0e758367955813b92b6a7257 return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ba31b14bf27fe43eeacf067755ecf45dd50d3ff5..bd0363b1c2d0604841c7d8161733281d7898110a 100644 +index ed8b90e90dc4878bce9eecbbf944f5264630f6bb..e38a9ff1024669a5ea9c45a7f33c606167f15f9a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -644,6 +644,15 @@ public class ServerPlayer extends Player { +@@ -662,6 +662,15 @@ public class ServerPlayer extends Player { this.trackStartFallingPosition(); this.trackEnteredOrExitedLavaOnVehicle(); this.advancements.flushDirty(this); @@ -65,7 +65,7 @@ index ba31b14bf27fe43eeacf067755ecf45dd50d3ff5..bd0363b1c2d0604841c7d8161733281d } public void doTick() { -@@ -2428,4 +2437,6 @@ public class ServerPlayer extends Player { +@@ -2458,4 +2467,6 @@ public class ServerPlayer extends Player { return (CraftPlayer) super.getBukkitEntity(); } // CraftBukkit end @@ -73,10 +73,10 @@ index ba31b14bf27fe43eeacf067755ecf45dd50d3ff5..bd0363b1c2d0604841c7d8161733281d + } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0d4315c4a2a9703f63bbebacd10209a904833749..9f1bba2736648ea323390fd0442826fc3e561b68 100644 +index 23074f0b00cde60e3a42335c7aa3eb4f6162d44d..56015828fe1f0bf66eefa41164e58cc4ebe59f20 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2364,6 +2364,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2369,6 +2369,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -86,10 +86,10 @@ index 0d4315c4a2a9703f63bbebacd10209a904833749..9f1bba2736648ea323390fd0442826fc if ((entity instanceof AbstractFish && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((AbstractFish) entity)); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 30f11e94e18222bb69c4c69f688923ef62877a8e..e1a0efe5437aa3709a8fb93cf1f97b262a2ad3ee 100644 +index 23c17a1ebb63290168b2b67f2dbeb7741c368e7b..20930c864ee1cb39367b5515dc8579f31d40ad21 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -229,7 +229,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i public float yRotO; public float xRotO; private AABB bb; @@ -98,7 +98,7 @@ index 30f11e94e18222bb69c4c69f688923ef62877a8e..e1a0efe5437aa3709a8fb93cf1f97b26 public boolean horizontalCollision; public boolean verticalCollision; public boolean minorHorizontalCollision; -@@ -291,7 +291,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -292,7 +292,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i private final Set tags; private final double[] pistonDeltas; private long pistonDeltasGameTime; @@ -107,7 +107,7 @@ index 30f11e94e18222bb69c4c69f688923ef62877a8e..e1a0efe5437aa3709a8fb93cf1f97b26 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -2393,6 +2393,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -2529,6 +2529,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i this.passengers = ImmutableList.copyOf(list); } @@ -120,7 +120,7 @@ index 30f11e94e18222bb69c4c69f688923ef62877a8e..e1a0efe5437aa3709a8fb93cf1f97b26 } return true; // CraftBukkit } -@@ -2433,6 +2439,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -2569,6 +2575,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i return false; } // Spigot end @@ -135,7 +135,7 @@ index 30f11e94e18222bb69c4c69f688923ef62877a8e..e1a0efe5437aa3709a8fb93cf1f97b26 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4049,4 +4063,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -4189,4 +4203,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -201,7 +201,7 @@ index 645c1dc9bd09b135a641759c76ce8d957b9bd488..03adc3b746e05bb4b0514ba4a66c101b protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index beebd31d7a82a4edae0e2e7c5890cd13fbb6c4df..0ec390a471441c094ce543c4590d3d7fa8b989a1 100644 +index 62daf918d4ab00963041ca869ae718f14f2e3337..0dfd5a179fe3e409c159e2a79be58ad942be06a8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity { @@ -220,13 +220,13 @@ index beebd31d7a82a4edae0e2e7c5890cd13fbb6c4df..0ec390a471441c094ce543c4590d3d7f @@ -2571,7 +2571,7 @@ public abstract class LivingEntity extends Entity { } - protected long lastJumpTime = 0L; // Paper - add critical damage API + protected long lastJumpTime = 0L; // Paper - protected void jumpFromGround() { + public void jumpFromGround() { // Purpur - protected -> public double d0 = (double) this.getJumpPower() + this.getJumpBoostPower(); Vec3 vec3d = this.getDeltaMovement(); - // Paper start - add critical damage API -@@ -3236,8 +3236,10 @@ public abstract class LivingEntity extends Entity { + // Paper start +@@ -3237,8 +3237,10 @@ public abstract class LivingEntity extends Entity { this.pushEntities(); this.level.getProfiler().pop(); // Paper start @@ -239,7 +239,7 @@ index beebd31d7a82a4edae0e2e7c5890cd13fbb6c4df..0ec390a471441c094ce543c4590d3d7f Location from = new Location(this.level.getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO); Location to = new Location (this.level.getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone()); -@@ -3247,6 +3249,21 @@ public abstract class LivingEntity extends Entity { +@@ -3248,6 +3250,21 @@ public abstract class LivingEntity extends Entity { absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch()); } } @@ -262,7 +262,7 @@ index beebd31d7a82a4edae0e2e7c5890cd13fbb6c4df..0ec390a471441c094ce543c4590d3d7f // Paper end if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 697c2663c4deeb8f2ad603c979ab0884ac027930..eef0785745914d5ba4787c17b6f0c2c4415dc970 100644 +index 0b46066d35d9bb38d98a9d6e5ca8dbdc0ba1dc5a..79719f259090da6f41a75ac4910e925ce66d067b 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -143,6 +143,8 @@ public abstract class Mob extends LivingEntity { @@ -274,7 +274,7 @@ index 697c2663c4deeb8f2ad603c979ab0884ac027930..eef0785745914d5ba4787c17b6f0c2c4 this.jumpControl = new JumpControl(this); this.bodyRotationControl = this.createBodyControl(); this.navigation = this.createNavigation(world); -@@ -1293,7 +1295,7 @@ public abstract class Mob extends LivingEntity { +@@ -1298,7 +1300,7 @@ public abstract class Mob extends LivingEntity { protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected InteractionResult mobInteract(Player player, InteractionHand hand) { @@ -283,7 +283,7 @@ index 697c2663c4deeb8f2ad603c979ab0884ac027930..eef0785745914d5ba4787c17b6f0c2c4 } public boolean isWithinRestriction() { -@@ -1654,4 +1656,52 @@ public abstract class Mob extends LivingEntity { +@@ -1659,4 +1661,52 @@ public abstract class Mob extends LivingEntity { return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); } @@ -573,7 +573,7 @@ index 29dfbcecfbb2560e6ecde997abd5224a16c08c94..4a534357889892b57cff818f4dbd0007 BlockPos blockposition = this.blockPosition(); BlockPos blockposition1 = blockposition.above(); diff --git a/src/main/java/net/minecraft/world/entity/animal/AbstractFish.java b/src/main/java/net/minecraft/world/entity/animal/AbstractFish.java -index 58428eebf24e328b3faf32ca473be8f19d4f6cca..f54bca7ad5b6e70f0080a6db061b88b5eaee6f53 100644 +index 3484defdfd5a487b11917310d7b1d1543291eee1..ffdb9d3bf5bb3f88b0d8c89be5d19cc0225b5544 100644 --- a/src/main/java/net/minecraft/world/entity/animal/AbstractFish.java +++ b/src/main/java/net/minecraft/world/entity/animal/AbstractFish.java @@ -99,12 +99,9 @@ public abstract class AbstractFish extends WaterAnimal implements Bucketable { @@ -1895,7 +1895,7 @@ index 4745086ccacfb9863df1979c2d098cb5d81f1535..d78947aa30e4eebca67b94614ec0e2ac return "entity.minecraft.tropical_fish.predefined." + variant; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 60e1111f3c2c43398f21c541248f38524f41f4fb..a318f1080a5406ec159fb2d1105b2e51ee3a8be5 100644 +index 56e9c0d15249562ebea8eb451d4bcc9ff5e7d594..320f02f310fc1da2e5f41d0febd1ccfb48e0c4ea 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -86,6 +86,18 @@ public class Turtle extends Animal { @@ -1915,7 +1915,7 @@ index 60e1111f3c2c43398f21c541248f38524f41f4fb..a318f1080a5406ec159fb2d1105b2e51 + // Purpur end + public void setHomePos(BlockPos pos) { - this.entityData.set(Turtle.HOME_POS, pos); + this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos... } @@ -188,6 +200,7 @@ public class Turtle extends Animal { @@ -2012,7 +2012,7 @@ index 4797c34872f8fa2fba00172357c4f45e45cfe27f..3240a1b0759e4d1f189ff769519b4496 this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this)); this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 67bb476693fa16aa391c120f8acae7c7279efc20..fc731dc27a1f3ae61e3fb0b6d76845465eaf8ea9 100644 +index 86acf89ce875e215da8469947b382f70e42314b0..0667003613d3205eab3e729a297ba14d37ba3d22 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -91,6 +91,23 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -4460,7 +4460,7 @@ index 642279bb7e15db9f662094ffd6ded2e3c7af3fd6..ab648e7dafd78f414646cef96b422e87 this.setTradingPlayer(player); this.openTradingScreen(player, this.getDisplayName(), 1); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index b6f8e94df86c174569ccbc69cfd031cc08271dd3..4b574df4bfe3e1f1bfa58439baa01a369365b05c 100644 +index 4e6364bea8f464bef690b8cc8f25a80ee699ed5a..24b9343a2dedbbe6aad4048e5a05ae6e610ad5ba 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -191,6 +191,19 @@ public abstract class Player extends LivingEntity { @@ -5706,11 +5706,11 @@ index 0000000000000000000000000000000000000000..8eefb7b7eb33aecf48ac206d3f0139e0 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index ee50ea695585639d0ff184b675f3fb3b205b9f86..426b5b0dc16e86bcbc113bb3123fde9e841de5d8 100644 +index 5aae88e20bc04560d6ad52cfcaa872d28bfcee8f..1ba59900ddf403453aeb4f82b097feaab3dae3ff 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1277,4 +1277,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - return set; +@@ -1287,4 +1287,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return !entity.valid && entity.level.addFreshEntity(entity, reason); } // Paper end + diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0007-Configurable-entity-base-attributes.patch index b054dc953..692c424ee 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0007-Configurable-entity-base-attributes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e1a0efe5437aa3709a8fb93cf1f97b262a2ad3ee..c61cc35d3f12aaf1aa7b37f5ee1d0fc7dcd6bb01 100644 +index 20930c864ee1cb39367b5515dc8579f31d40ad21..1582bba7fa315c539cf8b57ae8b760d74091b6ed 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -148,7 +148,7 @@ import org.bukkit.plugin.PluginManager; +@@ -149,7 +149,7 @@ import org.bukkit.plugin.PluginManager; // CraftBukkit end public abstract class Entity implements Nameable, EntityAccess, CommandSource, io.papermc.paper.util.KeyedObject { // Paper @@ -34,7 +34,7 @@ index 03adc3b746e05bb4b0514ba4a66c101b9742ceed..ec261673ac444fd5de9c8556cde5d788 @Override diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0ec390a471441c094ce543c4590d3d7fa8b989a1..8780eed3ee4ba8ffb72e411d47dbd6fb3337d8d2 100644 +index 0dfd5a179fe3e409c159e2a79be58ad942be06a8..d181752a909305d4fc18c399f831276e8e646ea3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -285,6 +285,7 @@ public abstract class LivingEntity extends Entity { @@ -427,7 +427,7 @@ index d78947aa30e4eebca67b94614ec0e2ac9afca36d..2de2dc96b7f5960d4cef3184c14409e0 public static String getPredefinedName(int variant) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index a318f1080a5406ec159fb2d1105b2e51ee3a8be5..a1cb8792af3bd10cc0decf230e96e87ee808fcfd 100644 +index 320f02f310fc1da2e5f41d0febd1ccfb48e0c4ea..730f0fdf968554e9e306ad984d6bd01861402705 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -96,6 +96,11 @@ public class Turtle extends Animal { @@ -459,7 +459,7 @@ index 3240a1b0759e4d1f189ff769519b4496af0657be..da7b3b5d683a3d48bb1726981a639997 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index fc731dc27a1f3ae61e3fb0b6d76845465eaf8ea9..3b9a9a8e591191d6f6e2fdb02634deca7331fe77 100644 +index 0667003613d3205eab3e729a297ba14d37ba3d22..f88f979cc66bf85ad3f1458581a82b0ed91c3f16 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -106,6 +106,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { diff --git a/patches/server/0008-Timings-stuff.patch b/patches/server/0008-Timings-stuff.patch index ae7caba58..d4ee458e7 100644 --- a/patches/server/0008-Timings-stuff.patch +++ b/patches/server/0008-Timings-stuff.patch @@ -46,10 +46,10 @@ index ee53453440177537fc653ea156785d7591498614..b4ccd80663feed1b1e9d02806dcffd0b JSONObject object = new JSONObject(); diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index ce2cc249439d525d2089302f3febde758aa96929..3672c289c108cf82fb198bdaf81b878a7581b32f 100644 +index cdf0f5cafd39a874ea09fdb35b237e3c59c226d9..8087c4d63f1d5768dd786a152eca5d00231fe529 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java -@@ -228,7 +228,7 @@ public class PaperConfig { +@@ -233,7 +233,7 @@ public class PaperConfig { private static void timings() { boolean timings = getBoolean("timings.enabled", true); boolean verboseTimings = getBoolean("timings.verbose", true); diff --git a/patches/server/0011-AFK-API.patch b/patches/server/0011-AFK-API.patch index f0f029867..6a2b4368c 100644 --- a/patches/server/0011-AFK-API.patch +++ b/patches/server/0011-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index bd0363b1c2d0604841c7d8161733281d7898110a..86f012e54a8c2778c535b2b13584705419037b8c 100644 +index e38a9ff1024669a5ea9c45a7f33c606167f15f9a..e29c9e10e98f2333ad38fd7d957d8a36304f3cba 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1939,8 +1939,58 @@ public class ServerPlayer extends Player { +@@ -1969,8 +1969,58 @@ public class ServerPlayer extends Player { public void resetLastActionTime() { this.lastActionTime = Util.getMillis(); @@ -68,7 +68,7 @@ index bd0363b1c2d0604841c7d8161733281d7898110a..86f012e54a8c2778c535b2b135847054 return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9f1bba2736648ea323390fd0442826fc3e561b68..49a769dc5d38cfc29fe824c7f94917f5597cdbca 100644 +index 56015828fe1f0bf66eefa41164e58cc4ebe59f20..c1bbe2786b98649ae7882a05070f2bdad813d7b4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -293,6 +293,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -114,7 +114,7 @@ index 9f1bba2736648ea323390fd0442826fc3e561b68..49a769dc5d38cfc29fe824c7f94917f5 // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1385,7 +1407,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1390,7 +1412,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser if (!this.player.isChangingDimension() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot flag1 = true; @@ -123,7 +123,7 @@ index 9f1bba2736648ea323390fd0442826fc3e561b68..49a769dc5d38cfc29fe824c7f94917f5 } this.player.absMoveTo(d0, d1, d2, f, f1); -@@ -1424,6 +1446,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1429,6 +1451,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -182,7 +182,7 @@ index a7575b5ef56af6f53448d391abb4956e130148ca..0a9e4dc5d6d567605c587df9bcbb57d3 if (baseEntity == null) { if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level.getDifficulty() == Difficulty.PEACEFUL)) { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 4b574df4bfe3e1f1bfa58439baa01a369365b05c..cf0e43f835073deb58945e24c9d5f0bc66aaaaf1 100644 +index 24b9343a2dedbbe6aad4048e5a05ae6e610ad5ba..adc094f20ed8bb4c531b06eb2e78bebd3faff578 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -194,6 +194,13 @@ public abstract class Player extends LivingEntity { @@ -200,10 +200,10 @@ index 4b574df4bfe3e1f1bfa58439baa01a369365b05c..cf0e43f835073deb58945e24c9d5f0bc public boolean processClick(InteractionHand hand) { Entity vehicle = getRootVehicle(); diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index bc3bfe8d3c2f87e2e9f167b9ff34d9ca8a696391..5232aa033e37c7b707c348431a4520c56f25f6f9 100644 +index 30276959c0119813c27ee3f98e237c93236e5b39..385cccecdddde4abd5c6525aa6404eb2078c3432 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java -@@ -145,7 +145,7 @@ public interface EntityGetter { +@@ -157,7 +157,7 @@ public interface EntityGetter { default boolean hasNearbyAlivePlayer(double x, double y, double z, double range) { for(Player player : this.players()) { @@ -263,7 +263,7 @@ index 20215510857b8e49ea0c93d35eddfbad7cd355b0..996171e7271e62e72c0b2b213c21caf5 public boolean untamedTamablesAreRidable = true; public boolean useNightVisionWhenRiding = false; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3efa7e395d05386e095ff2fd04d9012285599473..5262508601274de1106300f8a90518205814b273 100644 +index 653f038a76ac6a0674fbfbe193d38a15105224a2..281cb1b19a2e05d18352f612a74097e4454ab2f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -427,10 +427,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -283,7 +283,7 @@ index 3efa7e395d05386e095ff2fd04d9012285599473..5262508601274de1106300f8a9051820 for (ServerPlayer player : (List) server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { player.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); -@@ -2526,5 +2531,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2536,5 +2541,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean usesPurpurClient() { return getHandle().purpurClient; } @@ -305,7 +305,7 @@ index 3efa7e395d05386e095ff2fd04d9012285599473..5262508601274de1106300f8a9051820 // Purpur end } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index e0302f82356e8cba848aa8cec1e821e02abbd6f6..3c05a09820491ebdfaad0e922b73ed0403ce04c2 100644 +index 72400204fbeea41e4af8d3a0d5eef6f2e75e7518..7e1bc869299cd2f382f05bb814946e6841cc845e 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -194,6 +194,7 @@ public class ActivationRange diff --git a/patches/server/0013-Configurable-server-mod-name.patch b/patches/server/0013-Configurable-server-mod-name.patch index 9cfb7a811..a2f62fe1e 100644 --- a/patches/server/0013-Configurable-server-mod-name.patch +++ b/patches/server/0013-Configurable-server-mod-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] 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 3ab79c0a12d0e6e91578e8649c7157122086bf25..6c7efdf64af09a9ec87338b313a10904a9afdda7 100644 +index da7a83973afe93bfeab947b412a2839a3146b0af..2ffc5d9c145cdf53baa8db260f03660a76db78c5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1616,7 +1616,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop cachedSingleHashSet; // Paper - public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event -@@ -328,6 +329,7 @@ public class ServerPlayer extends Player { +@@ -331,6 +332,7 @@ public class ServerPlayer extends Player { this.bukkitPickUpLoot = true; this.maxHealthCache = this.getMaxHealth(); this.cachedSingleMobDistanceMap = new com.destroystokyo.paper.util.PooledHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper + this.spawnInvulnerableTime = world.purpurConfig.playerSpawnInvulnerableTicks; // Purpur } - - // Yes, this doesn't match Vanilla, but it's the best we can do for now. -@@ -987,6 +989,12 @@ public class ServerPlayer extends Player { + // Paper start - Chunk priority + public BlockPos getPointInFront(double inFront) { +@@ -1005,6 +1007,12 @@ public class ServerPlayer extends Player { } @@ -37,7 +37,7 @@ index 86f012e54a8c2778c535b2b13584705419037b8c..076456d3dcd38333978eec06077c7231 @Override public boolean hurt(DamageSource source, float amount) { if (this.isInvulnerableTo(source)) { -@@ -994,7 +1002,7 @@ public class ServerPlayer extends Player { +@@ -1012,7 +1020,7 @@ public class ServerPlayer extends Player { } else { boolean flag = this.server.isDedicatedServer() && this.isPvpAllowed() && "fall".equals(source.msgId); @@ -46,7 +46,7 @@ index 86f012e54a8c2778c535b2b13584705419037b8c..076456d3dcd38333978eec06077c7231 return false; } else { if (source instanceof EntityDamageSource) { -@@ -1167,6 +1175,7 @@ public class ServerPlayer extends Player { +@@ -1185,6 +1193,7 @@ public class ServerPlayer extends Player { } // Paper end @@ -54,7 +54,7 @@ index 86f012e54a8c2778c535b2b13584705419037b8c..076456d3dcd38333978eec06077c7231 return this; } } -@@ -1929,6 +1938,7 @@ public class ServerPlayer extends Player { +@@ -1959,6 +1968,7 @@ public class ServerPlayer extends Player { } public void sendTexturePack(String url, String hash, boolean required, @Nullable Component resourcePackPrompt) { @@ -62,7 +62,7 @@ index 86f012e54a8c2778c535b2b13584705419037b8c..076456d3dcd38333978eec06077c7231 this.connection.send(new ClientboundResourcePackPacket(url, hash, required, resourcePackPrompt)); } -@@ -2438,9 +2448,17 @@ public class ServerPlayer extends Player { +@@ -2468,9 +2478,17 @@ public class ServerPlayer extends Player { @Override public boolean isImmobile() { @@ -82,10 +82,10 @@ index 86f012e54a8c2778c535b2b13584705419037b8c..076456d3dcd38333978eec06077c7231 public Scoreboard getScoreboard() { return this.getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 49a769dc5d38cfc29fe824c7f94917f5597cdbca..479acafb1f8759f3097ee425e26f645c0027ea14 100644 +index c1bbe2786b98649ae7882a05070f2bdad813d7b4..621f0f75096c89bd050f7e0ede8abcb15536ce70 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1874,12 +1874,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1879,12 +1879,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @Override public void handleResourcePackResponse(ServerboundResourcePackPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); @@ -108,10 +108,10 @@ index 49a769dc5d38cfc29fe824c7f94917f5597cdbca..479acafb1f8759f3097ee425e26f645c this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 50bdaf7edc14f6de7ed5562df9d6ed424a022f80..c597f76d04eca83264b992c670d0142dbd39c3aa 100644 +index 0e647bb7b4efefe8a56d8b9c01f747feea700e96..b9e13e523e5a43b256c49970ad1b3dca286fc03c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -991,6 +991,8 @@ public abstract class PlayerList { +@@ -993,6 +993,8 @@ public abstract class PlayerList { } // Paper end @@ -143,10 +143,10 @@ index 996171e7271e62e72c0b2b213c21caf53c815e97..8e9ba3a8582c8e5d1e14bf3bfa8ecfce public boolean babiesAreRidable = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5262508601274de1106300f8a90518205814b273..55d101ee664babbcaf02f8801e5522c1156c3cdb 100644 +index 281cb1b19a2e05d18352f612a74097e4454ab2f6..b927f741695c783b5c3a782ea669c7d76333c2bd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2546,5 +2546,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2556,5 +2556,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetIdleTimer() { getHandle().resetLastActionTime(); } diff --git a/patches/server/0019-Anvil-API.patch b/patches/server/0019-Anvil-API.patch index 9e1fcc602..f3be43575 100644 --- a/patches/server/0019-Anvil-API.patch +++ b/patches/server/0019-Anvil-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Anvil API diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index b40377e882d9cc3571f527e706862e27c59b1fd0..d380267df31de55430db11c5f9bc6ff426cff8eb 100644 +index 073cec4838b88bf4e7444321a74ab73fff732486..3751ce065a38cb55b0800f000e33b2b32c7e0f5d 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java @@ -2,7 +2,11 @@ package net.minecraft.world.inventory; @@ -33,8 +33,8 @@ index b40377e882d9cc3571f527e706862e27c59b1fd0..d380267df31de55430db11c5f9bc6ff4 @Override protected boolean mayPickup(Player player, boolean present) { -- return (player.getAbilities().instabuild || player.experienceLevel >= this.cost.get()) && this.cost.get() > 0; -+ return (player.getAbilities().instabuild || player.experienceLevel >= this.cost.get()) && (bypassCost || this.cost.get() > 0); // Purpur +- return (player.getAbilities().instabuild || player.experienceLevel >= this.cost.get()) && this.cost.get() >= 0; // Paper - fix anvil prepare event not working with 0 xp ++ return (player.getAbilities().instabuild || player.experienceLevel >= this.cost.get()) && (bypassCost || this.cost.get() >= 0); // Paper - fix anvil prepare event not working with 0 xp // Purpur } @Override diff --git a/patches/server/0021-Alternative-Keepalive-Handling.patch b/patches/server/0021-Alternative-Keepalive-Handling.patch index 179016d5a..afad9cded 100644 --- a/patches/server/0021-Alternative-Keepalive-Handling.patch +++ b/patches/server/0021-Alternative-Keepalive-Handling.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Alternative Keepalive Handling diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 479acafb1f8759f3097ee425e26f645c0027ea14..1ada1e8532302c3ab1c4454b3a36cee272deb378 100644 +index 621f0f75096c89bd050f7e0ede8abcb15536ce70..bb0f8dbc0746283ff7670dee24dd932254aeec0d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -227,6 +227,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -38,7 +38,7 @@ index 479acafb1f8759f3097ee425e26f645c0027ea14..1ada1e8532302c3ab1c4454b3a36cee2 if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -3045,6 +3061,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3050,6 +3066,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0024-Fix-vanilla-command-permission-handler.patch b/patches/server/0024-Fix-vanilla-command-permission-handler.patch index 92e5c65a8..212cfb9a0 100644 --- a/patches/server/0024-Fix-vanilla-command-permission-handler.patch +++ b/patches/server/0024-Fix-vanilla-command-permission-handler.patch @@ -17,10 +17,10 @@ index f64aa22ed6fcb4af67317b99f459ee5296392548..36c91793e0aa4895193623cf8cba7820 public void removeCommand(String name) { this.children.remove(name); diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java -index e9d1fb479855194da5a05e86861848158736cbb4..b06f070a8030e5a6d965a2705749874895db58b6 100644 +index 4aa1dc543950b5de64345b3403a6d0bc41c521df..1c19a64da230268ceb9124bb7e1a141d78ac3393 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java +++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java -@@ -87,6 +87,7 @@ public final class VanillaCommandWrapper extends BukkitCommand { +@@ -89,6 +89,7 @@ public final class VanillaCommandWrapper extends BukkitCommand { } public static String getPermission(CommandNode vanillaCommand) { diff --git a/patches/server/0028-Zombie-horse-naturally-spawn.patch b/patches/server/0028-Zombie-horse-naturally-spawn.patch index 421ee9aac..84dca6f80 100644 --- a/patches/server/0028-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0028-Zombie-horse-naturally-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e0d8702b0e758367955813b92b6a72572f23ea86..5f8ca9b494e6d16d095b960ffcb671d33f7a9739 100644 +index 338fa80f3fde1918b8ccf23c017d386719d7ead8..963c249f2bcf2a264c9e4cd0961f11bb08f54d12 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -656,9 +656,15 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -747,9 +747,15 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper if (flag1) { diff --git a/patches/server/0045-Signs-allow-color-codes.patch b/patches/server/0045-Signs-allow-color-codes.patch index 792797785..d8bdd2774 100644 --- a/patches/server/0045-Signs-allow-color-codes.patch +++ b/patches/server/0045-Signs-allow-color-codes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 076456d3dcd38333978eec06077c7231b7d74db7..671015417ca3b67cb8f26b8f9f26483082a7198b 100644 +index 52fd2d08783bbba4c262bb297a31b373b3bcfacc..45084be6e8ebced2029dbca57f288b0e01b07311 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1460,6 +1460,7 @@ public class ServerPlayer extends Player { +@@ -1478,6 +1478,7 @@ public class ServerPlayer extends Player { @Override public void openTextEdit(SignBlockEntity sign) { @@ -17,10 +17,10 @@ index 076456d3dcd38333978eec06077c7231b7d74db7..671015417ca3b67cb8f26b8f9f264830 this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1ada1e8532302c3ab1c4454b3a36cee272deb378..ae92a5e1cebff528c99f3c554d8490f7ba9c6b57 100644 +index bb0f8dbc0746283ff7670dee24dd932254aeec0d..7047a77b6f6b9b15145dd8c54e978d81b1f4e998 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3035,11 +3035,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3040,11 +3040,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } // Paper end diff --git a/patches/server/0046-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0046-Allow-soil-to-moisten-from-water-directly-under-it.patch index e86feb791..e30df912a 100644 --- a/patches/server/0046-Allow-soil-to-moisten-from-water-directly-under-it.patch +++ b/patches/server/0046-Allow-soil-to-moisten-from-water-directly-under-it.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Allow soil to moisten from water directly under it diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index afd4dc6f69389f43c1a95069840e01a33ac86b63..285297f427afc71b824f2b1fa712802104be2571 100644 +index 5d95f3cce8f5190bc2172a1fe0e83166062f0f3d..603e621b16deb63b0d6d7e59e05a8de1831e067f 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -@@ -145,7 +145,7 @@ public class FarmBlock extends Block { - - do { - if (!iterator.hasNext()) { -- return false; -+ return ((ServerLevel) world).purpurConfig.farmlandGetsMoistFromBelow && world.getFluidState(pos.relative(Direction.DOWN)).is(FluidTags.WATER); // Purpur; +@@ -159,7 +159,7 @@ public class FarmBlock extends Block { } + } + +- return false; ++ return ((ServerLevel) world).purpurConfig.farmlandGetsMoistFromBelow && world.getFluidState(pos.relative(Direction.DOWN)).is(FluidTags.WATER); // Purpur; + // Paper end - remove abstract block iteration + } - blockposition1 = (BlockPos) iterator.next(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index ea387b513f86249a6ceaa67cb6358dc56ed4b16d..35fbc48c6396f23add351063a9df12f15643a3a8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java diff --git a/patches/server/0047-Minecart-settings-and-WASD-controls.patch b/patches/server/0047-Minecart-settings-and-WASD-controls.patch index 604370f9c..f0f39809c 100644 --- a/patches/server/0047-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0047-Minecart-settings-and-WASD-controls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 671015417ca3b67cb8f26b8f9f26483082a7198b..36c36b8b2c9b1a0ac617b0a747ad537621223fdf 100644 +index 45084be6e8ebced2029dbca57f288b0e01b07311..11ebb94eb26836231cdd81514a5639e756876e09 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1000,6 +1000,7 @@ public class ServerPlayer extends Player { +@@ -1018,6 +1018,7 @@ public class ServerPlayer extends Player { if (this.isInvulnerableTo(source)) { return false; } else { diff --git a/patches/server/0051-Fix-the-dead-lagging-the-server.patch b/patches/server/0051-Fix-the-dead-lagging-the-server.patch index 9b96258f8..215cfab53 100644 --- a/patches/server/0051-Fix-the-dead-lagging-the-server.patch +++ b/patches/server/0051-Fix-the-dead-lagging-the-server.patch @@ -5,22 +5,22 @@ Subject: [PATCH] Fix the dead lagging the server diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c61cc35d3f12aaf1aa7b37f5ee1d0fc7dcd6bb01..f6260ade093417c87776d421af21088930126408 100644 +index 1582bba7fa315c539cf8b57ae8b760d74091b6ed..646972f9b7205f79b4577984d0407be4eb5f5d4a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1524,6 +1524,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i - this.setXRot(Mth.clamp(pitch, -90.0F, 90.0F) % 360.0F); +@@ -1650,6 +1650,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); + this.setYHeadRot(yaw); // Paper - Update head rotation + if (valid && !this.isRemoved()) level.getChunk((int) Math.floor(this.getX()) >> 4, (int) Math.floor(this.getZ()) >> 4); // CraftBukkit // Paper // Purpur } public void absMoveTo(double x, double y, double z) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8a141a02a8fc3615ec1b52f062e17ed881d671cf..ee0d7d1aac8847402476d5861824d50f4fd0598e 100644 +index 5ae294293cd9d813e22d251e567d1fc0929edc49..dfbb53ddf9255351b44259d0016b362a3a4625b3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2895,7 +2895,7 @@ public abstract class LivingEntity extends Entity { +@@ -2896,7 +2896,7 @@ public abstract class LivingEntity extends Entity { } } diff --git a/patches/server/0053-Add-permission-for-F3-N-debug.patch b/patches/server/0053-Add-permission-for-F3-N-debug.patch index b9cc78226..e198b8236 100644 --- a/patches/server/0053-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0053-Add-permission-for-F3-N-debug.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c597f76d04eca83264b992c670d0142dbd39c3aa..a7c095b3ee7893a3e43f507b4dad456b2c3c4eaa 100644 +index b9e13e523e5a43b256c49970ad1b3dca286fc03c..811629721c4e3babb5437031910185daf10d5784 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1156,6 +1156,7 @@ public abstract class PlayerList { +@@ -1158,6 +1158,7 @@ public abstract class PlayerList { } else { b0 = (byte) (24 + permissionLevel); }