From 20e182a936f55e45a74fc3f9cdaa0ed30cbf631f Mon Sep 17 00:00:00 2001 From: granny Date: Sat, 15 Jun 2024 22:57:03 -0700 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@730882f Chunk System and Starlight WIP PaperMC/Paper@512fd08 Update Gradle Wrapper to v8.8 PaperMC/Paper@097284d Bump tiny-remapper to 0.10.3 PaperMC/Paper@ee9b820 Update more optimization patches PaperMC/Paper@5d834b1 rebuild patches PaperMC/Paper@4bc15f1 Updated Upstream (Bukkit/CraftBukkit) PaperMC/Paper@0b6701d Revert DamageSource#getCausingEntity to vanilla PaperMC/Paper@5bd7f4e Update AbstractArrow item method implementations for 1.20.6 (#10885) PaperMC/Paper@fb511c6 Fix Player#sendBlockState (#10855) PaperMC/Paper@b420038 Fix ItemMeta#removeEnchantments (#10886) PaperMC/Paper@a835ad1 Merge remote-tracking branch 'origin/dev/1.21' into dev/1.21 PaperMC/Paper@04dad71 Improve enchantWithLevels logic PaperMC/Paper@0008fa1 Add back more optimization patches PaperMC/Paper@56b5b7d Fix max chunk status checks PaperMC/Paper@c1aefee correctly change enchantment registry to a 'delayed' version PaperMC/Paper@d41636f Add back RecipeIterator fixes patch (#10887) PaperMC/Paper@7df4725 Configurable damage tick when blocking with shield (#10877) PaperMC/Paper@3555a77 Properly forward DispenseEvent #getItem to saddle PaperMC/Paper@e339ec2 Deprecate BlockData#getDestroySpeed for removal PaperMC/Paper@b090c65 Remove unnecessary changes from chunk status fix PaperMC/Paper@5e7cd07 add some generated typed/tag keys PaperMC/Paper@5a5412c Owen fixing stuff!!! PaperMC/Paper@7240d9d Restore functionality to sand dupe setting --- gradle.properties | 2 +- patches/server/0001-Rebrand.patch | 14 ++--- patches/server/0002-Purpur-config-files.patch | 14 ++--- .../server/0003-Purpur-client-support.patch | 16 ++--- .../0005-Component-related-conveniences.patch | 10 ++-- patches/server/0006-Ridables.patch | 58 +++++++++---------- ...-Configurable-entity-base-attributes.patch | 8 +-- .../0008-Barrels-and-enderchests-6-rows.patch | 8 +-- patches/server/0010-AFK-API.patch | 28 ++++----- .../0012-Configurable-server-mod-name.patch | 4 +- patches/server/0013-Lagging-threshold.patch | 6 +- ...-settings-suppressing-pointless-logs.patch | 4 +- .../0022-Zombie-horse-naturally-spawn.patch | 4 +- ...option-to-set-armorstand-step-height.patch | 4 +- ...-Minecart-settings-and-WASD-controls.patch | 6 +- .../0042-Configurable-TPS-Catchup.patch | 4 +- ...Add-player-death-exp-control-options.patch | 4 +- ...urable-void-damage-height-and-damage.patch | 6 +- .../0050-Add-canSaveToDisk-to-Entity.patch | 10 ++-- ...ispenser-curse-of-binding-protection.patch | 4 +- ...0054-Add-5-second-tps-average-in-tps.patch | 8 +-- ...-Add-allow-water-in-end-world-option.patch | 8 +-- patches/server/0067-Entity-lifespan.patch | 14 ++--- ...leport-to-spawn-if-outside-world-bor.patch | 6 +- patches/server/0069-Squid-EAR-immunity.patch | 4 +- .../0071-Configurable-villager-breeding.patch | 4 +- ...Stop-squids-floating-on-top-of-water.patch | 4 +- ...ggling-special-MobSpawners-per-world.patch | 4 +- .../0089-Configurable-daylight-cycle.patch | 18 +++--- ...justable-breeding-cooldown-to-config.patch | 6 +- ...99-Changeable-Mob-Left-Handed-Chance.patch | 4 +- .../0100-Add-boat-fall-damage-config.patch | 4 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 4 +- patches/server/0109-Implement-TPSBar.patch | 22 +++---- ...iefing-bypass-to-everything-affected.patch | 6 +- ...16-Movement-options-for-armor-stands.patch | 4 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 4 +- ...0132-Sneak-to-bulk-process-composter.patch | 4 +- .../0133-Config-for-skipping-night.patch | 4 +- ...0134-Add-config-for-villager-trading.patch | 4 +- patches/server/0135-Drowning-Settings.patch | 6 +- ...Break-individual-slabs-when-sneaking.patch | 4 +- ...-Config-to-allow-for-unsafe-enchants.patch | 4 +- ...0149-Configurable-broadcast-settings.patch | 4 +- ...nge-multiplier-critical-damage-value.patch | 4 +- ...nfig-for-unverified-username-message.patch | 4 +- ...161-API-for-any-mob-to-burn-daylight.patch | 10 ++-- ...ake-lightning-rod-range-configurable.patch | 4 +- ...after-eating-food-fills-hunger-bar-c.patch | 4 +- ...omizable-sleeping-actionbar-messages.patch | 8 +-- .../0179-Player-ridable-in-water-option.patch | 4 +- patches/server/0181-Add-compass-command.patch | 16 ++--- .../0192-Extended-OfflinePlayer-API.patch | 4 +- ...ain-and-thunder-should-stop-on-sleep.patch | 6 +- ...t-right-click-to-use-exp-for-mending.patch | 8 +-- ...or-beds-to-explode-on-villager-sleep.patch | 4 +- .../server/0202-UPnP-Port-Forwarding.patch | 4 +- ...ent-BlockEntity-Lore-and-DisplayName.patch | 8 +-- .../server/0207-Signs-allow-color-codes.patch | 4 +- ...counts-in-beehives-to-Purpur-clients.patch | 4 +- patches/server/0220-Allow-void-trading.patch | 4 +- .../server/0222-Max-joins-per-second.patch | 4 +- ...nfigurable-minimum-demand-for-trades.patch | 4 +- .../0224-Lobotomize-stuck-villagers.patch | 27 ++++----- ...urable-search-radius-for-villagers-t.patch | 4 +- .../0242-Add-local-difficulty-api.patch | 4 +- ...0243-Add-toggle-for-RNG-manipulation.patch | 4 +- patches/server/0246-Debug-Marker-API.patch | 10 ++-- ...ng-option-to-ignore-creative-players.patch | 4 +- .../server/0249-Add-death-screen-API.patch | 4 +- ...50-Implement-ram-and-rambar-commands.patch | 16 ++--- patches/server/0258-Fire-Immunity-API.patch | 10 ++-- ...leport-to-spawn-on-nether-ceiling-da.patch | 4 +- patches/server/0272-Explorer-Map-API.patch | 6 +- .../0281-config-for-startup-commands.patch | 4 +- 75 files changed, 284 insertions(+), 289 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5af6c40a5..f96dca5b2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.21-R0.1-SNAPSHOT mcVersion = 1.21 -paperCommit = ffe310a8e1dd4ed1027e903b4683f0ab42ee9ff8 +paperCommit = 7240d9d81c2e0fd2a2bce4dbe4543f0016b3065e org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 3c52b047a..fb08ed201 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index b06f38b87765d084565bc11cf5da6076562b6be8..5353a88c2667513a6c47cf1545d5a5726aae774d 100644 +index 299b7b029384c58fed80d53cc0b77c420d62eed7..0635aacceec1ba9c753b4dde057876b91336d416 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -17,7 +17,7 @@ index b06f38b87765d084565bc11cf5da6076562b6be8..5353a88c2667513a6c47cf1545d5a572 // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -42,6 +42,10 @@ dependencies { +@@ -47,6 +47,10 @@ dependencies { runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") @@ -28,7 +28,7 @@ index b06f38b87765d084565bc11cf5da6076562b6be8..5353a88c2667513a6c47cf1545d5a572 testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") testImplementation("org.hamcrest:hamcrest:2.2") -@@ -75,14 +79,14 @@ tasks.jar { +@@ -80,14 +84,14 @@ tasks.jar { val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", @@ -48,7 +48,7 @@ index b06f38b87765d084565bc11cf5da6076562b6be8..5353a88c2667513a6c47cf1545d5a572 "Build-Number" to (build ?: ""), "Build-Time" to Instant.now().toString(), "Git-Branch" to gitBranch, // Paper -@@ -139,7 +143,7 @@ fun TaskContainer.registerRunTask( +@@ -144,7 +148,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -263,7 +263,7 @@ index 774556a62eb240da42e84db4502e2ed43495be17..99597258e8e88cd9e2c901c4ac3ff7fa if (stream != null) { diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index ad282d34919716b75acd10426cd071da9d064a51..1fe2079b2d2df6d858547e320d973c1f92b066a2 100644 +index c68256c0c8e131497108f677c6b254c589ce67e2..101d1528d818a1c27080c973df5eee041f1ebc9e 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -23,7 +23,7 @@ public class WatchdogThread extends Thread @@ -305,10 +305,10 @@ index ad282d34919716b75acd10426cd071da9d064a51..1fe2079b2d2df6d858547e320d973c1f log.log( Level.SEVERE, "------------------------------" ); - log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper + log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Purpur!):" ); // Paper // Purpur + ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper - rewrite chunk system WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log ); log.log( Level.SEVERE, "------------------------------" ); - // -@@ -128,7 +128,7 @@ public class WatchdogThread extends Thread +@@ -129,7 +129,7 @@ public class WatchdogThread extends Thread WatchdogThread.dumpThread( thread, log ); } } else { diff --git a/patches/server/0002-Purpur-config-files.patch b/patches/server/0002-Purpur-config-files.patch index dc8466a54..17987e9a5 100644 --- a/patches/server/0002-Purpur-config-files.patch +++ b/patches/server/0002-Purpur-config-files.patch @@ -37,7 +37,7 @@ index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..308d80ca27aa0edd63fba87343b12b39 metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 4017b82e72fefd6685e9250a936686fd8a0891f1..c98247a6ccc015f1da2c11995fb392b24197e888 100644 +index 59d7e8a3d83d3ab7aa28606401bb129ccaeff240..b51850c0368b0fa2c9eb4ca44b9c931eb46478fc 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -310,6 +310,30 @@ public class CommandSourceStack implements ExecutionCommandSource resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator) { // Paper - create paper world config +@@ -261,6 +262,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl + protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config & Anti-Xray this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config + this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur @@ -112,7 +112,7 @@ index 6f822e9487bef5b9766d5ae86ebbd687e4eadc42..9ee0a4368fa69a66a6da9809c9885460 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 77f3ac4e45a691181a94831cf49f7840c9f88e3a..0d40596884f3b9ecfe3e7267e204f4003c50cab2 100644 +index caf6ff33b42472d30f28629470e12889f50490cc..2047354b757cb239b5bbf8dfd8cce284645ad5ce 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1059,6 +1059,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0003-Purpur-client-support.patch b/patches/server/0003-Purpur-client-support.patch index 6ba5cb0a2..d3dbb0768 100644 --- a/patches/server/0003-Purpur-client-support.patch +++ b/patches/server/0003-Purpur-client-support.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 40b5d379e917771b30d888eb390f5d5698a34ffb..922ff0589cfde06b3e9abab60c7fd051465bb413 100644 +index 89ed20e9c629cf39a24c7a0ce5c4fee41fc64fd5..92e9a5e38cc60e3ef6d7e2216bf4a85cb2464cdd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -296,6 +296,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -301,6 +301,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent public @Nullable String clientBrandName = null; // Paper - Brand support public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event + public boolean purpurClient = false; // Purpur - public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { - super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); + // Paper start - rewrite chunk system + private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java index b43f87ff4b9853b5d4bbea5ff9686d64d9d0d26b..b66d4047b5e529f5f737efb0ff1edda805de1316 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -43,12 +43,12 @@ index b43f87ff4b9853b5d4bbea5ff9686d64d9d0d26b..b66d4047b5e529f5f737efb0ff1edda8 try { String channels = payload.toString(com.google.common.base.Charsets.UTF_8); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fc7fa260bb55ae28b17a3ea05682a51ad4fa39df..e2c3a8f14d0d48bc756c6845be652eefde58a85d 100644 +index c868abef790aa80863721490f69087343aba13e7..e099eb16dbe2bdf73874199ad57c7027498dd4ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3534,4 +3534,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - public void setSendViewDistance(final int viewDistance) { - throw new UnsupportedOperationException("Not implemented yet"); +@@ -3553,4 +3553,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + ((ca.spottedleaf.moonrise.patches.chunk_system.player.ChunkSystemServerPlayer)this.getHandle()) + .moonrise$getViewDistanceHolder().setSendViewDistance(viewDistance); } + + // Purpur start diff --git a/patches/server/0005-Component-related-conveniences.patch b/patches/server/0005-Component-related-conveniences.patch index 25b17035e..341262efc 100644 --- a/patches/server/0005-Component-related-conveniences.patch +++ b/patches/server/0005-Component-related-conveniences.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Component related conveniences diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 922ff0589cfde06b3e9abab60c7fd051465bb413..2c02e1ccc8005c1bff952d4aa17557002c7e3d84 100644 +index 92e9a5e38cc60e3ef6d7e2216bf4a85cb2464cdd..47afcbc699a992358871fe90929f71b4d47d9601 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1969,6 +1969,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2004,6 +2004,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple this.lastSentExp = -1; // CraftBukkit - Added to reset } @@ -36,7 +36,7 @@ index 922ff0589cfde06b3e9abab60c7fd051465bb413..2c02e1ccc8005c1bff952d4aa1755700 public void displayClientMessage(Component message, boolean overlay) { this.sendSystemMessage(message, overlay); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8ba99f6ef2b50ceb8e279ed559a375ada6877576..ab3cdaecf0e5e45acd3ac19be590c863cba9019a 100644 +index 0d0b07c9199be9ca0d5ac3feb1d44f149ba69283..b708323c6ad3ff40e6f2af5bd24988a63918f37c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1015,6 +1015,20 @@ public abstract class PlayerList { @@ -81,10 +81,10 @@ index bb1a60180e58c1333e7bb33e8acf1b0225eda8a8..c83e80ebdbbfb2d0e08561a44486a308 return this.type().msgId(); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8779d54c816bb97ccdeb268d1929f693d322ee14..6735bea3a56e0b44eb22dcd403a6b937e31b45c7 100644 +index 14db8510af7465eb663501008ca35f8ec63bfe30..134af1086b63bcdcca4bce9f3534bd19a82db774 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3913,6 +3913,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3995,6 +3995,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return SlotAccess.NULL; } diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index 5a03b4a38..27d407c47 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Ridables diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 12ff8886bb53ca15db745989c25b9bd2f45335e4..c86f669448b5ec93c54784192b470c7ebce8cfa2 100644 +index 2767d6f97e8b314d23a8e62f22dfd396f5660d31..a64e5997b94cc8173f0512d1e282355f14f098ec 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -60,6 +60,12 @@ public class BlockPos extends Vec3i { - private static final int Z_OFFSET = PACKED_Y_LENGTH; - private static final int X_OFFSET = PACKED_Y_LENGTH + PACKED_Z_LENGTH; +@@ -61,6 +61,12 @@ public class BlockPos extends Vec3i { + private static final int X_OFFSET = 38; + // Paper end - Optimize Bit Operations by inlining + // Purpur start + public BlockPos(net.minecraft.world.entity.Entity entity) { @@ -22,34 +22,34 @@ index 12ff8886bb53ca15db745989c25b9bd2f45335e4..c86f669448b5ec93c54784192b470c7e super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6915522f669631779c1fb8a8e2db330f4b9fb921..1d934bf1fbd1c439ad40e7dbc86b29349ef21457 100644 +index 7e32eecacf6f5e832dbfd0455e4bab1302a33d46..32d574d1f52577c67883d99309ff03a9fae123dc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1649,6 +1649,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - BlockPhysicsEvent worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent + net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers + worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur this.profiler.push(() -> { String s = String.valueOf(worldserver); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3f17212fc814156e2d3e8c7d4cf40680ab5cdbb5..2e3e9f572c0d29dfd9544c41b2f02f34d6b50786 100644 +index fb0db51493e343c781876b9db773fa3fc9a8d666..e8ed80cf7d7519eab614e5ae5326755b40c76623 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -229,6 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel { - public final UUID uuid; +@@ -229,6 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent + private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current) + public boolean hasRidableMoveEvent = false; // Purpur public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 2c02e1ccc8005c1bff952d4aa17557002c7e3d84..720f96ab9fd525f5a97302da24b68509fb45eb84 100644 +index 47afcbc699a992358871fe90929f71b4d47d9601..ae41c955ec6cfe284fec5f8e79cb827ea20facc0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -771,6 +771,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -806,6 +806,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple this.trackEnteredOrExitedLavaOnVehicle(); this.updatePlayerAttributes(); this.advancements.flushDirty(this); @@ -66,7 +66,7 @@ index 2c02e1ccc8005c1bff952d4aa17557002c7e3d84..720f96ab9fd525f5a97302da24b68509 private void updatePlayerAttributes() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 60f6f17aea41ffaa277bff380924cc752eb3e62a..78181ad76f9835f900f7583bdefb0e7e56f863f3 100644 +index be2e97e4de911ad9570a9b4e9f3c5fafa93f6203..224a4d09bca571e6b440ea3011fbd13f785c78db 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2716,6 +2716,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -79,7 +79,7 @@ index 60f6f17aea41ffaa277bff380924cc752eb3e62a..78181ad76f9835f900f7583bdefb0e7e if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.getBukkitEntity().update(ServerGamePacketListenerImpl.this.player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6735bea3a56e0b44eb22dcd403a6b937e31b45c7..4454f9b41c3ebeb98d71b9b891e657b4a80c1601 100644 +index 134af1086b63bcdcca4bce9f3534bd19a82db774..67aa0563c33bc9a98facfff6bf5a1a8ace483d99 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -383,7 +383,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -91,7 +91,7 @@ index 6735bea3a56e0b44eb22dcd403a6b937e31b45c7..4454f9b41c3ebeb98d71b9b891e657b4 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -2851,6 +2851,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2933,6 +2933,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.passengers = ImmutableList.copyOf(list); } @@ -105,7 +105,7 @@ index 6735bea3a56e0b44eb22dcd403a6b937e31b45c7..4454f9b41c3ebeb98d71b9b891e657b4 this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); } } -@@ -2890,6 +2897,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2972,6 +2979,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return false; } // CraftBukkit end @@ -120,7 +120,7 @@ index 6735bea3a56e0b44eb22dcd403a6b937e31b45c7..4454f9b41c3ebeb98d71b9b891e657b4 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4717,4 +4732,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4814,4 +4829,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end - Expose entity id counter @@ -190,7 +190,7 @@ index 09fdea983772612ef3fff6b2da3cf469a34e4ec0..aa76a24421cdb3908a3544d92eb3d1e3 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 23ce3f5fefceaeff5011f91f04ec8b200a503d21..fcc73ac45c963bd18f1658149295c672598f3ddd 100644 +index 25a7dfddb44a11f6e20c459141a61270c0c12d4c..6b5d09b34c9fe88548a14e64e9aa42841e9031f5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -237,9 +237,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -259,7 +259,7 @@ index 23ce3f5fefceaeff5011f91f04ec8b200a503d21..fcc73ac45c963bd18f1658149295c672 // Paper end - Add EntityMoveEvent if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 5bac748649f43d74b13e7c0b4d355e67654ad59e..ec3e0e076cb9f2b5160988ab78d6ab7b33f9490f 100644 +index 7b93c6a04cca2ac31d137f06ef83bb08559b10bf..091d2b1646068657120ee4244d79cbf7867a9cf7 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -160,8 +160,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -273,7 +273,7 @@ index 5bac748649f43d74b13e7c0b4d355e67654ad59e..ec3e0e076cb9f2b5160988ab78d6ab7b this.jumpControl = new JumpControl(this); this.bodyRotationControl = this.createBodyControl(); this.navigation = this.createNavigation(world); -@@ -1493,7 +1493,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1506,7 +1506,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected InteractionResult mobInteract(Player player, InteractionHand hand) { @@ -282,7 +282,7 @@ index 5bac748649f43d74b13e7c0b4d355e67654ad59e..ec3e0e076cb9f2b5160988ab78d6ab7b } public boolean isWithinRestriction() { -@@ -1791,4 +1791,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1804,4 +1804,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); } @@ -4918,7 +4918,7 @@ index 38bf417a9ad4647f4af24d969f3bf4fed9c4bad7..ba560ab0340c06614547dcddbdcbd1bb public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) { 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 393588661c41b490ee6bce2f687962f7ddeff7d4..d7545f978cde231e9c154631ab7f225e6ea579ff 100644 +index 7e1871401ec5e3e9a85232053490259f132aec0a..7c4c545fca0858caac1cf98ad24b6d59be79dc32 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -156,6 +156,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -4950,11 +4950,11 @@ index 393588661c41b490ee6bce2f687962f7ddeff7d4..d7545f978cde231e9c154631ab7f225e @Override public Brain getBrain() { return (Brain) super.getBrain(); // CraftBukkit - decompile error -@@ -239,6 +261,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler - protected void customServerAiStep() { +@@ -256,6 +278,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler + // Paper end this.level().getProfiler().push("villagerBrain"); - this.getBrain().tick((ServerLevel) this.level(), this); -+ /*// Purpur start // Purpur - TODO: Pufferfish + if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper ++ /*// Purpur start // Purpur - TODO: Pufferfish + if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider + this.getBrain().tick((ServerLevel) this.level(), this); // Paper + } @@ -4962,7 +4962,7 @@ index 393588661c41b490ee6bce2f687962f7ddeff7d4..d7545f978cde231e9c154631ab7f225e this.level().getProfiler().pop(); if (this.assignProfessionWhenSpawned) { this.assignProfessionWhenSpawned = false; -@@ -294,7 +321,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -312,7 +339,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) { if (this.isBaby()) { this.setUnhappy(); @@ -4971,7 +4971,7 @@ index 393588661c41b490ee6bce2f687962f7ddeff7d4..d7545f978cde231e9c154631ab7f225e } else { if (!this.level().isClientSide) { boolean flag = this.getOffers().isEmpty(); -@@ -308,9 +335,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -326,9 +353,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } if (flag) { @@ -5024,7 +5024,7 @@ index 0af34e0f9c9696fbcb11b12fb27472ef17ad532a..d514faecb9e6b244aa043383fa072316 this.openTradingScreen(player, this.getDisplayName(), 1); } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index ffb888262ba81073062f6f513c36108688d0f158..6506e5b2165cabcc27543beeae83812dd108a252 100644 +index 0526f4c701b4d945f26c5f382e9efac86cc568fa..0f7c4e39d5569c8f6387bc003d29d4b7d59d77e0 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -207,6 +207,19 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0007-Configurable-entity-base-attributes.patch index c3d714604..780bce834 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0007-Configurable-entity-base-attributes.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4454f9b41c3ebeb98d71b9b891e657b4a80c1601..1e274b44ab975afb522874f073469bd10a68a404 100644 +index 67aa0563c33bc9a98facfff6bf5a1a8ace483d99..4c7439645974fd20f9f23196c5fbdce6ce324d13 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -168,7 +168,7 @@ import org.bukkit.plugin.PluginManager; // CraftBukkit end - public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess, CommandSource, ScoreHolder { + public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess, CommandSource, ScoreHolder, ca.spottedleaf.moonrise.patches.chunk_system.entity.ChunkSystemEntity { // Paper - rewrite chunk system - + public static javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); // Purpur // CraftBukkit start @@ -34,7 +34,7 @@ index aa76a24421cdb3908a3544d92eb3d1e3c2ebedc4..8211c152e6f4232e82e452b08047e457 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fcc73ac45c963bd18f1658149295c672598f3ddd..8f9756736b08fbaa78b7cff9fa78657c9877e89d 100644 +index 6b5d09b34c9fe88548a14e64e9aa42841e9031f5..8bad6672c689c7bc65e5941887b3826ad99e36bb 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -314,6 +314,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1507,7 +1507,7 @@ index 17e2457bc83e7ee4402c10ee7d2ef5aa36901565..362f3fddd8090799278f4b4e58c5af5d return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0).add(Attributes.MOVEMENT_SPEED, 0.35F).add(Attributes.ATTACK_DAMAGE, 7.0); } 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 d7545f978cde231e9c154631ab7f225e6ea579ff..cd024c26d0658aa150a7d516b9b447eb72ebf26a 100644 +index 7c4c545fca0858caac1cf98ad24b6d59be79dc32..97071390c66aaeb37c41778d6b7f8a5af4522274 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -178,6 +178,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler diff --git a/patches/server/0008-Barrels-and-enderchests-6-rows.patch b/patches/server/0008-Barrels-and-enderchests-6-rows.patch index 15ad52dd3..8111638fc 100644 --- a/patches/server/0008-Barrels-and-enderchests-6-rows.patch +++ b/patches/server/0008-Barrels-and-enderchests-6-rows.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Barrels and enderchests 6 rows diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ab3cdaecf0e5e45acd3ac19be590c863cba9019a..27391592eca984295c648edefce50f3360f5be1e 100644 +index b708323c6ad3ff40e6f2af5bd24988a63918f37c..3db05bb52fef8e465e6d3575c8126521141c18c9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1140,6 +1140,27 @@ public abstract class PlayerList { @@ -37,7 +37,7 @@ index ab3cdaecf0e5e45acd3ac19be590c863cba9019a..27391592eca984295c648edefce50f33 public boolean isWhiteListed(GameProfile profile) { 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 6506e5b2165cabcc27543beeae83812dd108a252..89bc21020704dc78b85f345a82e31a54a9a234df 100644 +index 0f7c4e39d5569c8f6387bc003d29d4b7d59d77e0..ce184181529a9743cc6a7685dcb7cf572be65350 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -196,6 +196,7 @@ public abstract class Player extends LivingEntity { @@ -215,10 +215,10 @@ index 6186e55014bbb9d5bedaa0e9d196879c55339d42..f4f11292d6d00f4a7c65e3e2a157bba5 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java -index 977b77547f7ba62cef3640cf8d4f1c8e7cded53a..beae43e9b6fe447e7515d878ac175f461968768a 100644 +index 027d6d9c04dc4da5d978cc0c03a08a6efe93b4d9..243bb804925c64090ba807a4008eccb7067c6228 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java -@@ -184,8 +184,19 @@ public class CraftContainer extends AbstractContainerMenu { +@@ -183,8 +183,19 @@ public class CraftContainer extends AbstractContainerMenu { case PLAYER: case CHEST: case ENDER_CHEST: diff --git a/patches/server/0010-AFK-API.patch b/patches/server/0010-AFK-API.patch index e5d6d78c8..616810528 100644 --- a/patches/server/0010-AFK-API.patch +++ b/patches/server/0010-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index cd279da8ecd6fcf004bebf72f9c390a433cfeeda..f7a5a73a6dc8e239a97701855363d8906cfa13b4 100644 +index ae41c955ec6cfe284fec5f8e79cb827ea20facc0..d39ade65011030b9079bf6001196dd411064e52b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2332,8 +2332,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2367,8 +2367,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple public void resetLastActionTime() { this.lastActionTime = Util.getMillis(); @@ -78,7 +78,7 @@ index cd279da8ecd6fcf004bebf72f9c390a433cfeeda..f7a5a73a6dc8e239a97701855363d890 return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 78181ad76f9835f900f7583bdefb0e7e56f863f3..58e3f6f0febff3956b80ebeab387c46deb5fe8ae 100644 +index 224a4d09bca571e6b440ea3011fbd13f785c78db..dce0df639765a1c49b23f592c08cce14278f67b7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -332,6 +332,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -192,7 +192,7 @@ index aecb0ad814586bfc5e56755ee14379a69388b38c..98a2a469e3d62f963968ef1be3e97892 if (baseEntity == null) { if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level().getDifficulty() == Difficulty.PEACEFUL)) { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 89bc21020704dc78b85f345a82e31a54a9a234df..560a878acbcb488528c70106b2a39cd0f49cc55c 100644 +index ce184181529a9743cc6a7685dcb7cf572be65350..9ef4ab973508eb139f7a44feb4bd484d8e0e03cd 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -202,6 +202,13 @@ public abstract class Player extends LivingEntity { @@ -210,10 +210,10 @@ index 89bc21020704dc78b85f345a82e31a54a9a234df..560a878acbcb488528c70106b2a39cd0 public CraftHumanEntity getBukkitEntity() { return (CraftHumanEntity) super.getBukkitEntity(); diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index bd20bea7f76a7307f1698fb2dfef37125032d166..4033e82bc3263d99e0976424789792ceea6f58d9 100644 +index 70c2017400168d4fef3c14462798edcfed58d4bf..3c84722c1075290b5301aa5122936d5e4dac3c43 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java -@@ -146,7 +146,7 @@ public interface EntityGetter { +@@ -153,7 +153,7 @@ public interface EntityGetter extends ca.spottedleaf.moonrise.patches.chunk_syst default boolean hasNearbyAlivePlayer(double x, double y, double z, double range) { for (Player player : this.players()) { @@ -223,10 +223,10 @@ index bd20bea7f76a7307f1698fb2dfef37125032d166..4033e82bc3263d99e0976424789792ce if (range < 0.0 || d < range * range) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e2c3a8f14d0d48bc756c6845be652eefde58a85d..c97c8421303ac3191191dc0ceaca00ffd0e3e1d6 100644 +index e099eb16dbe2bdf73874199ad57c7027498dd4ba..2fba6458aa097d9375df7d2f38efd10049a35b7d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -578,10 +578,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -576,10 +576,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setPlayerListName(String name) { @@ -243,7 +243,7 @@ index e2c3a8f14d0d48bc756c6845be652eefde58a85d..c97c8421303ac3191191dc0ceaca00ff if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined for (ServerPlayer player : (List) this.server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { -@@ -3540,5 +3545,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3559,5 +3564,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean usesPurpurClient() { return getHandle().purpurClient; } @@ -317,15 +317,15 @@ index 767d977cf47b0c7d94c248091f3ce98d6383ae04..2f2986f9f7a241c4d7a1e065126dbbae public boolean untamedTamablesAreRidable = true; public boolean useNightVisionWhenRiding = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 9fb9fa62c32445ac3c3883a6433759c86dcfc428..0a237d1adeecba0059589ea2f4772f27100dae0f 100644 +index bf2d18f74b0f0da7c3c30310c74224a1c0853564..02be091f2ee12a728fec72c6eaf390eac4c9a806 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -132,6 +132,8 @@ public class ActivationRange +@@ -201,6 +201,8 @@ public class ActivationRange continue; } + if (!player.level().purpurConfig.idleTimeoutTickNearbyEntities && player.isAfk()) continue; // Purpur + - ActivationRange.maxBB = player.getBoundingBox().inflate( maxRange, 256, maxRange ); - ActivationType.MISC.boundingBox = player.getBoundingBox().inflate( miscActivationRange, 256, miscActivationRange ); - ActivationType.RAIDER.boundingBox = player.getBoundingBox().inflate( raiderActivationRange, 256, raiderActivationRange ); + // Paper start + int worldHeight = world.getHeight(); + ActivationRange.maxBB = player.getBoundingBox().inflate( maxRange, worldHeight, maxRange ); diff --git a/patches/server/0012-Configurable-server-mod-name.patch b/patches/server/0012-Configurable-server-mod-name.patch index 422e823ee..07415d6f5 100644 --- a/patches/server/0012-Configurable-server-mod-name.patch +++ b/patches/server/0012-Configurable-server-mod-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1d934bf1fbd1c439ad40e7dbc86b29349ef21457..2cdadf2587da20ebbd2e5dc55f94085fa676cecc 100644 +index 32d574d1f52577c67883d99309ff03a9fae123dc..c8616c6c9f555079cb8433da4dd9dcf9e218dc7d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1812,7 +1812,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1183,6 +1184,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop entity instanceof Player); } - // Paper end + // Paper end - rewrite chunk system + // Purpur start + public boolean canSaveToDisk() { + return true; @@ -37,7 +37,7 @@ index 63f48841c849ff49d9d43efc5de8952c5a9bba3a..e472df057d087fe46bd40b798c050ed6 @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index 36b8a9ac385e43f3212aca1b1f5bd7115bd00431..8097ff9264b94caad0b4727f2c2d93870c21ba2c 100644 +index 503ac0374e0c9f9993ad37bb8bd8cf1570d3615a..8987312954f17465b0a6f39f83aa29a727ad1125 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java @@ -94,6 +94,7 @@ public class EntityStorage implements EntityPersistentStorage { diff --git a/patches/server/0051-Dispenser-curse-of-binding-protection.patch b/patches/server/0051-Dispenser-curse-of-binding-protection.patch index 931e92db3..a2347e36b 100644 --- a/patches/server/0051-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0051-Dispenser-curse-of-binding-protection.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dispenser curse of binding protection diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index ec3e0e076cb9f2b5160988ab78d6ab7b33f9490f..cc326c3b6a78755b7bc17ebf864cc9c99ec38c1a 100644 +index 091d2b1646068657120ee4244d79cbf7867a9cf7..28ff18c341703148e880e4d4a64b73daa136c32a 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1294,6 +1294,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1307,6 +1307,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab } diff --git a/patches/server/0054-Add-5-second-tps-average-in-tps.patch b/patches/server/0054-Add-5-second-tps-average-in-tps.patch index 45dc4af23..34208053a 100644 --- a/patches/server/0054-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0054-Add-5-second-tps-average-in-tps.patch @@ -18,7 +18,7 @@ index 039a86034928a5eb7aaa2d7ca76a7bddcca346bd..308f67d0616e2d6bb135258f1fda53cc } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 75ef804dda665c19e54be32ad28370c5d7158902..0ce81b0d621d2914903c4325f2e602a246544890 100644 +index 709611a974f957c101aeba9002b382835208f19b..cb13595ddb9662e41909b0068a02bbc298912deb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -314,7 +314,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, Level world) { -@@ -320,6 +321,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -333,6 +334,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab entityliving = null; } } @@ -36,7 +36,7 @@ index cc326c3b6a78755b7bc17ebf864cc9c99ec38c1a..94508891d9ea3806c66b020fec4c9729 this.target = entityliving; return true; // CraftBukkit end -@@ -362,8 +364,28 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -375,8 +377,28 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab } this.level().getProfiler().pop(); @@ -65,7 +65,7 @@ index cc326c3b6a78755b7bc17ebf864cc9c99ec38c1a..94508891d9ea3806c66b020fec4c9729 @Override protected void playHurtSound(DamageSource damageSource) { this.resetAmbientSoundTime(); -@@ -538,6 +560,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -551,6 +573,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab } nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit @@ -73,7 +73,7 @@ index cc326c3b6a78755b7bc17ebf864cc9c99ec38c1a..94508891d9ea3806c66b020fec4c9729 } @Override -@@ -615,6 +638,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -628,6 +651,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab this.aware = nbt.getBoolean("Bukkit.Aware"); } // CraftBukkit end @@ -85,7 +85,7 @@ index cc326c3b6a78755b7bc17ebf864cc9c99ec38c1a..94508891d9ea3806c66b020fec4c9729 } @Override -@@ -1738,6 +1766,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1751,6 +1779,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab this.playAttackSound(); } diff --git a/patches/server/0068-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0068-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 52e1c8044..a37c5bf99 100644 --- a/patches/server/0068-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0068-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f276c8b6b60ee9c3ad8924b52df53f0f1ea5a087..2a667207629a36d96c6f9a36e7acb9d1ecbab9dc 100644 +index 71d96fad8cceb9f5699620510b9b8cc4a6fa94f2..b891e9ce0e0dcb7353f512a10ee0660c75f18e44 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2991,4 +2991,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -3026,4 +3026,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple return (CraftPlayer) super.getBukkitEntity(); } // CraftBukkit end @@ -36,7 +36,7 @@ index f276c8b6b60ee9c3ad8924b52df53f0f1ea5a087..2a667207629a36d96c6f9a36e7acb9d1 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6f6427b47d5ec64fedcc9c50ee9e11618ba8a672..7ac62e6ada528e6efe1ea49db1a40edc891d74a8 100644 +index b183a9e42178ff02c5d70abacee3cfaa7b7b93c3..d9215a42c8dd761fa04269c936ed0cca3d96ff84 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -462,6 +462,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0069-Squid-EAR-immunity.patch b/patches/server/0069-Squid-EAR-immunity.patch index f1b5b757a..38de02c58 100644 --- a/patches/server/0069-Squid-EAR-immunity.patch +++ b/patches/server/0069-Squid-EAR-immunity.patch @@ -25,10 +25,10 @@ index efc357e2a4eb33a8e77c84599d88103b29542dca..9873f78eb7f4739c65014b0a0c63c328 public boolean spiderRidable = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 0a237d1adeecba0059589ea2f4772f27100dae0f..9dbcc2f963035ad592870e55f7b1a549b8f96d8d 100644 +index 02be091f2ee12a728fec72c6eaf390eac4c9a806..9bec373c470a4f2bc0f1f4101469ec8be903ab83 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -237,6 +237,7 @@ public class ActivationRange +@@ -381,6 +381,7 @@ public class ActivationRange */ public static boolean checkIfActive(Entity entity) { diff --git a/patches/server/0071-Configurable-villager-breeding.patch b/patches/server/0071-Configurable-villager-breeding.patch index ff28a8c1c..9324dd165 100644 --- a/patches/server/0071-Configurable-villager-breeding.patch +++ b/patches/server/0071-Configurable-villager-breeding.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable villager breeding 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 4a8da72d81a1938fa82dd1d2d861defd2bdac4b7..f07379734f7c131e1ad3e22062f2deac4a0a342e 100644 +index 4ae45a7dae279cb1b8048ce4eff2aa1ae4e19f68..a72089363b458a9a880d31c9e2ae7aed500a4f7a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -756,7 +756,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -774,7 +774,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override public boolean canBreed() { diff --git a/patches/server/0079-Stop-squids-floating-on-top-of-water.patch b/patches/server/0079-Stop-squids-floating-on-top-of-water.patch index 2d71cdacd..5da55c518 100644 --- a/patches/server/0079-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0079-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b0c65f5a6cf79f22603d3dd93fffac435686b41c..368af5e31919ad5a648315d9d848511a791cc5bb 100644 +index ccee271764b3bffff1a7d302d71a02c8533ff8cc..db9c0ac1f307c2750af1a4df07964b01955ff75d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4216,6 +4216,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4298,6 +4298,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return Mth.lerp(delta, this.yRotO, this.yRot); } diff --git a/patches/server/0083-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0083-Allow-toggling-special-MobSpawners-per-world.patch index b46f61323..cc439c6fd 100644 --- a/patches/server/0083-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0083-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 521b4b0a767e06db540dc73ff5c8b114813d3168..eb96049b6a788b7164ea9bb5ec9ad70bc19e6976 100644 +index c9efd62cba540f7cdd8a7ce37d455c9b190c5a12..6a2e5d18039310f8fbb3021db92d8f8f79c5c423 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -363,7 +363,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -520,7 +520,24 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. this.dragonParts = new Int2ObjectOpenHashMap(); this.tickTime = flag1; this.server = minecraftserver; diff --git a/patches/server/0089-Configurable-daylight-cycle.patch b/patches/server/0089-Configurable-daylight-cycle.patch index ecf1352a2..85aa48987 100644 --- a/patches/server/0089-Configurable-daylight-cycle.patch +++ b/patches/server/0089-Configurable-daylight-cycle.patch @@ -18,10 +18,10 @@ index 76ef195a5074006b009acd9cc1744667c6aecbb9..659577549e132754281df76a7a1bfd88 public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { this.gameTime = time; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0ce81b0d621d2914903c4325f2e602a246544890..ea2ca2e724cfe061ca356a1bdb0c579d8ba18176 100644 +index cb13595ddb9662e41909b0068a02bbc298912deb..2bc6190f17f2874eabcf4606066e4c18a33dcc97 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1643,7 +1643,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Faster redstone torch rapid clock removal; Move from Map in BlockRedstoneTorch to here @@ -95,7 +95,7 @@ index df7ae03f3162c15ef5f5b9647c7d5d6182638257..d77350e75e67eb9a8301a489b5bec3aa public CraftWorld getWorld() { return this.world; } -@@ -204,6 +247,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -263,6 +306,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur diff --git a/patches/server/0099-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0099-Changeable-Mob-Left-Handed-Chance.patch index e30b6cedf..741b31af0 100644 --- a/patches/server/0099-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0099-Changeable-Mob-Left-Handed-Chance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 94508891d9ea3806c66b020fec4c97297dd558d8..d92d19bdb2c49be1303065583d59f37419b0fd22 100644 +index 1ebc4a8a54081ac9b3ba01e651d611f0237a8970..df5c13451e065a19cf195be4ddfd8d414b3427b1 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1426,7 +1426,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1439,7 +1439,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab attributemodifiable.addPermanentModifier(new AttributeModifier(Mob.RANDOM_SPAWN_BONUS_ID, randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.ADD_MULTIPLIED_BASE)); } diff --git a/patches/server/0100-Add-boat-fall-damage-config.patch b/patches/server/0100-Add-boat-fall-damage-config.patch index 69bc81900..458568949 100644 --- a/patches/server/0100-Add-boat-fall-damage-config.patch +++ b/patches/server/0100-Add-boat-fall-damage-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ec77e834d5f21c64aaf5ac8425fb1b42859b22e8..d45990c793cd11a1e443af59738d47a21877f417 100644 +index b891e9ce0e0dcb7353f512a10ee0660c75f18e44..8a439ba84c5a27e24adfe47acee10a694c177bdb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1146,7 +1146,16 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1181,7 +1181,16 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple if (this.isInvulnerableTo(source)) { return false; } else { diff --git a/patches/server/0103-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0103-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 795daf05e..4b488516b 100644 --- a/patches/server/0103-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0103-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -136,7 +136,7 @@ index a0e0692d17760f440fe81d52887284c787e562db..ab9bebc07b5228dbc0d3ba4b0f7d1bbe brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list); } else { 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 f07379734f7c131e1ad3e22062f2deac4a0a342e..ba2e1ea184bf31efdf30050fdcc3a5f193d2f096 100644 +index a72089363b458a9a880d31c9e2ae7aed500a4f7a..05185ddc9413633a9831e6c3e6e9deed7c6a4d95 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -218,7 +218,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -148,7 +148,7 @@ index f07379734f7c131e1ad3e22062f2deac4a0a342e..ba2e1ea184bf31efdf30050fdcc3a5f1 } brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F)); -@@ -949,6 +949,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -967,6 +967,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler public boolean hasFarmSeeds() { return this.getInventory().hasAnyMatching((itemstack) -> { diff --git a/patches/server/0109-Implement-TPSBar.patch b/patches/server/0109-Implement-TPSBar.patch index 53af61944..ce9c719a2 100644 --- a/patches/server/0109-Implement-TPSBar.patch +++ b/patches/server/0109-Implement-TPSBar.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement TPSBar diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index a8f81bcbfccbce42ca4d194fcaa35222c0a547cb..023f936a71c657c152fc38c262d59bb3cd5292d6 100644 +index c44832599a95039f9ca0f772e7b405e40d7a97b5..37d2e9a7b9a5e9b71a49bdb5d421d5d201c609c5 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -253,6 +253,7 @@ public class Commands { @@ -17,10 +17,10 @@ index a8f81bcbfccbce42ca4d194fcaa35222c0a547cb..023f936a71c657c152fc38c262d59bb3 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ea2ca2e724cfe061ca356a1bdb0c579d8ba18176..2c64b5f4a357974554c7f33ccc212cfde197f208 100644 +index 2bc6190f17f2874eabcf4606066e4c18a33dcc97..d8194ec9b676582fe5684d1330674ef847a04682 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1049,6 +1049,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 368af5e31919ad5a648315d9d848511a791cc5bb..ccaa58b27c139ec6e6f2375c99dc122342ee7c81 100644 +index db9c0ac1f307c2750af1a4df07964b01955ff75d..c9eee2c313f658a027dfab977c6a7cb0992e97a2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1709,7 +1709,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1791,7 +1791,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.isInWater() || flag; } diff --git a/patches/server/0124-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0124-Config-to-ignore-nearby-mobs-when-sleeping.patch index ee683245e..2bd405e1b 100644 --- a/patches/server/0124-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0124-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 20fcf96f5cc89631cc993168f009e91c5bd57c48..03fe9f169ac76ca346e798571eaeaf6aea63f775 100644 +index ae8235ed2a817776d052173c94a54ede9d2d275e..b93c42ba349e6315edfb3727142871231c232c68 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1493,7 +1493,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1528,7 +1528,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple return entitymonster.isPreventingPlayerRest(this); }); diff --git a/patches/server/0132-Sneak-to-bulk-process-composter.patch b/patches/server/0132-Sneak-to-bulk-process-composter.patch index e5be89a64..ce3ae5d35 100644 --- a/patches/server/0132-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0132-Sneak-to-bulk-process-composter.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Sneak to bulk process composter diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 415d9802ae4dd75b44055b8faf19672fa50c585f..4844f5759edf1130a426e47a9c32814b42c9b7f6 100644 +index e9dcdb1e09e84a9b451034ff4bdfa6eae2dd1c04..e7c2dac1bb987103bb6404f3f8d7c487ca340fda 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -575,7 +575,7 @@ public class ServerPlayerGameMode { +@@ -577,7 +577,7 @@ public class ServerPlayerGameMode { ItemStack itemstack1 = stack.copy(); InteractionResult enuminteractionresult; diff --git a/patches/server/0133-Config-for-skipping-night.patch b/patches/server/0133-Config-for-skipping-night.patch index ef1b1842e..7fb1025a1 100644 --- a/patches/server/0133-Config-for-skipping-night.patch +++ b/patches/server/0133-Config-for-skipping-night.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index dcb9b752dc671547ffdad8beb4309d6d7c7d0c1a..04719932fc9291d09b20c285c5516c06cfbc6693 100644 +index ce843a15043fb8bb40d96351ee00f0440d0a53d4..e8e5704937350cc65ae24980c56a3a898debd4f2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -492,7 +492,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -661,7 +661,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); long j; diff --git a/patches/server/0134-Add-config-for-villager-trading.patch b/patches/server/0134-Add-config-for-villager-trading.patch index b394d17b1..42064efb7 100644 --- a/patches/server/0134-Add-config-for-villager-trading.patch +++ b/patches/server/0134-Add-config-for-villager-trading.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add config for villager trading 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 80f6a5a6553d752857ccd53815a9341c5e7502e8..d9e8d7d7ba3775131b871a619d997a29dc959594 100644 +index f3e622f1cdbe46ea12a1d5a969b209d1e5dde5a3..b9c464fbba1c18c524b3d1a7855c0392266e0734 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -350,6 +350,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -368,6 +368,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } if (level().purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur diff --git a/patches/server/0135-Drowning-Settings.patch b/patches/server/0135-Drowning-Settings.patch index ca02e82ae..b9e2e3655 100644 --- a/patches/server/0135-Drowning-Settings.patch +++ b/patches/server/0135-Drowning-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ccaa58b27c139ec6e6f2375c99dc122342ee7c81..def6b00d9ce89120c8ad99516c733a895eba9473 100644 +index c9eee2c313f658a027dfab977c6a7cb0992e97a2..f578cae1423e297d2e00c9b869b3fcede2eb209f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3216,7 +3216,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3298,7 +3298,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public int getMaxAirSupply() { @@ -18,7 +18,7 @@ index ccaa58b27c139ec6e6f2375c99dc122342ee7c81..def6b00d9ce89120c8ad99516c733a89 public int getAirSupply() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ab9769d9a14d7736f9a9d1c3afbf44dc9339fc3b..e2152edecce79c9bb5bbf25103efc05dce06c692 100644 +index 583e0cfc3478df74188526a10494d81ba4303054..d76c5014ad03471874f945f58c8eb7a553739c94 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -474,7 +474,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0136-Break-individual-slabs-when-sneaking.patch b/patches/server/0136-Break-individual-slabs-when-sneaking.patch index 41a80bfe0..04ba8cac7 100644 --- a/patches/server/0136-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0136-Break-individual-slabs-when-sneaking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Break individual slabs when sneaking diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 4844f5759edf1130a426e47a9c32814b42c9b7f6..69c4289164fa0934f05cc8d80ffa1576bb5e6359 100644 +index e7c2dac1bb987103bb6404f3f8d7c487ca340fda..5f140eba20078aabfb484223fb9d113db201b07f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -403,6 +403,7 @@ public class ServerPlayerGameMode { +@@ -405,6 +405,7 @@ public class ServerPlayerGameMode { } else {capturedBlockEntity = true;} // Paper - Send block entities after destroy prediction return false; } diff --git a/patches/server/0140-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0140-Config-to-allow-for-unsafe-enchants.patch index d9bdbf841..2c295fa70 100644 --- a/patches/server/0140-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0140-Config-to-allow-for-unsafe-enchants.patch @@ -74,10 +74,10 @@ index 48d803a3e8419a04fce934263f7a01dbfd335e2e..26951cc5fb64a8d6c99d450dbe236f28 ((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get())); } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index ff721322468571aa86aa1fadf4e59fc0e62c457a..29ff737c0dd267710f852e50ac64a0eea7f8738b 100644 +index bb9f480e5a2083633ddde5607b05048bab5f1b52..c3056e06a2dfb35ed8302af78525a3336433fa94 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -1240,6 +1240,16 @@ public final class ItemStack implements DataComponentHolder { +@@ -1246,6 +1246,16 @@ public final class ItemStack implements DataComponentHolder { return !((ItemEnchantments) this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)).isEmpty(); } diff --git a/patches/server/0149-Configurable-broadcast-settings.patch b/patches/server/0149-Configurable-broadcast-settings.patch index ab83e8e9d..043c0c52f 100644 --- a/patches/server/0149-Configurable-broadcast-settings.patch +++ b/patches/server/0149-Configurable-broadcast-settings.patch @@ -17,10 +17,10 @@ index b286b157bba78021efa18f01bc91b067b0bd5874..fc87e3cfff1221a6cbaf3463ce972870 // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 03fe9f169ac76ca346e798571eaeaf6aea63f775..5b3ffa3aa96dffba149c0fa8d7fb62cc36f8a4a0 100644 +index b93c42ba349e6315edfb3727142871231c232c68..863e13a492488005b8d3ce134d2f45975c13d682 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1046,6 +1046,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1081,6 +1081,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple })); PlayerTeam scoreboardteam = this.getTeam(); diff --git a/patches/server/0156-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0156-Add-config-change-multiplier-critical-damage-value.patch index cf257b196..497735353 100644 --- a/patches/server/0156-Add-config-change-multiplier-critical-damage-value.patch +++ b/patches/server/0156-Add-config-change-multiplier-critical-damage-value.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add config change multiplier critical damage value 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 2578bfa9d31e04506d0e91da22913d3948f9656d..6716e8cc5eff93f019fe49f88faa724d8849f128 100644 +index 2dafba96353c208b89da7b65c0d56a51e00547c3..c582b5be87e93a0ea231bb6ce47bd10c2238037c 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1339,7 +1339,7 @@ public abstract class Player extends LivingEntity { +@@ -1347,7 +1347,7 @@ public abstract class Player extends LivingEntity { flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits if (flag2) { damagesource = damagesource.critical(true); // Paper start - critical damage API diff --git a/patches/server/0158-Config-for-unverified-username-message.patch b/patches/server/0158-Config-for-unverified-username-message.patch index c815f0992..52b90f787 100644 --- a/patches/server/0158-Config-for-unverified-username-message.patch +++ b/patches/server/0158-Config-for-unverified-username-message.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for unverified username message diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 0fc30ce511f449d2a3ddab28c86f7e388223ece1..0055a9c5446a2d6b8aa9c6903092e4f82af5ee32 100644 +index b0f7a378f19b9837c060c891002cd5db756cdae1..5edd8e6bcabe5714c89d4c88f672cc3130c27045 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -315,7 +315,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -317,7 +317,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!"); ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(s1)); // Spigot } else { diff --git a/patches/server/0161-API-for-any-mob-to-burn-daylight.patch b/patches/server/0161-API-for-any-mob-to-burn-daylight.patch index b002c36e6..663f5402b 100644 --- a/patches/server/0161-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0161-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index def6b00d9ce89120c8ad99516c733a895eba9473..3ba86e5b66ff4d3d4c8675f9b084b91ab034eeb4 100644 +index f578cae1423e297d2e00c9b869b3fcede2eb209f..1c99a0c4a335db2cb444793b6aba43ab600597d2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -461,6 +461,21 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -534,6 +534,21 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess public boolean canSaveToDisk() { return true; } @@ -32,7 +32,7 @@ index def6b00d9ce89120c8ad99516c733a895eba9473..3ba86e5b66ff4d3d4c8675f9b084b91a public Entity(EntityType type, Level world) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 42f2749f78af7de468c07b49c7e61063e74ce0de..25b3fe2eb700a4a957957fa0be711d2a27b76597 100644 +index aa89957fd6b7fdf75ae4a98747f2032c23c84b2e..3b77111bdf50cd836d6e4199e6224b594430b147 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -98,10 +98,10 @@ index 42f2749f78af7de468c07b49c7e61063e74ce0de..25b3fe2eb700a4a957957fa0be711d2a public boolean isSensitiveToWater() { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 7535f28c2e181363a7bd4874a14244f9cb0a06fe..495476f4ba65db707af017679fd183acf2ee9499 100644 +index d69dc2f390b1afcbb2b3c57143e2181c879bb256..84827f266bddd75ee91e7e88e49caf6d66c58d2b 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1773,17 +1773,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1786,17 +1786,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab protected void playAttackSound() {} public boolean isSunBurnTick() { diff --git a/patches/server/0164-Make-lightning-rod-range-configurable.patch b/patches/server/0164-Make-lightning-rod-range-configurable.patch index f76acafb2..5c9612533 100644 --- a/patches/server/0164-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0164-Make-lightning-rod-range-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make lightning rod range configurable diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 04719932fc9291d09b20c285c5516c06cfbc6693..6ee3292a5ca8421226be0afef73cbb1484b4311f 100644 +index e8e5704937350cc65ae24980c56a3a898debd4f2..b8d80e04eea132d9671026e93e7c666d33dfeb25 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -806,7 +806,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -978,7 +978,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. return holder.is(PoiTypes.LIGHTNING_ROD); }, (blockposition1) -> { return blockposition1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1; diff --git a/patches/server/0165-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch b/patches/server/0165-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch index 0138edd79..72eb16dc2 100644 --- a/patches/server/0165-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch +++ b/patches/server/0165-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Burp delay, burp after eating food fills hunger bar 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 6716e8cc5eff93f019fe49f88faa724d8849f128..4a5a18443db0f7c69b61db2ded63355ef4d72d9a 100644 +index c582b5be87e93a0ea231bb6ce47bd10c2238037c..68f414c421458a38e5db8225524c1bf87c2627f3 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -197,6 +197,7 @@ public abstract class Player extends LivingEntity { @@ -30,7 +30,7 @@ index 6716e8cc5eff93f019fe49f88faa724d8849f128..4a5a18443db0f7c69b61db2ded63355e this.noPhysics = this.isSpectator(); if (this.isSpectator()) { this.setOnGround(false); -@@ -2369,7 +2376,7 @@ public abstract class Player extends LivingEntity { +@@ -2377,7 +2384,7 @@ public abstract class Player extends LivingEntity { public ItemStack eat(Level world, ItemStack stack, FoodProperties foodComponent) { this.getFoodData().eat(stack, foodComponent); // CraftBukkit this.awardStat(Stats.ITEM_USED.get(stack.getItem())); diff --git a/patches/server/0176-Customizable-sleeping-actionbar-messages.patch b/patches/server/0176-Customizable-sleeping-actionbar-messages.patch index d829484e4..e40cf1260 100644 --- a/patches/server/0176-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0176-Customizable-sleeping-actionbar-messages.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Customizable sleeping actionbar messages diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6ee3292a5ca8421226be0afef73cbb1484b4311f..d54a242fbfce347f652d03f8eeac2f990168b809 100644 +index b8d80e04eea132d9671026e93e7c666d33dfeb25..74200fab686750cd53fc30edd050189cb11fe857 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -855,11 +855,27 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1027,11 +1027,27 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. if (this.canSleepThroughNights()) { if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) { int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); @@ -38,10 +38,10 @@ index 6ee3292a5ca8421226be0afef73cbb1484b4311f..d54a242fbfce347f652d03f8eeac2f99 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5b3ffa3aa96dffba149c0fa8d7fb62cc36f8a4a0..598af66601624687f000b74307863e18a56faa27 100644 +index 863e13a492488005b8d3ce134d2f45975c13d682..298616778a110ff487c1c7151b15fca88c178a64 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1534,7 +1534,19 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1569,7 +1569,19 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple }); if (!this.serverLevel().canSleepThroughNights()) { diff --git a/patches/server/0179-Player-ridable-in-water-option.patch b/patches/server/0179-Player-ridable-in-water-option.patch index b7db30a92..45d956622 100644 --- a/patches/server/0179-Player-ridable-in-water-option.patch +++ b/patches/server/0179-Player-ridable-in-water-option.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player ridable in water option 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 4a5a18443db0f7c69b61db2ded63355ef4d72d9a..5a9abf3cb9448f922c7d87a48fa50337e35c2c34 100644 +index 68f414c421458a38e5db8225524c1bf87c2627f3..c610479c5c8d3e0aa5d70106eab8d8b1ccc80c7f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -2079,6 +2079,13 @@ public abstract class Player extends LivingEntity { +@@ -2087,6 +2087,13 @@ public abstract class Player extends LivingEntity { return slot != EquipmentSlot.BODY; } diff --git a/patches/server/0181-Add-compass-command.patch b/patches/server/0181-Add-compass-command.patch index fb00a8977..bec9ac5b2 100644 --- a/patches/server/0181-Add-compass-command.patch +++ b/patches/server/0181-Add-compass-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add compass command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index a9180b1ce021f6d4d60e43bc04e863be99daf9d3..89cfef3a5c466a8f508cce1aa37ec6b01432eb35 100644 +index 938f0cc6631e5fdf687f43c1adc850d778227e98..1beb75aa960c766344f00fa898f905d5094efc01 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -255,6 +255,7 @@ public class Commands { @@ -17,18 +17,18 @@ index a9180b1ce021f6d4d60e43bc04e863be99daf9d3..89cfef3a5c466a8f508cce1aa37ec6b0 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 2ebfedffe3965ff73e4a6413d1129d655066217b..006491715c0a7458e287d316c7b345e37deba553 100644 +index 298616778a110ff487c1c7151b15fca88c178a64..cf79a9e767a6412f6d15017d030ae4a38e409679 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -298,6 +298,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -303,6 +303,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event public boolean purpurClient = false; // Purpur private boolean tpsBar = false; // Purpur + private boolean compassBar = false; // Purpur - public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { - super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); -@@ -568,6 +569,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { + // Paper start - rewrite chunk system + private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; +@@ -603,6 +604,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple } if (nbt.contains("Purpur.TPSBar")) { this.tpsBar = nbt.getBoolean("Purpur.TPSBar"); } // Purpur @@ -36,7 +36,7 @@ index 2ebfedffe3965ff73e4a6413d1129d655066217b..006491715c0a7458e287d316c7b345e3 } @Override -@@ -645,6 +647,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -680,6 +682,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple } nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur @@ -44,7 +44,7 @@ index 2ebfedffe3965ff73e4a6413d1129d655066217b..006491715c0a7458e287d316c7b345e3 } // CraftBukkit start - World fallback code, either respawn location or global spawn -@@ -3045,5 +3048,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -3080,5 +3083,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple public void tpsBar(boolean tpsBar) { this.tpsBar = tpsBar; } diff --git a/patches/server/0192-Extended-OfflinePlayer-API.patch b/patches/server/0192-Extended-OfflinePlayer-API.patch index a93154b44..9bae0caaf 100644 --- a/patches/server/0192-Extended-OfflinePlayer-API.patch +++ b/patches/server/0192-Extended-OfflinePlayer-API.patch @@ -243,10 +243,10 @@ index 9d93130f23addb18b97d7f5ec013faef17a74529..29d2fb87a65778926aea2cfc7a5b486c + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c97c8421303ac3191191dc0ceaca00ffd0e3e1d6..f4c1b3184afa8803a6dcdc63fa79f8d724ccefab 100644 +index 2fba6458aa097d9375df7d2f38efd10049a35b7d..cf355d3c0c4ca62640a0750a82cd661b2e7af65b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2758,6 +2758,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2757,6 +2757,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().getAbilities().walkingSpeed * 2f; } diff --git a/patches/server/0194-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0194-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 21501e53d..ff892e634 100644 --- a/patches/server/0194-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0194-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d54a242fbfce347f652d03f8eeac2f990168b809..3f23cd5d1fc8fc011b0857d127005aa8d45d39ea 100644 +index 74200fab686750cd53fc30edd050189cb11fe857..9e3dc4bf5ad390e6e49a5193c7788d0c0c536f0f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1015,6 +1015,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1187,6 +1187,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @VisibleForTesting public void resetWeatherCycle() { // CraftBukkit start @@ -16,7 +16,7 @@ index d54a242fbfce347f652d03f8eeac2f990168b809..3f23cd5d1fc8fc011b0857d127005aa8 this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents // If we stop due to everyone sleeping we should reset the weather duration to some other random value. // Not that everyone ever manages to get the whole server to sleep at the same time.... -@@ -1022,6 +1023,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1194,6 +1195,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. this.serverLevelData.setRainTime(0); } // CraftBukkit end diff --git a/patches/server/0196-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0196-Shift-right-click-to-use-exp-for-mending.patch index ad7dfb789..e402febc7 100644 --- a/patches/server/0196-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0196-Shift-right-click-to-use-exp-for-mending.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shift right click to use exp for mending diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 69c4289164fa0934f05cc8d80ffa1576bb5e6359..f4bdca2e5acfe4c0f846f90d5964c33439abec0c 100644 +index 5f140eba20078aabfb484223fb9d113db201b07f..a72222c515a804299a781083baaf032bf64251af 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -516,6 +516,7 @@ public class ServerPlayerGameMode { +@@ -518,6 +518,7 @@ public class ServerPlayerGameMode { public InteractionHand interactHand; public ItemStack interactItemStack; public InteractionResult useItemOn(ServerPlayer player, Level world, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) { @@ -16,7 +16,7 @@ index 69c4289164fa0934f05cc8d80ffa1576bb5e6359..f4bdca2e5acfe4c0f846f90d5964c334 BlockPos blockposition = hitResult.getBlockPos(); BlockState iblockdata = world.getBlockState(blockposition); boolean cancelledBlock = false; -@@ -619,4 +620,18 @@ public class ServerPlayerGameMode { +@@ -621,4 +622,18 @@ public class ServerPlayerGameMode { public void setLevel(ServerLevel world) { this.level = world; } @@ -36,7 +36,7 @@ index 69c4289164fa0934f05cc8d80ffa1576bb5e6359..f4bdca2e5acfe4c0f846f90d5964c334 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index df23496844d4b41e79efe23c99a5449ca40a4ccd..6ba7813b48fe0db81cb895937837bd463f458d62 100644 +index 22979d8531fd9732b1fd5eaf76aec52b22fdf6bb..d0672ed5abf3488fc3ec6ea8b153e2d22ff3e9ab 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2004,6 +2004,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0199-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0199-Option-for-beds-to-explode-on-villager-sleep.patch index 512775f9c..6610e9d37 100644 --- a/patches/server/0199-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0199-Option-for-beds-to-explode-on-villager-sleep.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option for beds to explode on villager sleep 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 d9e8d7d7ba3775131b871a619d997a29dc959594..c40070cf6654ebd7efb83c108efd29a5670ac234 100644 +index b9c464fbba1c18c524b3d1a7855c0392266e0734..2128eee536352e380fa2f0ea2c752dc64292f6bf 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -1081,6 +1081,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -1099,6 +1099,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override public void startSleeping(BlockPos pos) { diff --git a/patches/server/0202-UPnP-Port-Forwarding.patch b/patches/server/0202-UPnP-Port-Forwarding.patch index ce99d026d..32948eb40 100644 --- a/patches/server/0202-UPnP-Port-Forwarding.patch +++ b/patches/server/0202-UPnP-Port-Forwarding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] UPnP Port Forwarding diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fa6bf262da81837c7ff7b115a0a7b4a7f266037a..843d86bbb615d6257c143a3822a2af214af1a737 100644 +index 02bec087837783892db667883db89263bae1ca76..a0543b776d6e423851c18402247bf6a2d4e40fb1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -321,6 +321,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -954,6 +955,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop T getOrDefault(DataComponentType type, T fallback); } diff --git a/patches/server/0207-Signs-allow-color-codes.patch b/patches/server/0207-Signs-allow-color-codes.patch index b745a7cbd..075745bee 100644 --- a/patches/server/0207-Signs-allow-color-codes.patch +++ b/patches/server/0207-Signs-allow-color-codes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3dff1bb3a847cf121155b815cd9b6491b50029c5..30e642f51bbaae3a96c714a99dda43ca60cc374c 100644 +index cf79a9e767a6412f6d15017d030ae4a38e409679..c830fd0e990cb4220b6de3485df391ffbf7c7509 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1671,6 +1671,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1706,6 +1706,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @Override public void openTextEdit(SignBlockEntity sign, boolean front) { diff --git a/patches/server/0217-Give-bee-counts-in-beehives-to-Purpur-clients.patch b/patches/server/0217-Give-bee-counts-in-beehives-to-Purpur-clients.patch index 9de91d098..cd386dfd1 100644 --- a/patches/server/0217-Give-bee-counts-in-beehives-to-Purpur-clients.patch +++ b/patches/server/0217-Give-bee-counts-in-beehives-to-Purpur-clients.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Give bee counts in beehives to Purpur clients diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 843d86bbb615d6257c143a3822a2af214af1a737..49020c26d2bf6d30fadc3352925a76b91c490561 100644 +index a0543b776d6e423851c18402247bf6a2d4e40fb1..59938afbf2d3add16b6a7f0acdba81806054bbbb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1060,6 +1060,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { +@@ -617,11 +617,20 @@ public class Connection extends SimpleChannelInboundHandler> { private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world private static int joinAttemptsThisTick; // Paper - Buffer joins to world private static int currTick; // Paper - Buffer joins to world diff --git a/patches/server/0223-Configurable-minimum-demand-for-trades.patch b/patches/server/0223-Configurable-minimum-demand-for-trades.patch index 3b97aba8a..b86284e1b 100644 --- a/patches/server/0223-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0223-Configurable-minimum-demand-for-trades.patch @@ -9,10 +9,10 @@ This patch adds a config option to allow the minimum demand to instead be configurable. 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 d78e6b3dd97973589c1d1c666164960d28c26ec8..567bb9e6c9ac9092469742b7d4e1ed73d8bd5519 100644 +index cb0d4574f638968169dd926dccb1b4f0470ca127..de09bae637ea8637d13b55cd406d5dd2de72b00d 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -525,7 +525,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -543,7 +543,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler while (iterator.hasNext()) { MerchantOffer merchantrecipe = (MerchantOffer) iterator.next(); diff --git a/patches/server/0224-Lobotomize-stuck-villagers.patch b/patches/server/0224-Lobotomize-stuck-villagers.patch index 4476adf3e..59d71b925 100644 --- a/patches/server/0224-Lobotomize-stuck-villagers.patch +++ b/patches/server/0224-Lobotomize-stuck-villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers 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 567bb9e6c9ac9092469742b7d4e1ed73d8bd5519..96e9ba6da536c06a2bdb3522d1e0a5f1ea516707 100644 +index de09bae637ea8637d13b55cd406d5dd2de72b00d..92b2dfd2d4013ab6ae1114ab319c7bdaf674afe1 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -142,6 +142,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -66,32 +66,27 @@ index 567bb9e6c9ac9092469742b7d4e1ed73d8bd5519..96e9ba6da536c06a2bdb3522d1e0a5f1 @Override public Brain getBrain() { return (Brain) super.getBrain(); // CraftBukkit - decompile error -@@ -275,9 +319,23 @@ public class Villager extends AbstractVillager implements ReputationEventHandler - - @Override - protected void customServerAiStep() { -+ // Paper start -+ this.customServerAiStep(false); -+ } +@@ -290,10 +334,19 @@ public class Villager extends AbstractVillager implements ReputationEventHandler + // Paper start + this.customServerAiStep(false); + } +- protected void customServerAiStep(final boolean inactive) { + protected void customServerAiStep(boolean inactive) { // Purpur - not final -+ // Paper end + // Paper end this.level().getProfiler().push("villagerBrain"); -- this.getBrain().tick((ServerLevel) this.level(), this); -- /*// Purpur start // Purpur - TODO: Pufferfish + // Purpur start + if (this.level().purpurConfig.villagerLobotomizeEnabled) { + // treat as inactive if lobotomized -+ // inactive = inactive || checkLobotomized(); // Purpur - TODO: 1-21: check later ++ inactive = inactive || checkLobotomized(); + } else { + this.isLobotomized = false; + } + // Purpur end -+ /*if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper -+ else if (this.isLobotomized && shouldRestock()) restock(); // Purpur*/ // Purpur - TODO: 1-21: check later -+ /*// Purpur start // Purpur - TODO: Pufferfish + if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper ++ else if (this.isLobotomized && shouldRestock()) restock(); // Purpur + /*// Purpur start // Purpur - TODO: Pufferfish if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel) this.level(), this); // Paper - } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c615fc56d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java diff --git a/patches/server/0232-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0232-Implement-configurable-search-radius-for-villagers-t.patch index 1e401ebb6..105d572a4 100644 --- a/patches/server/0232-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0232-Implement-configurable-search-radius-for-villagers-t.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn 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 96e9ba6da536c06a2bdb3522d1e0a5f1ea516707..3384b439e72b15303af2cdb01571178e7af18fda 100644 +index 1c5538fa16acefb0e539ec2d36465d04d2967534..8fc03757339ebb8bcc976719c27872c59177b627 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -1080,6 +1080,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -1093,6 +1093,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } public void spawnGolemIfNeeded(ServerLevel world, long time, int requiredCount) { diff --git a/patches/server/0242-Add-local-difficulty-api.patch b/patches/server/0242-Add-local-difficulty-api.patch index 65d41dd40..c78482f4b 100644 --- a/patches/server/0242-Add-local-difficulty-api.patch +++ b/patches/server/0242-Add-local-difficulty-api.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8f88ccec6b8947ca2738dc07c23aebe258145c83..977d6563ed393ec2db343e6aebce721f96b883d7 100644 +index fe9e8d1d4ae1f7a4e8f4cf5688004fc969422b3c..8e0d67f4e6e1195663fbc8c4fa850d92021cbb16 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2325,6 +2325,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2321,6 +2321,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight()); } diff --git a/patches/server/0243-Add-toggle-for-RNG-manipulation.patch b/patches/server/0243-Add-toggle-for-RNG-manipulation.patch index 228ec32d5..33ee2058d 100644 --- a/patches/server/0243-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0243-Add-toggle-for-RNG-manipulation.patch @@ -7,10 +7,10 @@ Paper patches RNG maniplulation by using a shared (and locked) random source. This comes with a performance gain, but technical players may prefer the ability to manipulate RNG. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3ba86e5b66ff4d3d4c8675f9b084b91ab034eeb4..7e94f52f4086331401e35b6814709054e26d85b6 100644 +index 1c99a0c4a335db2cb444793b6aba43ab600597d2..8fddc8f7c0bdd91b0a1ce72c9bfccfc254c76bb7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -485,7 +485,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -558,7 +558,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; diff --git a/patches/server/0246-Debug-Marker-API.patch b/patches/server/0246-Debug-Marker-API.patch index b6ef3f98a..de9da5c4b 100644 --- a/patches/server/0246-Debug-Marker-API.patch +++ b/patches/server/0246-Debug-Marker-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Debug Marker API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8632ef169eab32caca3a6d89011c37e81345b7d0..dedf510a5942aaa65a606d108d4082e87add5523 100644 +index 0efa97d026673aae4fc60f719e18a0ce342a6cab..8bd0bb8b9593347bd249312af3832a4c1a932a5c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1609,6 +1609,42 @@ public final class CraftServer implements Server { @@ -52,10 +52,10 @@ index 8632ef169eab32caca3a6d89011c37e81345b7d0..dedf510a5942aaa65a606d108d4082e8 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 977d6563ed393ec2db343e6aebce721f96b883d7..c16dcd753325961e9b85c30ff66edc40af727273 100644 +index 8e0d67f4e6e1195663fbc8c4fa850d92021cbb16..00ad22ce430d1c866b254a4eb1f3a242cb8503ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2329,6 +2329,42 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2325,6 +2325,42 @@ public class CraftWorld extends CraftRegionAccessor implements World { public float getLocalDifficultyAt(Location location) { return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty(); } @@ -99,10 +99,10 @@ index 977d6563ed393ec2db343e6aebce721f96b883d7..c16dcd753325961e9b85c30ff66edc40 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f4c1b3184afa8803a6dcdc63fa79f8d724ccefab..a51cfed20f938364d0b087ddbabcfc83719a9de1 100644 +index cf355d3c0c4ca62640a0750a82cd661b2e7af65b..ad83b250ff9a34179f4b84622f9cf45206faefee 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3582,5 +3582,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3601,5 +3601,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetIdleTimer() { getHandle().resetLastActionTime(); } diff --git a/patches/server/0247-mob-spawning-option-to-ignore-creative-players.patch b/patches/server/0247-mob-spawning-option-to-ignore-creative-players.patch index 6bbe89088..34f15163c 100644 --- a/patches/server/0247-mob-spawning-option-to-ignore-creative-players.patch +++ b/patches/server/0247-mob-spawning-option-to-ignore-creative-players.patch @@ -5,10 +5,10 @@ Subject: [PATCH] mob spawning option to ignore creative players diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index ea6533c1ac218aa075da3401807a06fcb7892321..3fffaf0876bde3487e990510debeb31913d390b4 100644 +index ed8032495af9ce9c23419224814b8d27e4a97c17..eb5447295f51c061774b552451d4ffdbc28cb775 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -@@ -208,7 +208,7 @@ public final class NaturalSpawner { +@@ -253,7 +253,7 @@ public final class NaturalSpawner { blockposition_mutableblockposition.set(l, i, i1); double d0 = (double) l + 0.5D; double d1 = (double) i1 + 0.5D; diff --git a/patches/server/0249-Add-death-screen-API.patch b/patches/server/0249-Add-death-screen-API.patch index cfe1df606..277def93d 100644 --- a/patches/server/0249-Add-death-screen-API.patch +++ b/patches/server/0249-Add-death-screen-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a51cfed20f938364d0b087ddbabcfc83719a9de1..f36c0c33438698d7bf6e0fd6c3101b2b8e8f8fe5 100644 +index ad83b250ff9a34179f4b84622f9cf45206faefee..23a2191087346f5cd56378407e327d0e41095a7f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3620,5 +3620,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3639,5 +3639,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (this.getHandle().connection == null) return; this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket(new net.minecraft.network.protocol.common.custom.GameTestClearMarkersDebugPayload())); } diff --git a/patches/server/0250-Implement-ram-and-rambar-commands.patch b/patches/server/0250-Implement-ram-and-rambar-commands.patch index b4c474a0c..aa727fd7b 100644 --- a/patches/server/0250-Implement-ram-and-rambar-commands.patch +++ b/patches/server/0250-Implement-ram-and-rambar-commands.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement ram and rambar commands diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 89cfef3a5c466a8f508cce1aa37ec6b01432eb35..7bcc0f87337547f8783dd9cc8adff61187cd41d7 100644 +index 1beb75aa960c766344f00fa898f905d5094efc01..358c03d6fb2f9442a9ac71fa6eca3915a6c4305c 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -256,6 +256,8 @@ public class Commands { @@ -18,18 +18,18 @@ index 89cfef3a5c466a8f508cce1aa37ec6b01432eb35..7bcc0f87337547f8783dd9cc8adff611 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index aee38e8a22fb12b55d0fce130f759154712847b4..d990ba31689294e78b60114f3e73ce4be0924c84 100644 +index c830fd0e990cb4220b6de3485df391ffbf7c7509..574937623f1aa38a8b2602357e0038eb23f5d0c3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -299,6 +299,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -304,6 +304,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple public boolean purpurClient = false; // Purpur private boolean tpsBar = false; // Purpur private boolean compassBar = false; // Purpur + private boolean ramBar = false; // Purpur - public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { - super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); -@@ -570,6 +571,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { + // Paper start - rewrite chunk system + private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; +@@ -605,6 +606,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple if (nbt.contains("Purpur.TPSBar")) { this.tpsBar = nbt.getBoolean("Purpur.TPSBar"); } // Purpur if (nbt.contains("Purpur.CompassBar")) { this.compassBar = nbt.getBoolean("Purpur.CompassBar"); } // Purpur @@ -37,7 +37,7 @@ index aee38e8a22fb12b55d0fce130f759154712847b4..d990ba31689294e78b60114f3e73ce4b } @Override -@@ -646,6 +648,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -681,6 +683,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple }); } @@ -45,7 +45,7 @@ index aee38e8a22fb12b55d0fce130f759154712847b4..d990ba31689294e78b60114f3e73ce4b nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur nbt.putBoolean("Purpur.CompassBar", this.compassBar); // Purpur } -@@ -3057,5 +3060,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -3092,5 +3095,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple public void compassBar(boolean compassBar) { this.compassBar = compassBar; } diff --git a/patches/server/0258-Fire-Immunity-API.patch b/patches/server/0258-Fire-Immunity-API.patch index 9a7d6bb83..07f6ee136 100644 --- a/patches/server/0258-Fire-Immunity-API.patch +++ b/patches/server/0258-Fire-Immunity-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7e94f52f4086331401e35b6814709054e26d85b6..2ff961220e161d06a11bfb497a83ced150048402 100644 +index 8fddc8f7c0bdd91b0a1ce72c9bfccfc254c76bb7..9aa1a040c452d2b5737e0cbb4dc293b0f7060f9b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -428,6 +428,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -430,6 +430,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean fixedPose = false; // Paper - Expand Pose API @@ -16,7 +16,7 @@ index 7e94f52f4086331401e35b6814709054e26d85b6..2ff961220e161d06a11bfb497a83ced1 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -1651,7 +1652,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1733,7 +1734,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean fireImmune() { @@ -25,7 +25,7 @@ index 7e94f52f4086331401e35b6814709054e26d85b6..2ff961220e161d06a11bfb497a83ced1 } public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { -@@ -2361,6 +2362,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2443,6 +2444,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess nbttagcompound.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -37,7 +37,7 @@ index 7e94f52f4086331401e35b6814709054e26d85b6..2ff961220e161d06a11bfb497a83ced1 return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2508,6 +2514,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2590,6 +2596,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end diff --git a/patches/server/0259-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0259-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 426cf96c4..d41531289 100644 --- a/patches/server/0259-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0259-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2ff961220e161d06a11bfb497a83ced150048402..4c30eb5b4557226f49968ababb1fe66065ecc486 100644 +index 9aa1a040c452d2b5737e0cbb4dc293b0f7060f9b..7e12e94d56e1750e072e4dfa94413998ce18049e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -833,6 +833,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -906,6 +906,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end - Configurable nether ceiling damage diff --git a/patches/server/0272-Explorer-Map-API.patch b/patches/server/0272-Explorer-Map-API.patch index d89a85814..5d062886a 100644 --- a/patches/server/0272-Explorer-Map-API.patch +++ b/patches/server/0272-Explorer-Map-API.patch @@ -17,13 +17,13 @@ index ce461b1a8d7fab87ae28e30205f6fab67f1808b6..608390ed36710a419de1542b80340dd3 int i = 1 << mapItemSavedData.scale; int j = mapItemSavedData.centerX; diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index a43544704109f21bab230dd9bf0401e28f878582..627d4ee90a2ebc137d7e94d988eba2f212b7f26d 100644 +index 17f33c83c6033564d6bf4fbd388b0b847c68adb3..7a53a5b5490e6b00b9f755fb3e18fb38f4bc1252 100644 --- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -@@ -79,6 +79,7 @@ public class MapItemSavedData extends SavedData { - public final Map decorations = Maps.newLinkedHashMap(); +@@ -80,6 +80,7 @@ public class MapItemSavedData extends SavedData { private final Map frameMarkers = Maps.newHashMap(); private int trackedDecorationCount; + private org.bukkit.craftbukkit.map.RenderData vanillaRender = new org.bukkit.craftbukkit.map.RenderData(); // Paper + public boolean isExplorerMap; // Purpur // CraftBukkit start diff --git a/patches/server/0281-config-for-startup-commands.patch b/patches/server/0281-config-for-startup-commands.patch index ff19c7f89..34009794e 100644 --- a/patches/server/0281-config-for-startup-commands.patch +++ b/patches/server/0281-config-for-startup-commands.patch @@ -5,10 +5,10 @@ Subject: [PATCH] config for startup commands diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 49020c26d2bf6d30fadc3352925a76b91c490561..e36cb57db8776ef01cb4e56819ada249d1919b46 100644 +index 59938afbf2d3add16b6a7f0acdba81806054bbbb..bc58ad858d7753cc2b992e9f18ed717cbd3e5989 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1162,6 +1162,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop