diff --git a/gradle.properties b/gradle.properties index 263c4fed..55654036 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,6 +4,6 @@ version=1.20.4-R0.1-SNAPSHOT mcVersion=1.20.4 packageVersion=1_20_R3 org.gradle.jvmargs=-Xmx2G -paperRef=4939f8711884901ddf1c56337f606de71cdae78d +paperRef=681bbff110d9a56152ae898c4dfe1c0356b40e69 preVersion=false updatingMinecraft=false \ No newline at end of file diff --git a/patches/server/0001-Build-changes.patch b/patches/server/0001-Build-changes.patch index 1b348f26..93554ea8 100644 --- a/patches/server/0001-Build-changes.patch +++ b/patches/server/0001-Build-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build changes diff --git a/build.gradle.kts b/build.gradle.kts -index ce3747d8d2a8f4327766cf23d5aaa72cfcb380bc..25408f536cef272f2457e29fe4bff98fa285f363 100644 +index 241808d8619e17c0681f79acbbc98af5bf52dd89..3848a4803f8df5bbf4933edfb0eaca38c567b751 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -23,7 +23,7 @@ index ce3747d8d2a8f4327766cf23d5aaa72cfcb380bc..25408f536cef272f2457e29fe4bff98f // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -58,19 +62,29 @@ dependencies { +@@ -59,19 +63,29 @@ dependencies { } val craftbukkitPackageVersion = "1_20_R3" // Paper @@ -55,7 +55,7 @@ index ce3747d8d2a8f4327766cf23d5aaa72cfcb380bc..25408f536cef272f2457e29fe4bff98f "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -154,7 +168,7 @@ fun TaskContainer.registerRunTask( +@@ -155,7 +169,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { diff --git a/patches/server/0002-Delete-Timings.patch b/patches/server/0002-Delete-Timings.patch index a5e6ebe1..a141cd5c 100644 --- a/patches/server/0002-Delete-Timings.patch +++ b/patches/server/0002-Delete-Timings.patch @@ -1108,7 +1108,7 @@ index 1363d76e5546d1bb57f06fceb57196da459f962e..d0cf730f175c707b50577b7080bd81cf // Paper start if (waitableArray[0] != null) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5a7278b093e37b95fb005ad5cc3cac90ac36f8fb..78f02c2e068a63648f6d650a48a1cf21c5da1545 100644 +index 12109446fc76a39faee6cda042ca48b3fd3809f4..295edf4e84699fc555048b7e59aebee83e854096 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1,13 +1,10 @@ @@ -1377,7 +1377,7 @@ index 366c0c9b45a819f7f94ebe3e49b8ab7f9edf9ce7..2a19a45e9c7ac4646ce89c566b5fec21 gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..8e43a6817e9101b6dcc956e3b6f4bcff63a4c2fc 100644 +index 6907d1be36fbdf0856c0e11983218d2fd1f9cb46..9970a1e9d314a4169db0297a81b6f263802028dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1,7 +1,6 @@ @@ -1575,7 +1575,7 @@ index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..8e43a6817e9101b6dcc956e3b6f4bcff } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ab5b259d8f72022c875cae73be25fe2da346c6b3..e1fb72685134611a545bc2921f2bf3e0cc5415f5 100644 +index 87e5ee042ab2c052d25ab4c2521a68cf2e2d67b6..beb1946f5e21ba8f15c908ff0da592d48089263d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2394,7 +2394,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1609,7 +1609,7 @@ index ab5b259d8f72022c875cae73be25fe2da346c6b3..e1fb72685134611a545bc2921f2bf3e0 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 91feb12732564c90656da487664dbc12e55397fc..6104f952b9138b0030aebd23c23fdeccc88e567d 100644 +index 1e5f709115007ff19901c0a6c3cf884d9e4d3a6c..aa7eb1f037875293b03588f5bc5d2df70237b45e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1,6 +1,5 @@ @@ -1619,7 +1619,7 @@ index 91feb12732564c90656da487664dbc12e55397fc..6104f952b9138b0030aebd23c23fdecc import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -@@ -1235,7 +1234,6 @@ public abstract class PlayerList { +@@ -1236,7 +1235,6 @@ public abstract class PlayerList { public void saveAll(int interval) { io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main @@ -1627,7 +1627,7 @@ index 91feb12732564c90656da487664dbc12e55397fc..6104f952b9138b0030aebd23c23fdecc int numSaved = 0; long now = MinecraftServer.currentTick; for (int i = 0; i < this.players.size(); ++i) { -@@ -1246,7 +1244,6 @@ public abstract class PlayerList { +@@ -1247,7 +1245,6 @@ public abstract class PlayerList { } // Paper end - Incremental chunk and player saving } @@ -1664,10 +1664,10 @@ index 09e8445a3f8c6b3ebc852a75a9a25b41a51ba659..22d19f1ca47a79be2c41775c5564535b return this != EntityType.PLAYER && this != EntityType.LLAMA_SPIT && this != EntityType.WITHER && this != EntityType.BAT && this != EntityType.ITEM_FRAME && this != EntityType.GLOW_ITEM_FRAME && this != EntityType.LEASH_KNOT && this != EntityType.PAINTING && this != EntityType.END_CRYSTAL && this != EntityType.EVOKER_FANGS; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index aceee33eebd4d5f89e62a42910ec51843f33843b..371cd5423f0e8f84b5ddef8f1d98e4889b1b4361 100644 +index 23570a0b1227a840b9c1e6ae326827ea655bb5f7..ac3d31b0ed54fd07f07a0768017cc34f7ae9709f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; +@@ -143,7 +143,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; // CraftBukkit end @@ -1751,7 +1751,7 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..b68c69a7ab71926ecf478d8daa5ec5ac } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 19f23a6c8fb5c02843c27fb8a242ec9d0d1b538b..7d6244820295186d5887da9eba36859406c6e3c6 100644 +index f476ba6c97944bdffae5aacae2e285d17541f46e..b0621d5d9b14d007d974026106c89e798b8eaa65 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -12,7 +12,6 @@ import java.util.function.Supplier; diff --git a/patches/server/0003-Leaves-Server-Utils.patch b/patches/server/0003-Leaves-Server-Utils.patch index 4bd390db..2d92ae3f 100644 --- a/patches/server/0003-Leaves-Server-Utils.patch +++ b/patches/server/0003-Leaves-Server-Utils.patch @@ -31,10 +31,10 @@ index 46954db7ecd35ac4018fdf476df7c8020d7ce6c8..044c51ebb058fc36074fd178929e3279 public PlayerAreaMap() { super(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 906eded9a2ab61737a30cfe89292a71237ce4eb7..75d5e255bb166d2ec7325b16e8e5a30b43855276 100644 +index 45439b0cc4ea69e409fd41d4684403c0e0feab12..e44178458aee648ce088c0a10f05b9f9eed91820 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -424,6 +424,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean fixedPose = false; // Paper - Expand Pose API @@ -42,7 +42,7 @@ index 906eded9a2ab61737a30cfe89292a71237ce4eb7..75d5e255bb166d2ec7325b16e8e5a30b public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -2480,6 +2481,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2496,6 +2497,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S nbttagcompound.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -50,7 +50,7 @@ index 906eded9a2ab61737a30cfe89292a71237ce4eb7..75d5e255bb166d2ec7325b16e8e5a30b return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2627,6 +2629,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2643,6 +2645,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end @@ -62,7 +62,7 @@ index 906eded9a2ab61737a30cfe89292a71237ce4eb7..75d5e255bb166d2ec7325b16e8e5a30b } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); -@@ -4912,4 +4919,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4936,4 +4943,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end - Expose entity id counter diff --git a/patches/server/0005-Leaves-Server-Config-And-Command.patch b/patches/server/0005-Leaves-Server-Config-And-Command.patch index e4fd8c27..67fae884 100644 --- a/patches/server/0005-Leaves-Server-Config-And-Command.patch +++ b/patches/server/0005-Leaves-Server-Config-And-Command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Server Config And Command diff --git a/build.gradle.kts b/build.gradle.kts -index 25408f536cef272f2457e29fe4bff98fa285f363..a9269245ad80d4071e9c09190fc20ce97809e4a1 100644 +index 3848a4803f8df5bbf4933edfb0eaca38c567b751..411c1929e78e5706eae040c209d9727e17e553b8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -228,3 +228,12 @@ tasks.registerRunTask("runDev") { +@@ -229,3 +229,12 @@ tasks.registerRunTask("runDev") { classpath(runtimeClasspathForRunDev) jvmArgs("-DPaper.isRunDev=true") } diff --git a/patches/server/0006-Leaves-Protocol-Core.patch b/patches/server/0006-Leaves-Protocol-Core.patch index 2fc8707c..3688f891 100644 --- a/patches/server/0006-Leaves-Protocol-Core.patch +++ b/patches/server/0006-Leaves-Protocol-Core.patch @@ -56,10 +56,10 @@ index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..8aa1337b420e1c9fbf51f951f14a63d8 } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6104f952b9138b0030aebd23c23fdeccc88e567d..6d4f175e2820b48d04bd11fc694fcdfc73580da9 100644 +index aa7eb1f037875293b03588f5bc5d2df70237b45e..62d89e49dfcbb00651df7f89be482b9cbc173b0a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -346,6 +346,8 @@ public abstract class PlayerList { +@@ -347,6 +347,8 @@ public abstract class PlayerList { return; } @@ -68,7 +68,7 @@ index 6104f952b9138b0030aebd23c23fdeccc88e567d..6d4f175e2820b48d04bd11fc694fcdfc final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure -@@ -596,6 +598,7 @@ public abstract class PlayerList { +@@ -597,6 +599,7 @@ public abstract class PlayerList { return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); } public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { diff --git a/patches/server/0007-Fix-gravity-block-duper.patch b/patches/server/0007-Fix-gravity-block-duper.patch index 0f739d5a..c679a295 100644 --- a/patches/server/0007-Fix-gravity-block-duper.patch +++ b/patches/server/0007-Fix-gravity-block-duper.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix gravity block duper diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 75d5e255bb166d2ec7325b16e8e5a30b43855276..1bd585630940b2678bd1d9c3c344c17deb461c03 100644 +index e44178458aee648ce088c0a10f05b9f9eed91820..87b0eead81c06afa276b74bf1c7fce573027702f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -440,6 +440,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -441,6 +441,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.originWorld; } // Paper end - Entity origin API @@ -16,7 +16,7 @@ index 75d5e255bb166d2ec7325b16e8e5a30b43855276..1bd585630940b2678bd1d9c3c344c17d // Paper start - make end portalling safe public BlockPos portalBlock; public ServerLevel portalWorld; -@@ -470,6 +471,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -471,6 +472,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.teleportTo(worldserver, null); } // Paper end - make end portalling safe @@ -24,7 +24,7 @@ index 75d5e255bb166d2ec7325b16e8e5a30b43855276..1bd585630940b2678bd1d9c3c344c17d // Paper start - optimise entity tracking final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this); -@@ -3183,7 +3185,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3199,7 +3201,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.processPortalCooldown(); @@ -34,10 +34,10 @@ index 75d5e255bb166d2ec7325b16e8e5a30b43855276..1bd585630940b2678bd1d9c3c344c17d } diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 05b77bf1af82397c542fde19b54ee545448ce12e..c753bc1a3369827d8ef4705e313f744f07759e40 100644 +index 0aef6a8d51cb1351daaea16022f5cbb27ceaff0d..265c2b3abaa47548c4318c86a1de83d673d09fff 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -132,11 +132,7 @@ public class FallingBlockEntity extends Entity { +@@ -133,11 +133,7 @@ public class FallingBlockEntity extends Entity { @Override public void tick() { @@ -48,9 +48,9 @@ index 05b77bf1af82397c542fde19b54ee545448ce12e..c753bc1a3369827d8ef4705e313f744f - // Paper end - fix sand duping + // Leaves - fix gravity block duper if (this.blockState.isAir()) { - this.discard(); + this.discard(EntityRemoveEvent.Cause.DESPAWN); // CraftBukkit - add Bukkit remove cause } else { -@@ -148,12 +144,14 @@ public class FallingBlockEntity extends Entity { +@@ -149,12 +145,14 @@ public class FallingBlockEntity extends Entity { } this.move(MoverType.SELF, this.getDeltaMovement()); diff --git a/patches/server/0009-Make-snowball-and-egg-can-knockback-player.patch b/patches/server/0009-Make-snowball-and-egg-can-knockback-player.patch index 527d76b1..87146f81 100644 --- a/patches/server/0009-Make-snowball-and-egg-can-knockback-player.patch +++ b/patches/server/0009-Make-snowball-and-egg-can-knockback-player.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make snowball and egg can knockback player diff --git a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java -index 718e120c9768cf716b32d3d652f53f1dda925168..ab0e9a3ef72bf8380114c77c3cea9d4d2c4228ba 100644 +index 5e82549ea2e80b3968b793b7b4b685c4891e9a91..14c14d12b7ae34a6631828e8dcc531b62b9aa1ed 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java @@ -3,6 +3,7 @@ package net.minecraft.world.entity.projectile; @@ -16,10 +16,11 @@ index 718e120c9768cf716b32d3d652f53f1dda925168..ab0e9a3ef72bf8380114c77c3cea9d4d import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; -@@ -55,6 +56,12 @@ public class Snowball extends ThrowableItemProjectile { - Entity entity = entityHitResult.getEntity(); +@@ -61,6 +62,13 @@ public class Snowball extends ThrowableItemProjectile { int i = entity instanceof Blaze ? 3 : 0; - entity.hurt(this.damageSources().thrown(this, this.getOwner()), (float)i); + + entity.hurt(this.damageSources().thrown(this, this.getOwner()), (float) i); ++ + // Leaves start - make snowball can knockback player + if (top.leavesmc.leaves.LeavesConfig.snowballAndEggCanKnockback && entity instanceof ServerPlayer) { + entity.hurt(this.damageSources().thrown(this, this.getOwner()), 0.0000001F); @@ -30,10 +31,10 @@ index 718e120c9768cf716b32d3d652f53f1dda925168..ab0e9a3ef72bf8380114c77c3cea9d4d @Override diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java -index 785196e6f4677074890ca965e9add85ccfd0e6e3..773937c931cfb458e8d7148abff6bc72e0f3a152 100644 +index 82bb8004635865f5202578d5a6f520048e7269d5..f6524889953ad540f5e6a66ff748f4d8582e1c1b 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java -@@ -45,7 +45,14 @@ public class ThrownEgg extends ThrowableItemProjectile { +@@ -46,7 +46,14 @@ public class ThrownEgg extends ThrowableItemProjectile { @Override protected void onHitEntity(EntityHitResult entityHitResult) { super.onHitEntity(entityHitResult); diff --git a/patches/server/0010-Fakeplayer-support.patch b/patches/server/0010-Fakeplayer-support.patch index b735a9eb..86fffeb3 100644 --- a/patches/server/0010-Fakeplayer-support.patch +++ b/patches/server/0010-Fakeplayer-support.patch @@ -90,7 +90,7 @@ index 24e5993b281448734eb67c7a8439a349bbf9fd72..677c4d5360509f212ccbe4ff7418e0e7 AdvancementProgress advancementprogress = this.getOrStartProgress(advancement); boolean flag1 = advancementprogress.isDone(); diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 78f02c2e068a63648f6d650a48a1cf21c5da1545..85be9376fe30f18fe4fea437955f1a60c5c3f05a 100644 +index 295edf4e84699fc555048b7e59aebee83e854096..137855a2b18923cce802e8ef37f976379cd9da76 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1407,6 +1407,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -191,7 +191,7 @@ index 58591bf2f63b9c5e97d9ce4188dff3366968a178..42b5d67e17cc62eb830ae4b3a930b48a PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld()); this.level().getCraftServer().getPluginManager().callEvent(changeEvent); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e1fb72685134611a545bc2921f2bf3e0cc5415f5..2854f5e647e408405aeaf76ff940ae3ff8f628d4 100644 +index beb1946f5e21ba8f15c908ff0da592d48089263d..2b03d38f1340beff57d9204e058a3a17ce662731 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -297,7 +297,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -210,10 +210,10 @@ index e1fb72685134611a545bc2921f2bf3e0cc5415f5..2854f5e647e408405aeaf76ff940ae3f player.connection = this; player.getTextFilter().join(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6d4f175e2820b48d04bd11fc694fcdfc73580da9..eb4baddfe05397c52d7722d81dd3078bb23ea077 100644 +index 62d89e49dfcbb00651df7f89be482b9cbc173b0a..44b354431a9c21166211e6d1de1ce573b9f7253c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -120,6 +120,8 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason; +@@ -121,6 +121,8 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason; import org.bukkit.event.player.PlayerSpawnChangeEvent; // CraftBukkit end @@ -222,7 +222,7 @@ index 6d4f175e2820b48d04bd11fc694fcdfc73580da9..eb4baddfe05397c52d7722d81dd3078b public abstract class PlayerList { public static final File USERBANLIST_FILE = new File("banned-players.json"); -@@ -348,6 +350,21 @@ public abstract class PlayerList { +@@ -349,6 +351,21 @@ public abstract class PlayerList { top.leavesmc.leaves.protocol.core.LeavesProtocolManager.handlePlayerJoin(player); // Leaves - protocol @@ -244,7 +244,7 @@ index 6d4f175e2820b48d04bd11fc694fcdfc73580da9..eb4baddfe05397c52d7722d81dd3078b final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure -@@ -999,6 +1016,13 @@ public abstract class PlayerList { +@@ -1000,6 +1017,13 @@ public abstract class PlayerList { } // Paper end - Add PlayerPostRespawnEvent @@ -258,7 +258,7 @@ index 6d4f175e2820b48d04bd11fc694fcdfc73580da9..eb4baddfe05397c52d7722d81dd3078b // CraftBukkit end return entityplayer1; } -@@ -1115,11 +1139,16 @@ public abstract class PlayerList { +@@ -1116,11 +1140,16 @@ public abstract class PlayerList { } public String[] getPlayerNamesArray() { @@ -276,7 +276,7 @@ index 6d4f175e2820b48d04bd11fc694fcdfc73580da9..eb4baddfe05397c52d7722d81dd3078b return astring; } -@@ -1598,4 +1627,16 @@ public abstract class PlayerList { +@@ -1599,4 +1628,16 @@ public abstract class PlayerList { public boolean isAllowCheatsForAllPlayers() { return this.allowCheatsForAllPlayers; } @@ -294,10 +294,10 @@ index 6d4f175e2820b48d04bd11fc694fcdfc73580da9..eb4baddfe05397c52d7722d81dd3078b + // Leaves end - fakeplayer support } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1bd585630940b2678bd1d9c3c344c17deb461c03..5bec3993773db2b1e74d448a987480268e3ddb20 100644 +index 87b0eead81c06afa276b74bf1c7fce573027702f..0a8ad5a68e161e6991edafe31ceeeecc10ea8dab 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1456,7 +1456,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1469,7 +1469,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return offsetFactor; } @@ -307,10 +307,10 @@ index 1bd585630940b2678bd1d9c3c344c17deb461c03..5bec3993773db2b1e74d448a98748026 final boolean xZero = movement.x == 0.0; final boolean yZero = movement.y == 0.0; diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -index 90a5f6bd729148f2adc745273536e48d704fcd1e..c07801c2eba35cc97a3a967d6d6f3fb15e5a84af 100644 +index 91497f5e6c07fcf1b05eca6846c51e1a15ed3bc0..c4e09998ed133e74dcf488869d82d9154a18d3de 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -@@ -61,7 +61,7 @@ public class FishingHook extends Projectile { +@@ -62,7 +62,7 @@ public class FishingHook extends Projectile { public static final EntityDataAccessor DATA_HOOKED_ENTITY = SynchedEntityData.defineId(FishingHook.class, EntityDataSerializers.INT); private static final EntityDataAccessor DATA_BITING = SynchedEntityData.defineId(FishingHook.class, EntityDataSerializers.BOOLEAN); private int life; @@ -405,10 +405,10 @@ index 389e8d1f8c218649b622d2e6f24b05a14a1a1d45..412d8201906d3a0915a32837944e960b + // Leaves end - Bot API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 8698104e3eb98e2cc5da5de87a8f538860c1d91d..dc7ba0ce76031e6dd7e550ceaf3b2f97cbc307f1 100644 +index 0b5a31477e3b76833fb97a455842316193663c8e..76e4d5b788e1049120e415906bb79e9f222148b2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -54,6 +54,8 @@ import org.bukkit.plugin.Plugin; +@@ -55,6 +55,8 @@ import org.bukkit.plugin.Plugin; import org.bukkit.util.BoundingBox; import org.bukkit.util.NumberConversions; import org.bukkit.util.Vector; @@ -417,7 +417,7 @@ index 8698104e3eb98e2cc5da5de87a8f538860c1d91d..dc7ba0ce76031e6dd7e550ceaf3b2f97 import net.md_5.bungee.api.chat.BaseComponent; // Spigot -@@ -91,6 +93,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -92,6 +94,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return new CraftHumanEntity(server, (net.minecraft.world.entity.player.Player) entity); } diff --git a/patches/server/0013-Add-isShrink-to-EntityResurrectEvent.patch b/patches/server/0013-Add-isShrink-to-EntityResurrectEvent.patch index db729d87..f6df295a 100644 --- a/patches/server/0013-Add-isShrink-to-EntityResurrectEvent.patch +++ b/patches/server/0013-Add-isShrink-to-EntityResurrectEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add isShrink to EntityResurrectEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 371cd5423f0e8f84b5ddef8f1d98e4889b1b4361..3688e262988f012109930bf2d8c2d679e7283d7a 100644 +index ac3d31b0ed54fd07f07a0768017cc34f7ae9709f..5a453688f9f9f48e5952b00382bbca0632995022 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1614,12 +1614,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1622,12 +1622,12 @@ public abstract class LivingEntity extends Entity implements Attackable { } org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null; @@ -23,7 +23,7 @@ index 371cd5423f0e8f84b5ddef8f1d98e4889b1b4361..3688e262988f012109930bf2d8c2d679 itemstack1.shrink(1); } if (itemstack != null && this instanceof ServerPlayer) { -@@ -4557,3 +4557,4 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4565,3 +4565,4 @@ public abstract class LivingEntity extends Entity implements Attackable { } } diff --git a/patches/server/0016-Stick-can-change-ArmorStand-arm-status.patch b/patches/server/0016-Stick-can-change-ArmorStand-arm-status.patch index 5148efea..d6c23d08 100644 --- a/patches/server/0016-Stick-can-change-ArmorStand-arm-status.patch +++ b/patches/server/0016-Stick-can-change-ArmorStand-arm-status.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stick can change ArmorStand arm status diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 1e86e86b0a100a5d14aee10b60e70c32d2733660..18e9ee9e0c986b1174ff9529b198a839df12825f 100644 +index eadcebd7845ee716e33c0ac0544502da1a6c5941..575ef3806fc89b7492f5d6b6500e37c775dfaad8 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -386,6 +386,12 @@ public class ArmorStand extends LivingEntity { +@@ -387,6 +387,12 @@ public class ArmorStand extends LivingEntity { return InteractionResult.SUCCESS; } } else { diff --git a/patches/server/0018-No-chat-sign.patch b/patches/server/0018-No-chat-sign.patch index 1e0b54cd..fbde447a 100644 --- a/patches/server/0018-No-chat-sign.patch +++ b/patches/server/0018-No-chat-sign.patch @@ -102,7 +102,7 @@ index 9d6db4a378036559efab91c8b7dcf2a6b0c2cce6..2c349dc502ce275a8215766933f4855f } } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 1a610cd47fb26b70bc16078adc2c22acff6a9578..def41add94e74f0230031d75aed5a2191810b5c7 100644 +index 60e5129b42c430ba6b9776bf63d0db608552b50f..6725bbf2d966ae900e9b5efa619875c386bb9526 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -643,7 +643,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -147,10 +147,10 @@ index 8aa1337b420e1c9fbf51f951f14a63d89f61d3f4..19db81d87d1e0eb9716ceaf88dc407db if (packet == null || this.processedDisconnect) { // Spigot return; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index eb4baddfe05397c52d7722d81dd3078bb23ea077..6a5ff44abca2bf5096bceb4f9ab2454e78b80fea 100644 +index 44b354431a9c21166211e6d1de1ce573b9f7253c..c1a50cedca731c08f793ba3eba4210bc26824e16 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1488,7 +1488,7 @@ public abstract class PlayerList { +@@ -1489,7 +1489,7 @@ public abstract class PlayerList { } public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public diff --git a/patches/server/0020-Optimize-entity-coordinate-key.patch b/patches/server/0020-Optimize-entity-coordinate-key.patch index a11cd354..4bcabf8e 100644 --- a/patches/server/0020-Optimize-entity-coordinate-key.patch +++ b/patches/server/0020-Optimize-entity-coordinate-key.patch @@ -25,10 +25,10 @@ index 850f75172e9efa72cabb8e5bd124b96a0b1a945f..d1f872c062333e7cfbfb5ad6d77a1e31 public static long getCoordinateKey(final ChunkPos pair) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 51e7bce3813dec3c60677f8233d522c3d5d55cc5..8078a716cba6baa5723a5b2feda2b04e9a35887f 100644 +index 0a8ad5a68e161e6991edafe31ceeeecc10ea8dab..68a8aca051df609747b25ef89e5217932edbec51 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -308,7 +308,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -309,7 +309,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public double yo; public double zo; private Vec3 position; diff --git a/patches/server/0021-Optimize-suffocation.patch b/patches/server/0021-Optimize-suffocation.patch index 70f06609..df097a38 100644 --- a/patches/server/0021-Optimize-suffocation.patch +++ b/patches/server/0021-Optimize-suffocation.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize suffocation This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3688e262988f012109930bf2d8c2d679e7283d7a..172c6e718ff0ab22e63ecfa867e4462947119972 100644 +index 5a453688f9f9f48e5952b00382bbca0632995022..e598a29f7285d961262ff2a86142e004f34520ef 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -412,7 +412,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -413,7 +413,7 @@ public abstract class LivingEntity extends Entity implements Attackable { boolean flag = this instanceof net.minecraft.world.entity.player.Player; if (!this.level().isClientSide) { @@ -18,7 +18,7 @@ index 3688e262988f012109930bf2d8c2d679e7283d7a..172c6e718ff0ab22e63ecfa867e44629 this.hurt(this.damageSources().inWall(), 1.0F); } else if (flag && !this.level().getWorldBorder().isWithinBounds(this.getBoundingBox())) { double d0 = this.level().getWorldBorder().getDistanceToBorder(this) + this.level().getWorldBorder().getDamageSafeZone(); -@@ -1409,6 +1409,15 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1417,6 +1417,15 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.getHealth() <= 0.0F; } diff --git a/patches/server/0028-Throttle-goal-selector-during-inactive-ticking.patch b/patches/server/0028-Throttle-goal-selector-during-inactive-ticking.patch index fa008377..b8eca7fd 100644 --- a/patches/server/0028-Throttle-goal-selector-during-inactive-ticking.patch +++ b/patches/server/0028-Throttle-goal-selector-during-inactive-ticking.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Throttle goal selector during inactive ticking This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 24629412d2b4acaa81788ce70412b03387cc777c..33903f1c9a2c3327404fcdbfaeb2987fafe2d84b 100644 +index 2439f8d48daca7329049436414f06a36b4b79029..9fa6b43768ad5608db9232d464a455eca453b7fd 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -221,11 +221,13 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -222,11 +222,13 @@ public abstract class Mob extends LivingEntity implements Targeting { return this.lookControl; } diff --git a/patches/server/0033-Cache-climbing-check-for-activation.patch b/patches/server/0033-Cache-climbing-check-for-activation.patch index f2fc7c81..0481e976 100644 --- a/patches/server/0033-Cache-climbing-check-for-activation.patch +++ b/patches/server/0033-Cache-climbing-check-for-activation.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Cache climbing check for activation This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 172c6e718ff0ab22e63ecfa867e4462947119972..95fa28334cf745d8381f731ab5f56896eb377a9f 100644 +index e598a29f7285d961262ff2a86142e004f34520ef..d94dea3ec79780e6a49a72d2ab5028e47ae7acc9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2024,6 +2024,22 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2032,6 +2032,22 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.lastClimbablePos; } diff --git a/patches/server/0035-Reduce-entity-fluid-lookups-if-no-fluids.patch b/patches/server/0035-Reduce-entity-fluid-lookups-if-no-fluids.patch index abdf5421..452e636d 100644 --- a/patches/server/0035-Reduce-entity-fluid-lookups-if-no-fluids.patch +++ b/patches/server/0035-Reduce-entity-fluid-lookups-if-no-fluids.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Reduce entity fluid lookups if no fluids This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7a00bf872a127dc2d1aef9668432fc7a23a3a696..02a8d57c6f774e468ffb05a4d389ac6610054665 100644 +index 68a8aca051df609747b25ef89e5217932edbec51..f491c1d402499e68191d4cdc9c8ef2e7caae9c7b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4414,16 +4414,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4430,16 +4430,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -35,7 +35,7 @@ index 7a00bf872a127dc2d1aef9668432fc7a23a3a696..02a8d57c6f774e468ffb05a4d389ac66 double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4431,38 +4433,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4447,38 +4449,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); diff --git a/patches/server/0037-PCA-sync-protocol.patch b/patches/server/0037-PCA-sync-protocol.patch index 9f7f5f4f..01474bf3 100644 --- a/patches/server/0037-PCA-sync-protocol.patch +++ b/patches/server/0037-PCA-sync-protocol.patch @@ -42,10 +42,10 @@ index 4e6c2f6b2e54a4c126e9a026b9cad05ce835ad66..fd1648546542f146ba7b866873f105ed @Override diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java -index 6d23c39e4eadf23616080d6d08672e13b5d3c37d..f86384ba4e5b5ffd26dd64e41a9af8a3f3a8da49 100644 +index 756d0434472921992c9d84597d7c9c824e93614c..efb69fdb0095c3d730f2a4608f15bf47a5a377a9 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java -@@ -129,7 +129,13 @@ public abstract class AbstractMinecartContainer extends AbstractMinecart impleme +@@ -130,7 +130,13 @@ public abstract class AbstractMinecartContainer extends AbstractMinecart impleme } @Override @@ -103,7 +103,7 @@ index 416aa989ebb18a8741cc9d605a1180ab830f6643..213bc3c11ff4ed9bc761e8153aa669d1 protected Component getDefaultName() { return Component.translatable("container.barrel"); diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index 56b328c64bea0ffd51930d8ba15fb87a36e6d8a1..e4430f96f055333c94ef1f910e198122bec86871 100644 +index 55b0e2bf98a285cdcd30e40d94192b7a1802efd8..8398c29f992db5070045dc7061e0b5def3d155ed 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -4,6 +4,7 @@ import com.google.common.collect.Lists; @@ -114,7 +114,7 @@ index 56b328c64bea0ffd51930d8ba15fb87a36e6d8a1..e4430f96f055333c94ef1f910e198122 import javax.annotation.Nullable; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -@@ -127,6 +128,11 @@ public class BeehiveBlockEntity extends BlockEntity { +@@ -131,6 +132,11 @@ public class BeehiveBlockEntity extends BlockEntity { super.setChanged(); } @@ -126,7 +126,7 @@ index 56b328c64bea0ffd51930d8ba15fb87a36e6d8a1..e4430f96f055333c94ef1f910e198122 return list; } -@@ -188,6 +194,12 @@ public class BeehiveBlockEntity extends BlockEntity { +@@ -192,6 +198,12 @@ public class BeehiveBlockEntity extends BlockEntity { this.level.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(entity, this.getBlockState())); } @@ -136,10 +136,10 @@ index 56b328c64bea0ffd51930d8ba15fb87a36e6d8a1..e4430f96f055333c94ef1f910e198122 + } + // Leaves end - pca + - entity.discard(); + entity.discard(EntityRemoveEvent.Cause.ENTER_BLOCK); // CraftBukkit - add Bukkit remove cause super.setChanged(); } -@@ -334,6 +346,11 @@ public class BeehiveBlockEntity extends BlockEntity { +@@ -338,6 +350,11 @@ public class BeehiveBlockEntity extends BlockEntity { if (BeehiveBlockEntity.releaseOccupant(world, pos, state, tileentitybeehive_hivebee, (List) null, tileentitybeehive_releasestatus, flowerPos)) { flag = true; iterator.remove(); @@ -151,7 +151,7 @@ index 56b328c64bea0ffd51930d8ba15fb87a36e6d8a1..e4430f96f055333c94ef1f910e198122 // CraftBukkit start } else { tileentitybeehive_hivebee.exitTickCounter = tileentitybeehive_hivebee.minOccupationTicks / 2; // Not strictly Vanilla behaviour in cases where bees cannot spawn but still reasonable // Paper - Fix bees aging inside hives; use exitTickCounter to keep actual bee life -@@ -385,6 +402,11 @@ public class BeehiveBlockEntity extends BlockEntity { +@@ -389,6 +406,11 @@ public class BeehiveBlockEntity extends BlockEntity { this.maxBees = nbt.getInt("Bukkit.MaxEntities"); } // CraftBukkit end @@ -248,10 +248,10 @@ index 881379681c39230a00b3a1f11cd87498984396c7..e01eb2025458cf311348c58a15308540 protected Component getDefaultName() { return Component.translatable("container.dispenser"); diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index a61d7cd2b078fe511ff00344197b6ea11feebfb2..dfc623059f9c5920883a06f9662f1bf3b7a2c4c6 100644 +index 757edf74751dc7183454656fda9cecc4eb601e4c..91b6dcb3e4fb8ae2c76084e93917fb9a89bb8beb 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -@@ -129,6 +129,16 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -130,6 +130,16 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen } @@ -268,7 +268,7 @@ index a61d7cd2b078fe511ff00344197b6ea11feebfb2..dfc623059f9c5920883a06f9662f1bf3 @Override protected Component getDefaultName() { return Component.translatable("container.hopper"); -@@ -208,6 +218,11 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -209,6 +219,11 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen if (flag) { blockEntity.setCooldown(world.spigotConfig.hopperTransfer); // Spigot setChanged(world, pos, state); diff --git a/patches/server/0038-BBOR-Protocol.patch b/patches/server/0038-BBOR-Protocol.patch index 156acab6..3bde093a 100644 --- a/patches/server/0038-BBOR-Protocol.patch +++ b/patches/server/0038-BBOR-Protocol.patch @@ -5,10 +5,10 @@ Subject: [PATCH] BBOR Protocol diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6a5ff44abca2bf5096bceb4f9ab2454e78b80fea..aee640da4164195962b165f1d4ae385dbfd9d3d3 100644 +index c1a50cedca731c08f793ba3eba4210bc26824e16..82751434c31fe8825f32921f498fd0156da15454 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1622,6 +1622,7 @@ public abstract class PlayerList { +@@ -1623,6 +1623,7 @@ public abstract class PlayerList { entityplayer.getRecipeBook().sendInitialRecipeBook(entityplayer); } diff --git a/patches/server/0041-Jade-Protocol.patch b/patches/server/0041-Jade-Protocol.patch index b4efaf9a..d7834e3a 100644 --- a/patches/server/0041-Jade-Protocol.patch +++ b/patches/server/0041-Jade-Protocol.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Jade Protocol This patch is Powered by Jade(https://github.com/Snownee/Jade) diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -index 4aeab90e778629c355189dfe79c39c4b21f5f5ac..fe8c9b7e7956837829b4fe3eb449b2c093f7cea3 100644 +index 958816ce2166248b542c96c10c398a52d769b4db..f60c45188e2780ae969b82afb4bb5846a16ef1d9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -@@ -253,7 +253,7 @@ public class Tadpole extends AbstractFish { +@@ -256,7 +256,7 @@ public class Tadpole extends AbstractFish { } diff --git a/patches/server/0045-Stackable-ShulkerBoxes.patch b/patches/server/0045-Stackable-ShulkerBoxes.patch index a0597a4c..e0217042 100644 --- a/patches/server/0045-Stackable-ShulkerBoxes.patch +++ b/patches/server/0045-Stackable-ShulkerBoxes.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Stackable ShulkerBoxes This patch is Powered by fabric-carpet(https://github.com/gnembon/fabric-carpet) and plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition) diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index eb0d6238588efa35fa868f26290547574a08eca2..adc179f85a774c47d386144da6b2291e915a0e1d 100644 +index c7f06c3cfb737bd17a706798bf9cf0e1af5f0cc0..b5b522c1307a58453aa293aaa808dd9ec86901fc 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -14,10 +14,12 @@ import net.minecraft.world.entity.Entity; @@ -28,9 +28,9 @@ index eb0d6238588efa35fa868f26290547574a08eca2..adc179f85a774c47d386144da6b2291e import org.bukkit.entity.Player; +import org.bukkit.block.ShulkerBox; import org.bukkit.event.entity.EntityPickupItemEvent; + import org.bukkit.event.entity.EntityRemoveEvent; import org.bukkit.event.player.PlayerPickupItemEvent; - // CraftBukkit end -@@ -73,6 +76,13 @@ public class ItemEntity extends Entity implements TraceableEntity { +@@ -74,6 +77,13 @@ public class ItemEntity extends Entity implements TraceableEntity { this.setDeltaMovement(this.random.nextDouble() * 0.2D - 0.1D, 0.2D, this.random.nextDouble() * 0.2D - 0.1D); this.setItem(stack); // Paper end - Don't use level random in entity constructors @@ -44,7 +44,7 @@ index eb0d6238588efa35fa868f26290547574a08eca2..adc179f85a774c47d386144da6b2291e } public ItemEntity(Level world, double x, double y, double z, ItemStack stack, double velocityX, double velocityY, double velocityZ) { -@@ -307,10 +317,49 @@ public class ItemEntity extends Entity implements TraceableEntity { +@@ -308,10 +318,49 @@ public class ItemEntity extends Entity implements TraceableEntity { private boolean isMergable() { ItemStack itemstack = this.getItem(); @@ -257,10 +257,10 @@ index 5780d349f968ea3d05cf569b63531f8e76884827..d30af75de7d146b6bf49814b0eabae94 public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { return SHAPE; diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index dfc623059f9c5920883a06f9662f1bf3b7a2c4c6..46eeae81a7cda8fab80a255a57dcf096b37461bd 100644 +index 91b6dcb3e4fb8ae2c76084e93917fb9a89bb8beb..90cf24e81d43c7473a99b12484a15c3103208385 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -@@ -733,9 +733,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -734,9 +734,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen if (itemstack1.isEmpty()) { // Spigot start - SPIGOT-6693, InventorySubcontainer#setItem ItemStack leftover = ItemStack.EMPTY; // Paper - Make hoppers respect inventory max stack size diff --git a/patches/server/0047-MC-Technical-Survival-Mode.patch b/patches/server/0047-MC-Technical-Survival-Mode.patch index 14515971..bbefe5a2 100644 --- a/patches/server/0047-MC-Technical-Survival-Mode.patch +++ b/patches/server/0047-MC-Technical-Survival-Mode.patch @@ -31,7 +31,7 @@ index fa1c0aee8c3a4d0868482cf5c703bbfd08e09874..c24148d8486420434922864df6f1ffa0 throw new RuntimeException("Could not reload paper configuration files", ex); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index be185196d2d4ce1f1dd90da8a46b014127e591a0..2211887522f4ee9e069e8d42d797906343864f75 100644 +index a62ceb6287318b5e0af64a25f9660e7ac85e16ac..dc8f5822af57da37f860097eee3cb1c79da8af2b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2728,7 +2728,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -44,7 +44,7 @@ index be185196d2d4ce1f1dd90da8a46b014127e591a0..2211887522f4ee9e069e8d42d7979063 pearl.ownerUUID = null; } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6c15eb1a368aa41c44521054b95a8a46776d76a4..1e0964320b01603953882247895946ad52d70ead 100644 +index 98d7c30e396db54ec8a1b24acab37f7967d90606..a2b1999a00dc22cf8cc743651bbbf47eea8dcabb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1533,7 +1533,7 @@ public class ServerPlayer extends Player { @@ -57,10 +57,10 @@ index 6c15eb1a368aa41c44521054b95a8a46776d76a4..1e0964320b01603953882247895946ad @Override diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -index c99ab157e43fc990549fc06f5b6fb1e227014fde..22812fce0f0427e94d1fdfe08cea1a1247b0d717 100644 +index 036640d49a5e891e9a0f767abe33f1f51d6d4cde..c635ea132c6a5e0f05165a6626d0d9f36fbb0c48 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -@@ -67,7 +67,7 @@ public class EndCrystal extends Entity { +@@ -68,7 +68,7 @@ public class EndCrystal extends Entity { // CraftBukkit end } // Paper start - Fix invulnerable end crystals @@ -70,10 +70,10 @@ index c99ab157e43fc990549fc06f5b6fb1e227014fde..22812fce0f0427e94d1fdfe08cea1a12 || ((ServerLevel) this.level()).getDragonFight() == null || ((ServerLevel) this.level()).getDragonFight().respawnStage == null diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index cd7b955754b809826048b80723e2e9055b373a4a..83ef6f6555fb810236659b395ce17fa414d7a567 100644 +index e712bd07ea2946167782473a536e0c72fab4bccd..89681445d9d66a7fdbab50c39fd598fb45cd7441 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -@@ -71,7 +71,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { +@@ -72,7 +72,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { @Override public void tick() { @@ -109,10 +109,10 @@ index 93fbf20c6e5ded31570415c30b837f5dc0dd5d42..667a480b7c546bb130bbd32a8ae7ce85 entity.spawnReason == org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CHUNK_GEN)) { continue; diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index 46eeae81a7cda8fab80a255a57dcf096b37461bd..68612072f19745ca622b9604fc90867c9437e258 100644 +index 90cf24e81d43c7473a99b12484a15c3103208385..bc130649e30928bae2d7764b616cd2b02e0f2204 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -@@ -291,7 +291,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -292,7 +292,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen origItemStack.setCount(originalItemCount); } } @@ -121,7 +121,7 @@ index 46eeae81a7cda8fab80a255a57dcf096b37461bd..68612072f19745ca622b9604fc90867c hopper.setCooldown(level.spigotConfig.hopperTransfer); } return false; -@@ -332,7 +332,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -333,7 +333,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen } origItemStack.setCount(originalItemCount); diff --git a/patches/server/0048-Return-nether-portal-fix.patch b/patches/server/0048-Return-nether-portal-fix.patch index ac0f5e5e..fb5c169f 100644 --- a/patches/server/0048-Return-nether-portal-fix.patch +++ b/patches/server/0048-Return-nether-portal-fix.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Return nether portal fix This patch is powered by NetherPortalFix(https://github.com/TwelveIterationMods/NetherPortalFix) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 96952b892c7f5a3cc2fa680021539469b2ecdb46..b4f5adba490ec33bbd83be61ae62ceaf8e9f7b17 100644 +index a2b1999a00dc22cf8cc743651bbbf47eea8dcabb..f5cf2fb1751433cbede512a622cbf3b654b7d16e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -187,6 +187,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -74,10 +74,10 @@ index 96952b892c7f5a3cc2fa680021539469b2ecdb46..b4f5adba490ec33bbd83be61ae62ceaf return optional; } else { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index aee640da4164195962b165f1d4ae385dbfd9d3d3..8a40b3d93bebddef417642a947ac73c894dea427 100644 +index 82751434c31fe8825f32921f498fd0156da15454..03c278836208a65b77030b629f2b7678ded29b03 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -121,6 +121,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent; +@@ -122,6 +122,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent; // CraftBukkit end import top.leavesmc.leaves.bot.ServerBot; @@ -85,7 +85,7 @@ index aee640da4164195962b165f1d4ae385dbfd9d3d3..8a40b3d93bebddef417642a947ac73c8 public abstract class PlayerList { -@@ -1003,6 +1004,24 @@ public abstract class PlayerList { +@@ -1004,6 +1005,24 @@ public abstract class PlayerList { if (fromWorld != location.getWorld()) { PlayerChangedWorldEvent event = new PlayerChangedWorldEvent(entityplayer.getBukkitEntity(), fromWorld); this.server.server.getPluginManager().callEvent(event); @@ -111,10 +111,10 @@ index aee640da4164195962b165f1d4ae385dbfd9d3d3..8a40b3d93bebddef417642a947ac73c8 // Save player file again if they were disconnected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 95fa28334cf745d8381f731ab5f56896eb377a9f..b39c0db368b5de59503e434aa3e10f6233375fae 100644 +index d94dea3ec79780e6a49a72d2ab5028e47ae7acc9..d934a51781615d92561ab558022040ee5eb91592 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -240,7 +240,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -241,7 +241,7 @@ public abstract class LivingEntity extends Entity implements Attackable { protected ItemStack useItem; protected int useItemRemaining; protected int fallFlyTicks; diff --git a/patches/server/0050-Xaero-Map-Protocol.patch b/patches/server/0050-Xaero-Map-Protocol.patch index 2d9165db..38ba4ab7 100644 --- a/patches/server/0050-Xaero-Map-Protocol.patch +++ b/patches/server/0050-Xaero-Map-Protocol.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Xaero Map Protocol diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8a40b3d93bebddef417642a947ac73c894dea427..823fd92c38263278673a8c9639952466c51ca16c 100644 +index 03c278836208a65b77030b629f2b7678ded29b03..6e5a7edfbc8781def735d0b2250888288560fbc4 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1322,6 +1322,7 @@ public abstract class PlayerList { +@@ -1323,6 +1323,7 @@ public abstract class PlayerList { player.connection.send(new ClientboundInitializeBorderPacket(worldborder)); player.connection.send(new ClientboundSetTimePacket(world.getGameTime(), world.getDayTime(), world.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(world.getSharedSpawnPos(), world.getSharedSpawnAngle())); diff --git a/patches/server/0052-Use-vanilla-random-config.patch b/patches/server/0052-Use-vanilla-random-config.patch index db9f1c51..0916a2d4 100644 --- a/patches/server/0052-Use-vanilla-random-config.patch +++ b/patches/server/0052-Use-vanilla-random-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use vanilla random config diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 00983d59c699e6557eae0f4d3bd144e71147c9f7..3c12f375e42d9f72470b73fc84b5d86a21f26a99 100644 +index f491c1d402499e68191d4cdc9c8ef2e7caae9c7b..017efdee91fe6326c8e0270c294276b24b42604a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -577,7 +577,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -578,7 +578,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; @@ -44,10 +44,10 @@ index 4f32597c7af34d599f6658fe4962d41624e60419..23efed794def54b0563ed5ab1a43773f } diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index adc179f85a774c47d386144da6b2291e915a0e1d..51cc6ef73da00133bbdc838b1911159a414ba4df 100644 +index b5b522c1307a58453aa293aaa808dd9ec86901fc..45dc79f877bbb4a5384c21a32dc009270b8dc021 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -73,7 +73,13 @@ public class ItemEntity extends Entity implements TraceableEntity { +@@ -74,7 +74,13 @@ public class ItemEntity extends Entity implements TraceableEntity { // Paper start - Don't use level random in entity constructors (to make them thread-safe) this(EntityType.ITEM, world); this.setPos(x, y, z); @@ -63,10 +63,10 @@ index adc179f85a774c47d386144da6b2291e915a0e1d..51cc6ef73da00133bbdc838b1911159a // Paper end - Don't use level random in entity constructors // Leaves start - stackable shulker boxes diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 83ef6f6555fb810236659b395ce17fa414d7a567..33b46370d1f9073b6ce656ee5d110f45def2ee81 100644 +index 89681445d9d66a7fdbab50c39fd598fb45cd7441..6c6c953b2ea5b461ec8ed9a8adf0d28c78ea21d9 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -@@ -43,7 +43,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { +@@ -44,7 +44,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) { this(EntityType.TNT, world); this.setPos(x, y, z); diff --git a/patches/server/0064-Creative-fly-no-clip.patch b/patches/server/0064-Creative-fly-no-clip.patch index 156b2f62..82806c61 100644 --- a/patches/server/0064-Creative-fly-no-clip.patch +++ b/patches/server/0064-Creative-fly-no-clip.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Creative fly no clip 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 5ca1f834f311a87323ced2578535e66efa14e47f..94c61e011b757ded6bc2029cc60d0f6891c8fc9e 100644 +index 567704f61034363e48ef2a5b5566ebdc91682297..8f37983e57321da2a59e047be4a0119118a85a6e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -237,8 +237,8 @@ public abstract class Player extends LivingEntity { +@@ -238,8 +238,8 @@ public abstract class Player extends LivingEntity { @Override public void tick() { @@ -19,7 +19,7 @@ index 5ca1f834f311a87323ced2578535e66efa14e47f..94c61e011b757ded6bc2029cc60d0f68 this.setOnGround(false); } -@@ -417,7 +417,7 @@ public abstract class Player extends LivingEntity { +@@ -418,7 +418,7 @@ public abstract class Player extends LivingEntity { Pose entitypose1; @@ -28,7 +28,7 @@ index 5ca1f834f311a87323ced2578535e66efa14e47f..94c61e011b757ded6bc2029cc60d0f68 if (this.canPlayerFitWithinBlocksAndEntitiesWhen(Pose.CROUCHING)) { entitypose1 = Pose.CROUCHING; } else { -@@ -577,7 +577,7 @@ public abstract class Player extends LivingEntity { +@@ -578,7 +578,7 @@ public abstract class Player extends LivingEntity { } this.bob += (f - this.bob) * 0.4F; @@ -37,7 +37,7 @@ index 5ca1f834f311a87323ced2578535e66efa14e47f..94c61e011b757ded6bc2029cc60d0f68 AABB axisalignedbb; if (this.isPassenger() && !this.getVehicle().isRemoved()) { -@@ -2068,6 +2068,21 @@ public abstract class Player extends LivingEntity { +@@ -2076,6 +2076,21 @@ public abstract class Player extends LivingEntity { @Override public abstract boolean isSpectator(); @@ -99,7 +99,7 @@ index 5c311270a39f6b4996c8b58822d24556c67adc41..cb40179236952edcc1678a58a5886b19 } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index d0e8842a2c4f7dbd0d6ac3694b2a6a5395d8a542..0bf810971464d27b3e26b24cb8579d450a1fd37b 100644 +index 54f7bdd0e003ed170d739593199a2bb8ff0bbd68..1193c4809d551c12329c7f4b380a134609cbe85d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java @@ -18,6 +18,7 @@ import net.minecraft.util.Mth; @@ -110,7 +110,7 @@ index d0e8842a2c4f7dbd0d6ac3694b2a6a5395d8a542..0bf810971464d27b3e26b24cb8579d45 import net.minecraft.world.entity.projectile.ThrownEnderpearl; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.ChunkPos; -@@ -127,7 +128,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -128,7 +129,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { } public static boolean canEntityTeleport(Entity entity) { diff --git a/patches/server/0069-Elytra-aeronautics-no-chunk-load.patch b/patches/server/0069-Elytra-aeronautics-no-chunk-load.patch index 2205ea7a..eae73dc6 100644 --- a/patches/server/0069-Elytra-aeronautics-no-chunk-load.patch +++ b/patches/server/0069-Elytra-aeronautics-no-chunk-load.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elytra aeronautics no chunk load diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c32002aca09ec20aadfe71c2626672e75255a31a..b460bef510213f10a913c162d9a167146c6b019d 100644 +index 8d3df7a26a5fa217648754cf6c52651d423d4511..234897e942df0023307418566211a549a32124e9 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -150,7 +150,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -45,7 +45,7 @@ index c32002aca09ec20aadfe71c2626672e75255a31a..b460bef510213f10a913c162d9a16714 SectionPos sectionposition = player.getLastSectionPos(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8f2bb7df5c0925b2ef700aebfcbdc539a4dddfe1..08d66f20294b7f4ef0f3f6c5ef799348ea3d9ce5 100644 +index d72326ff333adf3300a6159b1cc644d3381cede6..703d2bf9f486a4effba2c265c117b8a24a8bb65f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -545,7 +545,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -58,10 +58,10 @@ index 8f2bb7df5c0925b2ef700aebfcbdc539a4dddfe1..08d66f20294b7f4ef0f3f6c5ef799348 !worldserver.areChunksLoadedForMove(entity.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(entity.position()))) )) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1a606bbcb1c3f2f72fcc2c7ad1a6d50ec8a26efb..875b4cf7243681062b6f4081f6b6e9db07e8c1a3 100644 +index 017efdee91fe6326c8e0270c294276b24b42604a..2d3fe02aab536876db949dce184395f731c5d31c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1102,7 +1102,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1115,7 +1115,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } } @@ -76,7 +76,7 @@ index 1a606bbcb1c3f2f72fcc2c7ad1a6d50ec8a26efb..875b4cf7243681062b6f4081f6b6e9db this.level().getProfiler().push("move"); if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); -@@ -2037,6 +2043,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2050,6 +2056,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.yo = y; this.zo = d4; this.setPos(d3, y, d4); @@ -85,10 +85,10 @@ index 1a606bbcb1c3f2f72fcc2c7ad1a6d50ec8a26efb..875b4cf7243681062b6f4081f6b6e9db } 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 94c61e011b757ded6bc2029cc60d0f6891c8fc9e..c53c9e62763bde9d291c469c71a0a4db55e3a793 100644 +index 8f37983e57321da2a59e047be4a0119118a85a6e..73bef9f6b24dd8a87f82a8a0817be03420267d17 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -182,6 +182,8 @@ public abstract class Player extends LivingEntity { +@@ -183,6 +183,8 @@ public abstract class Player extends LivingEntity { public float hurtDir; // Paper - protected -> public public boolean affectsSpawning = true; // Paper - Affects Spawning API public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage diff --git a/patches/server/0073-Raider-die-skip-self-raid-check.patch b/patches/server/0073-Raider-die-skip-self-raid-check.patch index 4dc984b2..4e51d488 100644 --- a/patches/server/0073-Raider-die-skip-self-raid-check.patch +++ b/patches/server/0073-Raider-die-skip-self-raid-check.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Raider die skip self raid check diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java -index 226fb5c88dd43c8008c5237299ef80db9e847af7..dc1c63efc6c2ba1693dad9c484caff29f5634475 100644 +index 93bbf7556f9599e9dd90761085a57d78bd521867..e6af29b4934a3d2344ad97c4bbc23523e458ea6a 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java -@@ -134,7 +134,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -137,7 +137,7 @@ public abstract class Raider extends PatrollingMonster { raid.removeFromRaid(this, false); } diff --git a/patches/server/0077-SIMD-support.patch b/patches/server/0077-SIMD-support.patch index c0d1c8d4..e68a0093 100644 --- a/patches/server/0077-SIMD-support.patch +++ b/patches/server/0077-SIMD-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] SIMD support diff --git a/build.gradle.kts b/build.gradle.kts -index a9269245ad80d4071e9c09190fc20ce97809e4a1..9a0b18e534a2fde5ecd7477838e26ed1f0141631 100644 +index 411c1929e78e5706eae040c209d9727e17e553b8..a3b803b43c6a6c45f378fe7bc74ded6f09b97766 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -69,6 +69,7 @@ tasks.withType { +@@ -70,6 +70,7 @@ tasks.withType { compilerArgs.add("-Xlint:-module") compilerArgs.add("-Xlint:-removal") compilerArgs.add("-Xlint:-dep-ann") @@ -16,7 +16,7 @@ index a9269245ad80d4071e9c09190fc20ce97809e4a1..9a0b18e534a2fde5ecd7477838e26ed1 } // Leaves end - hide irrelevant compilation warnings -@@ -193,6 +194,8 @@ fun TaskContainer.registerRunTask( +@@ -194,6 +195,8 @@ fun TaskContainer.registerRunTask( minHeapSize = "${memoryGb}G" maxHeapSize = "${memoryGb}G" diff --git a/patches/server/0088-Reduce-array-allocations.patch b/patches/server/0088-Reduce-array-allocations.patch index a5d9b41b..6bd4687e 100644 --- a/patches/server/0088-Reduce-array-allocations.patch +++ b/patches/server/0088-Reduce-array-allocations.patch @@ -73,18 +73,18 @@ index ae60bd96b5284d54676d8e7e4dd5d170b526ec1e..ad33c51ea9f74d2afd39c9139a9114b0 return true; } diff --git a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java -index 7e8dc9e8f381abfdcce2746edc93122d623622d1..59403aa7b77adab763c60f3f7805c802a94dcd41 100644 +index c78cbec447032de9fe69748591bef6be300160ed..127525545aea0ed32d5385e0f35de1cb5671c429 100644 --- a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java +++ b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java -@@ -24,6 +24,7 @@ import java.util.Arrays; - import java.util.Iterator; +@@ -25,6 +25,7 @@ import java.util.Iterator; import java.util.List; import java.util.function.Predicate; + import org.bukkit.event.entity.EntityRemoveEvent; +import top.leavesmc.leaves.util.ArrayConstants; public final class ChunkEntitySlices { -@@ -82,7 +83,7 @@ public final class ChunkEntitySlices { +@@ -83,7 +84,7 @@ public final class ChunkEntitySlices { } } @@ -93,7 +93,7 @@ index 7e8dc9e8f381abfdcce2746edc93122d623622d1..59403aa7b77adab763c60f3f7805c802 } public CompoundTag save() { -@@ -303,7 +304,7 @@ public final class ChunkEntitySlices { +@@ -304,7 +305,7 @@ public final class ChunkEntitySlices { protected static final class BasicEntityList { @@ -102,7 +102,7 @@ index 7e8dc9e8f381abfdcce2746edc93122d623622d1..59403aa7b77adab763c60f3f7805c802 protected static final int DEFAULT_CAPACITY = 4; protected E[] storage; -@@ -314,7 +315,7 @@ public final class ChunkEntitySlices { +@@ -315,7 +316,7 @@ public final class ChunkEntitySlices { } public BasicEntityList(final int cap) { @@ -111,7 +111,7 @@ index 7e8dc9e8f381abfdcce2746edc93122d623622d1..59403aa7b77adab763c60f3f7805c802 } public boolean isEmpty() { -@@ -326,7 +327,7 @@ public final class ChunkEntitySlices { +@@ -327,7 +328,7 @@ public final class ChunkEntitySlices { } private void resize() { @@ -227,7 +227,7 @@ index b2183c298b0c68daee41238735621ff002338a68..3957ab1ebd7e84cfe0bef81a8cce566d for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 678410cd734cd7e3e3b999b7908f2e3f25f23a13..1240121d732a9697ec6bffcc459a00c71d5f4350 100644 +index 19cad699f2bced15ef92be23a4c3485ece72734f..2ab4340e5603607e54773d4daaa115c09487da54 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -177,6 +177,7 @@ import org.bukkit.event.weather.LightningStrikeEvent; @@ -257,7 +257,7 @@ index 678410cd734cd7e3e3b999b7908f2e3f25f23a13..1240121d732a9697ec6bffcc459a00c7 return ret; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 08d66f20294b7f4ef0f3f6c5ef799348ea3d9ce5..0e6cec7fd2ed5b8a647678a0d5ab783e3fe10d43 100644 +index 703d2bf9f486a4effba2c265c117b8a24a8bb65f..6745b01c324589ae14b4162729e087efb29116d8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -242,6 +242,7 @@ import org.bukkit.inventory.EquipmentSlot; @@ -310,10 +310,10 @@ index c5fa9f4d28f9a7f64a50a902ee5e631bfc00119c..4f93d69b51f91e25f1ee00300b553311 final String s; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 823fd92c38263278673a8c9639952466c51ca16c..3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1 100644 +index 6e5a7edfbc8781def735d0b2250888288560fbc4..139129f0110dc656bc729ce795f012ec087641cf 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -122,6 +122,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent; +@@ -123,6 +123,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent; import top.leavesmc.leaves.bot.ServerBot; import top.leavesmc.leaves.util.ReturnPortalManager; // Leaves - return portal fix @@ -322,10 +322,10 @@ index 823fd92c38263278673a8c9639952466c51ca16c..3bec06ed4b47af1b40ba4fef264ef7b3 public abstract class PlayerList { diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java -index 35f973cc2c0989256fa21abaf0327c2f36dbe4c9..a9ece1225fa302843423006f610889cd9773fbfb 100644 +index 7e133752ccb1ea7c0b4fa781feb1a88e2cfdcf6d..b2a8a6f3a6a2934f30d9212bd935651056551be8 100644 --- a/src/main/java/net/minecraft/server/players/StoredUserList.java +++ b/src/main/java/net/minecraft/server/players/StoredUserList.java -@@ -25,6 +25,7 @@ import javax.annotation.Nullable; +@@ -24,6 +24,7 @@ import javax.annotation.Nullable; import net.minecraft.Util; import net.minecraft.util.GsonHelper; import org.slf4j.Logger; @@ -333,7 +333,7 @@ index 35f973cc2c0989256fa21abaf0327c2f36dbe4c9..a9ece1225fa302843423006f610889cd public abstract class StoredUserList> { -@@ -77,7 +78,7 @@ public abstract class StoredUserList> { +@@ -76,7 +77,7 @@ public abstract class StoredUserList> { } public String[] getUserList() { @@ -371,10 +371,10 @@ index 2e324276ea4cd9e528c6a3f9a9ba394b378fe075..8d949983a30f27a60982f6b406151408 private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) { this.type = type; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b39c0db368b5de59503e434aa3e10f6233375fae..0a5d43fa861aed808593e22aaa045bc35543deb9 100644 +index d934a51781615d92561ab558022040ee5eb91592..4a743b38d32dc31e3867900e13fffd12505a8710 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3158,7 +3158,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3166,7 +3166,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @Nullable private Map collectEquipmentChanges() { Map map = null; @@ -384,10 +384,10 @@ index b39c0db368b5de59503e434aa3e10f6233375fae..0a5d43fa861aed808593e22aaa045bc3 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 35e2cf1b4f5e7f15ff7821b09ed42a1cc69bb3ac..ab781eeb24f832a13b1cedf73ca6391daaf58248 100644 +index 9fa6b43768ad5608db9232d464a455eca453b7fd..42aa72f4a665f550013d1172121950cfc3bb88a3 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1088,7 +1088,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1089,7 +1089,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override protected void dropCustomDeathLoot(DamageSource source, int lootingMultiplier, boolean allowDrops) { super.dropCustomDeathLoot(source, lootingMultiplier, allowDrops); @@ -396,7 +396,7 @@ index 35e2cf1b4f5e7f15ff7821b09ed42a1cc69bb3ac..ab781eeb24f832a13b1cedf73ca6391d int j = aenumitemslot.length; for (int k = 0; k < j; ++k) { -@@ -1151,7 +1151,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1152,7 +1152,7 @@ public abstract class Mob extends LivingEntity implements Targeting { } boolean flag = true; @@ -405,7 +405,7 @@ index 35e2cf1b4f5e7f15ff7821b09ed42a1cc69bb3ac..ab781eeb24f832a13b1cedf73ca6391d int j = aenumitemslot.length; for (int k = 0; k < j; ++k) { -@@ -1238,7 +1238,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1239,7 +1239,7 @@ public abstract class Mob extends LivingEntity implements Targeting { float f = localDifficulty.getSpecialMultiplier(); this.enchantSpawnedWeapon(random, f); @@ -414,7 +414,7 @@ index 35e2cf1b4f5e7f15ff7821b09ed42a1cc69bb3ac..ab781eeb24f832a13b1cedf73ca6391d int i = aenumitemslot.length; for (int j = 0; j < i; ++j) { -@@ -1457,7 +1457,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1458,7 +1458,7 @@ public abstract class Mob extends LivingEntity implements Targeting { t0.setInvulnerable(this.isInvulnerable()); if (flag) { t0.setCanPickUpLoot(this.canPickUpLoot()); @@ -479,7 +479,7 @@ index 6c2e8049c2197ddc912c1a0fc99c87beae81e25b..be13baa7b51c4ad377b50d8ca8f7cfad private static Enchantment register(String name, Enchantment enchantment) { return Registry.register(BuiltInRegistries.ENCHANTMENT, name, enchantment); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index dc439ab9e7224d36cda22e2acb11fe7f346ef849..e94489ae3c93b9ff19a56163835afd0c6f342fc1 100644 +index 8b51e2dc811876a5bf043cdeb54cd3913d57fef2..b850e35e2bf5bba06f982328745ece5ba4d57194 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -95,6 +95,7 @@ import org.bukkit.craftbukkit.util.CraftSpawnCategory; diff --git a/patches/server/0089-Optimize-sun-burn-tick.patch b/patches/server/0089-Optimize-sun-burn-tick.patch index 2b427d9e..b29d59ab 100644 --- a/patches/server/0089-Optimize-sun-burn-tick.patch +++ b/patches/server/0089-Optimize-sun-burn-tick.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize sun burn tick This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 875b4cf7243681062b6f4081f6b6e9db07e8c1a3..ebf632acc90a6f8a23208da49152fc1fdd5a0e69 100644 +index 2d3fe02aab536876db949dce184395f731c5d31c..63e5a05d2dab763ee7ed9517f5a2807ddff7645b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2023,8 +2023,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2036,8 +2036,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S /** @deprecated */ @Deprecated public float getLightLevelDependentMagicValue() { @@ -34,10 +34,10 @@ index 875b4cf7243681062b6f4081f6b6e9db07e8c1a3..ebf632acc90a6f8a23208da49152fc1f public void absMoveTo(double x, double y, double z, float yaw, float pitch) { this.absMoveTo(x, y, z); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index ab781eeb24f832a13b1cedf73ca6391daaf58248..968f0baa02e32653d2fdcfaa07fca1ade195b0ee 100644 +index 42aa72f4a665f550013d1172121950cfc3bb88a3..95c2c91ce4c45dcd8e896a8859a9e2fdebe8b6ba 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1723,15 +1723,41 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1724,15 +1724,41 @@ public abstract class Mob extends LivingEntity implements Targeting { } diff --git a/patches/server/0094-Check-frozen-ticks-before-landing-block.patch b/patches/server/0094-Check-frozen-ticks-before-landing-block.patch index 1bc9676a..dbd4110c 100644 --- a/patches/server/0094-Check-frozen-ticks-before-landing-block.patch +++ b/patches/server/0094-Check-frozen-ticks-before-landing-block.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Check frozen ticks before landing block This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0a5d43fa861aed808593e22aaa045bc35543deb9..453887abfc7a6ea5df45a4fb90971c7c316f56f3 100644 +index 4a743b38d32dc31e3867900e13fffd12505a8710..986f63268649f8bcbd190758cbc9eff766029b32 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -581,11 +581,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -582,11 +582,11 @@ public abstract class LivingEntity extends Entity implements Attackable { } protected void tryAddFrost() { diff --git a/patches/server/0095-Cache-ominous-banner-item.patch b/patches/server/0095-Cache-ominous-banner-item.patch index 09ddb088..f26b7e1d 100644 --- a/patches/server/0095-Cache-ominous-banner-item.patch +++ b/patches/server/0095-Cache-ominous-banner-item.patch @@ -38,10 +38,10 @@ index eaa2943b667967f93f28d9d794d702fdaeb670ec..5ceef34c59f1fca9a539ce93aa181456 CompoundTag nbttagcompound = new CompoundTag(); ListTag nbttaglist = (new BannerPattern.Builder()).addPattern(BannerPatterns.RHOMBUS_MIDDLE, DyeColor.CYAN).addPattern(BannerPatterns.STRIPE_BOTTOM, DyeColor.LIGHT_GRAY).addPattern(BannerPatterns.STRIPE_CENTER, DyeColor.GRAY).addPattern(BannerPatterns.BORDER, DyeColor.LIGHT_GRAY).addPattern(BannerPatterns.STRIPE_MIDDLE, DyeColor.BLACK).addPattern(BannerPatterns.HALF_HORIZONTAL, DyeColor.LIGHT_GRAY).addPattern(BannerPatterns.CIRCLE_MIDDLE, DyeColor.LIGHT_GRAY).addPattern(BannerPatterns.BORDER, DyeColor.BLACK).toListTag(); diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java -index dc1c63efc6c2ba1693dad9c484caff29f5634475..d37a01705421dc4f1c8ad14ef7ca50e90c821a0c 100644 +index e6af29b4934a3d2344ad97c4bbc23523e458ea6a..79c099be8c10d4402fd3410bcaa496a6b2d242d8 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java -@@ -47,7 +47,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -50,7 +50,7 @@ public abstract class Raider extends PatrollingMonster { protected static final EntityDataAccessor IS_CELEBRATING = SynchedEntityData.defineId(Raider.class, EntityDataSerializers.BOOLEAN); static final Predicate ALLOWED_ITEMS = (entityitem) -> { @@ -50,7 +50,7 @@ index dc1c63efc6c2ba1693dad9c484caff29f5634475..d37a01705421dc4f1c8ad14ef7ca50e9 }; @Nullable protected Raid raid; -@@ -149,7 +149,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -152,7 +152,7 @@ public abstract class Raider extends PatrollingMonster { } } @@ -59,7 +59,7 @@ index dc1c63efc6c2ba1693dad9c484caff29f5634475..d37a01705421dc4f1c8ad14ef7ca50e9 MobEffectInstance mobeffect = entityhuman.getEffect(MobEffects.BAD_OMEN); byte b0 = 1; int i; -@@ -244,7 +244,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -247,7 +247,7 @@ public abstract class Raider extends PatrollingMonster { ItemStack itemstack = item.getItem(); boolean flag = this.hasActiveRaid() && this.getCurrentRaid().getLeader(this.getWave()) != null; @@ -68,7 +68,7 @@ index dc1c63efc6c2ba1693dad9c484caff29f5634475..d37a01705421dc4f1c8ad14ef7ca50e9 // Paper start - EntityPickupItemEvent fixes if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(this, item, 0, false).isCancelled()) { return; -@@ -322,7 +322,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -325,7 +325,7 @@ public abstract class Raider extends PatrollingMonster { if (!this.mob.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) || !this.mob.canPickUpLoot()) return false; // Paper - respect game and entity rules for picking up items Raid raid = this.mob.getCurrentRaid(); diff --git a/patches/server/0096-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0096-Skip-entity-move-if-movement-is-zero.patch index 6f461bf8..a4ffc542 100644 --- a/patches/server/0096-Skip-entity-move-if-movement-is-zero.patch +++ b/patches/server/0096-Skip-entity-move-if-movement-is-zero.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Skip entity move if movement is zero This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ebf632acc90a6f8a23208da49152fc1fdd5a0e69..e0a09e000bc4a9159f7eb170a754322a0db51da2 100644 +index 63e5a05d2dab763ee7ed9517f5a2807ddff7645b..6f215fdd907526472c6deec855597be967e6242a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -316,6 +316,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -317,6 +317,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public float yRotO; public float xRotO; private AABB bb; @@ -17,7 +17,7 @@ index ebf632acc90a6f8a23208da49152fc1fdd5a0e69..e0a09e000bc4a9159f7eb170a754322a public boolean onGround; public boolean horizontalCollision; public boolean verticalCollision; -@@ -1079,6 +1080,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1092,6 +1093,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper end - detailed watchdog information public void move(MoverType movementType, Vec3 movement) { @@ -31,7 +31,7 @@ index ebf632acc90a6f8a23208da49152fc1fdd5a0e69..e0a09e000bc4a9159f7eb170a754322a final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity // Paper start - detailed watchdog information io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); -@@ -4111,6 +4119,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4127,6 +4135,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public final void setBoundingBox(AABB boundingBox) { diff --git a/patches/server/0098-Skip-negligible-planar-movement-multiplication.patch b/patches/server/0098-Skip-negligible-planar-movement-multiplication.patch index 6ebf7fc6..41599f36 100644 --- a/patches/server/0098-Skip-negligible-planar-movement-multiplication.patch +++ b/patches/server/0098-Skip-negligible-planar-movement-multiplication.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Skip negligible planar movement multiplication This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e0a09e000bc4a9159f7eb170a754322a0db51da2..12db5e0dad3ba271ee6335074c6bf2b0d8801599 100644 +index 6f215fdd907526472c6deec855597be967e6242a..82970b3108a437eea27b3a2f0ec22a86c64a465c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1251,9 +1251,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1264,9 +1264,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.tryCheckInsideBlocks(); diff --git a/patches/server/0099-Fix-villagers-dont-release-memory.patch b/patches/server/0099-Fix-villagers-dont-release-memory.patch index 6900e371..57e64eaa 100644 --- a/patches/server/0099-Fix-villagers-dont-release-memory.patch +++ b/patches/server/0099-Fix-villagers-dont-release-memory.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix villagers dont release memory diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 1aae466e3e334d7f4bbb3ea9365a255afcc3dd3a..82f52d90c38be29b788bef2a3bb520e4792de763 100644 +index 24044795d8e0f1fb15a4f2f5401f44897092f2a3..3d770c2b47b796b628a1452e7bb2392c7e371ac0 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -1076,4 +1076,20 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -1077,4 +1077,20 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return optional.isPresent() ? worldTime - (Long) optional.get() < 24000L : false; } diff --git a/patches/server/0106-Replay-Mod-API.patch b/patches/server/0106-Replay-Mod-API.patch index 61fa7a00..3e17e59b 100644 --- a/patches/server/0106-Replay-Mod-API.patch +++ b/patches/server/0106-Replay-Mod-API.patch @@ -133,7 +133,7 @@ index 2e2a7c2cf3081187da817479a9da3eb10f662a6d..ee616fe98c98a345872c1eadf41c7852 }).map((player) -> { return player.getGameProfile().getName(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0e6cec7fd2ed5b8a647678a0d5ab783e3fe10d43..3e212eb7a16309511f644170055c282e3d15f9b5 100644 +index 6745b01c324589ae14b4162729e087efb29116d8..a4883bb9d296fb068351f0bcc13c41a8bda95286 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -299,7 +299,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -146,10 +146,10 @@ index 0e6cec7fd2ed5b8a647678a0d5ab783e3fe10d43..3e212eb7a16309511f644170055c282e } else { connection.setListener(this); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1..fdb4f4f8079ed680fc8deb068a5e2f0c867b548e 100644 +index 139129f0110dc656bc729ce795f012ec087641cf..dc140b2003a997c13f7bdc8f5c707f98f4d6ff17 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -123,6 +123,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent; +@@ -124,6 +124,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent; import top.leavesmc.leaves.bot.ServerBot; import top.leavesmc.leaves.util.ReturnPortalManager; // Leaves - return portal fix import top.leavesmc.leaves.util.ArrayConstants; @@ -157,7 +157,7 @@ index 3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1..fdb4f4f8079ed680fc8deb068a5e2f0c public abstract class PlayerList { -@@ -155,6 +156,7 @@ public abstract class PlayerList { +@@ -156,6 +157,7 @@ public abstract class PlayerList { private boolean allowCheatsForAllPlayers; private static final boolean ALLOW_LOGOUTIVATOR = false; private int sendAllPlayerInfoIn; @@ -165,7 +165,7 @@ index 3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1..fdb4f4f8079ed680fc8deb068a5e2f0c // CraftBukkit start private CraftServer cserver; -@@ -181,6 +183,120 @@ public abstract class PlayerList { +@@ -182,6 +184,120 @@ public abstract class PlayerList { } abstract public void loadAndSaveFiles(); // Paper - fix converting txt to json file; moved from DedicatedPlayerList constructor @@ -286,7 +286,7 @@ index 3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1..fdb4f4f8079ed680fc8deb068a5e2f0c public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie clientData) { player.isRealPlayer = true; // Paper player.loginTime = System.currentTimeMillis(); // Paper - Replace OfflinePlayer#getLastPlayed -@@ -327,6 +443,7 @@ public abstract class PlayerList { +@@ -328,6 +444,7 @@ public abstract class PlayerList { // entityplayer.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(this.players)); // CraftBukkit - replaced with loop below this.players.add(player); @@ -294,7 +294,7 @@ index 3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1..fdb4f4f8079ed680fc8deb068a5e2f0c this.playersByName.put(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT), player); // Spigot this.playersByUUID.put(player.getUUID(), player); // this.broadcastAll(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer))); // CraftBukkit - replaced with loop below -@@ -398,6 +515,12 @@ public abstract class PlayerList { +@@ -399,6 +516,12 @@ public abstract class PlayerList { continue; } @@ -307,7 +307,7 @@ index 3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1..fdb4f4f8079ed680fc8deb068a5e2f0c onlinePlayers.add(entityplayer1); // Paper - Use single player info update packet on join } // Paper start - Use single player info update packet on join -@@ -612,6 +735,43 @@ public abstract class PlayerList { +@@ -613,6 +736,43 @@ public abstract class PlayerList { } @@ -351,7 +351,7 @@ index 3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1..fdb4f4f8079ed680fc8deb068a5e2f0c public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer) { // CraftBukkit - return string // Paper - return Component // Paper start - Fix kick event leave message not being sent return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); -@@ -680,6 +840,7 @@ public abstract class PlayerList { +@@ -681,6 +841,7 @@ public abstract class PlayerList { entityplayer.retireScheduler(); // Paper - Folia schedulers entityplayer.getAdvancements().stopListening(); this.players.remove(entityplayer); @@ -359,7 +359,7 @@ index 3bec06ed4b47af1b40ba4fef264ef7b3d643fbf1..fdb4f4f8079ed680fc8deb068a5e2f0c this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer); UUID uuid = entityplayer.getUUID(); -@@ -773,7 +934,7 @@ public abstract class PlayerList { +@@ -774,7 +935,7 @@ public abstract class PlayerList { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, io.papermc.paper.adventure.PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure } else { // return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null; @@ -410,10 +410,10 @@ index 412d8201906d3a0915a32837944e960b151a5605..2e9c8ce754fa68121e2acbc4cd6ba828 + // Leaves end - replay mod api } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index dc7ba0ce76031e6dd7e550ceaf3b2f97cbc307f1..ca4a3830e2c57107921be7eef6f15f3680809321 100644 +index 76e4d5b788e1049120e415906bb79e9f222148b2..50160da2fcc5658bc7db181075fa8e01dbd71aee 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -58,6 +58,8 @@ import top.leavesmc.leaves.bot.ServerBot; +@@ -59,6 +59,8 @@ import top.leavesmc.leaves.bot.ServerBot; import top.leavesmc.leaves.entity.CraftBot; import net.md_5.bungee.api.chat.BaseComponent; // Spigot @@ -422,7 +422,7 @@ index dc7ba0ce76031e6dd7e550ceaf3b2f97cbc307f1..ca4a3830e2c57107921be7eef6f15f36 public abstract class CraftEntity implements org.bukkit.entity.Entity { private static PermissibleBase perm; -@@ -94,6 +96,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -95,6 +97,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } if (entity instanceof ServerBot) { return new CraftBot(server, (ServerBot) entity); } @@ -431,7 +431,7 @@ index dc7ba0ce76031e6dd7e550ceaf3b2f97cbc307f1..ca4a3830e2c57107921be7eef6f15f36 // Special case complex part, since there is no extra entity type for them if (entity instanceof EnderDragonPart complexPart) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 206520f6f20b2e48b1eefdd4edb26510b88e4c92..e5ffd43289e67fa2bfd30bf8b8e2e88272b7a0e6 100644 +index 616d2e479d91673695ade0db151a0099b568904f..588e1407c99a75012b234bbe5dc8560d9fa07cf0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2136,7 +2136,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0107-Fix-vehicle-teleport-by-end-gateway.patch b/patches/server/0107-Fix-vehicle-teleport-by-end-gateway.patch index 73e91f1a..3c7f9ed2 100644 --- a/patches/server/0107-Fix-vehicle-teleport-by-end-gateway.patch +++ b/patches/server/0107-Fix-vehicle-teleport-by-end-gateway.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix vehicle teleport by end gateway diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index 0bf810971464d27b3e26b24cb8579d450a1fd37b..8cf9db4bf550cfec402fdfbfcc098cd18ea499d7 100644 +index 1193c4809d551c12329c7f4b380a134609cbe85d..96f323b1ce7ffa0e1a4c58b39da1f01a356310ad 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -@@ -108,7 +108,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -109,7 +109,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { if (!list.isEmpty()) { // Paper start - Ensure safe gateway teleport for (Entity entity : list) { diff --git a/patches/server/0110-Wool-Hopper-Counter.patch b/patches/server/0110-Wool-Hopper-Counter.patch index 67c904c6..7a15fe55 100644 --- a/patches/server/0110-Wool-Hopper-Counter.patch +++ b/patches/server/0110-Wool-Hopper-Counter.patch @@ -19,10 +19,10 @@ index 7c29750e534eae4266bf7a63c50e3827401d6569..ab9a8c428975d016fbfa210b3a8cb531 public ItemStack[] itemStacks; @Nullable diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index 68612072f19745ca622b9604fc90867c9437e258..366b0233cee56a164f056ca596877357c492d614 100644 +index bc130649e30928bae2d7764b616cd2b02e0f2204..e125c2baba0513595af269a0b6e06cf074305266 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -@@ -444,6 +444,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -445,6 +445,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen // Paper end - Perf: Optimize Hoppers private static boolean ejectItems(Level world, BlockPos blockposition, BlockState iblockdata, Container iinventory, HopperBlockEntity hopper) { // CraftBukkit @@ -36,7 +36,7 @@ index 68612072f19745ca622b9604fc90867c9437e258..366b0233cee56a164f056ca596877357 Container iinventory1 = HopperBlockEntity.getAttachedContainer(world, blockposition, iblockdata); if (iinventory1 == null) { -@@ -501,6 +508,23 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -502,6 +509,23 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen } } diff --git a/patches/server/0111-RNG-Fishing.patch b/patches/server/0111-RNG-Fishing.patch index 6a4d97fe..058af30b 100644 --- a/patches/server/0111-RNG-Fishing.patch +++ b/patches/server/0111-RNG-Fishing.patch @@ -5,10 +5,10 @@ Subject: [PATCH] RNG Fishing diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -index c07801c2eba35cc97a3a967d6d6f3fb15e5a84af..d576bd2d2b6b38f0384bb2bc044f11ceebc65b97 100644 +index c4e09998ed133e74dcf488869d82d9154a18d3de..d0ce318d8be176e95888a26641bb092d2e7adddc 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -@@ -504,7 +504,7 @@ public class FishingHook extends Projectile { +@@ -505,7 +505,7 @@ public class FishingHook extends Projectile { } else if (this.nibble > 0) { LootParams lootparams = (new LootParams.Builder((ServerLevel) this.level())).withParameter(LootContextParams.ORIGIN, this.position()).withParameter(LootContextParams.TOOL, usedItem).withParameter(LootContextParams.THIS_ENTITY, this).withLuck((float) this.luck + entityhuman.getLuck()).create(LootContextParamSets.FISHING); LootTable loottable = this.level().getServer().getLootData().getLootTable(BuiltInLootTables.FISHING); diff --git a/patches/server/0114-Force-Void-Trade.patch b/patches/server/0114-Force-Void-Trade.patch index 47be39bf..d1abc283 100644 --- a/patches/server/0114-Force-Void-Trade.patch +++ b/patches/server/0114-Force-Void-Trade.patch @@ -74,10 +74,10 @@ index fd1648546542f146ba7b866873f105ed1427ef7d..1ecbb7cb0f608e11ce84d7082bd4d301 + // Leaves end - force void trade } diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 82f52d90c38be29b788bef2a3bb520e4792de763..73ab81f16b1e5ea091bf3c34d23c52d5d3db9f70 100644 +index 3d770c2b47b796b628a1452e7bb2392c7e371ac0..3e54994e883ee71099daefcf87a9af64bb17fc92 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -347,6 +347,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -348,6 +348,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } private void startTrading(Player customer) { @@ -85,7 +85,7 @@ index 82f52d90c38be29b788bef2a3bb520e4792de763..73ab81f16b1e5ea091bf3c34d23c52d5 this.updateSpecialPrices(customer); this.setTradingPlayer(customer); this.openTradingScreen(customer, this.getDisplayName(), this.getVillagerData().getLevel()); -@@ -649,8 +650,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -650,8 +651,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler protected void rewardTradeXp(MerchantOffer offer) { int i = 3 + this.random.nextInt(4); @@ -101,10 +101,10 @@ index 82f52d90c38be29b788bef2a3bb520e4792de763..73ab81f16b1e5ea091bf3c34d23c52d5 this.updateMerchantTimer = 40; this.increaseProfessionLevelOnUpdate = true; diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 1c89f20debfad9807c90a21cc336d5790294ebce..1666bf3f94b6da030ef5d887c255bdfcf8b081cf 100644 +index 8d1cc1a644415be251f469ab1cb2ebc09fe5c3eb..57e24718fc04283b47067fc2c4cb1956d256a722 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -@@ -120,6 +120,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill +@@ -121,6 +121,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill return InteractionResult.sidedSuccess(this.level().isClientSide); } else { if (!this.level().isClientSide) { @@ -188,10 +188,10 @@ index 02feea12c998f37098b72becf6bfaf6b27d155de..b0ac4dcb539c3286a0c79ce7322f8cb8 public void setToOutOfStock() { diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index 8cf9db4bf550cfec402fdfbfcc098cd18ea499d7..edebf6ab2711ba3e3e689269d9abd6067ecab605 100644 +index 96f323b1ce7ffa0e1a4c58b39da1f01a356310ad..d335ceecd60810479b49c2a36035605087173a98 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -@@ -225,6 +225,16 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -226,6 +226,16 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { return; } diff --git a/patches/server/0120-Armor-stand-cant-kill-by-mob-projectile.patch b/patches/server/0120-Armor-stand-cant-kill-by-mob-projectile.patch index c2bbea81..c7530289 100644 --- a/patches/server/0120-Armor-stand-cant-kill-by-mob-projectile.patch +++ b/patches/server/0120-Armor-stand-cant-kill-by-mob-projectile.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Armor stand cant kill by mob projectile diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index ea09c39738eb36eb85a002cbd9f73c93b98cadfb..b019cebe4eafd8218598d70dedaabf7d0ef55c7c 100644 +index 575ef3806fc89b7492f5d6b6500e37c775dfaad8..9720d9d0b0c732147f7e0004896cbaa35318d24d 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -518,6 +518,14 @@ public class ArmorStand extends LivingEntity { +@@ -519,6 +519,14 @@ public class ArmorStand extends LivingEntity { boolean flag = source.is(DamageTypeTags.CAN_BREAK_ARMOR_STAND); boolean flag1 = source.is(DamageTypeTags.ALWAYS_KILLS_ARMOR_STANDS); diff --git a/patches/server/0121-Make-Item-tick-vanilla.patch b/patches/server/0121-Make-Item-tick-vanilla.patch index f930beaa..4810b635 100644 --- a/patches/server/0121-Make-Item-tick-vanilla.patch +++ b/patches/server/0121-Make-Item-tick-vanilla.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make Item tick vanilla diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 51cc6ef73da00133bbdc838b1911159a414ba4df..ab690ddc77ec149913f71030f99754eeae84ea2c 100644 +index 45dc79f877bbb4a5384c21a32dc009270b8dc021..83c324c869802b3aaae8d0820113a9a49abad0c4 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -251,6 +251,9 @@ public class ItemEntity extends Entity implements TraceableEntity { +@@ -252,6 +252,9 @@ public class ItemEntity extends Entity implements TraceableEntity { // Spigot start - copied from above @Override public void inactiveTick() { @@ -18,9 +18,9 @@ index 51cc6ef73da00133bbdc838b1911159a414ba4df..ab690ddc77ec149913f71030f99754ee // CraftBukkit start - Use wall time for pickup and despawn timers int elapsedTicks = MinecraftServer.currentTick - this.lastTick; if (this.pickupDelay != 32767) this.pickupDelay -= elapsedTicks; -@@ -268,6 +271,8 @@ public class ItemEntity extends Entity implements TraceableEntity { +@@ -269,6 +272,8 @@ public class ItemEntity extends Entity implements TraceableEntity { // CraftBukkit end - this.discard(); + this.discard(EntityRemoveEvent.Cause.DESPAWN); // CraftBukkit - add Bukkit remove cause } + */ + // Leaves end - vanilla diff --git a/patches/server/0132-Vanilla-hopper.patch b/patches/server/0132-Vanilla-hopper.patch index 6dae36fe..436af083 100644 --- a/patches/server/0132-Vanilla-hopper.patch +++ b/patches/server/0132-Vanilla-hopper.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Vanilla hopper This is a temporary solution designed to attempt to restore the vanilla behavior of the funnel while preserving optimizations as much as possible. It should ultimately be replaced by the optimization solution provided by lithium. diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index 366b0233cee56a164f056ca596877357c492d614..fdca59fabbc89c1856073f8684ee25f470a70bb9 100644 +index e125c2baba0513595af269a0b6e06cf074305266..c840b3021783e43d59ac79e773d19f2544be3ade 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -@@ -301,36 +301,49 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -302,36 +302,49 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen ItemStack movedItem = origItemStack; final int originalItemCount = origItemStack.getCount(); final int movedItemCount = Math.min(level.spigotConfig.hopperAmount, originalItemCount); diff --git a/patches/server/0134-Fix-falling-block-s-block-location.patch b/patches/server/0134-Fix-falling-block-s-block-location.patch index 1053fa87..8c63dc50 100644 --- a/patches/server/0134-Fix-falling-block-s-block-location.patch +++ b/patches/server/0134-Fix-falling-block-s-block-location.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix falling block's block location diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 12db5e0dad3ba271ee6335074c6bf2b0d8801599..754c6a787a1b61b35f544e2259e4df668c0a72da 100644 +index 82970b3108a437eea27b3a2f0ec22a86c64a465c..7f517ed961f2be506ec21af5ffdcad78a1526fa8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4794,6 +4794,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4810,6 +4810,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S int j = Mth.floor(y); int k = Mth.floor(z);