From bbd997db62c22f5c3caeff548b3792247abfd863 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke <nassim@njahnke.dev> Date: Wed, 7 Dec 2022 22:35:34 +0100 Subject: [PATCH] More patchidy patched patches --- ...-command-sender-which-forwards-feedb.patch | 0 .../Add-API-for-item-entity-health.patch | 0 ...eEvent-and-CollarColorable-interface.patch | 2 +- .../server/Add-GameEvent-tags.patch | 4 +- .../Add-PlayerItemFrameChangeEvent.patch | 0 .../Add-TameableDeathMessageEvent.patch | 0 ...tion-for-worlds-affected-by-time-cmd.patch | 0 ...-configurable-height-for-slime-spawn.patch | 0 ...valid-GameProfiles-on-skull-blocks-i.patch | 0 ...date-calls-to-CraftServer-getSpawnLi.patch | 0 ...dd-missing-block-data-mins-and-maxes.patch | 0 .../server/Add-more-Campfire-API.patch | 0 ...rload-to-PersistentDataContainer-has.patch | 0 .../server/Add-player-health-update-API.patch | 0 ...king-amount-to-PlayerItemDamageEvent.patch | 0 ...Hostname-to-AsyncPlayerPreLoginEvent.patch | 2 +- ...llow-delegation-to-vanilla-chunk-gen.patch | 2 +- ...hange-the-podium-for-the-EnderDragon.patch | 0 ...tochunk-light-sources-unless-it-is-m.patch | 0 .../server/Bucketable-API.patch | 0 .../server/Buffer-OOB-setBlock-calls.patch | 0 ...max-block-light-for-monster-spawning.patch | 0 ...igurable-sculk-sensor-listener-range.patch | 0 .../server/Custom-Potion-Mixes.patch | 2 +- .../{unapplied => }/server/Dolphin-API.patch | 0 ...cle-movement-from-players-while-tele.patch | 0 ...assenger-world-matches-ridden-entity.patch | 0 .../server/Entity-powdered-snow-API.patch | 0 ...sks-fairly-for-worlds-while-waiting-.patch | 0 .../Expose-furnace-minecart-push-values.patch | 0 ...d-canSmelt-methods-to-FurnaceInvento.patch | 0 ...vanilla-BiomeProvider-from-WorldInfo.patch | 14 +- ...-CauldronLevelChange-on-initial-fill.patch | 0 ...t-isSectionEmpty-int-and-optimize-Pa.patch | 2 +- .../server/Fix-Entity-Position-Desync.patch | 0 .../Fix-Fluid-tags-isTagged-method.patch | 0 ...verriding-a-block-entity-during-worl.patch | 0 ...x-NPE-for-BlockDataMeta-getBlockData.patch | 0 .../server/Fix-NotePlayEvent.patch | 35 ++-- .../server/Fix-Spigot-growth-modifiers.patch | 0 ...reGrowEvent-species-for-RED_MUSHROOM.patch | 14 +- .../server/Fix-bees-aging-inside-hives.patch | 0 ...elled-powdered-snow-bucket-placement.patch | 0 ...rojectileHitEvent-for-piercing-arrow.patch | 0 ...y-type-tags-suggestions-in-selectors.patch | 4 +- .../Fix-falling-block-spawn-methods.patch | 0 ...luid-logging-on-Block-breakNaturally.patch | 0 ...lock-data-for-EntityChangeBlockEvent.patch | 0 ...removing-recipes-from-RecipeIterator.patch | 0 .../server/Fix-saving-in-unloadWorld.patch | 0 ...rs-not-spawning-outside-slime-chunks.patch | 0 ...-pistons-and-BlockPistonRetractEvent.patch | 0 ...ix-swamp-hut-cat-generation-deadlock.patch | 10 +- .../Fix-tripwire-state-inconsistency.patch | 0 .../Fix-xp-reward-for-baby-zombies.patch | 0 .../Force-close-world-loading-screen.patch | 0 ...ward-CraftEntity-in-teleport-command.patch | 0 .../server/Freeze-Tick-Lock-API.patch | 0 .../server/Furnace-RecipesUsed-API.patch | 0 ...ard-against-invalid-entity-positions.patch | 0 ...de-unnecessary-itemmeta-from-clients.patch | 18 +- ...single-and-multi-AABB-VoxelShapes-an.patch | 15 +- .../Implement-enchantWithLevels-API.patch | 0 .../Implement-getComputedBiome-API.patch | 2 +- .../server/Implement-regenerateChunk.patch | 0 .../server/Improve-scoreboard-entries.patch | 0 .../Kick-on-main-for-illegal-chat.patch | 14 +- ...mplifiers-greater-than-127-correctly.patch | 0 .../server/Make-some-itemstacks-nonnull.patch | 0 ...ter-animal-spawn-height-configurable.patch | 0 .../server/More-PotionEffectType-API.patch | 0 .../server/More-Projectile-API.patch | 0 ...ulti-Block-Change-API-Implementation.patch | 0 .../Multiple-Entries-with-Scoreboards.patch | 0 ...-data-to-disk-if-it-serializes-witho.patch | 0 ...on-checking-in-player-move-packet-ha.patch | 2 +- .../server/Optimize-HashMapPalette.patch | 0 ...efault-CustomSpawners-in-custom-worl.patch | 0 ...s-ServerLevel-for-gamerule-callbacks.patch | 0 ...rOpenersCounter-openCount-from-going.patch | 0 ...oversized-item-data-in-equipment-and.patch | 0 ...nt-tile-entity-copies-loading-chunks.patch | 0 ...o-worldlist-before-initing-the-world.patch | 4 +- .../Reset-placed-block-on-exception.patch | 0 ..._destroyed-trigger-in-the-correct-pl.patch | 0 ...-for-StructureTemplate.Pallete-cache.patch | 0 ...tead-of-display-name-in-PlayerList-g.patch | 0 .../server/Validate-usernames.patch | 12 +- .../server/WorldCreator-keepSpawnLoaded.patch | 0 .../server/cache-resource-keys.patch | 10 +- ...ables-running-when-mob-loot-gamerule.patch | 0 ...-snow-cauldrons-not-turning-to-water.patch | 0 ...d-missing-structure-set-seed-configs.patch | 197 ------------------ patches/unapplied/server/Update-Log4j.patch | 24 --- 94 files changed, 88 insertions(+), 301 deletions(-) rename patches/{unapplied => }/server/API-for-creating-command-sender-which-forwards-feedb.patch (100%) rename patches/{unapplied => }/server/Add-API-for-item-entity-health.patch (100%) rename patches/{unapplied => }/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch (96%) rename patches/{unapplied => }/server/Add-GameEvent-tags.patch (97%) rename patches/{unapplied => }/server/Add-PlayerItemFrameChangeEvent.patch (100%) rename patches/{unapplied => }/server/Add-TameableDeathMessageEvent.patch (100%) rename patches/{unapplied => }/server/Add-config-option-for-worlds-affected-by-time-cmd.patch (100%) rename patches/{unapplied => }/server/Add-configurable-height-for-slime-spawn.patch (100%) rename patches/{unapplied => }/server/Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch (100%) rename patches/{unapplied => }/server/Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch (100%) rename patches/{unapplied => }/server/Add-missing-block-data-mins-and-maxes.patch (100%) rename patches/{unapplied => }/server/Add-more-Campfire-API.patch (100%) rename patches/{unapplied => }/server/Add-new-overload-to-PersistentDataContainer-has.patch (100%) rename patches/{unapplied => }/server/Add-player-health-update-API.patch (100%) rename patches/{unapplied => }/server/Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch (100%) rename patches/{unapplied => }/server/Added-getHostname-to-AsyncPlayerPreLoginEvent.patch (97%) rename patches/{unapplied => }/server/Allow-delegation-to-vanilla-chunk-gen.patch (97%) rename patches/{unapplied => }/server/Allow-to-change-the-podium-for-the-EnderDragon.patch (100%) rename patches/{unapplied => }/server/Always-parse-protochunk-light-sources-unless-it-is-m.patch (100%) rename patches/{unapplied => }/server/Bucketable-API.patch (100%) rename patches/{unapplied => }/server/Buffer-OOB-setBlock-calls.patch (100%) rename patches/{unapplied => }/server/Configurable-max-block-light-for-monster-spawning.patch (100%) rename patches/{unapplied => }/server/Configurable-sculk-sensor-listener-range.patch (100%) rename patches/{unapplied => }/server/Custom-Potion-Mixes.patch (99%) rename patches/{unapplied => }/server/Dolphin-API.patch (100%) rename patches/{unapplied => }/server/Don-t-allow-vehicle-movement-from-players-while-tele.patch (100%) rename patches/{unapplied => }/server/Ensure-entity-passenger-world-matches-ridden-entity.patch (100%) rename patches/{unapplied => }/server/Entity-powdered-snow-API.patch (100%) rename patches/{unapplied => }/server/Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch (100%) rename patches/{unapplied => }/server/Expose-furnace-minecart-push-values.patch (100%) rename patches/{unapplied => }/server/Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch (100%) rename patches/{unapplied => }/server/Expose-vanilla-BiomeProvider-from-WorldInfo.patch (91%) rename patches/{unapplied => }/server/Fire-CauldronLevelChange-on-initial-fill.patch (100%) rename patches/{unapplied => }/server/Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch (98%) rename patches/{unapplied => }/server/Fix-Entity-Position-Desync.patch (100%) rename patches/{unapplied => }/server/Fix-Fluid-tags-isTagged-method.patch (100%) rename patches/{unapplied => }/server/Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch (100%) rename patches/{unapplied => }/server/Fix-NPE-for-BlockDataMeta-getBlockData.patch (100%) rename patches/{unapplied => }/server/Fix-NotePlayEvent.patch (53%) rename patches/{unapplied => }/server/Fix-Spigot-growth-modifiers.patch (100%) rename patches/{unapplied => }/server/Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch (55%) rename patches/{unapplied => }/server/Fix-bees-aging-inside-hives.patch (100%) rename patches/{unapplied => }/server/Fix-cancelled-powdered-snow-bucket-placement.patch (100%) rename patches/{unapplied => }/server/Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch (100%) rename patches/{unapplied => }/server/Fix-entity-type-tags-suggestions-in-selectors.patch (97%) rename patches/{unapplied => }/server/Fix-falling-block-spawn-methods.patch (100%) rename patches/{unapplied => }/server/Fix-fluid-logging-on-Block-breakNaturally.patch (100%) rename patches/{unapplied => }/server/Fix-new-block-data-for-EntityChangeBlockEvent.patch (100%) rename patches/{unapplied => }/server/Fix-removing-recipes-from-RecipeIterator.patch (100%) rename patches/{unapplied => }/server/Fix-saving-in-unloadWorld.patch (100%) rename patches/{unapplied => }/server/Fix-slime-spawners-not-spawning-outside-slime-chunks.patch (100%) rename patches/{unapplied => }/server/Fix-sticky-pistons-and-BlockPistonRetractEvent.patch (100%) rename patches/{unapplied => }/server/Fix-swamp-hut-cat-generation-deadlock.patch (91%) rename patches/{unapplied => }/server/Fix-tripwire-state-inconsistency.patch (100%) rename patches/{unapplied => }/server/Fix-xp-reward-for-baby-zombies.patch (100%) rename patches/{unapplied => }/server/Force-close-world-loading-screen.patch (100%) rename patches/{unapplied => }/server/Forward-CraftEntity-in-teleport-command.patch (100%) rename patches/{unapplied => }/server/Freeze-Tick-Lock-API.patch (100%) rename patches/{unapplied => }/server/Furnace-RecipesUsed-API.patch (100%) rename patches/{unapplied => }/server/Guard-against-invalid-entity-positions.patch (100%) rename patches/{unapplied => }/server/Hide-unnecessary-itemmeta-from-clients.patch (84%) rename patches/{unapplied => }/server/Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch (99%) rename patches/{unapplied => }/server/Implement-enchantWithLevels-API.patch (100%) rename patches/{unapplied => }/server/Implement-getComputedBiome-API.patch (96%) rename patches/{unapplied => }/server/Implement-regenerateChunk.patch (100%) rename patches/{unapplied => }/server/Improve-scoreboard-entries.patch (100%) rename patches/{unapplied => }/server/Kick-on-main-for-illegal-chat.patch (83%) rename patches/{unapplied => }/server/Load-effect-amplifiers-greater-than-127-correctly.patch (100%) rename patches/{unapplied => }/server/Make-some-itemstacks-nonnull.patch (100%) rename patches/{unapplied => }/server/Make-water-animal-spawn-height-configurable.patch (100%) rename patches/{unapplied => }/server/More-PotionEffectType-API.patch (100%) rename patches/{unapplied => }/server/More-Projectile-API.patch (100%) rename patches/{unapplied => }/server/Multi-Block-Change-API-Implementation.patch (100%) rename patches/{unapplied => }/server/Multiple-Entries-with-Scoreboards.patch (100%) rename patches/{unapplied => }/server/Only-write-chunk-data-to-disk-if-it-serializes-witho.patch (100%) rename patches/{unapplied => }/server/Optimise-collision-checking-in-player-move-packet-ha.patch (99%) rename patches/{unapplied => }/server/Optimize-HashMapPalette.patch (100%) rename patches/{unapplied => }/server/Option-to-have-default-CustomSpawners-in-custom-worl.patch (100%) rename patches/{unapplied => }/server/Pass-ServerLevel-for-gamerule-callbacks.patch (100%) rename patches/{unapplied => }/server/Prevent-ContainerOpenersCounter-openCount-from-going.patch (100%) rename patches/{unapplied => }/server/Prevent-sending-oversized-item-data-in-equipment-and.patch (100%) rename patches/{unapplied => }/server/Prevent-tile-entity-copies-loading-chunks.patch (100%) rename patches/{unapplied => }/server/Put-world-into-worldlist-before-initing-the-world.patch (94%) rename patches/{unapplied => }/server/Reset-placed-block-on-exception.patch (100%) rename patches/{unapplied => }/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch (100%) rename patches/{unapplied => }/server/Use-a-CHM-for-StructureTemplate.Pallete-cache.patch (100%) rename patches/{unapplied => }/server/Use-username-instead-of-display-name-in-PlayerList-g.patch (100%) rename patches/{unapplied => }/server/Validate-usernames.patch (93%) rename patches/{unapplied => }/server/WorldCreator-keepSpawnLoaded.patch (100%) rename patches/{unapplied => }/server/cache-resource-keys.patch (81%) rename patches/{unapplied => }/server/fix-player-loottables-running-when-mob-loot-gamerule.patch (100%) rename patches/{unapplied => }/server/fix-powder-snow-cauldrons-not-turning-to-water.patch (100%) delete mode 100644 patches/unapplied/server/Add-missing-structure-set-seed-configs.patch delete mode 100644 patches/unapplied/server/Update-Log4j.patch diff --git a/patches/unapplied/server/API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/unapplied/server/API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/unapplied/server/Add-API-for-item-entity-health.patch b/patches/server/Add-API-for-item-entity-health.patch similarity index 100% rename from patches/unapplied/server/Add-API-for-item-entity-health.patch rename to patches/server/Add-API-for-item-entity-health.patch diff --git a/patches/unapplied/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 96% rename from patches/unapplied/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch index 2b5f7aadb2..7f2644376e 100644 --- a/patches/unapplied/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch +++ b/patches/server/Add-EntityDyeEvent-and-CollarColorable-interface.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java -@@ -0,0 +0,0 @@ public class Cat extends TamableAnimal { +@@ -0,0 +0,0 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> { DyeColor enumcolor = ((DyeItem) item).getDyeColor(); if (enumcolor != this.getCollarColor()) { diff --git a/patches/unapplied/server/Add-GameEvent-tags.patch b/patches/server/Add-GameEvent-tags.patch similarity index 97% rename from patches/unapplied/server/Add-GameEvent-tags.patch rename to patches/server/Add-GameEvent-tags.patch index ffc6202965..69eb437337 100644 --- a/patches/unapplied/server/Add-GameEvent-tags.patch +++ b/patches/server/Add-GameEvent-tags.patch @@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -0,0 +0,0 @@ public final class CraftServer implements Server { - return (org.bukkit.Tag<T>) new CraftEntityTag(net.minecraft.core.Registry.ENTITY_TYPE, entityTagKey); + return (org.bukkit.Tag<T>) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey); } } + // Paper start @@ -65,7 +65,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } @@ -0,0 +0,0 @@ public final class CraftServer implements Server { - net.minecraft.core.Registry<EntityType<?>> entityTags = net.minecraft.core.Registry.ENTITY_TYPE; + net.minecraft.core.Registry<EntityType<?>> entityTags = BuiltInRegistries.ENTITY_TYPE; return entityTags.getTags().map(pair -> (org.bukkit.Tag<T>) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList()); } + // Paper start diff --git a/patches/unapplied/server/Add-PlayerItemFrameChangeEvent.patch b/patches/server/Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/unapplied/server/Add-PlayerItemFrameChangeEvent.patch rename to patches/server/Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/unapplied/server/Add-TameableDeathMessageEvent.patch b/patches/server/Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/unapplied/server/Add-TameableDeathMessageEvent.patch rename to patches/server/Add-TameableDeathMessageEvent.patch diff --git a/patches/unapplied/server/Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/unapplied/server/Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/unapplied/server/Add-configurable-height-for-slime-spawn.patch b/patches/server/Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/unapplied/server/Add-configurable-height-for-slime-spawn.patch rename to patches/server/Add-configurable-height-for-slime-spawn.patch diff --git a/patches/unapplied/server/Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch b/patches/server/Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch similarity index 100% rename from patches/unapplied/server/Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch rename to patches/server/Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch diff --git a/patches/unapplied/server/Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/unapplied/server/Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/unapplied/server/Add-missing-block-data-mins-and-maxes.patch b/patches/server/Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/unapplied/server/Add-missing-block-data-mins-and-maxes.patch rename to patches/server/Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/unapplied/server/Add-more-Campfire-API.patch b/patches/server/Add-more-Campfire-API.patch similarity index 100% rename from patches/unapplied/server/Add-more-Campfire-API.patch rename to patches/server/Add-more-Campfire-API.patch diff --git a/patches/unapplied/server/Add-new-overload-to-PersistentDataContainer-has.patch b/patches/server/Add-new-overload-to-PersistentDataContainer-has.patch similarity index 100% rename from patches/unapplied/server/Add-new-overload-to-PersistentDataContainer-has.patch rename to patches/server/Add-new-overload-to-PersistentDataContainer-has.patch diff --git a/patches/unapplied/server/Add-player-health-update-API.patch b/patches/server/Add-player-health-update-API.patch similarity index 100% rename from patches/unapplied/server/Add-player-health-update-API.patch rename to patches/server/Add-player-health-update-API.patch diff --git a/patches/unapplied/server/Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/server/Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 100% rename from patches/unapplied/server/Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/server/Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/unapplied/server/Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/server/Added-getHostname-to-AsyncPlayerPreLoginEvent.patch similarity index 97% rename from patches/unapplied/server/Added-getHostname-to-AsyncPlayerPreLoginEvent.patch rename to patches/server/Added-getHostname-to-AsyncPlayerPreLoginEvent.patch index c7b958bb43..a2c6b0afc3 100644 --- a/patches/unapplied/server/Added-getHostname-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/server/Added-getHostname-to-AsyncPlayerPreLoginEvent.patch @@ -8,7 +8,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListene index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -0,0 +0,0 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se +@@ -0,0 +0,0 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, // Paper start com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(ServerLoginPacketListenerImpl.this.gameProfile); diff --git a/patches/unapplied/server/Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/Allow-delegation-to-vanilla-chunk-gen.patch similarity index 97% rename from patches/unapplied/server/Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/Allow-delegation-to-vanilla-chunk-gen.patch index 201095ac12..201035c9f8 100644 --- a/patches/unapplied/server/Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/Allow-delegation-to-vanilla-chunk-gen.patch @@ -9,7 +9,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -0,0 +0,0 @@ public final class CraftServer implements Server { - return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(net.minecraft.core.Registry.BIOME_REGISTRY), world); // Paper - Anti-Xray - Add parameters + return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters } + // Paper start diff --git a/patches/unapplied/server/Allow-to-change-the-podium-for-the-EnderDragon.patch b/patches/server/Allow-to-change-the-podium-for-the-EnderDragon.patch similarity index 100% rename from patches/unapplied/server/Allow-to-change-the-podium-for-the-EnderDragon.patch rename to patches/server/Allow-to-change-the-podium-for-the-EnderDragon.patch diff --git a/patches/unapplied/server/Always-parse-protochunk-light-sources-unless-it-is-m.patch b/patches/server/Always-parse-protochunk-light-sources-unless-it-is-m.patch similarity index 100% rename from patches/unapplied/server/Always-parse-protochunk-light-sources-unless-it-is-m.patch rename to patches/server/Always-parse-protochunk-light-sources-unless-it-is-m.patch diff --git a/patches/unapplied/server/Bucketable-API.patch b/patches/server/Bucketable-API.patch similarity index 100% rename from patches/unapplied/server/Bucketable-API.patch rename to patches/server/Bucketable-API.patch diff --git a/patches/unapplied/server/Buffer-OOB-setBlock-calls.patch b/patches/server/Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/unapplied/server/Buffer-OOB-setBlock-calls.patch rename to patches/server/Buffer-OOB-setBlock-calls.patch diff --git a/patches/unapplied/server/Configurable-max-block-light-for-monster-spawning.patch b/patches/server/Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/unapplied/server/Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/unapplied/server/Configurable-sculk-sensor-listener-range.patch b/patches/server/Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/unapplied/server/Configurable-sculk-sensor-listener-range.patch rename to patches/server/Configurable-sculk-sensor-listener-range.patch diff --git a/patches/unapplied/server/Custom-Potion-Mixes.patch b/patches/server/Custom-Potion-Mixes.patch similarity index 99% rename from patches/unapplied/server/Custom-Potion-Mixes.patch rename to patches/server/Custom-Potion-Mixes.patch index bc1a530cfc..d9f6541143 100644 --- a/patches/unapplied/server/Custom-Potion-Mixes.patch +++ b/patches/server/Custom-Potion-Mixes.patch @@ -28,7 +28,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa - this.worldData.setDataPackConfig(MinecraftServer.getSelectedPacks(this.packRepository)); + this.worldData.setDataConfiguration(worlddataconfiguration); this.resources.managers.updateRegistryTags(this.registryAccess()); io.papermc.paper.registry.PaperRegistry.clearCaches(); // Paper + net.minecraft.world.item.alchemy.PotionBrewing.reload(); // Paper diff --git a/patches/unapplied/server/Dolphin-API.patch b/patches/server/Dolphin-API.patch similarity index 100% rename from patches/unapplied/server/Dolphin-API.patch rename to patches/server/Dolphin-API.patch diff --git a/patches/unapplied/server/Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/unapplied/server/Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/unapplied/server/Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 100% rename from patches/unapplied/server/Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/Ensure-entity-passenger-world-matches-ridden-entity.patch diff --git a/patches/unapplied/server/Entity-powdered-snow-API.patch b/patches/server/Entity-powdered-snow-API.patch similarity index 100% rename from patches/unapplied/server/Entity-powdered-snow-API.patch rename to patches/server/Entity-powdered-snow-API.patch diff --git a/patches/unapplied/server/Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/unapplied/server/Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/unapplied/server/Expose-furnace-minecart-push-values.patch b/patches/server/Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/unapplied/server/Expose-furnace-minecart-push-values.patch rename to patches/server/Expose-furnace-minecart-push-values.patch diff --git a/patches/unapplied/server/Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/unapplied/server/Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/unapplied/server/Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 91% rename from patches/unapplied/server/Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 36ecc64498..07fc2a8692 100644 --- a/patches/unapplied/server/Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -9,11 +9,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa - } - // Paper end + List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(iworlddataserver)); + LevelStem worlddimension = (LevelStem) dimensions.get(dimensionKey); -- org.bukkit.generator.WorldInfo worldInfo = new org.bukkit.craftbukkit.generator.CraftWorldInfo(iworlddataserver, worldSession, org.bukkit.World.Environment.getEnvironment(dimension), worlddimension.typeHolder().value()); -+ org.bukkit.generator.WorldInfo worldInfo = new org.bukkit.craftbukkit.generator.CraftWorldInfo(iworlddataserver, worldSession, org.bukkit.World.Environment.getEnvironment(dimension), worlddimension.typeHolder().value(), worlddimension.generator(), this.registryAccess()); // Paper +- org.bukkit.generator.WorldInfo worldInfo = new org.bukkit.craftbukkit.generator.CraftWorldInfo(iworlddataserver, worldSession, org.bukkit.World.Environment.getEnvironment(dimension), worlddimension.type().value()); ++ org.bukkit.generator.WorldInfo worldInfo = new org.bukkit.craftbukkit.generator.CraftWorldInfo(iworlddataserver, worldSession, org.bukkit.World.Environment.getEnvironment(dimension), worlddimension.type().value(), worlddimension.generator(), this.registryAccess()); // Paper if (biomeProvider == null && gen != null) { biomeProvider = gen.getDefaultBiomeProvider(worldInfo); } @@ -22,11 +22,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -0,0 +0,0 @@ public final class CraftServer implements Server { - net.minecraft.core.Registry<LevelStem> iregistry = worlddata.worldGenSettings().dimensions(); + List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); LevelStem worlddimension = (LevelStem) iregistry.get(actualDimension); -- WorldInfo worldInfo = new CraftWorldInfo(worlddata, worldSession, creator.environment(), worlddimension.typeHolder().value()); -+ WorldInfo worldInfo = new CraftWorldInfo(worlddata, worldSession, creator.environment(), worlddimension.typeHolder().value(), worlddimension.generator(), this.getHandle().getServer().registryAccess()); // Paper +- WorldInfo worldInfo = new CraftWorldInfo(worlddata, worldSession, creator.environment(), worlddimension.type().value()); ++ WorldInfo worldInfo = new CraftWorldInfo(worlddata, worldSession, creator.environment(), worlddimension.type().value(), worlddimension.generator(), this.getHandle().getServer().registryAccess()); // Paper if (biomeProvider == null && generator != null) { biomeProvider = generator.getDefaultBiomeProvider(worldInfo); } diff --git a/patches/unapplied/server/Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/unapplied/server/Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/unapplied/server/Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 98% rename from patches/unapplied/server/Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch index ff0e7c0e39..5a0fd9bde9 100644 --- a/patches/unapplied/server/Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch +++ b/patches/server/Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch @@ -12,7 +12,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public class CraftChunk implements Chunk { PalettedContainerRO<Holder<Biome>>[] biome = (includeBiome || includeBiomeTempRain) ? new PalettedContainer[cs.length] : null; - Registry<Biome> iregistry = this.worldServer.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + Registry<Biome> iregistry = this.worldServer.registryAccess().registryOrThrow(Registries.BIOME); - Codec<PalettedContainerRO<Holder<Biome>>> biomeCodec = PalettedContainer.codecRO(iregistry.asHolderIdMap(), iregistry.holderByNameCodec(), PalettedContainer.Strategy.SECTION_BIOMES, iregistry.getHolderOrThrow(Biomes.PLAINS)); for (int i = 0; i < cs.length; i++) { diff --git a/patches/unapplied/server/Fix-Entity-Position-Desync.patch b/patches/server/Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/unapplied/server/Fix-Entity-Position-Desync.patch rename to patches/server/Fix-Entity-Position-Desync.patch diff --git a/patches/unapplied/server/Fix-Fluid-tags-isTagged-method.patch b/patches/server/Fix-Fluid-tags-isTagged-method.patch similarity index 100% rename from patches/unapplied/server/Fix-Fluid-tags-isTagged-method.patch rename to patches/server/Fix-Fluid-tags-isTagged-method.patch diff --git a/patches/unapplied/server/Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/unapplied/server/Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/unapplied/server/Fix-NPE-for-BlockDataMeta-getBlockData.patch b/patches/server/Fix-NPE-for-BlockDataMeta-getBlockData.patch similarity index 100% rename from patches/unapplied/server/Fix-NPE-for-BlockDataMeta-getBlockData.patch rename to patches/server/Fix-NPE-for-BlockDataMeta-getBlockData.patch diff --git a/patches/unapplied/server/Fix-NotePlayEvent.patch b/patches/server/Fix-NotePlayEvent.patch similarity index 53% rename from patches/unapplied/server/Fix-NotePlayEvent.patch rename to patches/server/Fix-NotePlayEvent.patch index cc41731dcf..c34df48663 100644 --- a/patches/unapplied/server/Fix-NotePlayEvent.patch +++ b/patches/server/Fix-NotePlayEvent.patch @@ -11,36 +11,45 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java @@ -0,0 +0,0 @@ public class NoteBlock extends Block { - private void playNote(@Nullable Entity entity, Level world, BlockPos blockposition, BlockState data) { // CraftBukkit - if (world.getBlockState(blockposition.above()).isAir()) { + private void playNote(@Nullable Entity entity, BlockState state, Level world, BlockPos pos) { + if (!((NoteBlockInstrument) state.getValue(NoteBlock.INSTRUMENT)).requiresAirAbove() || world.getBlockState(pos.above()).isAir()) { // CraftBukkit start -- org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); +- org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, pos, state.getValue(NoteBlock.INSTRUMENT), state.getValue(NoteBlock.NOTE)); - if (event.isCancelled()) { - return; - } -+ // org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); // Paper - move event into block event handler ++ // org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, pos, state.getValue(NoteBlock.INSTRUMENT), state.getValue(NoteBlock.NOTE)); + // if (event.isCancelled()) { + // return; + // } // CraftBukkit end + // Paper - TODO any way to cancel the game event? - world.blockEvent(blockposition, this, 0, 0); - world.gameEvent(entity, GameEvent.NOTE_BLOCK_PLAY, blockposition); + world.blockEvent(pos, this, 0, 0); + world.gameEvent(entity, GameEvent.NOTE_BLOCK_PLAY, pos); } @@ -0,0 +0,0 @@ public class NoteBlock extends Block { @Override public boolean triggerEvent(BlockState state, Level world, BlockPos pos, int type, int data) { -- int k = (Integer) state.getValue(NoteBlock.NOTE); + // Paper start - move NotePlayEvent call to fix instrument/note changes + org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, pos, state.getValue(INSTRUMENT), state.getValue(NOTE)); + if (event.isCancelled()) return false; -+ int k = event.getNote().getId(); - float f = (float) Math.pow(2.0D, (double) (k - 12) / 12.0D); - -- world.playSound((Player) null, pos, ((NoteBlockInstrument) state.getValue(NoteBlock.INSTRUMENT)).getSoundEvent(), SoundSource.RECORDS, 3.0F, f); -+ world.playSound(null, pos, org.bukkit.craftbukkit.block.data.CraftBlockData.toNMS(event.getInstrument(), NoteBlockInstrument.class).getSoundEvent(), SoundSource.RECORDS, 3.0F, f); + // Paper end - world.addParticle(ParticleTypes.NOTE, (double) pos.getX() + 0.5D, (double) pos.getY() + 1.2D, (double) pos.getZ() + 0.5D, (double) k / 24.0D, 0.0D, 0.0D); + NoteBlockInstrument blockpropertyinstrument = (NoteBlockInstrument) state.getValue(NoteBlock.INSTRUMENT); + float f; + + if (blockpropertyinstrument.isTunable()) { +- int k = (Integer) state.getValue(NoteBlock.NOTE); ++ int k = event.getNote().getId(); // Paper + + f = (float) Math.pow(2.0D, (double) (k - 12) / 12.0D); + world.addParticle(ParticleTypes.NOTE, (double) pos.getX() + 0.5D, (double) pos.getY() + 1.2D, (double) pos.getZ() + 0.5D, (double) k / 24.0D, 0.0D, 0.0D); +@@ -0,0 +0,0 @@ public class NoteBlock extends Block { + holder = blockpropertyinstrument.getSoundEvent(); + } + +- world.playSeededSound((Player) null, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, holder, SoundSource.RECORDS, 3.0F, f, world.random.nextLong()); ++ world.playSeededSound((Player) null, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, org.bukkit.craftbukkit.block.data.CraftBlockData.toNMS(event.getInstrument(), NoteBlockInstrument.class).getSoundEvent(), SoundSource.RECORDS, 3.0F, f, world.random.nextLong()); // Paper return true; } + diff --git a/patches/unapplied/server/Fix-Spigot-growth-modifiers.patch b/patches/server/Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/unapplied/server/Fix-Spigot-growth-modifiers.patch rename to patches/server/Fix-Spigot-growth-modifiers.patch diff --git a/patches/unapplied/server/Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 55% rename from patches/unapplied/server/Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch index c5646c0720..475dd153cc 100644 --- a/patches/unapplied/server/Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch +++ b/patches/server/Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch @@ -9,11 +9,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/world/level/block/MushroomBlock.java +++ b/src/main/java/net/minecraft/world/level/block/MushroomBlock.java @@ -0,0 +0,0 @@ public class MushroomBlock extends BushBlock implements BonemealableBlock { - - public boolean growMushroom(ServerLevel world, BlockPos pos, BlockState state, RandomSource random) { - world.removeBlock(pos, false); -- SaplingBlock.treeType = (this == Blocks.BROWN_MUSHROOM) ? TreeType.BROWN_MUSHROOM : TreeType.BROWN_MUSHROOM; // CraftBukkit -+ SaplingBlock.treeType = (this == Blocks.BROWN_MUSHROOM) ? TreeType.BROWN_MUSHROOM : TreeType.RED_MUSHROOM; // CraftBukkit // Paper - if (((ConfiguredFeature) ((Holder) this.featureSupplier.get()).value()).place(world, world.getChunkSource().getGenerator(), random, pos)) { - return true; + return false; } else { + world.removeBlock(pos, false); +- SaplingBlock.treeType = (this == Blocks.BROWN_MUSHROOM) ? TreeType.BROWN_MUSHROOM : TreeType.BROWN_MUSHROOM; // CraftBukkit ++ SaplingBlock.treeType = (this == Blocks.BROWN_MUSHROOM) ? TreeType.BROWN_MUSHROOM : TreeType.RED_MUSHROOM; // CraftBukkit // Paper + if (((ConfiguredFeature) ((Holder) optional.get()).value()).place(world, world.getChunkSource().getGenerator(), random, pos)) { + return true; + } else { diff --git a/patches/unapplied/server/Fix-bees-aging-inside-hives.patch b/patches/server/Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/unapplied/server/Fix-bees-aging-inside-hives.patch rename to patches/server/Fix-bees-aging-inside-hives.patch diff --git a/patches/unapplied/server/Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/unapplied/server/Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/unapplied/server/Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/unapplied/server/Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/unapplied/server/Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 97% rename from patches/unapplied/server/Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/Fix-entity-type-tags-suggestions-in-selectors.patch index 9a1e579ca0..7f8ea6bcb6 100644 --- a/patches/unapplied/server/Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/Fix-entity-type-tags-suggestions-in-selectors.patch @@ -123,9 +123,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public class EntitySelectorOptions { if (reader.isTag()) { - TagKey<EntityType<?>> tagKey = TagKey.create(Registry.ENTITY_TYPE_REGISTRY, ResourceLocation.read(reader.getReader())); + TagKey<EntityType<?>> tagKey = TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.read(reader.getReader())); + // Paper start - throw error if invalid entity tag (only on suggestions to keep cmd success behavior) -+ if (reader.parsingEntityArgumentSuggestions && io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && !Registry.ENTITY_TYPE.isKnownTagName(tagKey)) { ++ if (reader.parsingEntityArgumentSuggestions && io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.getTag(tagKey).isEmpty()) { + reader.getReader().setCursor(i); + throw ERROR_ENTITY_TAG_INVALID.createWithContext(reader.getReader(), tagKey); + } diff --git a/patches/unapplied/server/Fix-falling-block-spawn-methods.patch b/patches/server/Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/unapplied/server/Fix-falling-block-spawn-methods.patch rename to patches/server/Fix-falling-block-spawn-methods.patch diff --git a/patches/unapplied/server/Fix-fluid-logging-on-Block-breakNaturally.patch b/patches/server/Fix-fluid-logging-on-Block-breakNaturally.patch similarity index 100% rename from patches/unapplied/server/Fix-fluid-logging-on-Block-breakNaturally.patch rename to patches/server/Fix-fluid-logging-on-Block-breakNaturally.patch diff --git a/patches/unapplied/server/Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/unapplied/server/Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/unapplied/server/Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/unapplied/server/Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/unapplied/server/Fix-saving-in-unloadWorld.patch b/patches/server/Fix-saving-in-unloadWorld.patch similarity index 100% rename from patches/unapplied/server/Fix-saving-in-unloadWorld.patch rename to patches/server/Fix-saving-in-unloadWorld.patch diff --git a/patches/unapplied/server/Fix-slime-spawners-not-spawning-outside-slime-chunks.patch b/patches/server/Fix-slime-spawners-not-spawning-outside-slime-chunks.patch similarity index 100% rename from patches/unapplied/server/Fix-slime-spawners-not-spawning-outside-slime-chunks.patch rename to patches/server/Fix-slime-spawners-not-spawning-outside-slime-chunks.patch diff --git a/patches/unapplied/server/Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/unapplied/server/Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/unapplied/server/Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/Fix-swamp-hut-cat-generation-deadlock.patch similarity index 91% rename from patches/unapplied/server/Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/Fix-swamp-hut-cat-generation-deadlock.patch index 60f4b6c11d..c52220ee4e 100644 --- a/patches/unapplied/server/Fix-swamp-hut-cat-generation-deadlock.patch +++ b/patches/server/Fix-swamp-hut-cat-generation-deadlock.patch @@ -13,13 +13,13 @@ diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java -@@ -0,0 +0,0 @@ public class Cat extends TamableAnimal { +@@ -0,0 +0,0 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> { }); ServerLevel worldserver = world.getLevel(); - if (worldserver.structureManager().getStructureWithPieceAt(this.blockPosition(), StructureTags.CATS_SPAWN_AS_BLACK).isValid()) { + if (worldserver.structureManager().getStructureWithPieceAt(this.blockPosition(), StructureTags.CATS_SPAWN_AS_BLACK, world).isValid()) { // Paper - fix deadlock - this.setCatVariant(CatVariant.ALL_BLACK); + this.setVariant((CatVariant) BuiltInRegistries.CAT_VARIANT.getOrThrow(CatVariant.ALL_BLACK)); this.setPersistenceRequired(); } diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java @@ -49,11 +49,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + public StructureStart getStructureWithPieceAt(BlockPos pos, TagKey<Structure> structureTag, @Nullable ServerLevelAccessor levelAccessor) { + // Paper end - Registry<Structure> registry = this.registryAccess().registryOrThrow(Registry.STRUCTURE_REGISTRY); + Registry<Structure> registry = this.registryAccess().registryOrThrow(Registries.STRUCTURE); for(StructureStart structureStart : this.startsForStructure(new ChunkPos(pos), (structure) -> { - return registry.getHolder(registry.getId(structure)).map((holder) -> { - return holder.is(structureTag); + return registry.getHolder(registry.getId(structure)).map((reference) -> { + return reference.is(structureTag); }).orElse(false); - })) { + }, levelAccessor)) { // Paper diff --git a/patches/unapplied/server/Fix-tripwire-state-inconsistency.patch b/patches/server/Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/unapplied/server/Fix-tripwire-state-inconsistency.patch rename to patches/server/Fix-tripwire-state-inconsistency.patch diff --git a/patches/unapplied/server/Fix-xp-reward-for-baby-zombies.patch b/patches/server/Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/unapplied/server/Fix-xp-reward-for-baby-zombies.patch rename to patches/server/Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/unapplied/server/Force-close-world-loading-screen.patch b/patches/server/Force-close-world-loading-screen.patch similarity index 100% rename from patches/unapplied/server/Force-close-world-loading-screen.patch rename to patches/server/Force-close-world-loading-screen.patch diff --git a/patches/unapplied/server/Forward-CraftEntity-in-teleport-command.patch b/patches/server/Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/unapplied/server/Forward-CraftEntity-in-teleport-command.patch rename to patches/server/Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/unapplied/server/Freeze-Tick-Lock-API.patch b/patches/server/Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/unapplied/server/Freeze-Tick-Lock-API.patch rename to patches/server/Freeze-Tick-Lock-API.patch diff --git a/patches/unapplied/server/Furnace-RecipesUsed-API.patch b/patches/server/Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/unapplied/server/Furnace-RecipesUsed-API.patch rename to patches/server/Furnace-RecipesUsed-API.patch diff --git a/patches/unapplied/server/Guard-against-invalid-entity-positions.patch b/patches/server/Guard-against-invalid-entity-positions.patch similarity index 100% rename from patches/unapplied/server/Guard-against-invalid-entity-positions.patch rename to patches/server/Guard-against-invalid-entity-positions.patch diff --git a/patches/unapplied/server/Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/Hide-unnecessary-itemmeta-from-clients.patch similarity index 84% rename from patches/unapplied/server/Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/Hide-unnecessary-itemmeta-from-clients.patch index e4cb7f99a4..0053a01294 100644 --- a/patches/unapplied/server/Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/Hide-unnecessary-itemmeta-from-clients.patch @@ -22,16 +22,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + // Refresh the current entity metadata + entity.getEntityData().refresh(player); + // SPIGOT-7136 - Allays +- if (entity instanceof Allay) { +- ServerGamePacketListenerImpl.this.send(new ClientboundSetEquipmentPacket(entity.getId(), Arrays.stream(net.minecraft.world.entity.EquipmentSlot.values()).map((slot) -> Pair.of(slot, ((LivingEntity) entity).getItemBySlot(slot).copy())).collect(Collectors.toList()))); ++ if (entity instanceof Allay allay) { // Paper ++ ServerGamePacketListenerImpl.this.send(new ClientboundSetEquipmentPacket(entity.getId(), Arrays.stream(net.minecraft.world.entity.EquipmentSlot.values()).map((slot) -> Pair.of(slot, allay.stripMeta(allay.getItemBySlot(slot), true))).collect(Collectors.toList()))); // Paper - remove unnecessary item meta + player.containerMenu.sendAllDataToRemote(); + } } - // Paper end - // SPIGOT-7136 - Allays -- if (entity instanceof Allay) { -- ServerGamePacketListenerImpl.this.send(new ClientboundSetEquipmentPacket(entity.getId(), Arrays.stream(net.minecraft.world.entity.EquipmentSlot.values()).map((slot) -> Pair.of(slot, ((LivingEntity) entity).getItemBySlot(slot).copy())).collect(Collectors.toList()))); -+ if (entity instanceof Allay allay) { // Paper -+ ServerGamePacketListenerImpl.this.send(new ClientboundSetEquipmentPacket(entity.getId(), Arrays.stream(net.minecraft.world.entity.EquipmentSlot.values()).map((slot) -> Pair.of(slot, allay.stripMeta(allay.getItemBySlot(slot), true))).collect(Collectors.toList()))); // Paper - remove unnecessary item meta - player.containerMenu.sendAllDataToRemote(); - } - } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/patches/unapplied/server/Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/server/Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch similarity index 99% rename from patches/unapplied/server/Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch rename to patches/server/Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch index 20b91f5fc4..1f3dfd5716 100644 --- a/patches/unapplied/server/Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch +++ b/patches/server/Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch @@ -1213,7 +1213,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + while (avoidSuffocation && !worldserver1.noCollision(entityplayer1, entityplayer1.getBoundingBox(), true) && entityplayer1.getY() < (double) worldserver1.getMaxBuildHeight()) { // Paper - make sure this loads chunks, we default to NOT loading now entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } - // CraftBukkit start + diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java @@ -1496,11 +1496,10 @@ diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour. index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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 -@@ -0,0 +0,0 @@ public abstract class BlockBehaviour { - protected boolean isTicking; - protected FluidState fluid; - // Paper end -+ // Paper start +@@ -0,0 +0,0 @@ public abstract class BlockBehaviour implements FeatureElement { + return this.conditionallyFullOpaque; + } + // Paper end - starlight + private long blockCollisionBehavior = io.papermc.paper.util.CollisionUtil.KNOWN_SPECIAL_BLOCK; + + public final long getBlockCollisionBehavior() { @@ -1509,8 +1508,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Paper end public void initCache() { - this.fluid = this.getBlock().getFluidState(this.asState()); // Paper - moved from getFluid() -@@ -0,0 +0,0 @@ public abstract class BlockBehaviour { + this.fluidState = ((Block) this.owner).getFluidState(this.asState()); +@@ -0,0 +0,0 @@ public abstract class BlockBehaviour implements FeatureElement { this.shapeExceedsCube = this.cache == null || this.cache.largeCollisionShape; // Paper - moved from actual method to here this.opacityIfCached = this.cache == null || this.isConditionallyFullOpaque() ? -1 : this.cache.lightBlock; // Paper - starlight - cache opacity for light diff --git a/patches/unapplied/server/Implement-enchantWithLevels-API.patch b/patches/server/Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/unapplied/server/Implement-enchantWithLevels-API.patch rename to patches/server/Implement-enchantWithLevels-API.patch diff --git a/patches/unapplied/server/Implement-getComputedBiome-API.patch b/patches/server/Implement-getComputedBiome-API.patch similarity index 96% rename from patches/unapplied/server/Implement-getComputedBiome-API.patch rename to patches/server/Implement-getComputedBiome-API.patch index b68df999e8..f33e4df585 100644 --- a/patches/unapplied/server/Implement-getComputedBiome-API.patch +++ b/patches/server/Implement-getComputedBiome-API.patch @@ -9,7 +9,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -0,0 +0,0 @@ public abstract class CraftRegionAccessor implements RegionAccessor { - return CraftBlock.biomeBaseToBiome(this.getHandle().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), this.getHandle().getNoiseBiome(x >> 2, y >> 2, z >> 2)); + return CraftBlock.biomeBaseToBiome(this.getHandle().registryAccess().registryOrThrow(Registries.BIOME), this.getHandle().getNoiseBiome(x >> 2, y >> 2, z >> 2)); } + // Paper start diff --git a/patches/unapplied/server/Implement-regenerateChunk.patch b/patches/server/Implement-regenerateChunk.patch similarity index 100% rename from patches/unapplied/server/Implement-regenerateChunk.patch rename to patches/server/Implement-regenerateChunk.patch diff --git a/patches/unapplied/server/Improve-scoreboard-entries.patch b/patches/server/Improve-scoreboard-entries.patch similarity index 100% rename from patches/unapplied/server/Improve-scoreboard-entries.patch rename to patches/server/Improve-scoreboard-entries.patch diff --git a/patches/unapplied/server/Kick-on-main-for-illegal-chat.patch b/patches/server/Kick-on-main-for-illegal-chat.patch similarity index 83% rename from patches/unapplied/server/Kick-on-main-for-illegal-chat.patch rename to patches/server/Kick-on-main-for-illegal-chat.patch index a195ae0ffd..f313621bcc 100644 --- a/patches/unapplied/server/Kick-on-main-for-illegal-chat.patch +++ b/patches/server/Kick-on-main-for-illegal-chat.patch @@ -18,8 +18,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 this.disconnect(Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper - add cause + }); // Paper - push to main for event firing } else { - if (this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages())) { - // this.server.submit(() -> { // CraftBukkit - async chat + Optional<LastSeenMessages> optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages()); + @@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { @@ -28,15 +28,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 this.disconnect(Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper + }); // Paper - push to main for event firing } else { - if (this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages())) { - this.server.submit(() -> { + Optional<LastSeenMessages> optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages()); + @@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic - private boolean tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { + private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message); + this.server.scheduleOnMain(() -> { // Paper - push to main - this.disconnect(Component.translatable("multiplayer.disconnect.out_of_order_chat"), org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event cause + this.disconnect(Component.translatable("multiplayer.disconnect.out_of_order_chat"), org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event ca + }); // Paper - push to main - return false; + return Optional.empty(); } else if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false)); diff --git a/patches/unapplied/server/Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/unapplied/server/Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/unapplied/server/Make-some-itemstacks-nonnull.patch b/patches/server/Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/unapplied/server/Make-some-itemstacks-nonnull.patch rename to patches/server/Make-some-itemstacks-nonnull.patch diff --git a/patches/unapplied/server/Make-water-animal-spawn-height-configurable.patch b/patches/server/Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/unapplied/server/Make-water-animal-spawn-height-configurable.patch rename to patches/server/Make-water-animal-spawn-height-configurable.patch diff --git a/patches/unapplied/server/More-PotionEffectType-API.patch b/patches/server/More-PotionEffectType-API.patch similarity index 100% rename from patches/unapplied/server/More-PotionEffectType-API.patch rename to patches/server/More-PotionEffectType-API.patch diff --git a/patches/unapplied/server/More-Projectile-API.patch b/patches/server/More-Projectile-API.patch similarity index 100% rename from patches/unapplied/server/More-Projectile-API.patch rename to patches/server/More-Projectile-API.patch diff --git a/patches/unapplied/server/Multi-Block-Change-API-Implementation.patch b/patches/server/Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/unapplied/server/Multi-Block-Change-API-Implementation.patch rename to patches/server/Multi-Block-Change-API-Implementation.patch diff --git a/patches/unapplied/server/Multiple-Entries-with-Scoreboards.patch b/patches/server/Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/unapplied/server/Multiple-Entries-with-Scoreboards.patch rename to patches/server/Multiple-Entries-with-Scoreboards.patch diff --git a/patches/unapplied/server/Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/unapplied/server/Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/unapplied/server/Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 99% rename from patches/unapplied/server/Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/Optimise-collision-checking-in-player-move-packet-ha.patch index e01cc9fe25..6a43aaac06 100644 --- a/patches/unapplied/server/Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/Optimise-collision-checking-in-player-move-packet-ha.patch @@ -138,8 +138,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + if (!this.player.noPhysics && !this.player.isSleeping() && teleportBack) { // Paper end - optimise out extra getCubes this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet(), false); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet. + this.player.doCheckFallDamage(this.player.getY() - d6, packet.isOnGround()); } else { - // CraftBukkit start - fire PlayerMoveEvent @@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } diff --git a/patches/unapplied/server/Optimize-HashMapPalette.patch b/patches/server/Optimize-HashMapPalette.patch similarity index 100% rename from patches/unapplied/server/Optimize-HashMapPalette.patch rename to patches/server/Optimize-HashMapPalette.patch diff --git a/patches/unapplied/server/Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/unapplied/server/Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/unapplied/server/Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 100% rename from patches/unapplied/server/Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/Pass-ServerLevel-for-gamerule-callbacks.patch diff --git a/patches/unapplied/server/Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/unapplied/server/Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/unapplied/server/Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/unapplied/server/Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/unapplied/server/Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/unapplied/server/Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/unapplied/server/Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/Put-world-into-worldlist-before-initing-the-world.patch similarity index 94% rename from patches/unapplied/server/Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/Put-world-into-worldlist-before-initing-the-world.patch index b8c1cb52b8..cf12637cc8 100644 --- a/patches/unapplied/server/Put-world-into-worldlist-before-initing-the-world.patch +++ b/patches/server/Put-world-into-worldlist-before-initing-the-world.patch @@ -15,7 +15,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 worlddata.setModdedInfo(this.getServerModName(), this.getModdedStatus().shouldReportAsModified()); + this.addLevel(world); // Paper - move up - this.initWorld(world, worlddata, worldData, worlddata.worldGenSettings()); + this.initWorld(world, worlddata, worldData, worldoptions); - this.addLevel(world); + // Paper - move up @@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } + this.console.addLevel(internal); // Paper - move up - this.console.initWorld(internal, worlddata, worlddata, worlddata.worldGenSettings()); + this.console.initWorld(internal, worlddata, worlddata, worlddata.worldGenOptions()); internal.setSpawnSettings(true, true); - this.console.addLevel(internal); diff --git a/patches/unapplied/server/Reset-placed-block-on-exception.patch b/patches/server/Reset-placed-block-on-exception.patch similarity index 100% rename from patches/unapplied/server/Reset-placed-block-on-exception.patch rename to patches/server/Reset-placed-block-on-exception.patch diff --git a/patches/unapplied/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/unapplied/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/unapplied/server/Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/unapplied/server/Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/unapplied/server/Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/unapplied/server/Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/unapplied/server/Validate-usernames.patch b/patches/server/Validate-usernames.patch similarity index 93% rename from patches/unapplied/server/Validate-usernames.patch rename to patches/server/Validate-usernames.patch index bd84bb2ee2..2ff063deb5 100644 --- a/patches/unapplied/server/Validate-usernames.patch +++ b/patches/server/Validate-usernames.patch @@ -8,16 +8,16 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListene index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -0,0 +0,0 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se - private ServerPlayer delayedAcceptPlayer; +@@ -0,0 +0,0 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + private final String serverId; @Nullable - private ProfilePublicKey.Data profilePublicKeyData; + private ServerPlayer delayedAcceptPlayer; + public boolean iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation = false; // Paper - username validation overriding public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection) { this.state = ServerLoginPacketListenerImpl.State.HELLO; -@@ -0,0 +0,0 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se - } +@@ -0,0 +0,0 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + // Paper end } + // Paper start - validate usernames @@ -52,9 +52,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + } + // Paper end - validate usernames - this.profilePublicKeyData = (ProfilePublicKey.Data) packet.publicKey().orElse(null); // CraftBukkit - decompile error GameProfile gameprofile = this.server.getSingleplayerProfile(); + if (gameprofile != null && packet.name().equalsIgnoreCase(gameprofile.getName())) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java diff --git a/patches/unapplied/server/WorldCreator-keepSpawnLoaded.patch b/patches/server/WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/unapplied/server/WorldCreator-keepSpawnLoaded.patch rename to patches/server/WorldCreator-keepSpawnLoaded.patch diff --git a/patches/unapplied/server/cache-resource-keys.patch b/patches/server/cache-resource-keys.patch similarity index 81% rename from patches/unapplied/server/cache-resource-keys.patch rename to patches/server/cache-resource-keys.patch index 4fc3eab26c..a71d96b8fd 100644 --- a/patches/unapplied/server/cache-resource-keys.patch +++ b/patches/server/cache-resource-keys.patch @@ -18,8 +18,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 return null; } -- return registry.getHolderOrThrow(ResourceKey.create(net.minecraft.core.Registry.BIOME_REGISTRY, CraftNamespacedKey.toMinecraft(bio.getKey()))); -+ return registry.getHolderOrThrow(BIOME_KEY_CACHE.computeIfAbsent(bio, b -> ResourceKey.create(net.minecraft.core.Registry.BIOME_REGISTRY, CraftNamespacedKey.toMinecraft(b.getKey())))); // Paper - cache key +- return registry.getHolderOrThrow(ResourceKey.create(Registries.BIOME, CraftNamespacedKey.toMinecraft(bio.getKey()))); ++ return registry.getHolderOrThrow(BIOME_KEY_CACHE.computeIfAbsent(bio, b -> ResourceKey.create(Registries.BIOME, CraftNamespacedKey.toMinecraft(b.getKey())))); // Paper - cache key } @Override @@ -31,11 +31,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 super(registry, tag); } -+ private static final java.util.Map<org.bukkit.entity.EntityType, net.minecraft.resources.ResourceKey<net.minecraft.world.entity.EntityType<?>>> KEY_CACHE = Collections.synchronizedMap(new java.util.EnumMap<>(EntityType.class)); // Paper ++ private static final java.util.Map<org.bukkit.entity.EntityType, net.minecraft.resources.ResourceKey<net.minecraft.world.entity.EntityType<?>>> KEY_CACHE = java.util.Collections.synchronizedMap(new java.util.EnumMap<>(EntityType.class)); // Paper @Override public boolean isTagged(EntityType entity) { -- return registry.getHolderOrThrow(ResourceKey.create(net.minecraft.core.Registry.ENTITY_TYPE_REGISTRY, CraftNamespacedKey.toMinecraft(entity.getKey()))).is(tag); -+ return registry.getHolderOrThrow(KEY_CACHE.computeIfAbsent(entity, type -> ResourceKey.create(net.minecraft.core.Registry.ENTITY_TYPE_REGISTRY, CraftNamespacedKey.toMinecraft(type.getKey())))).is(tag); // Paper - cache key +- return registry.getHolderOrThrow(ResourceKey.create(Registries.ENTITY_TYPE, CraftNamespacedKey.toMinecraft(entity.getKey()))).is(tag); ++ return registry.getHolderOrThrow(KEY_CACHE.computeIfAbsent(entity, type -> ResourceKey.create(Registries.ENTITY_TYPE, CraftNamespacedKey.toMinecraft(type.getKey())))).is(tag); // Paper - cache key } @Override diff --git a/patches/unapplied/server/fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/unapplied/server/fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/unapplied/server/fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/unapplied/server/fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/unapplied/server/Add-missing-structure-set-seed-configs.patch b/patches/unapplied/server/Add-missing-structure-set-seed-configs.patch deleted file mode 100644 index 85e707b3c1..0000000000 --- a/patches/unapplied/server/Add-missing-structure-set-seed-configs.patch +++ /dev/null @@ -1,197 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic <jake.m.potrebic@gmail.com> -Date: Thu, 13 Jan 2022 23:05:53 -0800 -Subject: [PATCH] Add missing structure set seed configs - -The 4 missing structure set seed configs are strongholds, mineshafts, -buried treasure, and ancient cities. - -Strongholds use a ring placement scheme which isn't random so they -utilize the world seed by default, this adds a config to override it -for just generating the ring positions. - -Mineshafts and Buried Treasure structure sets are special cases -where the "salt" that can be defined for them via datapacks has 0 -effect because the difference between the spacing and separation is 1 -which is used as the upper bound in the random with salt. So the random -always returns the same int (0) so the salt has no effect. This adds -seeds/salts to the frequency reducer which has a similar effect. - -Co-authored-by: William Blake Galbreath <blake.galbreath@gmail.com> - -diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -@@ -0,0 +0,0 @@ public abstract class ChunkGenerator { - // Spigot start - private Stream<StructureSet> possibleStructureSetsSpigot() { - return this.possibleStructureSets().map(Holder::value).map((structureset) -> { -- if (structureset.placement() instanceof RandomSpreadStructurePlacement randomConfig) { -+ if (structureset.placement() instanceof RandomSpreadStructurePlacement randomConfig && this.structureSets.getKey(structureset).getNamespace().equals(net.minecraft.resources.ResourceLocation.DEFAULT_NAMESPACE)) { // Paper - check namespace cause datapacks could add structure sets with the same path - String name = this.structureSets.getKey(structureset).getPath(); - int seed = randomConfig.salt; - -@@ -0,0 +0,0 @@ public abstract class ChunkGenerator { - case "villages": - seed = conf.villageSeed; - break; -+ // Paper start -+ case "ancient_cities": -+ seed = conf.ancientCitySeed; -+ break; -+ // Paper end - } - - structureset = new StructureSet(structureset.structures(), new RandomSpreadStructurePlacement(randomConfig.locateOffset, randomConfig.frequencyReductionMethod, randomConfig.frequency, seed, randomConfig.exclusionZone, randomConfig.spacing(), randomConfig.separation(), randomConfig.spreadType())); -@@ -0,0 +0,0 @@ public abstract class ChunkGenerator { - HolderSet<Biome> holderset = concentricringsstructureplacement.preferredBiomes(); - RandomSource randomsource = RandomSource.create(); - -+ // Paper start -+ if (this.conf.strongholdSeed != null && this.structureSets.getResourceKey(holder).orElse(null) == net.minecraft.world.level.levelgen.structure.BuiltinStructureSets.STRONGHOLDS) { -+ randomsource.setSeed(this.conf.strongholdSeed); -+ } else { - randomsource.setSeed(this instanceof FlatLevelSource ? 0L : randomstate.legacyLevelSeed()); -+ } -+ // Paper end - double d0 = randomsource.nextDouble() * 3.141592653589793D * 2.0D; - int l = 0; - int i1 = 0; -@@ -0,0 +0,0 @@ public abstract class ChunkGenerator { - - for (int i1 = chunkX - chunkRange; i1 <= chunkX + chunkRange; ++i1) { - for (int j1 = chunkZ - chunkRange; j1 <= chunkZ + chunkRange; ++j1) { -- if (structureplacement.isStructureChunk(this, noiseConfig, seed, i1, j1)) { -+ if (structureplacement.isStructureChunk(this, noiseConfig, seed, i1, j1, structureSet.unwrapKey().map(ResourceKey::location).orElse(null))) { // Paper - return true; - } - } -@@ -0,0 +0,0 @@ public abstract class ChunkGenerator { - } - } - -- if (structureplacement.isStructureChunk(this, noiseConfig, seed, chunkcoordintpair.x, chunkcoordintpair.z)) { -+ if (structureplacement.isStructureChunk(this, noiseConfig, seed, chunkcoordintpair.x, chunkcoordintpair.z, this.structureSets.getResourceKey(holder).map(ResourceKey::location).orElse(null))) { // Paper - if (list.size() == 1) { - this.tryGenerateStructure((StructureSet.StructureSelectionEntry) list.get(0), structureAccessor, registryManager, noiseConfig, structureTemplateManager, seed, chunk, chunkcoordintpair, sectionposition); - } else { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java b/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java -@@ -0,0 +0,0 @@ public abstract class StructurePlacement { - return this.exclusionZone; - } - -+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - public boolean isStructureChunk(ChunkGenerator chunkGenerator, RandomState noiseConfig, long seed, int chunkX, int chunkZ) { -+ // Paper start - add missing structure set configs -+ return this.isStructureChunk(chunkGenerator, noiseConfig, seed, chunkX, chunkZ, null); -+ } -+ public boolean isStructureChunk(ChunkGenerator chunkGenerator, RandomState noiseConfig, long seed, int chunkX, int chunkZ, @org.jetbrains.annotations.Nullable net.minecraft.resources.ResourceLocation structureSetKey) { -+ Integer saltOverride = null; -+ if (net.minecraft.world.level.levelgen.structure.BuiltinStructureSets.MINESHAFTS.location().equals(structureSetKey)) { -+ saltOverride = chunkGenerator.conf.mineshaftSeed; -+ } else if (net.minecraft.world.level.levelgen.structure.BuiltinStructureSets.BURIED_TREASURES.location().equals(structureSetKey)) { -+ saltOverride = chunkGenerator.conf.buriedTreasureSeed; -+ } -+ // Paper end - if (!this.isPlacementChunk(chunkGenerator, noiseConfig, seed, chunkX, chunkZ)) { - return false; -- } else if (this.frequency < 1.0F && !this.frequencyReductionMethod.shouldGenerate(seed, this.salt, chunkX, chunkZ, this.frequency)) { -+ } else if (this.frequency < 1.0F && !this.frequencyReductionMethod.shouldGenerate(seed, this.salt, chunkX, chunkZ, this.frequency, saltOverride)) { // Paper - return false; - } else { - return !this.exclusionZone.isPresent() || !this.exclusionZone.get().isPlacementForbidden(chunkGenerator, noiseConfig, seed, chunkX, chunkZ); -@@ -0,0 +0,0 @@ public abstract class StructurePlacement { - - public abstract StructurePlacementType<?> type(); - -- private static boolean probabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency) { -+ private static boolean probabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - ignore here - WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); - worldgenRandom.setLargeFeatureWithSalt(seed, salt, chunkX, chunkZ); - return worldgenRandom.nextFloat() < frequency; - } - -- private static boolean legacyProbabilityReducerWithDouble(long seed, int salt, int chunkX, int chunkZ, float frequency) { -+ private static boolean legacyProbabilityReducerWithDouble(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); -+ if (saltOverride == null) { // Paper - worldgenRandom.setLargeFeatureSeed(seed, chunkX, chunkZ); -+ // Paper start -+ } else { -+ worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, saltOverride); -+ } -+ // Paper end - return worldgenRandom.nextDouble() < (double)frequency; - } - -- private static boolean legacyArbitrarySaltProbabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency) { -+ private static boolean legacyArbitrarySaltProbabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); -- worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, 10387320); -+ worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, saltOverride != null ? saltOverride : 10387320); // Paper - return worldgenRandom.nextFloat() < frequency; - } - -- private static boolean legacyPillagerOutpostReducer(long seed, int salt, int chunkX, int chunkZ, float frequency) { -+ private static boolean legacyPillagerOutpostReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - ignore here - int i = chunkX >> 4; - int j = chunkZ >> 4; - WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); -@@ -0,0 +0,0 @@ public abstract class StructurePlacement { - - @FunctionalInterface - public interface FrequencyReducer { -- boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance); -+ boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance, @org.jetbrains.annotations.Nullable Integer saltOverride); // Paper - } - - public static enum FrequencyReductionMethod implements StringRepresentable { -@@ -0,0 +0,0 @@ public abstract class StructurePlacement { - this.reducer = generationPredicate; - } - -- public boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance) { -- return this.reducer.shouldGenerate(seed, salt, chunkX, chunkZ, chance); -+ public boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper -+ return this.reducer.shouldGenerate(seed, salt, chunkX, chunkZ, chance, saltOverride); // Paper - } - - @Override -diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/spigotmc/SpigotWorldConfig.java -+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java -@@ -0,0 +0,0 @@ public class SpigotWorldConfig - public int mansionSeed; - public int fossilSeed; - public int portalSeed; -+ // Paper start - add missing structure set configs -+ public int ancientCitySeed; -+ public int buriedTreasureSeed; -+ public Integer mineshaftSeed; -+ public Long strongholdSeed; -+ private <N extends Number> N getSeed(String path, java.util.function.Function<String, N> toNumberFunc) { -+ final String value = this.getString(path, "default"); -+ return org.apache.commons.lang3.math.NumberUtils.isParsable(value) ? toNumberFunc.apply(value) : null; -+ } -+ // Paper end - private void initWorldGenSeeds() - { - this.villageSeed = this.getInt( "seed-village", 10387312 ); -@@ -0,0 +0,0 @@ public class SpigotWorldConfig - this.mansionSeed = this.getInt( "seed-mansion", 10387319 ); - this.fossilSeed = this.getInt( "seed-fossil", 14357921 ); - this.portalSeed = this.getInt( "seed-portal", 34222645 ); -+ // Paper start - add missing structure set configs -+ this.ancientCitySeed = this.getInt("seed-ancientcity", 20083232); -+ this.buriedTreasureSeed = this.getInt("seed-buriedtreasure", 10387320); // StructurePlacement#HIGHLY_ARBITRARY_RANDOM_SALT -+ this.mineshaftSeed = this.getSeed("seed-mineshaft", Integer::parseInt); -+ this.strongholdSeed = this.getSeed("seed-stronghold", Long::parseLong); -+ // Paper end - this.log( "Custom Map Seeds: Village: " + this.villageSeed + " Desert: " + this.desertSeed + " Igloo: " + this.iglooSeed + " Jungle: " + this.jungleSeed + " Swamp: " + this.swampSeed + " Monument: " + this.monumentSeed - + " Ocean: " + this.oceanSeed + " Shipwreck: " + this.shipwreckSeed + " End City: " + this.endCitySeed + " Slime: " + this.slimeSeed + " Nether: " + this.netherSeed + " Mansion: " + this.mansionSeed + " Fossil: " + this.fossilSeed + " Portal: " + this.portalSeed ); - } diff --git a/patches/unapplied/server/Update-Log4j.patch b/patches/unapplied/server/Update-Log4j.patch deleted file mode 100644 index 366b13b94f..0000000000 --- a/patches/unapplied/server/Update-Log4j.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: darbyjack <admin@glaremasters.me> -Date: Thu, 9 Dec 2021 19:17:02 -0600 -Subject: [PATCH] Update Log4j - - -diff --git a/build.gradle.kts b/build.gradle.kts -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/build.gradle.kts -+++ b/build.gradle.kts -@@ -0,0 +0,0 @@ dependencies { - all its classes to check if they are plugins. - Scanning takes about 1-2 seconds so adding this speeds up the server start. - */ -- implementation("org.apache.logging.log4j:log4j-core:2.14.1") // Paper - implementation -- annotationProcessor("org.apache.logging.log4j:log4j-core:2.14.1") // Paper - Needed to generate meta for our Log4j plugins -+ implementation("org.apache.logging.log4j:log4j-core:2.17.1") // Paper - implementation -+ annotationProcessor("org.apache.logging.log4j:log4j-core:2.17.1") // Paper - Needed to generate meta for our Log4j plugins - // Paper end - implementation("org.apache.logging.log4j:log4j-iostreams:2.17.1") // Paper -+ implementation("org.apache.logging.log4j:log4j-slf4j18-impl:2.17.1") // Paper - implementation("org.ow2.asm:asm:9.3") - implementation("org.ow2.asm:asm-commons:9.3") // Paper - ASM event executor generation - implementation("org.spongepowered:configurate-yaml:4.1.2") // Paper - config files