From 93e0af2696b30ab324c3f98a89b775c3b47c0663 Mon Sep 17 00:00:00 2001 From: Ben Kerllenevich Date: Wed, 8 Jun 2022 10:53:32 -0400 Subject: [PATCH] a bunch more --- gradle.properties | 2 +- patches/server/0001-Rebrand.patch | 8 ++-- ...0020-Alternative-Keepalive-Handling.patch} | 8 ++-- .../0021-Silk-touch-spawners.patch} | 18 ++++----- ...72-Fix-Add-turtle-egg-block-options.patch} | 8 ++-- ...-vanilla-command-permission-handler.patch} | 4 +- ...settings-suppressing-pointless-logs.patch} | 8 ++-- .../0025-Disable-outdated-build-check.patch} | 2 +- .../0026-Giants-AI-settings.patch} | 4 +- .../0027-Zombie-horse-naturally-spawn.patch} | 4 +- ...028-Charged-creeper-naturally-spawn.patch} | 0 ...it-naturally-spawn-toast-and-killer.patch} | 10 ++--- ...er-showing-in-ping-before-server-fu.patch} | 4 +- .../0031-Tulips-change-fox-type.patch} | 12 +++--- .../0032-Breedable-Polar-Bears.patch} | 2 +- .../0033-Chickens-can-retaliate.patch} | 8 ++-- ...ption-to-set-armorstand-step-height.patch} | 6 +-- .../0035-Cat-spawning-options.patch} | 16 ++++---- ...n-black-cats-spawning-in-swamp-huts.patch} | 4 +- .../0037-Cows-eat-mushrooms.patch} | 0 ...ow-rotation-when-shearing-mooshroom.patch} | 2 +- .../0039-Pigs-give-saddle-back.patch} | 4 +- ...0-Snowman-drop-and-put-back-pumpkin.patch} | 6 +-- ...1-Ender-dragon-always-drop-full-exp.patch} | 4 +- .../0042-Signs-editable-on-right-click.patch} | 2 +- ...oisten-from-water-directly-under-it.patch} | 2 +- ...Minecart-settings-and-WASD-controls.patch} | 18 ++++----- ...ble-loot-drops-on-death-by-cramming.patch} | 6 +-- ...tion-to-toggle-milk-curing-bad-omen.patch} | 2 +- ...ould-check-if-entity-can-use-portal.patch} | 2 +- ...048-Fix-the-dead-lagging-the-server.patch} | 8 ++-- ...Skip-events-if-there-s-no-listeners.patch} | 6 +-- .../0050-Add-permission-for-F3-N-debug.patch} | 4 +- .../0051-Configurable-TPS-Catchup.patch} | 18 ++++----- ...ow-loyalty-on-tridents-to-work-in-t.patch} | 4 +- ...erman-and-creeper-griefing-controls.patch} | 6 +-- ...054-Villagers-follow-emerald-blocks.patch} | 6 +-- .../0055-Allow-leashing-villagers.patch} | 8 ++-- .../0056-Implement-infinite-liquids.patch} | 12 +++--- ...7-Make-lava-flow-speed-configurable.patch} | 4 +- ...dd-player-death-exp-control-options.patch} | 8 ++-- ...rable-void-damage-height-and-damage.patch} | 10 ++--- .../0060-Add-canSaveToDisk-to-Entity.patch} | 8 ++-- ...spenser-curse-of-binding-protection.patch} | 8 ++-- ...-for-boats-to-eject-players-on-land.patch} | 6 +-- ...-mends-most-damages-equipment-first.patch} | 10 ++--- ...064-Add-5-second-tps-average-in-tps.patch} | 36 +++++++++--------- .../0065-Implement-elytra-settings.patch} | 18 ++++----- .../0066-Item-entity-immunities.patch} | 16 ++++---- .../0067-Add-ping-command.patch} | 4 +- .../0068-Add-demo-command.patch} | 4 +- .../0069-Add-credits-command.patch} | 4 +- .../0070-Configurable-jockey-options.patch} | 38 +++++++++---------- ...d-to-crystals-and-crystals-shoot-ph.patch} | 4 +- .../0072-Add-phantom-spawning-options.patch} | 22 +++++------ ...073-Implement-bed-explosion-options.patch} | 4 +- ...urable-search-radius-for-villagers-t.patch | 0 57 files changed, 227 insertions(+), 225 deletions(-) rename patches/{unapplied/0021-Alternative-Keepalive-Handling.patch => server/0020-Alternative-Keepalive-Handling.patch} (93%) rename patches/{unapplied/0022-Silk-touch-spawners.patch => server/0021-Silk-touch-spawners.patch} (94%) rename patches/{unapplied/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch => server/0022-MC-168772-Fix-Add-turtle-egg-block-options.patch} (92%) rename patches/{unapplied/0024-Fix-vanilla-command-permission-handler.patch => server/0023-Fix-vanilla-command-permission-handler.patch} (89%) rename patches/{unapplied/0025-Logger-settings-suppressing-pointless-logs.patch => server/0024-Logger-settings-suppressing-pointless-logs.patch} (94%) rename patches/{unapplied/0026-Disable-outdated-build-check.patch => server/0025-Disable-outdated-build-check.patch} (92%) rename patches/{unapplied/0027-Giants-AI-settings.patch => server/0026-Giants-AI-settings.patch} (98%) rename patches/{unapplied/0028-Zombie-horse-naturally-spawn.patch => server/0027-Zombie-horse-naturally-spawn.patch} (95%) rename patches/{unapplied/0029-Charged-creeper-naturally-spawn.patch => server/0028-Charged-creeper-naturally-spawn.patch} (100%) rename patches/{unapplied/0030-Rabbit-naturally-spawn-toast-and-killer.patch => server/0029-Rabbit-naturally-spawn-toast-and-killer.patch} (87%) rename patches/{unapplied/0031-Fix-outdated-server-showing-in-ping-before-server-fu.patch => server/0030-Fix-outdated-server-showing-in-ping-before-server-fu.patch} (86%) rename patches/{unapplied/0032-Tulips-change-fox-type.patch => server/0031-Tulips-change-fox-type.patch} (92%) rename patches/{unapplied/0033-Breedable-Polar-Bears.patch => server/0032-Breedable-Polar-Bears.patch} (97%) rename patches/{unapplied/0034-Chickens-can-retaliate.patch => server/0033-Chickens-can-retaliate.patch} (93%) rename patches/{unapplied/0035-Add-option-to-set-armorstand-step-height.patch => server/0034-Add-option-to-set-armorstand-step-height.patch} (85%) rename patches/{unapplied/0036-Cat-spawning-options.patch => server/0035-Cat-spawning-options.patch} (85%) rename patches/{unapplied/0037-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch => server/0036-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch} (86%) rename patches/{unapplied/0038-Cows-eat-mushrooms.patch => server/0037-Cows-eat-mushrooms.patch} (100%) rename patches/{unapplied/0039-Fix-cow-rotation-when-shearing-mooshroom.patch => server/0038-Fix-cow-rotation-when-shearing-mooshroom.patch} (92%) rename patches/{unapplied/0040-Pigs-give-saddle-back.patch => server/0039-Pigs-give-saddle-back.patch} (93%) rename patches/{unapplied/0041-Snowman-drop-and-put-back-pumpkin.patch => server/0040-Snowman-drop-and-put-back-pumpkin.patch} (92%) rename patches/{unapplied/0042-Ender-dragon-always-drop-full-exp.patch => server/0041-Ender-dragon-always-drop-full-exp.patch} (93%) rename patches/{unapplied/0043-Signs-editable-on-right-click.patch => server/0042-Signs-editable-on-right-click.patch} (96%) rename patches/{unapplied/0044-Allow-soil-to-moisten-from-water-directly-under-it.patch => server/0043-Allow-soil-to-moisten-from-water-directly-under-it.patch} (94%) rename patches/{unapplied/0045-Minecart-settings-and-WASD-controls.patch => server/0044-Minecart-settings-and-WASD-controls.patch} (93%) rename patches/{unapplied/0046-Disable-loot-drops-on-death-by-cramming.patch => server/0045-Disable-loot-drops-on-death-by-cramming.patch} (91%) rename patches/{unapplied/0047-Option-to-toggle-milk-curing-bad-omen.patch => server/0046-Option-to-toggle-milk-curing-bad-omen.patch} (95%) rename patches/{unapplied/0048-End-gateway-should-check-if-entity-can-use-portal.patch => server/0047-End-gateway-should-check-if-entity-can-use-portal.patch} (91%) rename patches/{unapplied/0049-Fix-the-dead-lagging-the-server.patch => server/0048-Fix-the-dead-lagging-the-server.patch} (81%) rename patches/{unapplied/0050-Skip-events-if-there-s-no-listeners.patch => server/0049-Skip-events-if-there-s-no-listeners.patch} (87%) rename patches/{unapplied/0051-Add-permission-for-F3-N-debug.patch => server/0050-Add-permission-for-F3-N-debug.patch} (83%) rename patches/{unapplied/0052-Configurable-TPS-Catchup.patch => server/0051-Configurable-TPS-Catchup.patch} (75%) rename patches/{unapplied/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch => server/0052-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch} (92%) rename patches/{unapplied/0054-Add-enderman-and-creeper-griefing-controls.patch => server/0053-Add-enderman-and-creeper-griefing-controls.patch} (95%) rename patches/{unapplied/0055-Villagers-follow-emerald-blocks.patch => server/0054-Villagers-follow-emerald-blocks.patch} (95%) rename patches/{unapplied/0056-Allow-leashing-villagers.patch => server/0055-Allow-leashing-villagers.patch} (94%) rename patches/{unapplied/0058-Implement-infinite-liquids.patch => server/0056-Implement-infinite-liquids.patch} (90%) rename patches/{unapplied/0059-Make-lava-flow-speed-configurable.patch => server/0057-Make-lava-flow-speed-configurable.patch} (90%) rename patches/{unapplied/0060-Add-player-death-exp-control-options.patch => server/0058-Add-player-death-exp-control-options.patch} (90%) rename patches/{unapplied/0061-Configurable-void-damage-height-and-damage.patch => server/0059-Configurable-void-damage-height-and-damage.patch} (87%) rename patches/{unapplied/0062-Add-canSaveToDisk-to-Entity.patch => server/0060-Add-canSaveToDisk-to-Entity.patch} (91%) rename patches/{unapplied/0063-Dispenser-curse-of-binding-protection.patch => server/0061-Dispenser-curse-of-binding-protection.patch} (90%) rename patches/{unapplied/0064-Add-option-for-boats-to-eject-players-on-land.patch => server/0062-Add-option-for-boats-to-eject-players-on-land.patch} (89%) rename patches/{unapplied/0065-Mending-mends-most-damages-equipment-first.patch => server/0063-Mending-mends-most-damages-equipment-first.patch} (92%) rename patches/{unapplied/0066-Add-5-second-tps-average-in-tps.patch => server/0064-Add-5-second-tps-average-in-tps.patch} (82%) rename patches/{unapplied/0067-Implement-elytra-settings.patch => server/0065-Implement-elytra-settings.patch} (91%) rename patches/{unapplied/0068-Item-entity-immunities.patch => server/0066-Item-entity-immunities.patch} (93%) rename patches/{unapplied/0069-Add-ping-command.patch => server/0067-Add-ping-command.patch} (96%) rename patches/{unapplied/0070-Add-demo-command.patch => server/0068-Add-demo-command.patch} (96%) rename patches/{unapplied/0071-Add-credits-command.patch => server/0069-Add-credits-command.patch} (96%) rename patches/{unapplied/0072-Configurable-jockey-options.patch => server/0070-Configurable-jockey-options.patch} (90%) rename patches/{unapplied/0073-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch => server/0071-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch} (98%) rename patches/{unapplied/0074-Add-phantom-spawning-options.patch => server/0072-Add-phantom-spawning-options.patch} (83%) rename patches/{unapplied/0075-Implement-bed-explosion-options.patch => server/0073-Implement-bed-explosion-options.patch} (95%) rename patches/{unapplied => todo}/0057-Implement-configurable-search-radius-for-villagers-t.patch (100%) diff --git a/gradle.properties b/gradle.properties index 4ee1bcb0d..8e7b8cd7e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = org.purpurmc.purpur version = 1.19-R0.1-SNAPSHOT -paperCommit = b1f5e70075fa956e1a70bd1311c72a705896e88d +paperCommit = af4b5ee4f0aff27c38692c45617004d44d061383 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 9b78a874b..a98d9837d 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 3ff7814add16834c70494afb76d8a7788545d009..a4a6318b8a79a51a514f121c82bb96d44e0cfd03 100644 +index 50d35d6e60f398501af447319de9d6ccd4db8b00..fd1c56fae31768c15d3cbed8c167f17c1cbe270b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,8 +9,8 @@ plugins { @@ -19,7 +19,7 @@ index 3ff7814add16834c70494afb76d8a7788545d009..a4a6318b8a79a51a514f121c82bb96d4 // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -32,6 +32,9 @@ dependencies { +@@ -33,6 +33,9 @@ dependencies { runtimeOnly("mysql:mysql-connector-java:8.0.29") runtimeOnly("com.lmax:disruptor:3.4.4") // Paper @@ -29,7 +29,7 @@ index 3ff7814add16834c70494afb76d8a7788545d009..a4a6318b8a79a51a514f121c82bb96d4 runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5") runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3") runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3") -@@ -61,7 +64,7 @@ tasks.jar { +@@ -62,7 +65,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -38,7 +38,7 @@ index 3ff7814add16834c70494afb76d8a7788545d009..a4a6318b8a79a51a514f121c82bb96d4 "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -149,7 +152,7 @@ fun TaskContainer.registerRunTask( +@@ -150,7 +153,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { diff --git a/patches/unapplied/0021-Alternative-Keepalive-Handling.patch b/patches/server/0020-Alternative-Keepalive-Handling.patch similarity index 93% rename from patches/unapplied/0021-Alternative-Keepalive-Handling.patch rename to patches/server/0020-Alternative-Keepalive-Handling.patch index 5ec39455d..35d614ee5 100644 --- a/patches/unapplied/0021-Alternative-Keepalive-Handling.patch +++ b/patches/server/0020-Alternative-Keepalive-Handling.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Alternative Keepalive Handling diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d9e4a2c56820ea6de0d31721e1796ea7165cb256..1c380b6954edb6806a1b3bfc66e1b6a19c0fd219 100644 +index f9ff242f05fc5b1c0614403a7e81876f0ad85ca0..7e290e96bdad4301fbc93b9c58b3a4dcb4ad83f6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -227,6 +227,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -244,6 +244,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser private long keepAliveTime = Util.getMillis(); private boolean keepAlivePending; private long keepAliveChallenge; @@ -16,7 +16,7 @@ index d9e4a2c56820ea6de0d31721e1796ea7165cb256..1c380b6954edb6806a1b3bfc66e1b6a1 // CraftBukkit start - multithreaded fields private final AtomicInteger chatSpamTickCount = new AtomicInteger(); private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits -@@ -370,6 +371,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -395,6 +396,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser long currentTime = Util.getMillis(); long elapsedTime = currentTime - this.keepAliveTime; @@ -38,7 +38,7 @@ index d9e4a2c56820ea6de0d31721e1796ea7165cb256..1c380b6954edb6806a1b3bfc66e1b6a1 if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -3171,6 +3187,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3351,6 +3367,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/unapplied/0022-Silk-touch-spawners.patch b/patches/server/0021-Silk-touch-spawners.patch similarity index 94% rename from patches/unapplied/0022-Silk-touch-spawners.patch rename to patches/server/0021-Silk-touch-spawners.patch index 4c3eda1c8..9fe77be76 100644 --- a/patches/unapplied/0022-Silk-touch-spawners.patch +++ b/patches/server/0021-Silk-touch-spawners.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Silk touch spawners diff --git a/src/main/java/net/minecraft/world/item/Items.java b/src/main/java/net/minecraft/world/item/Items.java -index 20444c6887cbdd444b23bf018a6d63f22359e5e7..85329295afacad3edb6865846166aa56ebae0ed2 100644 +index d9ba3ae228791ebf6ea29353fb88c1765fa4d20c..21c9733065f6ecb265e4df8a7080697356c796ac 100644 --- a/src/main/java/net/minecraft/world/item/Items.java +++ b/src/main/java/net/minecraft/world/item/Items.java -@@ -258,7 +258,7 @@ public class Items { +@@ -271,7 +271,7 @@ public class Items { public static final Item PURPUR_BLOCK = registerBlock(Blocks.PURPUR_BLOCK, CreativeModeTab.TAB_BUILDING_BLOCKS); public static final Item PURPUR_PILLAR = registerBlock(Blocks.PURPUR_PILLAR, CreativeModeTab.TAB_BUILDING_BLOCKS); public static final Item PURPUR_STAIRS = registerBlock(Blocks.PURPUR_STAIRS, CreativeModeTab.TAB_BUILDING_BLOCKS); - public static final Item SPAWNER = registerBlock(new BlockItem(Blocks.SPAWNER, (new Item.Properties()).rarity(Rarity.EPIC))); + public static final Item SPAWNER = registerBlock(Blocks.SPAWNER, new org.purpurmc.purpur.item.SpawnerItem(Blocks.SPAWNER, new Item.Properties().rarity(Rarity.EPIC))); // Purpur - public static final Item OAK_STAIRS = registerBlock(Blocks.OAK_STAIRS, CreativeModeTab.TAB_BUILDING_BLOCKS); public static final Item CHEST = registerBlock(Blocks.CHEST, CreativeModeTab.TAB_DECORATIONS); public static final Item CRAFTING_TABLE = registerBlock(Blocks.CRAFTING_TABLE, CreativeModeTab.TAB_DECORATIONS); + public static final Item FARMLAND = registerBlock(Blocks.FARMLAND, CreativeModeTab.TAB_DECORATIONS); diff --git a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java -index 130ffb06b12565efb35afb55b6da20b1b16f6f06..4ebe35d522e43a847c6a7f6b4fa529092630823d 100644 +index 39bc91423c830d69eff1996881373296f322f06a..e0d8bd28576f16822a584f3514dbcb8f36e575d8 100644 --- a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java @@ -1,9 +1,19 @@ @@ -116,16 +116,16 @@ index 130ffb06b12565efb35afb55b6da20b1b16f6f06..4ebe35d522e43a847c6a7f6b4fa52909 + // Purpur end + @Override - public void spawnAfterBreak(BlockState state, ServerLevel world, BlockPos pos, ItemStack stack) { - super.spawnAfterBreak(state, world, pos, stack); + public void spawnAfterBreak(BlockState state, ServerLevel world, BlockPos pos, ItemStack stack, boolean dropExperience) { + super.spawnAfterBreak(state, world, pos, stack, dropExperience); @@ -38,6 +111,7 @@ public class SpawnerBlock extends BaseEntityBlock { @Override - public int getExpDrop(BlockState iblockdata, ServerLevel worldserver, BlockPos blockposition, ItemStack itemstack) { + public int getExpDrop(BlockState iblockdata, ServerLevel worldserver, BlockPos blockposition, ItemStack itemstack, boolean flag) { + if (isSilkTouch(worldserver, itemstack)) return 0; // Purpur - int i = 15 + worldserver.random.nextInt(15) + worldserver.random.nextInt(15); + if (flag) { + int i = 15 + worldserver.random.nextInt(15) + worldserver.random.nextInt(15); - // this.popExperience(worldserver, blockposition, i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index 93d89fb27044e5e97574122b0e7863694d245bf0..50b0cdb6c95fc076216b41018b2bd1a30a643efa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/patches/unapplied/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch b/patches/server/0022-MC-168772-Fix-Add-turtle-egg-block-options.patch similarity index 92% rename from patches/unapplied/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch rename to patches/server/0022-MC-168772-Fix-Add-turtle-egg-block-options.patch index 14263df16..f4eb7eec7 100644 --- a/patches/unapplied/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch +++ b/patches/server/0022-MC-168772-Fix-Add-turtle-egg-block-options.patch @@ -5,11 +5,11 @@ Subject: [PATCH] MC-168772 Fix - Add turtle egg block options diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -index 45d5133ff2303b9b44ccacbfb7919708cb50edd6..b1846a5c73f5be800ab1e4efe81e110e245b4726 100644 +index 7d25fb0fc64a4f559fe206198fde900afa06f258..1a12fee99a8b69fc6c01e1e217575c7c19e13155 100644 --- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -@@ -9,11 +9,15 @@ import net.minecraft.sounds.SoundSource; - import net.minecraft.tags.BlockTags; +@@ -9,11 +9,15 @@ import net.minecraft.tags.BlockTags; + import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.ExperienceOrb; @@ -24,7 +24,7 @@ index 45d5133ff2303b9b44ccacbfb7919708cb50edd6..b1846a5c73f5be800ab1e4efe81e110e import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; -@@ -186,6 +190,23 @@ public class TurtleEggBlock extends Block { +@@ -191,6 +195,23 @@ public class TurtleEggBlock extends Block { } private boolean canDestroyEgg(Level world, Entity entity) { diff --git a/patches/unapplied/0024-Fix-vanilla-command-permission-handler.patch b/patches/server/0023-Fix-vanilla-command-permission-handler.patch similarity index 89% rename from patches/unapplied/0024-Fix-vanilla-command-permission-handler.patch rename to patches/server/0023-Fix-vanilla-command-permission-handler.patch index d7bfdf5de..0c6183e1b 100644 --- a/patches/unapplied/0024-Fix-vanilla-command-permission-handler.patch +++ b/patches/server/0023-Fix-vanilla-command-permission-handler.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix vanilla command permission handler diff --git a/src/main/java/com/mojang/brigadier/tree/CommandNode.java b/src/main/java/com/mojang/brigadier/tree/CommandNode.java -index f64aa22ed6fcb4af67317b99f459ee5296392548..36c91793e0aa4895193623cf8cba7820d31f4eca 100644 +index d65defd5fc54086a969c568b93dfb05f40dd5a44..dad5564caa9f0211d8f8321a80dcec7e2cc6abc4 100644 --- a/src/main/java/com/mojang/brigadier/tree/CommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/CommandNode.java @@ -34,6 +34,7 @@ public abstract class CommandNode implements Comparable> { @@ -17,7 +17,7 @@ index f64aa22ed6fcb4af67317b99f459ee5296392548..36c91793e0aa4895193623cf8cba7820 public void removeCommand(String name) { this.children.remove(name); diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java -index 4525fb3bc9b137bce3b59310a8aecca96d6ad5ba..75aeceb76b15a4c9cc7cffc35d15d76509c5620a 100644 +index 6035af2cf08353b3d3801220d8116d8611a0cd37..7774ab6a2e553a40def4bb4dceea9e5f58d31c1e 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java +++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java @@ -94,6 +94,7 @@ public final class VanillaCommandWrapper extends BukkitCommand { diff --git a/patches/unapplied/0025-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch similarity index 94% rename from patches/unapplied/0025-Logger-settings-suppressing-pointless-logs.patch rename to patches/server/0024-Logger-settings-suppressing-pointless-logs.patch index 68a0ad034..4dbf67ed5 100644 --- a/patches/unapplied/0025-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/server/0024-Logger-settings-suppressing-pointless-logs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Logger settings (suppressing pointless logs) diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index b16287a47870978706734b928b87f2357e91e3a1..048413655ef636b3dae687452fc5a95780058a22 100644 +index de0513b38e5fa0138f1cee6bb633561be12449fc..161a2b122843318a1bc411ea09ef83bc56bff0d1 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java -@@ -186,6 +186,7 @@ public class PlayerAdvancements { +@@ -185,6 +185,7 @@ public class PlayerAdvancements { if (advancement == null) { // CraftBukkit start if (entry.getKey().getNamespace().equals("minecraft")) { @@ -17,10 +17,10 @@ index b16287a47870978706734b928b87f2357e91e3a1..048413655ef636b3dae687452fc5a957 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 1e656438d9ee89b97c660f3b3ec671be6546c6b7..c4b2a50ad65b4ca2f8cc5903213c70cafde3e41c 100644 +index f000c822ed4563b5b840936852bc7d8e030763e3..0c48e877a0dba9fba3295d1740527fa418b5e26c 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -@@ -287,6 +287,7 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -294,6 +294,7 @@ public class WorldGenRegion implements WorldGenLevel { return true; } else { // Paper start diff --git a/patches/unapplied/0026-Disable-outdated-build-check.patch b/patches/server/0025-Disable-outdated-build-check.patch similarity index 92% rename from patches/unapplied/0026-Disable-outdated-build-check.patch rename to patches/server/0025-Disable-outdated-build-check.patch index 9aba710b4..9a58b93bd 100644 --- a/patches/unapplied/0026-Disable-outdated-build-check.patch +++ b/patches/server/0025-Disable-outdated-build-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Disable outdated build check diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index dd8ab900bb3ff451c7c200f9cb3e3eca3e78a2c6..639dc3bb56cc90b84da08dc93cea89c658ed6dc8 100644 +index e8f88084b0998649c422c6011566e334b58a0c93..baf79d7a2210fc8359ca6625a6973a398c9200d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -265,7 +265,7 @@ public class Main { diff --git a/patches/unapplied/0027-Giants-AI-settings.patch b/patches/server/0026-Giants-AI-settings.patch similarity index 98% rename from patches/unapplied/0027-Giants-AI-settings.patch rename to patches/server/0026-Giants-AI-settings.patch index 0de283a04..85403d9b2 100644 --- a/patches/unapplied/0027-Giants-AI-settings.patch +++ b/patches/server/0026-Giants-AI-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Giants AI settings diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java -index 61d39062021ca23aa94d9fcf584f14599fd7411c..0d26d2388cc1963df9bc361b31a572c12e2f8709 100644 +index c1c5e884f00398032196ee71b55b348fcfce21ce..0d26d2388cc1963df9bc361b31a572c12e2f8709 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Giant.java +++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java @@ -1,13 +1,36 @@ @@ -115,7 +115,7 @@ index 61d39062021ca23aa94d9fcf584f14599fd7411c..0d26d2388cc1963df9bc361b31a572c1 @Override public float getWalkTargetValue(BlockPos pos, LevelReader world) { -- return world.getBrightness(pos) - 0.5F; +- return world.getPathfindingCostFromLightLevels(pos); + return super.getWalkTargetValue(pos, world); // Purpur - fix light requirements for natural spawns } } diff --git a/patches/unapplied/0028-Zombie-horse-naturally-spawn.patch b/patches/server/0027-Zombie-horse-naturally-spawn.patch similarity index 95% rename from patches/unapplied/0028-Zombie-horse-naturally-spawn.patch rename to patches/server/0027-Zombie-horse-naturally-spawn.patch index 914ecaa7b..48a4d07dc 100644 --- a/patches/unapplied/0028-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0027-Zombie-horse-naturally-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8066a3372d21823357942771adc0b4768f505ea2..ac233f1f6a645a927631efdda15aee91040705d8 100644 +index 805025d7b446110a6949635a7064d05fb51638fd..1b625173b7f56b56d5e7982290430cd7290386f0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -772,9 +772,15 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -770,9 +770,15 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper if (flag1) { diff --git a/patches/unapplied/0029-Charged-creeper-naturally-spawn.patch b/patches/server/0028-Charged-creeper-naturally-spawn.patch similarity index 100% rename from patches/unapplied/0029-Charged-creeper-naturally-spawn.patch rename to patches/server/0028-Charged-creeper-naturally-spawn.patch diff --git a/patches/unapplied/0030-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0029-Rabbit-naturally-spawn-toast-and-killer.patch similarity index 87% rename from patches/unapplied/0030-Rabbit-naturally-spawn-toast-and-killer.patch rename to patches/server/0029-Rabbit-naturally-spawn-toast-and-killer.patch index b87dd1784..f81bbf0b6 100644 --- a/patches/unapplied/0030-Rabbit-naturally-spawn-toast-and-killer.patch +++ b/patches/server/0029-Rabbit-naturally-spawn-toast-and-killer.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Rabbit naturally spawn toast and killer diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index 76ea5b3d0d70eb8bdbbbb4bf7bed31d0d7d712a3..5b30a1d34d7efb1a5c86ae187027313fec1fd700 100644 +index eaf040f10e33fdfb57391b6e7bc6901c87270853..799ef179e1e02ec0a23a785cf2b31d5390ee29c8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -@@ -435,7 +435,11 @@ public class Rabbit extends Animal { +@@ -436,7 +436,11 @@ public class Rabbit extends Animal { if (!this.hasCustomName()) { - this.setCustomName(new TranslatableComponent(Util.makeDescriptionId("entity", Rabbit.KILLER_BUNNY))); + this.setCustomName(Component.translatable(Util.makeDescriptionId("entity", Rabbit.KILLER_BUNNY))); } + // Purpur start + } else if (rabbitType == 98) { @@ -20,7 +20,7 @@ index 76ea5b3d0d70eb8bdbbbb4bf7bed31d0d7d712a3..5b30a1d34d7efb1a5c86ae187027313f this.entityData.set(Rabbit.DATA_TYPE_ID, rabbitType); } -@@ -456,6 +460,16 @@ public class Rabbit extends Animal { +@@ -457,6 +461,16 @@ public class Rabbit extends Animal { } private int getRandomRabbitType(LevelAccessor world) { @@ -35,7 +35,7 @@ index 76ea5b3d0d70eb8bdbbbb4bf7bed31d0d7d712a3..5b30a1d34d7efb1a5c86ae187027313f + // Purpur end + Holder holder = world.getBiome(this.blockPosition()); - int i = this.random.nextInt(100); + int i = world.getRandom().nextInt(100); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index a1d8065ef1ac0f065cf6bc030a8746e9418690aa..91f892e411b9f6ce2a64138ed3d3576b43e482ea 100644 diff --git a/patches/unapplied/0031-Fix-outdated-server-showing-in-ping-before-server-fu.patch b/patches/server/0030-Fix-outdated-server-showing-in-ping-before-server-fu.patch similarity index 86% rename from patches/unapplied/0031-Fix-outdated-server-showing-in-ping-before-server-fu.patch rename to patches/server/0030-Fix-outdated-server-showing-in-ping-before-server-fu.patch index 14c7d3e6b..d544396aa 100644 --- a/patches/unapplied/0031-Fix-outdated-server-showing-in-ping-before-server-fu.patch +++ b/patches/server/0030-Fix-outdated-server-showing-in-ping-before-server-fu.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix 'outdated server' showing in ping before server fully diff --git a/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java -index 4fa79d37ff4e70c61672cce7c55257c46232c026..df43d0a0f3d1e34baabae150cbf01a008eb5a588 100644 +index d21549bb272e4848c5ce7c29862f0303aea7f9b7..12b20ef9d74c2a63a9f0465ae84adbfb260cb182 100644 --- a/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java -@@ -153,6 +153,7 @@ public class ServerStatusPacketListenerImpl implements ServerStatusPacketListene +@@ -152,6 +152,7 @@ public class ServerStatusPacketListenerImpl implements ServerStatusPacketListene this.connection.send(new ClientboundStatusResponsePacket(ping)); // CraftBukkit end */ diff --git a/patches/unapplied/0032-Tulips-change-fox-type.patch b/patches/server/0031-Tulips-change-fox-type.patch similarity index 92% rename from patches/unapplied/0032-Tulips-change-fox-type.patch rename to patches/server/0031-Tulips-change-fox-type.patch index 88abd68aa..da7b8d34c 100644 --- a/patches/unapplied/0032-Tulips-change-fox-type.patch +++ b/patches/server/0031-Tulips-change-fox-type.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Tulips change fox type diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 1e0239434fc6a9b39e2326d5ee98f01e9bcb263f..4b42d8047f70d23eed09b6210b447ae2a272af0a 100644 +index 8d25d79be606b173a59264706172561165f82143..f03bd9a9129f0d45d36ef56a726d513a8cc088e5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java -@@ -35,6 +35,7 @@ import net.minecraft.tags.ItemTags; - import net.minecraft.util.Mth; +@@ -35,6 +35,7 @@ import net.minecraft.util.Mth; + import net.minecraft.util.RandomSource; import net.minecraft.world.DifficultyInstance; import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; @@ -24,7 +24,7 @@ index 1e0239434fc6a9b39e2326d5ee98f01e9bcb263f..4b42d8047f70d23eed09b6210b447ae2 import net.minecraft.world.level.pathfinder.BlockPathTypes; import net.minecraft.world.phys.Vec3; -@@ -380,6 +382,11 @@ public class Fox extends Animal { +@@ -382,6 +384,11 @@ public class Fox extends Animal { } private void setTargetGoals() { @@ -36,7 +36,7 @@ index 1e0239434fc6a9b39e2326d5ee98f01e9bcb263f..4b42d8047f70d23eed09b6210b447ae2 if (this.getFoxType() == Fox.Type.RED) { this.targetSelector.addGoal(4, this.landTargetGoal); this.targetSelector.addGoal(4, this.turtleEggTargetGoal); -@@ -412,6 +419,7 @@ public class Fox extends Animal { +@@ -414,6 +421,7 @@ public class Fox extends Animal { public void setFoxType(Fox.Type type) { this.entityData.set(Fox.DATA_TYPE_ID, type.getId()); @@ -44,7 +44,7 @@ index 1e0239434fc6a9b39e2326d5ee98f01e9bcb263f..4b42d8047f70d23eed09b6210b447ae2 } List getTrustedUUIDs() { -@@ -742,6 +750,29 @@ public class Fox extends Animal { +@@ -744,6 +752,29 @@ public class Fox extends Animal { return this.getTrustedUUIDs().contains(uuid); } diff --git a/patches/unapplied/0033-Breedable-Polar-Bears.patch b/patches/server/0032-Breedable-Polar-Bears.patch similarity index 97% rename from patches/unapplied/0033-Breedable-Polar-Bears.patch rename to patches/server/0032-Breedable-Polar-Bears.patch index d4bdf5bb6..5f74eb0db 100644 --- a/patches/unapplied/0033-Breedable-Polar-Bears.patch +++ b/patches/server/0032-Breedable-Polar-Bears.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Breedable Polar Bears diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java -index 4a21babeb23efe2b4bfd99ae3d08eb677b93bac9..b370a0c392f69a1b42a4908ae012ee4c6bf6984d 100644 +index 798269a1098008e14fc2548e480c815fa4ff4d25..e68782ac48fd9ee11080dfd76c88d9a4768ae769 100644 --- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java +++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java @@ -97,6 +97,27 @@ public class PolarBear extends Animal implements NeutralMob { diff --git a/patches/unapplied/0034-Chickens-can-retaliate.patch b/patches/server/0033-Chickens-can-retaliate.patch similarity index 93% rename from patches/unapplied/0034-Chickens-can-retaliate.patch rename to patches/server/0033-Chickens-can-retaliate.patch index d4899c2e3..1919816a5 100644 --- a/patches/unapplied/0034-Chickens-can-retaliate.patch +++ b/patches/server/0033-Chickens-can-retaliate.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Chickens can retaliate diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index 6f0a3e303d7b4d95302f477eef0d2590b89bef42..826ffd0bec67d1239edeaddc64e2805ac884311c 100644 +index 8503a3393026134df18601ed87dcec1f3e6680b8..96dceb9943c4320e0edfba47cc211d60aa92323b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -@@ -71,6 +71,9 @@ public class Chicken extends Animal { +@@ -72,6 +72,9 @@ public class Chicken extends Animal { @Override public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.chickenMaxHealth); @@ -18,7 +18,7 @@ index 6f0a3e303d7b4d95302f477eef0d2590b89bef42..826ffd0bec67d1239edeaddc64e2805a } // Purpur end -@@ -78,13 +81,21 @@ public class Chicken extends Animal { +@@ -79,13 +82,21 @@ public class Chicken extends Animal { protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur @@ -41,7 +41,7 @@ index 6f0a3e303d7b4d95302f477eef0d2590b89bef42..826ffd0bec67d1239edeaddc64e2805a } @Override -@@ -93,7 +104,7 @@ public class Chicken extends Animal { +@@ -94,7 +105,7 @@ public class Chicken extends Animal { } public static AttributeSupplier.Builder createAttributes() { diff --git a/patches/unapplied/0035-Add-option-to-set-armorstand-step-height.patch b/patches/server/0034-Add-option-to-set-armorstand-step-height.patch similarity index 85% rename from patches/unapplied/0035-Add-option-to-set-armorstand-step-height.patch rename to patches/server/0034-Add-option-to-set-armorstand-step-height.patch index f950c4abd..145bcfb55 100644 --- a/patches/unapplied/0035-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0034-Add-option-to-set-armorstand-step-height.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to set armorstand step height diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index e5ef24d92de21c4c0e6a98e06985e52d47bfdce0..dc1630a1a769f848059f576c3d1220a216b5465c 100644 +index 593f210e5bf842d38955205757c162c2fdede511..9b71425f2c321d3130a409a0a5b47ac9c0c4bae6 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -668,6 +668,7 @@ public class ArmorStand extends LivingEntity { +@@ -666,6 +666,7 @@ public class ArmorStand extends LivingEntity { @Override public void tick() { @@ -17,7 +17,7 @@ index e5ef24d92de21c4c0e6a98e06985e52d47bfdce0..dc1630a1a769f848059f576c3d1220a2 if (!this.canTick) { if (this.noTickPoseDirty) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7ce2825871386d63301f90179408e52a2e101275..cdb0cae8af965f57d6c5d128d2190f9c496ea9b7 100644 +index 62bb7fafb686170f8ae6d2f7c7b10d04365e433c..7ab9864662b1a3de509e43b2177272078a7f3882 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -89,6 +89,11 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0036-Cat-spawning-options.patch b/patches/server/0035-Cat-spawning-options.patch similarity index 85% rename from patches/unapplied/0036-Cat-spawning-options.patch rename to patches/server/0035-Cat-spawning-options.patch index 1393bb438..0b9885d40 100644 --- a/patches/unapplied/0036-Cat-spawning-options.patch +++ b/patches/server/0035-Cat-spawning-options.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Cat spawning options diff --git a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -index bef89f40498f1dc18ce3abe492ed41fd697c12fd..9239ca35f4aa5ef1964c13b4d9e889b429bb1571 100644 +index 8808cb9f5df43d781cbb9c7943ff2f222e3a6969..f7e3ee98b006a53c3c6bf87fc90e5ef43e87bb74 100644 --- a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java +++ b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -@@ -33,7 +33,7 @@ public class CatSpawner implements CustomSpawner { +@@ -30,7 +30,7 @@ public class CatSpawner implements CustomSpawner { if (this.nextTick > 0) { return 0; } else { @@ -17,24 +17,26 @@ index bef89f40498f1dc18ce3abe492ed41fd697c12fd..9239ca35f4aa5ef1964c13b4d9e889b4 Player player = world.getRandomPlayer(); if (player == null) { return 0; -@@ -69,9 +69,13 @@ public class CatSpawner implements CustomSpawner { +@@ -63,11 +63,15 @@ public class CatSpawner implements CustomSpawner { } private int spawnInVillage(ServerLevel world, BlockPos pos) { - int i = 48; -- if (world.getPoiManager().getCountInRange(PoiType.HOME.getPredicate(), pos, 48, PoiManager.Occupancy.IS_OCCUPIED) > 4L) { -- List list = world.getEntitiesOfClass(Cat.class, (new AABB(pos)).inflate(48.0D, 8.0D, 48.0D)); + // Purpur start + int range = world.purpurConfig.catSpawnVillageScanRange; + if (range <= 0) return 0; + -+ if (world.getPoiManager().getCountInRange(PoiType.HOME.getPredicate(), pos, range, PoiManager.Occupancy.IS_OCCUPIED) > 4L) { + if (world.getPoiManager().getCountInRange((holder) -> { + return holder.is(PoiTypes.HOME); +- }, pos, 48, PoiManager.Occupancy.IS_OCCUPIED) > 4L) { +- List list = world.getEntitiesOfClass(Cat.class, (new AABB(pos)).inflate(48.0D, 8.0D, 48.0D)); ++ }, pos, range, PoiManager.Occupancy.IS_OCCUPIED) > 4L) { + List list = world.getEntitiesOfClass(Cat.class, (new AABB(pos)).inflate(range, 8.0D, range)); + // Purpur end if (list.size() < 5) { return this.spawnCat(pos, world); } -@@ -81,8 +85,11 @@ public class CatSpawner implements CustomSpawner { +@@ -77,8 +81,11 @@ public class CatSpawner implements CustomSpawner { } private int spawnInHut(ServerLevel world, BlockPos pos) { diff --git a/patches/unapplied/0037-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch b/patches/server/0036-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch similarity index 86% rename from patches/unapplied/0037-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch rename to patches/server/0036-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch index db6cb3319..aadeec5f0 100644 --- a/patches/unapplied/0037-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch +++ b/patches/server/0036-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch @@ -5,10 +5,10 @@ Subject: [PATCH] MC-147659 - Fix non black cats spawning in swamp huts diff --git a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -index 9239ca35f4aa5ef1964c13b4d9e889b429bb1571..0c5dcaf1a0b2f7819cea09009bb84178c202e803 100644 +index f7e3ee98b006a53c3c6bf87fc90e5ef43e87bb74..fb29d7fd1f44235023bd5d734e784f498c8de9ff 100644 --- a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java +++ b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -@@ -98,8 +98,9 @@ public class CatSpawner implements CustomSpawner { +@@ -94,8 +94,9 @@ public class CatSpawner implements CustomSpawner { if (cat == null) { return 0; } else { diff --git a/patches/unapplied/0038-Cows-eat-mushrooms.patch b/patches/server/0037-Cows-eat-mushrooms.patch similarity index 100% rename from patches/unapplied/0038-Cows-eat-mushrooms.patch rename to patches/server/0037-Cows-eat-mushrooms.patch diff --git a/patches/unapplied/0039-Fix-cow-rotation-when-shearing-mooshroom.patch b/patches/server/0038-Fix-cow-rotation-when-shearing-mooshroom.patch similarity index 92% rename from patches/unapplied/0039-Fix-cow-rotation-when-shearing-mooshroom.patch rename to patches/server/0038-Fix-cow-rotation-when-shearing-mooshroom.patch index b8ecce58d..0f75b6750 100644 --- a/patches/unapplied/0039-Fix-cow-rotation-when-shearing-mooshroom.patch +++ b/patches/server/0038-Fix-cow-rotation-when-shearing-mooshroom.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -index 2846c17ddbb546d49407338f136e171a329b347e..d4237fce253b2414337344b327250c1db2b19dfa 100644 +index 380fe61157048da5df1781a0622af290f8adbf82..1bf3f1cf537c75aa32d1531ee77a4d08ad4b69bf 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java @@ -202,7 +202,13 @@ public class MushroomCow extends Cow implements Shearable { diff --git a/patches/unapplied/0040-Pigs-give-saddle-back.patch b/patches/server/0039-Pigs-give-saddle-back.patch similarity index 93% rename from patches/unapplied/0040-Pigs-give-saddle-back.patch rename to patches/server/0039-Pigs-give-saddle-back.patch index 33ea6b38b..1c63001d1 100644 --- a/patches/unapplied/0040-Pigs-give-saddle-back.patch +++ b/patches/server/0039-Pigs-give-saddle-back.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Pigs give saddle back diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java -index 62a1e63fb6ca80e165db46c4d03e28815196aaff..7787d30ad7bb9aa6041c369a368deb382c9554c2 100644 +index a02476bdc34a4e3e0389abaf08687393cc3bff97..d4348bd3877813295d01d0171fee2d59981734b9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Pig.java +++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java -@@ -175,6 +175,17 @@ public class Pig extends Animal implements ItemSteerable, Saddleable { +@@ -174,6 +174,17 @@ public class Pig extends Animal implements ItemSteerable, Saddleable { public InteractionResult mobInteract(Player player, InteractionHand hand) { boolean flag = this.isFood(player.getItemInHand(hand)); diff --git a/patches/unapplied/0041-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0040-Snowman-drop-and-put-back-pumpkin.patch similarity index 92% rename from patches/unapplied/0041-Snowman-drop-and-put-back-pumpkin.patch rename to patches/server/0040-Snowman-drop-and-put-back-pumpkin.patch index aed324375..108aa7755 100644 --- a/patches/unapplied/0041-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0040-Snowman-drop-and-put-back-pumpkin.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Snowman drop and put back pumpkin diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index f7863f9703c7ab5f2f1faac7a52311ed7ef79042..1336fd13ce69812e2eae6fb8fb91575006e9a318 100644 +index e2f0f1d7ed8004a03f14887750a470e08ee1f42d..b4459d68397cc5bac4f7ef79a2dfb18f3eb24f77 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -@@ -192,6 +192,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM +@@ -197,6 +197,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM } return InteractionResult.sidedSuccess(this.level.isClientSide); @@ -23,7 +23,7 @@ index f7863f9703c7ab5f2f1faac7a52311ed7ef79042..1336fd13ce69812e2eae6fb8fb915750 } else { return tryRide(player, hand); // Purpur } -@@ -203,6 +211,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM +@@ -208,6 +216,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM if (!this.level.isClientSide()) { this.setPumpkin(false); this.forceDrops = true; // CraftBukkit diff --git a/patches/unapplied/0042-Ender-dragon-always-drop-full-exp.patch b/patches/server/0041-Ender-dragon-always-drop-full-exp.patch similarity index 93% rename from patches/unapplied/0042-Ender-dragon-always-drop-full-exp.patch rename to patches/server/0041-Ender-dragon-always-drop-full-exp.patch index e103efa61..31c0ead2c 100644 --- a/patches/unapplied/0042-Ender-dragon-always-drop-full-exp.patch +++ b/patches/server/0041-Ender-dragon-always-drop-full-exp.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ender dragon always drop full exp diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 63ba8083c4f4a7ead9fec21eb96584f192c5cade..1a454c782391ff906c58cdb71c4345bb15943649 100644 +index 49454ad2de73c0a50ac1e3b9cda35f6c66e416f6..bf05e13e6d385c87fdd36ac32db170f9b0a644af 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -@@ -728,7 +728,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -724,7 +724,7 @@ public class EnderDragon extends Mob implements Enemy { boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT); short short0 = 500; diff --git a/patches/unapplied/0043-Signs-editable-on-right-click.patch b/patches/server/0042-Signs-editable-on-right-click.patch similarity index 96% rename from patches/unapplied/0043-Signs-editable-on-right-click.patch rename to patches/server/0042-Signs-editable-on-right-click.patch index 89f4f5865..7d9ad84e4 100644 --- a/patches/unapplied/0043-Signs-editable-on-right-click.patch +++ b/patches/server/0042-Signs-editable-on-right-click.patch @@ -35,7 +35,7 @@ index ed3d78494735ceda14ad0ea23adeadc374f3b35e..a0d23b7e244e7df8a462b801dee18fd4 } else { return InteractionResult.PASS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 149b3cf94e6e60007a91cb1653419aed7b88b388..6469e3c2976ef07fb10be7298b4126efbb46ea61 100644 +index fa3ae133ed06e4b57a4bc3ea2a32b5f1aef2636b..79e618ce91686370d439a5f6ed6a7f46f579ae74 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -148,6 +148,11 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0044-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0043-Allow-soil-to-moisten-from-water-directly-under-it.patch similarity index 94% rename from patches/unapplied/0044-Allow-soil-to-moisten-from-water-directly-under-it.patch rename to patches/server/0043-Allow-soil-to-moisten-from-water-directly-under-it.patch index 0cc57eea6..d23ffa38e 100644 --- a/patches/unapplied/0044-Allow-soil-to-moisten-from-water-directly-under-it.patch +++ b/patches/server/0043-Allow-soil-to-moisten-from-water-directly-under-it.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow soil to moisten from water directly under it diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index 499eae5ab30921f49045dc73bd077941255f727a..f9c363a9148d30b1ecc8f744a7eaa131a9fd1428 100644 +index d089887030ac7c7a79abca97134ba9291e244059..4208833252a5b5c74d294dc3435869d71d774e37 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -158,7 +158,7 @@ public class FarmBlock extends Block { diff --git a/patches/unapplied/0045-Minecart-settings-and-WASD-controls.patch b/patches/server/0044-Minecart-settings-and-WASD-controls.patch similarity index 93% rename from patches/unapplied/0045-Minecart-settings-and-WASD-controls.patch rename to patches/server/0044-Minecart-settings-and-WASD-controls.patch index b3aea083d..1d8c73f0b 100644 --- a/patches/unapplied/0045-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0044-Minecart-settings-and-WASD-controls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3c42c1d0c9542f8ce058cd2bfc931f53ad0a82e8..54c6433daec4574fd1653a73fa80761ddf49549e 100644 +index 39d86b7b3a01f2eefb7c0725e930a5371e7baf46..317ce5fde32fd4869b41dfabfb5bdc7366f7d517 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1023,6 +1023,7 @@ public class ServerPlayer extends Player { +@@ -1032,6 +1032,7 @@ public class ServerPlayer extends Player { if (this.isInvulnerableTo(source)) { return false; } else { @@ -17,7 +17,7 @@ index 3c42c1d0c9542f8ce058cd2bfc931f53ad0a82e8..54c6433daec4574fd1653a73fa80761d if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 96a7bfd921e59f298f0ee502d356cc3552c30ce8..dac3f948481e444b3b641ab00eabca0cc8f17fa8 100644 +index dd2dfffcb5715b34a58262a52e83ff3030212ac4..e3cf90b1506b5c6b96140799bc51c495ef5657ac 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -107,11 +107,13 @@ public abstract class AbstractMinecart extends Entity { @@ -34,7 +34,7 @@ index 96a7bfd921e59f298f0ee502d356cc3552c30ce8..dac3f948481e444b3b641ab00eabca0c } protected AbstractMinecart(EntityType type, Level world, double x, double y, double z) { -@@ -324,6 +326,12 @@ public abstract class AbstractMinecart extends Entity { +@@ -326,6 +328,12 @@ public abstract class AbstractMinecart extends Entity { @Override public void tick() { @@ -47,7 +47,7 @@ index 96a7bfd921e59f298f0ee502d356cc3552c30ce8..dac3f948481e444b3b641ab00eabca0c // CraftBukkit start double prevX = this.getX(); double prevY = this.getY(); -@@ -487,16 +495,62 @@ public abstract class AbstractMinecart extends Entity { +@@ -489,16 +497,62 @@ public abstract class AbstractMinecart extends Entity { public void activateMinecart(int x, int y, int z, boolean powered) {} @@ -111,7 +111,7 @@ index 96a7bfd921e59f298f0ee502d356cc3552c30ce8..dac3f948481e444b3b641ab00eabca0c this.move(MoverType.SELF, this.getDeltaMovement()); if (!this.onGround) { diff --git a/src/main/java/net/minecraft/world/item/MinecartItem.java b/src/main/java/net/minecraft/world/item/MinecartItem.java -index 024124249fafa1ed2cf0257037f655ca8fb0aea2..f6c8def0d9d2f9580a172c3a36a7db0adfa20aeb 100644 +index 127a799f7848b32664b77bf67847ca6b8ac9a90d..178cd88a7de291136e0486617e8347b72cacaf20 100644 --- a/src/main/java/net/minecraft/world/item/MinecartItem.java +++ b/src/main/java/net/minecraft/world/item/MinecartItem.java @@ -120,8 +120,9 @@ public class MinecartItem extends Item { @@ -135,13 +135,13 @@ index 024124249fafa1ed2cf0257037f655ca8fb0aea2..f6c8def0d9d2f9580a172c3a36a7db0a } } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 7f83c9390823b42fc30d04e1d3222e2825eaad50..e837091037402e990f763903d851c2f70888ada7 100644 +index 771c6cf992664b65ffbf4ae0192bc7b09f77c2e6..480f00ef2026e84b133655c5e18b1dc36b5a02ca 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -71,7 +71,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; +@@ -72,7 +72,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; public abstract class BlockBehaviour { - public static final Direction[] UPDATE_SHAPE_ORDER = new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH, Direction.DOWN, Direction.UP}; // Paper - public + protected static final Direction[] UPDATE_SHAPE_ORDER = new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH, Direction.DOWN, Direction.UP}; - protected final Material material; + public final Material material; // Purpur - protected -> public public final boolean hasCollision; diff --git a/patches/unapplied/0046-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0045-Disable-loot-drops-on-death-by-cramming.patch similarity index 91% rename from patches/unapplied/0046-Disable-loot-drops-on-death-by-cramming.patch rename to patches/server/0045-Disable-loot-drops-on-death-by-cramming.patch index d746b6633..ec14c3438 100644 --- a/patches/unapplied/0046-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0045-Disable-loot-drops-on-death-by-cramming.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable loot drops on death by cramming diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 86d3e06aa27357240c9c24672dc8430d8b02dd3a..292744702aef86b99cea45a161e9696f9ec1a608 100644 +index 33235a2aa69726b14b37dfbab0f6518f7874e4d9..5e161a8cdd6d6303fa334600f70ac0352807c756 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1725,6 +1725,7 @@ public abstract class LivingEntity extends Entity { +@@ -1740,6 +1740,7 @@ public abstract class LivingEntity extends Entity { this.dropEquipment(); // CraftBukkit - from below if (this.shouldDropLoot() && this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { @@ -16,7 +16,7 @@ index 86d3e06aa27357240c9c24672dc8430d8b02dd3a..292744702aef86b99cea45a161e9696f this.dropFromLootTable(source, flag); // Paper start final boolean prev = this.clearEquipmentSlots; -@@ -1733,6 +1734,7 @@ public abstract class LivingEntity extends Entity { +@@ -1748,6 +1749,7 @@ public abstract class LivingEntity extends Entity { // Paper end this.dropCustomDeathLoot(source, i, flag); this.clearEquipmentSlots = prev; // Paper diff --git a/patches/unapplied/0047-Option-to-toggle-milk-curing-bad-omen.patch b/patches/server/0046-Option-to-toggle-milk-curing-bad-omen.patch similarity index 95% rename from patches/unapplied/0047-Option-to-toggle-milk-curing-bad-omen.patch rename to patches/server/0046-Option-to-toggle-milk-curing-bad-omen.patch index 2c92dd4e1..afee8f946 100644 --- a/patches/unapplied/0047-Option-to-toggle-milk-curing-bad-omen.patch +++ b/patches/server/0046-Option-to-toggle-milk-curing-bad-omen.patch @@ -28,7 +28,7 @@ index f33977d95b6db473be4f95075ba99caf90ad0220..56dc04d8875971ee9a5d077a695509af return stack.isEmpty() ? new ItemStack(Items.BUCKET) : stack; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a252c0d92d83eddfc65ecda9cf889b6789f4ee16..928f903e0a607646be42dca6e9ad2a84ccd56583 100644 +index eb86bc06b2e7c6c7655d6111de96837ad921cbbb..379d9c40fc04efc21a9a0f05f06e05959fca1630 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -95,8 +95,10 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0048-End-gateway-should-check-if-entity-can-use-portal.patch b/patches/server/0047-End-gateway-should-check-if-entity-can-use-portal.patch similarity index 91% rename from patches/unapplied/0048-End-gateway-should-check-if-entity-can-use-portal.patch rename to patches/server/0047-End-gateway-should-check-if-entity-can-use-portal.patch index 5f6b0d110..5afaab5e2 100644 --- a/patches/unapplied/0048-End-gateway-should-check-if-entity-can-use-portal.patch +++ b/patches/server/0047-End-gateway-should-check-if-entity-can-use-portal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] End gateway should check if entity can use portal diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index 4e435a16a16c703a2978f4dc82606b8710742670..a952f19530983ca9a72969ad25f9565a2a03688a 100644 +index 56d68b87287f0bb2c79ce0bed02fa333b85c4287..5c7e30eb5e8a2a1ab18750a2cd2ec7364e8c52e0 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java @@ -177,6 +177,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { diff --git a/patches/unapplied/0049-Fix-the-dead-lagging-the-server.patch b/patches/server/0048-Fix-the-dead-lagging-the-server.patch similarity index 81% rename from patches/unapplied/0049-Fix-the-dead-lagging-the-server.patch rename to patches/server/0048-Fix-the-dead-lagging-the-server.patch index a9ff74baa..5473e6cd2 100644 --- a/patches/unapplied/0049-Fix-the-dead-lagging-the-server.patch +++ b/patches/server/0048-Fix-the-dead-lagging-the-server.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix the dead lagging the server diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 19756aac2e13914d0cf3cabed3621d2a4228330b..f44b29dd23bdc1974300e90501331383f639756d 100644 +index be3545469c486f1dd6de42bb29a82a339d5a6a22..4ae9c7c0446fdb051ff976645dfa1b9f783bed3a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1782,6 +1782,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1796,6 +1796,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); this.setYHeadRot(yaw); // Paper - Update head rotation @@ -17,10 +17,10 @@ index 19756aac2e13914d0cf3cabed3621d2a4228330b..f44b29dd23bdc1974300e90501331383 public void absMoveTo(double x, double y, double z) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5b07633ce5d001ee25766b88e90cc3f1d4508ff0..5fd3b3cf20b31a9baaf5a703aab62bb5161001b4 100644 +index 5e161a8cdd6d6303fa334600f70ac0352807c756..38067bee49ec2498d840ded86ceeae4518034ae1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2942,7 +2942,7 @@ public abstract class LivingEntity extends Entity { +@@ -2953,7 +2953,7 @@ public abstract class LivingEntity extends Entity { } } diff --git a/patches/unapplied/0050-Skip-events-if-there-s-no-listeners.patch b/patches/server/0049-Skip-events-if-there-s-no-listeners.patch similarity index 87% rename from patches/unapplied/0050-Skip-events-if-there-s-no-listeners.patch rename to patches/server/0049-Skip-events-if-there-s-no-listeners.patch index 2b7333194..c07486361 100644 --- a/patches/unapplied/0050-Skip-events-if-there-s-no-listeners.patch +++ b/patches/server/0049-Skip-events-if-there-s-no-listeners.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Skip events if there's no listeners diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index b66afde6851ceaeccb84aea00cdc333dfbf3d4b0..c79c89bab8972a26c7a48f63ad20ac34b0fc8750 100644 +index a51040aec86c0be2b124619d8fea2111778ad684..231ef7aab08e0be4dd3e17617efa94581116aad0 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -391,6 +391,7 @@ public class Commands { +@@ -393,6 +393,7 @@ public class Commands { } private void runSync(ServerPlayer player, Collection bukkit, RootCommandNode rootcommandnode) { @@ -16,7 +16,7 @@ index b66afde6851ceaeccb84aea00cdc333dfbf3d4b0..c79c89bab8972a26c7a48f63ad20ac34 // Paper end - Async command map building new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); -@@ -403,6 +404,7 @@ public class Commands { +@@ -405,6 +406,7 @@ public class Commands { } } // CraftBukkit end diff --git a/patches/unapplied/0051-Add-permission-for-F3-N-debug.patch b/patches/server/0050-Add-permission-for-F3-N-debug.patch similarity index 83% rename from patches/unapplied/0051-Add-permission-for-F3-N-debug.patch rename to patches/server/0050-Add-permission-for-F3-N-debug.patch index 5f0255dfc..3691b6614 100644 --- a/patches/unapplied/0051-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0050-Add-permission-for-F3-N-debug.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6ad2ccf91a384bf431e3716d374f0eb45c6c0fe8..fe5191550b0472a33122f3378142cdef83c89ce5 100644 +index 68478f19e029d3544505188fd42950d63d91c86f..72a4ceb96169552325c3c96a5bc880e7e825f37d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1169,6 +1169,7 @@ public abstract class PlayerList { +@@ -1225,6 +1225,7 @@ public abstract class PlayerList { } else { b0 = (byte) (24 + permissionLevel); } diff --git a/patches/unapplied/0052-Configurable-TPS-Catchup.patch b/patches/server/0051-Configurable-TPS-Catchup.patch similarity index 75% rename from patches/unapplied/0052-Configurable-TPS-Catchup.patch rename to patches/server/0051-Configurable-TPS-Catchup.patch index 3efd951f2..a30993880 100644 --- a/patches/unapplied/0052-Configurable-TPS-Catchup.patch +++ b/patches/server/0051-Configurable-TPS-Catchup.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Configurable TPS Catchup diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3e514e341632c813898a9af295e6233a91243c51..120f800573246fd67e735cdf2fce435a2497dc7b 100644 +index a653b79b3c81d5908d73e4f444d8c2baf62662de..2603e73b86c87125cd3f1804463281324a75105a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1230,7 +1230,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= this.level.paperConfig.netherVoidTopDamageHeight)) { // Paper end diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5fd3b3cf20b31a9baaf5a703aab62bb5161001b4..8b6d9d07eafe44c6dc11c2b9d3ee1f1cb88c3a34 100644 +index 38067bee49ec2498d840ded86ceeae4518034ae1..7558c7fe7797cf6e100aeb5668fe8246de310d7b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2434,7 +2434,7 @@ public abstract class LivingEntity extends Entity { +@@ -2445,7 +2445,7 @@ public abstract class LivingEntity extends Entity { @Override protected void outOfWorld() { @@ -31,7 +31,7 @@ index 5fd3b3cf20b31a9baaf5a703aab62bb5161001b4..8b6d9d07eafe44c6dc11c2b9d3ee1f1c protected void updateSwingTime() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 429aec4522771c728a9586b69dcd1978b5bff8b9..6c0f9f8f83cc5bbdad319ab608faf1320e1a7081 100644 +index b6a436b665134776c8f3f12acf082d07972d21d3..6bd149c740ead63036c3cb80e6c74c1c2e0b9420 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -97,10 +97,14 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0062-Add-canSaveToDisk-to-Entity.patch b/patches/server/0060-Add-canSaveToDisk-to-Entity.patch similarity index 91% rename from patches/unapplied/0062-Add-canSaveToDisk-to-Entity.patch rename to patches/server/0060-Add-canSaveToDisk-to-Entity.patch index f140a44fe..c40e578e7 100644 --- a/patches/unapplied/0062-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0060-Add-canSaveToDisk-to-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9d27266cbf53faa6e3b7ebec1a4cc9f7eb84ab0e..1e9fa0c362d8d2ea6c8da68f266a54dcf35782fb 100644 +index 2407d40149572c9b74d0513dd945c21e993d8b50..04e0103c8345741d459a7acea4d30962bbcc0bbd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4496,5 +4496,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4450,5 +4450,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public boolean processClick(InteractionHand hand) { return false; } @@ -19,7 +19,7 @@ index 9d27266cbf53faa6e3b7ebec1a4cc9f7eb84ab0e..1e9fa0c362d8d2ea6c8da68f266a54dc // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index a39ed2d5c52d5555ebc9c595c9541a5561b61f26..5fdbbf376947e4efd85f02ae978c56de62a0610b 100644 +index a7d06c64dea9872e96d7f0e7dbb3a409f222b63c..a15fb55ae69fa7255086df336ed8daf016a46a87 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -208,6 +208,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -35,7 +35,7 @@ index a39ed2d5c52d5555ebc9c595c9541a5561b61f26..5fdbbf376947e4efd85f02ae978c56de skull.setPosRaw(headX, headY, headZ); level.addFreshEntity(skull); 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 cbdd32ef0be241b16406ed8e3889d914e3e5e5d2..d7a001419b83d5dbd7201d149722cd1be11d1040 100644 +index 84152df1dadd7fe6927eaed96dc0998ab15f608d..10c0377e8302d2858af96b8ef734a585a5e27274 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 @@ -92,6 +92,7 @@ public class EntityStorage implements EntityPersistentStorage { diff --git a/patches/unapplied/0063-Dispenser-curse-of-binding-protection.patch b/patches/server/0061-Dispenser-curse-of-binding-protection.patch similarity index 90% rename from patches/unapplied/0063-Dispenser-curse-of-binding-protection.patch rename to patches/server/0061-Dispenser-curse-of-binding-protection.patch index f49460f2a..c4ba7b1ec 100644 --- a/patches/unapplied/0063-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0061-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 88705ce6b18091e3a8bf10f11bdd38830cd6af22..e1a13fadcf83e84c89a1bfc6d4e4f13f2299ffa5 100644 +index 382f4d5ee0eba4a2ad9f7aa6895fda5390c43ac6..08d40550c898a63fb4ab37f5ed4807d19a4db13b 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; +@@ -65,6 +65,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; import net.minecraft.world.item.SpawnEggItem; import net.minecraft.world.item.SwordItem; import net.minecraft.world.item.enchantment.EnchantmentHelper; @@ -16,7 +16,7 @@ index 88705ce6b18091e3a8bf10f11bdd38830cd6af22..e1a13fadcf83e84c89a1bfc6d4e4f13f import net.minecraft.world.level.GameRules; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.Level; -@@ -1099,6 +1100,12 @@ public abstract class Mob extends LivingEntity { +@@ -1104,6 +1105,12 @@ public abstract class Mob extends LivingEntity { } @@ -43,7 +43,7 @@ index baa7e055d8ee4a153842128b07984b9f6deac6ca..014dd3aa8a7313d978d4781a1b7c6f53 // CraftBukkit start Level world = pointer.getLevel(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6c0f9f8f83cc5bbdad319ab608faf1320e1a7081..7d5e570b5537960532e7b6babfd1f7ac421a3854 100644 +index 6bd149c740ead63036c3cb80e6c74c1c2e0b9420..57231e4550121f836fd85f86ecb6fd1be7bdd457 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -227,6 +227,11 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0064-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0062-Add-option-for-boats-to-eject-players-on-land.patch similarity index 89% rename from patches/unapplied/0064-Add-option-for-boats-to-eject-players-on-land.patch rename to patches/server/0062-Add-option-for-boats-to-eject-players-on-land.patch index c0e1bf89b..2e2eb1a93 100644 --- a/patches/unapplied/0064-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0062-Add-option-for-boats-to-eject-players-on-land.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option for boats to eject players on land diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index 0dbc85c450797d7384e641f80e1b1f8c56fd14fc..e4febdebc760f9babd77c55e87acccdc1625f0a5 100644 +index 4642012c72cb77302f69c808d73d8d42e8bbc39e..fabc444f819e7ecf9a1e7b156276e1ec63b53a08 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -@@ -518,6 +518,7 @@ public class Boat extends Entity { +@@ -523,6 +523,7 @@ public class Boat extends Entity { if (f > 0.0F) { this.landFriction = f; @@ -17,7 +17,7 @@ index 0dbc85c450797d7384e641f80e1b1f8c56fd14fc..e4febdebc760f9babd77c55e87acccdc } else { return Boat.Status.IN_AIR; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7d5e570b5537960532e7b6babfd1f7ac421a3854..ecfbe1bbd192649095945ba13039d53d23ac2ca8 100644 +index 57231e4550121f836fd85f86ecb6fd1be7bdd457..ed4bc851879b1a9af3450213b94fe8c26af95174 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -94,12 +94,14 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0065-Mending-mends-most-damages-equipment-first.patch b/patches/server/0063-Mending-mends-most-damages-equipment-first.patch similarity index 92% rename from patches/unapplied/0065-Mending-mends-most-damages-equipment-first.patch rename to patches/server/0063-Mending-mends-most-damages-equipment-first.patch index 8423d6984..96f3ed64f 100644 --- a/patches/unapplied/0065-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0063-Mending-mends-most-damages-equipment-first.patch @@ -18,10 +18,10 @@ index 4848f26a006f4d4df620ded526134b3b39e90d29..37fe86f0f6ea006f658cd6a68757c1c1 if (entry != null) { ItemStack itemstack = (ItemStack) entry.getValue(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6837c965592d4584cfc958a1008b98791a0fc780..4da450d1289c12356b24a81f267ba136983a2d20 100644 +index 6b3cfc19c4fd1382ddf534265a1114995a4f6b55..c948bee744d64b2678d2efb3403ac4e183bff965 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -523,6 +523,16 @@ public final class ItemStack { +@@ -535,6 +535,16 @@ public final class ItemStack { return this.isDamageableItem() && this.getDamageValue() > 0; } @@ -39,10 +39,10 @@ index 6837c965592d4584cfc958a1008b98791a0fc780..4da450d1289c12356b24a81f267ba136 return this.tag == null ? 0 : this.tag.getInt("Damage"); } diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java -index 7b39eaf66eb74cab7caf9588947e9d5860a0ffd8..5422b68674b34d015c94194a974726ea67d07e49 100644 +index 22925b2f44fc510832ef07290d3109f0394f7d30..4afa30753a90d9bbd3c71b21cb4a8deadf9ccb3b 100644 --- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java +++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java -@@ -269,6 +269,29 @@ public class EnchantmentHelper { +@@ -274,6 +274,29 @@ public class EnchantmentHelper { return getItemEnchantmentLevel(Enchantments.CHANNELING, stack) > 0; } @@ -73,7 +73,7 @@ index 7b39eaf66eb74cab7caf9588947e9d5860a0ffd8..5422b68674b34d015c94194a974726ea public static Map.Entry getRandomItemWith(Enchantment enchantment, LivingEntity entity) { return getRandomItemWith(enchantment, entity, (stack) -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ecfbe1bbd192649095945ba13039d53d23ac2ca8..60896b00f50501ddcaa71e1e16b59d22f78a983c 100644 +index ed4bc851879b1a9af3450213b94fe8c26af95174..b1c3c835c3bbba5b8cdbafbe3221e4427015ffec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -94,6 +94,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0066-Add-5-second-tps-average-in-tps.patch b/patches/server/0064-Add-5-second-tps-average-in-tps.patch similarity index 82% rename from patches/unapplied/0066-Add-5-second-tps-average-in-tps.patch rename to patches/server/0064-Add-5-second-tps-average-in-tps.patch index fc1984c40..d09f8e80b 100644 --- a/patches/unapplied/0066-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0064-Add-5-second-tps-average-in-tps.patch @@ -27,10 +27,10 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216 setListData(vector); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 120f800573246fd67e735cdf2fce435a2497dc7b..d54e88162fbfe03de3f607d7fb10c9ed0bf311c4 100644 +index 2603e73b86c87125cd3f1804463281324a75105a..2d179faa807ad78b8f7db0cf79cea0f3b94bb232 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -302,7 +302,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0) { @@ -66,7 +66,7 @@ index 4da450d1289c12356b24a81f267ba136983a2d20..d823e4ceba2128ee588b2b344cc8f91c int k = 0; for (int l = 0; j > 0 && l < amount; ++l) { -@@ -607,6 +607,12 @@ public final class ItemStack { +@@ -619,6 +619,12 @@ public final class ItemStack { if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent breakCallback.accept(entity); Item item = this.getItem(); @@ -99,7 +99,7 @@ index 998758be827efbcb7693ed36ab1dffc0ef0369bf..5beaafec0759543d3bddf99028c97d0d entityhuman.startAutoSpinAttack(20); if (entityhuman.isOnGround()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 60896b00f50501ddcaa71e1e16b59d22f78a983c..17c17fb1607eb7804a2c284da861a672d9894367 100644 +index b1c3c835c3bbba5b8cdbafbe3221e4427015ffec..f243cee2b81e27d2ff7fdc7356bf71d2e369ad2a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -111,6 +111,19 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0068-Item-entity-immunities.patch b/patches/server/0066-Item-entity-immunities.patch similarity index 93% rename from patches/unapplied/0068-Item-entity-immunities.patch rename to patches/server/0066-Item-entity-immunities.patch index 7d7e72c39..0d2f48c5f 100644 --- a/patches/unapplied/0068-Item-entity-immunities.patch +++ b/patches/server/0066-Item-entity-immunities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 0ab662448c24ba1d3c697f8096f03c88dd622e77..1647627a02754f5bc8c0f86e467bd11369c24be3 100644 +index 1794893cab3f26faa58745a95cb50d239f8a1484..9f07b6bb89b2f7424d874aca8399c9a31f3bf669 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -2227,7 +2227,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2312,7 +2312,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public class TrackedEntity { @@ -18,10 +18,10 @@ index 0ab662448c24ba1d3c697f8096f03c88dd622e77..1647627a02754f5bc8c0f86e467bd113 private final int range; SectionPos lastSectionPos; diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index d52072ab126f2fdee30bb114f3058338edd72fd5..4eb23fd9ca0cec93c66bcee120cfbb3365513792 100644 +index 3eb947e16684965b861a07591f18db838e7c874b..7e81bec1bbe2df498a62721d9b3b257ae4d3be9a 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -67,7 +67,7 @@ public class ServerEntity { +@@ -65,7 +65,7 @@ public class ServerEntity { private boolean wasRiding; private boolean wasOnGround; // CraftBukkit start @@ -31,7 +31,7 @@ index d52072ab126f2fdee30bb114f3058338edd72fd5..4eb23fd9ca0cec93c66bcee120cfbb33 public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer> consumer, Set trackedPlayers) { this.trackedPlayers = trackedPlayers; diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 820ddcbc1547e2b9da3475a13d039e0cd8bc2c2a..008f92b9898f282a0c0b7e84f7965afe89da5bb4 100644 +index 3b70e37140531884397696760dd9ef597c4655bc..86713a01e5e43f13f1aa0e0c53b299126f24b433 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -55,6 +55,12 @@ public class ItemEntity extends Entity { @@ -47,7 +47,7 @@ index 820ddcbc1547e2b9da3475a13d039e0cd8bc2c2a..008f92b9898f282a0c0b7e84f7965afe public ItemEntity(EntityType type, Level world) { super(type, world); -@@ -328,6 +334,15 @@ public class ItemEntity extends Entity { +@@ -332,6 +338,15 @@ public class ItemEntity extends Entity { return false; } else if (!this.getItem().getItem().canBeHurtBy(source)) { return false; @@ -63,7 +63,7 @@ index 820ddcbc1547e2b9da3475a13d039e0cd8bc2c2a..008f92b9898f282a0c0b7e84f7965afe } else if (this.level.isClientSide) { return true; } else { -@@ -514,6 +529,12 @@ public class ItemEntity extends Entity { +@@ -518,6 +533,12 @@ public class ItemEntity extends Entity { this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty net.minecraft.resources.ResourceLocation location = net.minecraft.core.Registry.ITEM.getKey(stack.getItem()); // Paper this.despawnRate = level.paperConfig.altItemDespawnRateMap.getOrDefault(location, level.spigotConfig.itemDespawnRate); // Paper @@ -128,7 +128,7 @@ index fea44ba6a6584b4a510af6a58cab07eecec6b68b..f3bf5199bc7ddf8a3d0dc67a184e7690 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 17c17fb1607eb7804a2c284da861a672d9894367..7dd9e436b50019bb16a61314cf6798b6a5b2580b 100644 +index f243cee2b81e27d2ff7fdc7356bf71d2e369ad2a..ca30699fde62277e6794d4ba0b829287cfc7c651 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -124,6 +124,49 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0069-Add-ping-command.patch b/patches/server/0067-Add-ping-command.patch similarity index 96% rename from patches/unapplied/0069-Add-ping-command.patch rename to patches/server/0067-Add-ping-command.patch index 3f35df79f..ac6d185c4 100644 --- a/patches/unapplied/0069-Add-ping-command.patch +++ b/patches/server/0067-Add-ping-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add ping command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index c79c89bab8972a26c7a48f63ad20ac34b0fc8750..00ab01661c12ecd7b384be81388c9aaa5b32d706 100644 +index 231ef7aab08e0be4dd3e17617efa94581116aad0..adae7fdeb02b51f17f75b1ceacc7511bbd9d2f5f 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -207,6 +207,7 @@ public class Commands { +@@ -205,6 +205,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); diff --git a/patches/unapplied/0070-Add-demo-command.patch b/patches/server/0068-Add-demo-command.patch similarity index 96% rename from patches/unapplied/0070-Add-demo-command.patch rename to patches/server/0068-Add-demo-command.patch index 5b6045b1c..8ed953359 100644 --- a/patches/unapplied/0070-Add-demo-command.patch +++ b/patches/server/0068-Add-demo-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add demo command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 00ab01661c12ecd7b384be81388c9aaa5b32d706..a5c5f3aa76ba819541dd927c0749806bbb2f1942 100644 +index adae7fdeb02b51f17f75b1ceacc7511bbd9d2f5f..03696224f2cc99f98fe6d635763323945e7089f2 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -207,6 +207,7 @@ public class Commands { +@@ -205,6 +205,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); diff --git a/patches/unapplied/0071-Add-credits-command.patch b/patches/server/0069-Add-credits-command.patch similarity index 96% rename from patches/unapplied/0071-Add-credits-command.patch rename to patches/server/0069-Add-credits-command.patch index 25e46e55a..e9fb0eebe 100644 --- a/patches/unapplied/0071-Add-credits-command.patch +++ b/patches/server/0069-Add-credits-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add credits command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index a5c5f3aa76ba819541dd927c0749806bbb2f1942..362fd34016b83ba346a43abb6acf38d887918437 100644 +index 03696224f2cc99f98fe6d635763323945e7089f2..72ab7ba92d6f20c1711d9720c02c11ce0e4ede71 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -207,6 +207,7 @@ public class Commands { +@@ -205,6 +205,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); diff --git a/patches/unapplied/0072-Configurable-jockey-options.patch b/patches/server/0070-Configurable-jockey-options.patch similarity index 90% rename from patches/unapplied/0072-Configurable-jockey-options.patch rename to patches/server/0070-Configurable-jockey-options.patch index 9c467cee5..ffb575584 100644 --- a/patches/unapplied/0072-Configurable-jockey-options.patch +++ b/patches/server/0070-Configurable-jockey-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable jockey options diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index 20529a611faef742fcd3c4c2706bbe8009f1defa..d966175c84ebb4d9054b8368d14243823d242f80 100644 +index 4b58ca48deda0410edf9ad3c9079858d5a31a762..968392e9dd124f997d5d5996893363ac7ef2c740 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -93,6 +93,21 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -31,7 +31,7 @@ index 20529a611faef742fcd3c4c2706bbe8009f1defa..d966175c84ebb4d9054b8368d1424382 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java -index ff84c706d42bc6859faaa9302ba688f43ddcb537..640c75c2cf7ec1f1bc514d29ac1f929c526e0caa 100644 +index e41cc68649c79dd4ce7455f36112e8347e7c84e6..22daf7d11890a2e9276928ac9b242edf932e11cb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Husk.java +++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java @@ -47,6 +47,21 @@ public class Husk extends Zombie { @@ -55,9 +55,9 @@ index ff84c706d42bc6859faaa9302ba688f43ddcb537..640c75c2cf7ec1f1bc514d29ac1f929c + } // Purpur end - public static boolean checkHuskSpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) { + public static boolean checkHuskSpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 0b3d90208b97513d295235249dfa366a2e6b3baf..c28d0b6ba64a6f7b6aa4ea2df11f10d8a2371718 100644 +index e382b739392d884ba659423e8f50c81f59a8f3fa..226968c3bcc0d51d9025b3bb17e0051bf4c109e5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -124,6 +124,18 @@ public class Zombie extends Monster { @@ -79,7 +79,7 @@ index 0b3d90208b97513d295235249dfa366a2e6b3baf..c28d0b6ba64a6f7b6aa4ea2df11f10d8 // Purpur end @Override -@@ -540,19 +552,20 @@ public class Zombie extends Monster { +@@ -545,19 +557,20 @@ public class Zombie extends Monster { if (object instanceof Zombie.ZombieGroupData) { Zombie.ZombieGroupData entityzombie_groupdatazombie = (Zombie.ZombieGroupData) object; @@ -89,9 +89,9 @@ index 0b3d90208b97513d295235249dfa366a2e6b3baf..c28d0b6ba64a6f7b6aa4ea2df11f10d8 + if (!jockeyOnlyBaby() || entityzombie_groupdatazombie.isBaby) { + this.setBaby(entityzombie_groupdatazombie.isBaby); if (entityzombie_groupdatazombie.canSpawnJockey) { -- if ((double) world.getRandom().nextFloat() < 0.05D) { +- if ((double) randomsource.nextFloat() < 0.05D) { - List list = world.getEntitiesOfClass(Chicken.class, this.getBoundingBox().inflate(5.0D, 3.0D, 5.0D), EntitySelector.ENTITY_NOT_BEING_RIDDEN); -+ if ((double) world.getRandom().nextFloat() < jockeyChance()) { ++ if ((double) randomsource.nextFloat() < jockeyChance()) { + List list = jockeyTryExistingChickens() ? world.getEntitiesOfClass(Chicken.class, this.getBoundingBox().inflate(5.0D, 3.0D, 5.0D), EntitySelector.ENTITY_NOT_BEING_RIDDEN) : java.util.Collections.emptyList(); + // Purpur end @@ -101,12 +101,12 @@ index 0b3d90208b97513d295235249dfa366a2e6b3baf..c28d0b6ba64a6f7b6aa4ea2df11f10d8 entitychicken.setChickenJockey(true); this.startRiding(entitychicken); - } -- } else if ((double) world.getRandom().nextFloat() < 0.05D) { +- } else if ((double) randomsource.nextFloat() < 0.05D) { + } else { // Purpur Chicken entitychicken1 = (Chicken) EntityType.CHICKEN.create(this.level); entitychicken1.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F); -@@ -560,6 +573,7 @@ public class Zombie extends Monster { +@@ -565,6 +578,7 @@ public class Zombie extends Monster { entitychicken1.setChickenJockey(true); this.startRiding(entitychicken1); world.addFreshEntity(entitychicken1, CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit @@ -115,10 +115,10 @@ index 0b3d90208b97513d295235249dfa366a2e6b3baf..c28d0b6ba64a6f7b6aa4ea2df11f10d8 } } diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 1c39e1ccbe8d7d3393d32babf01f045004f60bd3..36f748fb4b4e6e0c3a39ab3f9c11bf178aced7df 100644 +index e2e530aeba1311a0d89f1193ee0f6899e78ddfc0..d666b552023ebd5c3155a094a96a362e239100d1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -@@ -104,6 +104,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { +@@ -103,6 +103,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { protected void randomizeReinforcementsChance() { this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level.purpurConfig.zombieVillagerSpawnReinforcements); } @@ -141,7 +141,7 @@ index 1c39e1ccbe8d7d3393d32babf01f045004f60bd3..36f748fb4b4e6e0c3a39ab3f9c11bf17 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index 43e8eac09accc1f5f9d4b821ccff1a7a92b24121..eb8b111faffbd3143465ed531e86ea572f53fdea 100644 +index bc3ffb8867d5f7c2fa548d31256341d388bf8112..6c1dd723373f9b1b920548de85aeb6cef0120fa7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -79,6 +79,21 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -167,7 +167,7 @@ index 43e8eac09accc1f5f9d4b821ccff1a7a92b24121..eb8b111faffbd3143465ed531e86ea57 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7dd9e436b50019bb16a61314cf6798b6a5b2580b..9b87f29de86fe2b312622082705709479433f357 100644 +index ca30699fde62277e6794d4ba0b829287cfc7c651..8e598f4cfcf0cda4829471cd81f2ae9146caff3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -565,6 +565,9 @@ public class PurpurWorldConfig { @@ -210,7 +210,7 @@ index 7dd9e436b50019bb16a61314cf6798b6a5b2580b..9b87f29de86fe2b31262208270570947 } public boolean illusionerRidable = false; -@@ -1619,6 +1631,9 @@ public class PurpurWorldConfig { +@@ -1615,6 +1627,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 7dd9e436b50019bb16a61314cf6798b6a5b2580b..9b87f29de86fe2b31262208270570947 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1630,6 +1645,9 @@ public class PurpurWorldConfig { +@@ -1626,6 +1641,9 @@ public class PurpurWorldConfig { } zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth); zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements); @@ -230,7 +230,7 @@ index 7dd9e436b50019bb16a61314cf6798b6a5b2580b..9b87f29de86fe2b31262208270570947 } public boolean zombieHorseRidableInWater = false; -@@ -1664,6 +1682,9 @@ public class PurpurWorldConfig { +@@ -1660,6 +1678,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 7dd9e436b50019bb16a61314cf6798b6a5b2580b..9b87f29de86fe2b31262208270570947 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1675,6 +1696,9 @@ public class PurpurWorldConfig { +@@ -1671,6 +1692,9 @@ public class PurpurWorldConfig { } zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); @@ -250,7 +250,7 @@ index 7dd9e436b50019bb16a61314cf6798b6a5b2580b..9b87f29de86fe2b31262208270570947 } public boolean zombifiedPiglinRidable = false; -@@ -1682,6 +1706,9 @@ public class PurpurWorldConfig { +@@ -1678,6 +1702,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index 7dd9e436b50019bb16a61314cf6798b6a5b2580b..9b87f29de86fe2b31262208270570947 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1693,5 +1720,8 @@ public class PurpurWorldConfig { +@@ -1689,5 +1716,8 @@ public class PurpurWorldConfig { } zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth); zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements); diff --git a/patches/unapplied/0073-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0071-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch similarity index 98% rename from patches/unapplied/0073-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch rename to patches/server/0071-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 8078c875a..f093854cf 100644 --- a/patches/unapplied/0073-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0071-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -73,7 +73,7 @@ index d8c4f36ae0e65c6d0398fac80c93b78646bdf6a4..f8863cabad1bd0c3c2c62b8e17612d95 @Override protected void addAdditionalSaveData(CompoundTag nbt) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index f4c14777f912451e4316c0a3b5006fad83b0b98d..843c5bdc58a09aadab8d90f254e61a5cebe6388f 100644 +index 6df40b92a7006c8ad6a8d89c7d81a0f4326cad42..6d8847b2019c87f2cf152a0939753ed604bf14e1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -258,7 +258,7 @@ index f4c14777f912451e4316c0a3b5006fad83b0b98d..843c5bdc58a09aadab8d90f254e61a5c private float speed = 0.1F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9b87f29de86fe2b312622082705709479433f357..d1057f80a7816dc553ddb9b825e65f35764514a0 100644 +index 8e598f4cfcf0cda4829471cd81f2ae9146caff3b..ee8b661523b274c72771dd781d6ff90621d78742 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1031,6 +1031,9 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0074-Add-phantom-spawning-options.patch b/patches/server/0072-Add-phantom-spawning-options.patch similarity index 83% rename from patches/unapplied/0074-Add-phantom-spawning-options.patch rename to patches/server/0072-Add-phantom-spawning-options.patch index fefb6a8dc..aabb21f40 100644 --- a/patches/unapplied/0074-Add-phantom-spawning-options.patch +++ b/patches/server/0072-Add-phantom-spawning-options.patch @@ -5,16 +5,16 @@ Subject: [PATCH] Add phantom spawning options diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index 1e21d6cf2f03219fb2b7217c9a72bdd83c2146f7..dad5d3c754395b39e96be1e35a99c8bf4b1c573c 100644 +index 9d96235c4697d9a0f045c692a742cdabbd6f8b8a..84bf3898b16040ae15acca66d07d0b5e52fc8bf2 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java @@ -41,8 +41,8 @@ public class PhantomSpawner implements CustomSpawner { if (this.nextTick > 0) { return 0; } else { -- this.nextTick += (60 + random.nextInt(60)) * 20; +- this.nextTick += (60 + randomsource.nextInt(60)) * 20; - if (world.getSkyDarken() < 5 && world.dimensionType().hasSkyLight()) { -+ this.nextTick += world.purpurConfig.phantomSpawnDelayMin + world.random.nextInt(world.purpurConfig.phantomSpawnDelayMax - world.purpurConfig.phantomSpawnDelayMin + 1); // Purpur ++ this.nextTick += world.purpurConfig.phantomSpawnDelayMin + randomsource.nextInt(world.purpurConfig.phantomSpawnDelayMax - world.purpurConfig.phantomSpawnDelayMin + 1); // Purpur + if (world.getSkyDarken() < world.purpurConfig.phantomSpawnMinSkyDarkness && world.dimensionType().hasSkyLight()) { // Purpur return 0; } else { @@ -27,28 +27,28 @@ index 1e21d6cf2f03219fb2b7217c9a72bdd83c2146f7..dad5d3c754395b39e96be1e35a99c8bf + if (!world.dimensionType().hasSkyLight() || (!world.purpurConfig.phantomSpawnOnlyAboveSeaLevel || blockposition.getY() >= world.getSeaLevel()) && (!world.purpurConfig.phantomSpawnOnlyWithVisibleSky || world.canSeeSky(blockposition))) { // Purpur DifficultyInstance difficultydamagescaler = world.getCurrentDifficultyAt(blockposition); -- if (difficultydamagescaler.isHarderThan(random.nextFloat() * 3.0F)) { -+ if (difficultydamagescaler.isHarderThan(random.nextFloat() * (float) world.purpurConfig.phantomSpawnLocalDifficultyChance)) { // Purpur +- if (difficultydamagescaler.isHarderThan(randomsource.nextFloat() * 3.0F)) { ++ if (difficultydamagescaler.isHarderThan(randomsource.nextFloat() * (float) world.purpurConfig.phantomSpawnLocalDifficultyChance)) { // Purpur ServerStatsCounter serverstatisticmanager = ((ServerPlayer) entityhuman).getStats(); int j = Mth.clamp(serverstatisticmanager.getValue(Stats.CUSTOM.get(Stats.TIME_SINCE_REST)), (int) 1, Integer.MAX_VALUE); boolean flag2 = true; -- if (random.nextInt(j) >= 72000) { -- BlockPos blockposition1 = blockposition.above(20 + random.nextInt(15)).east(-10 + random.nextInt(21)).south(-10 + random.nextInt(21)); -+ if (random.nextInt(j) >= world.purpurConfig.phantomSpawnMinTimeSinceSlept) { // Purpur -+ BlockPos blockposition1 = blockposition.above(world.purpurConfig.phantomSpawnMinOverhead + random.nextInt(world.purpurConfig.phantomSpawnMaxOverhead - world.purpurConfig.phantomSpawnMinOverhead + 1)).east(-world.purpurConfig.phantomSpawnOverheadRadius + random.nextInt(world.purpurConfig.phantomSpawnOverheadRadius * 2 + 1)).south(-world.purpurConfig.phantomSpawnOverheadRadius + random.nextInt(world.purpurConfig.phantomSpawnOverheadRadius * 2 + 1)); // Purpur +- if (randomsource.nextInt(j) >= 72000) { +- BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21)); ++ if (randomsource.nextInt(j) >= world.purpurConfig.phantomSpawnMinTimeSinceSlept) { // Purpur ++ BlockPos blockposition1 = blockposition.above(world.purpurConfig.phantomSpawnMinOverhead + randomsource.nextInt(world.purpurConfig.phantomSpawnMaxOverhead - world.purpurConfig.phantomSpawnMinOverhead + 1)).east(-world.purpurConfig.phantomSpawnOverheadRadius + randomsource.nextInt(world.purpurConfig.phantomSpawnOverheadRadius * 2 + 1)).south(-world.purpurConfig.phantomSpawnOverheadRadius + randomsource.nextInt(world.purpurConfig.phantomSpawnOverheadRadius * 2 + 1)); // Purpur BlockState iblockdata = world.getBlockState(blockposition1); FluidState fluid = world.getFluidState(blockposition1); if (NaturalSpawner.isValidEmptySpawnBlock(world, blockposition1, iblockdata, fluid, EntityType.PHANTOM)) { SpawnGroupData groupdataentity = null; -- int k = 1 + random.nextInt(difficultydamagescaler.getDifficulty().getId() + 1); +- int k = 1 + randomsource.nextInt(difficultydamagescaler.getDifficulty().getId() + 1); + int k = world.purpurConfig.phantomSpawnMinPerAttempt + world.random.nextInt((world.purpurConfig.phantomSpawnMaxPerAttempt < 0 ? difficultydamagescaler.getDifficulty().getId() : world.purpurConfig.phantomSpawnMaxPerAttempt - world.purpurConfig.phantomSpawnMinPerAttempt) + 1); // Purpur for (int l = 0; l < k; ++l) { // Paper start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d1057f80a7816dc553ddb9b825e65f35764514a0..47c6d378380ff9345be4bd6dd06fe52e3e23162d 100644 +index ee8b661523b274c72771dd781d6ff90621d78742..485e7cfd0c0da45129c0b1a0cd95c5d14d0e0a06 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1034,6 +1034,18 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0075-Implement-bed-explosion-options.patch b/patches/server/0073-Implement-bed-explosion-options.patch similarity index 95% rename from patches/unapplied/0075-Implement-bed-explosion-options.patch rename to patches/server/0073-Implement-bed-explosion-options.patch index 9516c2ce9..a6b816535 100644 --- a/patches/unapplied/0075-Implement-bed-explosion-options.patch +++ b/patches/server/0073-Implement-bed-explosion-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement bed explosion options diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index 20c0030d566012146021613325c6a979f392740e..340e5dee8bf5d8a865c19a8fe63399ae08bf3612 100644 +index 654a859a37bf991c7a7fa8a44a3d20f8feb223db..e1d274a9be856f6fa5be00958c35b7d7c58357a7 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java @@ -96,7 +96,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock @@ -27,7 +27,7 @@ index 20c0030d566012146021613325c6a979f392740e..340e5dee8bf5d8a865c19a8fe63399ae } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d6744436fbac28e3e6486a6d36f20e20a7d99d3e..f4588e514e60bb244c789b162b8503c236950a3b 100644 +index 485e7cfd0c0da45129c0b1a0cd95c5d14d0e0a06..9f4a29c8ea537a4cc733b3658a169f8f5a5334d3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -287,6 +287,22 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/0057-Implement-configurable-search-radius-for-villagers-t.patch b/patches/todo/0057-Implement-configurable-search-radius-for-villagers-t.patch similarity index 100% rename from patches/unapplied/0057-Implement-configurable-search-radius-for-villagers-t.patch rename to patches/todo/0057-Implement-configurable-search-radius-for-villagers-t.patch