From 63ab4d612d547bcb890679cdcecb214028bf1ca3 Mon Sep 17 00:00:00 2001 From: Krakenied Date: Sun, 16 Jun 2024 18:18:04 +0200 Subject: [PATCH] Re-add MC-3304 projectile looting fix patch --- build-data/dev-imports.txt | 10 -- ...on-to-fix-MC-3304-projectile-looting.patch | 101 ++++++++++++++++++ ...ow-creeper-to-encircle-target-when-.patch} | 0 ...API.patch => 0265-Fire-Immunity-API.patch} | 2 +- ...eport-to-spawn-on-nether-ceiling-da.patch} | 2 +- ...t.patch => 0267-Added-got-ram-event.patch} | 0 ... 0268-Log-skipped-entity-s-position.patch} | 2 +- ....patch => 0269-End-Crystal-Cramming.patch} | 0 ...eacon-effects-when-covered-by-tinte.patch} | 0 ...ute-clamping-and-armor-limit-config.patch} | 6 +- ...ig-to-remove-explosion-radius-clamp.patch} | 0 ...ble-sugarcane-cactus-and-netherwart.patch} | 0 ....patch => 0274-Add-PreExplodeEvents.patch} | 0 ...5-Improve-output-of-plugins-command.patch} | 0 ....patch => 0276-Make-GUI-Great-Again.patch} | 0 ...ee-API.patch => 0277-Stored-Bee-API.patch} | 0 ...patch => 0278-Shears-can-defuse-TNT.patch} | 0 ...-API.patch => 0279-Explorer-Map-API.patch} | 0 ...Option-Ocelot-Spawn-Under-Sea-Level.patch} | 0 ...-piglins-to-ignore-gold-trimmed-arm.patch} | 0 ...ways-showing-item-in-player-death-m.patch} | 4 +- ...0283-place-end-crystal-on-any-block.patch} | 0 ...able-the-copper-oxidation-proximity.patch} | 0 ...5-register-minecraft-debug-commands.patch} | 4 +- ...Configurable-villager-search-radius.patch} | 0 ...-to-make-ravagers-afraid-of-rabbits.patch} | 0 ...=> 0288-config-for-startup-commands.patch} | 4 +- ...onfig-to-reverse-bubble-column-flow.patch} | 2 +- ...tch => 0290-Adopt-MaterialRerouting.patch} | 0 ...on-to-fix-MC-3304-projectile-looting.patch | 101 ------------------ 30 files changed, 114 insertions(+), 124 deletions(-) delete mode 100644 build-data/dev-imports.txt create mode 100644 patches/server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch rename patches/server/{0263-Add-option-to-allow-creeper-to-encircle-target-when-.patch => 0264-Add-option-to-allow-creeper-to-encircle-target-when-.patch} (100%) rename patches/server/{0264-Fire-Immunity-API.patch => 0265-Fire-Immunity-API.patch} (97%) rename patches/server/{0265-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch => 0266-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch} (96%) rename patches/server/{0266-Added-got-ram-event.patch => 0267-Added-got-ram-event.patch} (100%) rename patches/server/{0267-Log-skipped-entity-s-position.patch => 0268-Log-skipped-entity-s-position.patch} (91%) rename patches/server/{0268-End-Crystal-Cramming.patch => 0269-End-Crystal-Cramming.patch} (100%) rename patches/server/{0269-Option-to-allow-beacon-effects-when-covered-by-tinte.patch => 0270-Option-to-allow-beacon-effects-when-covered-by-tinte.patch} (100%) rename patches/server/{0270-Add-attribute-clamping-and-armor-limit-config.patch => 0271-Add-attribute-clamping-and-armor-limit-config.patch} (91%) rename patches/server/{0271-Config-to-remove-explosion-radius-clamp.patch => 0272-Config-to-remove-explosion-radius-clamp.patch} (100%) rename patches/server/{0272-bonemealable-sugarcane-cactus-and-netherwart.patch => 0273-bonemealable-sugarcane-cactus-and-netherwart.patch} (100%) rename patches/server/{0273-Add-PreExplodeEvents.patch => 0274-Add-PreExplodeEvents.patch} (100%) rename patches/server/{0274-Improve-output-of-plugins-command.patch => 0275-Improve-output-of-plugins-command.patch} (100%) rename patches/server/{0275-Make-GUI-Great-Again.patch => 0276-Make-GUI-Great-Again.patch} (100%) rename patches/server/{0276-Stored-Bee-API.patch => 0277-Stored-Bee-API.patch} (100%) rename patches/server/{0277-Shears-can-defuse-TNT.patch => 0278-Shears-can-defuse-TNT.patch} (100%) rename patches/server/{0278-Explorer-Map-API.patch => 0279-Explorer-Map-API.patch} (100%) rename patches/server/{0279-Option-Ocelot-Spawn-Under-Sea-Level.patch => 0280-Option-Ocelot-Spawn-Under-Sea-Level.patch} (100%) rename patches/server/{0280-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch => 0281-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch} (100%) rename patches/server/{0281-Add-option-for-always-showing-item-in-player-death-m.patch => 0282-Add-option-for-always-showing-item-in-player-death-m.patch} (95%) rename patches/server/{0282-place-end-crystal-on-any-block.patch => 0283-place-end-crystal-on-any-block.patch} (100%) rename patches/server/{0283-Add-option-to-disable-the-copper-oxidation-proximity.patch => 0284-Add-option-to-disable-the-copper-oxidation-proximity.patch} (100%) rename patches/server/{0284-register-minecraft-debug-commands.patch => 0285-register-minecraft-debug-commands.patch} (95%) rename patches/server/{0285-Configurable-villager-search-radius.patch => 0286-Configurable-villager-search-radius.patch} (100%) rename patches/server/{0286-option-to-make-ravagers-afraid-of-rabbits.patch => 0287-option-to-make-ravagers-afraid-of-rabbits.patch} (100%) rename patches/server/{0287-config-for-startup-commands.patch => 0288-config-for-startup-commands.patch} (94%) rename patches/server/{0288-Config-to-reverse-bubble-column-flow.patch => 0289-Config-to-reverse-bubble-column-flow.patch} (96%) rename patches/server/{0289-Adopt-MaterialRerouting.patch => 0290-Adopt-MaterialRerouting.patch} (100%) delete mode 100644 patches/unapplied-server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch diff --git a/build-data/dev-imports.txt b/build-data/dev-imports.txt deleted file mode 100644 index b818b96e2..000000000 --- a/build-data/dev-imports.txt +++ /dev/null @@ -1,10 +0,0 @@ -# You can use this file to import files from minecraft libraries into the project -# format: -# -# both fully qualified and a file based syntax are accepted for : -# authlib com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java -# datafixerupper com.mojang.datafixers.DataFixerBuilder -# datafixerupper com/mojang/datafixers/util/Either.java -# To import classes from the vanilla Minecraft jar use `minecraft` as the artifactId: -# minecraft net.minecraft.world.level.entity.LevelEntityGetterAdapter -# minecraft net/minecraft/world/level/entity/LevelEntityGetter.java diff --git a/patches/server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch new file mode 100644 index 000000000..31f01beba --- /dev/null +++ b/patches/server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch @@ -0,0 +1,101 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MelnCat +Date: Sat, 1 Oct 2022 11:33:15 -0700 +Subject: [PATCH] Add an option to fix MC-3304 (projectile looting) + + +diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +index 8d8944a0455b3401d84cab636d61447e7d51ab19..10823d1d75660320e067df480d94d40f6b52ed16 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +@@ -80,6 +80,7 @@ public abstract class AbstractArrow extends Projectile { + public ItemStack pickupItemStack; + @Nullable + public ItemStack firedFromWeapon; ++ public int lootingLevel; // Purpur - Add an option to fix MC-3304 projectile looting + + // Spigot Start + @Override +@@ -589,6 +590,12 @@ public abstract class AbstractArrow extends Projectile { + return this.firedFromWeapon; + } + ++ // Purpur start - Add an option to fix MC-3304 projectile looting ++ public void setLootingLevel(int lootingLevel) { ++ this.lootingLevel = lootingLevel; ++ } ++ // Purpur end - Add an option to fix MC-3304 projectile looting ++ + protected SoundEvent getDefaultHitGroundSoundEvent() { + return SoundEvents.ARROW_HIT; + } +diff --git a/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java b/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java +index 32dd0b13a0819f597d8a93c6bc3a155781067544..de3ec96fac9f0a1613a6e74a77d25844634bb572 100644 +--- a/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java ++++ b/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java +@@ -110,6 +110,13 @@ public abstract class ProjectileWeaponItem extends Item { + entityarrow.setCritArrow(true); + } + ++ // Purpur start - Add an option to fix MC-3304 projectile looting ++ int lootingLevel = EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.LOOTING, weaponStack); ++ if (lootingLevel > 0) { ++ entityarrow.setLootingLevel(lootingLevel); ++ } ++ // Purpur end - Add an option to fix MC-3304 projectile looting ++ + return entityarrow; + } + +diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java +index 1be074074283f12543ac771ac9201580e7736289..799fee6dc9c51d6e4780df53daa5e5b794b29085 100644 +--- a/src/main/java/net/minecraft/world/item/TridentItem.java ++++ b/src/main/java/net/minecraft/world/item/TridentItem.java +@@ -86,6 +86,13 @@ public class TridentItem extends Item implements ProjectileItem { + entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; + } + ++ // Purpur start - Add an option to fix MC-3304 projectile looting ++ int lootingLevel = EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.LOOTING, stack); ++ if (lootingLevel > 0) { ++ entitythrowntrident.setLootingLevel(lootingLevel); ++ } ++ // Purpur end - Add an option to fix MC-3304 projectile looting ++ + // CraftBukkit start + // Paper start - PlayerLaunchProjectileEvent + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) entitythrowntrident.getBukkitEntity()); +diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/EnchantedCountIncreaseFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/EnchantedCountIncreaseFunction.java +index d86189bd446c7cd7215cfbcef72b2125a064e3d1..144352e62ef091914c9458cd167055ce85fd1fee 100644 +--- a/src/main/java/net/minecraft/world/level/storage/loot/functions/EnchantedCountIncreaseFunction.java ++++ b/src/main/java/net/minecraft/world/level/storage/loot/functions/EnchantedCountIncreaseFunction.java +@@ -66,6 +66,13 @@ public class EnchantedCountIncreaseFunction extends LootItemConditionalFunction + Entity entity = context.getParamOrNull(LootContextParams.ATTACKING_ENTITY); + if (entity instanceof LivingEntity livingEntity) { + int i = EnchantmentHelper.getEnchantmentLevel(this.enchantment, livingEntity); ++ // Purpur start - Add an option to fix MC-3304 projectile looting ++ if (org.purpurmc.purpur.PurpurConfig.fixProjectileLootingTransfer && ++ context.getParamOrNull(LootContextParams.DIRECT_ATTACKING_ENTITY) ++ instanceof net.minecraft.world.entity.projectile.AbstractArrow arrow) { ++ i = arrow.lootingLevel; ++ } ++ // Purpur end - Add an option to fix MC-3304 projectile looting + if (i == 0) { + return stack; + } +diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +index 72e918ad137dbfe8cde8b179f352224c8b2a1dad..2f05f9c7f86a30b75b4fcaff8a95d0563ed8c9ad 100644 +--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java ++++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +@@ -496,6 +496,11 @@ public class PurpurConfig { + usernameValidCharactersPattern = java.util.regex.Pattern.compile(setPattern == null || setPattern.isBlank() ? defaultPattern : setPattern); + } + ++ public static boolean fixProjectileLootingTransfer = false; ++ private static void fixProjectileLootingTransfer() { ++ fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer); ++ } ++ + private static void blastResistanceSettings() { + getMap("settings.blast-resistance-overrides", Collections.emptyMap()).forEach((blockId, value) -> { + Block block = BuiltInRegistries.BLOCK.get(ResourceLocation.withDefaultNamespace(blockId)); diff --git a/patches/server/0263-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0264-Add-option-to-allow-creeper-to-encircle-target-when-.patch similarity index 100% rename from patches/server/0263-Add-option-to-allow-creeper-to-encircle-target-when-.patch rename to patches/server/0264-Add-option-to-allow-creeper-to-encircle-target-when-.patch diff --git a/patches/server/0264-Fire-Immunity-API.patch b/patches/server/0265-Fire-Immunity-API.patch similarity index 97% rename from patches/server/0264-Fire-Immunity-API.patch rename to patches/server/0265-Fire-Immunity-API.patch index 50a775f9e..89e213dad 100644 --- a/patches/server/0264-Fire-Immunity-API.patch +++ b/patches/server/0265-Fire-Immunity-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ede2ac7a4d49604593a70b2777eb808748fb93a8..3e65d58bf6043a0dc3b4c2e4421ee29bdc99272c 100644 +index 5763b9536b85371ed74906df6a13938fd46bd815..6d12da56f191c2889418200397a84b2467b60f17 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -430,6 +430,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess diff --git a/patches/server/0265-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0266-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch similarity index 96% rename from patches/server/0265-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch rename to patches/server/0266-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 613b33cc5..d29cd4690 100644 --- a/patches/server/0265-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0266-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3e65d58bf6043a0dc3b4c2e4421ee29bdc99272c..1c2c7c7a9bed8194d1a886ddd71ec22914a4ece2 100644 +index 6d12da56f191c2889418200397a84b2467b60f17..722208d61c6e363b4e4af0433b8d6390bbdc3eb3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -938,6 +938,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess diff --git a/patches/server/0266-Added-got-ram-event.patch b/patches/server/0267-Added-got-ram-event.patch similarity index 100% rename from patches/server/0266-Added-got-ram-event.patch rename to patches/server/0267-Added-got-ram-event.patch diff --git a/patches/server/0267-Log-skipped-entity-s-position.patch b/patches/server/0268-Log-skipped-entity-s-position.patch similarity index 91% rename from patches/server/0267-Log-skipped-entity-s-position.patch rename to patches/server/0268-Log-skipped-entity-s-position.patch index 0f7c99d9e..7667df401 100644 --- a/patches/server/0267-Log-skipped-entity-s-position.patch +++ b/patches/server/0268-Log-skipped-entity-s-position.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Log skipped entity's position diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 43e7670ab6f22afbf112e430394a95bdc951371a..7148fdcc7411a68082682dcfb82a6927722fb6c1 100644 +index 9cac9f5989cd8f73f247e4a3f901a54c03bc00ef..b4f4addfd35a1961a237fc0ab83e6285a0faeaee 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -625,6 +625,12 @@ public class EntityType implements FeatureElement, EntityTypeT diff --git a/patches/server/0268-End-Crystal-Cramming.patch b/patches/server/0269-End-Crystal-Cramming.patch similarity index 100% rename from patches/server/0268-End-Crystal-Cramming.patch rename to patches/server/0269-End-Crystal-Cramming.patch diff --git a/patches/server/0269-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0270-Option-to-allow-beacon-effects-when-covered-by-tinte.patch similarity index 100% rename from patches/server/0269-Option-to-allow-beacon-effects-when-covered-by-tinte.patch rename to patches/server/0270-Option-to-allow-beacon-effects-when-covered-by-tinte.patch diff --git a/patches/server/0270-Add-attribute-clamping-and-armor-limit-config.patch b/patches/server/0271-Add-attribute-clamping-and-armor-limit-config.patch similarity index 91% rename from patches/server/0270-Add-attribute-clamping-and-armor-limit-config.patch rename to patches/server/0271-Add-attribute-clamping-and-armor-limit-config.patch index 2fd5fe87d..6049b4a5d 100644 --- a/patches/server/0270-Add-attribute-clamping-and-armor-limit-config.patch +++ b/patches/server/0271-Add-attribute-clamping-and-armor-limit-config.patch @@ -39,11 +39,11 @@ index f0703302e7dbbda88de8c648d20d87c55ed9b1e0..a913ebabaa5f443afa987b972355a8f8 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 72e918ad137dbfe8cde8b179f352224c8b2a1dad..f4c89696b2020c8aee85cdcae726e09f43fbcb6f 100644 +index 2f05f9c7f86a30b75b4fcaff8a95d0563ed8c9ad..111250146a1db4d0e2497c0dce0d9f0f1f298ab6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -496,6 +496,16 @@ public class PurpurConfig { - usernameValidCharactersPattern = java.util.regex.Pattern.compile(setPattern == null || setPattern.isBlank() ? defaultPattern : setPattern); +@@ -501,6 +501,16 @@ public class PurpurConfig { + fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer); } + public static boolean clampAttributes = true; diff --git a/patches/server/0271-Config-to-remove-explosion-radius-clamp.patch b/patches/server/0272-Config-to-remove-explosion-radius-clamp.patch similarity index 100% rename from patches/server/0271-Config-to-remove-explosion-radius-clamp.patch rename to patches/server/0272-Config-to-remove-explosion-radius-clamp.patch diff --git a/patches/server/0272-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0273-bonemealable-sugarcane-cactus-and-netherwart.patch similarity index 100% rename from patches/server/0272-bonemealable-sugarcane-cactus-and-netherwart.patch rename to patches/server/0273-bonemealable-sugarcane-cactus-and-netherwart.patch diff --git a/patches/server/0273-Add-PreExplodeEvents.patch b/patches/server/0274-Add-PreExplodeEvents.patch similarity index 100% rename from patches/server/0273-Add-PreExplodeEvents.patch rename to patches/server/0274-Add-PreExplodeEvents.patch diff --git a/patches/server/0274-Improve-output-of-plugins-command.patch b/patches/server/0275-Improve-output-of-plugins-command.patch similarity index 100% rename from patches/server/0274-Improve-output-of-plugins-command.patch rename to patches/server/0275-Improve-output-of-plugins-command.patch diff --git a/patches/server/0275-Make-GUI-Great-Again.patch b/patches/server/0276-Make-GUI-Great-Again.patch similarity index 100% rename from patches/server/0275-Make-GUI-Great-Again.patch rename to patches/server/0276-Make-GUI-Great-Again.patch diff --git a/patches/server/0276-Stored-Bee-API.patch b/patches/server/0277-Stored-Bee-API.patch similarity index 100% rename from patches/server/0276-Stored-Bee-API.patch rename to patches/server/0277-Stored-Bee-API.patch diff --git a/patches/server/0277-Shears-can-defuse-TNT.patch b/patches/server/0278-Shears-can-defuse-TNT.patch similarity index 100% rename from patches/server/0277-Shears-can-defuse-TNT.patch rename to patches/server/0278-Shears-can-defuse-TNT.patch diff --git a/patches/server/0278-Explorer-Map-API.patch b/patches/server/0279-Explorer-Map-API.patch similarity index 100% rename from patches/server/0278-Explorer-Map-API.patch rename to patches/server/0279-Explorer-Map-API.patch diff --git a/patches/server/0279-Option-Ocelot-Spawn-Under-Sea-Level.patch b/patches/server/0280-Option-Ocelot-Spawn-Under-Sea-Level.patch similarity index 100% rename from patches/server/0279-Option-Ocelot-Spawn-Under-Sea-Level.patch rename to patches/server/0280-Option-Ocelot-Spawn-Under-Sea-Level.patch diff --git a/patches/server/0280-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch b/patches/server/0281-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch similarity index 100% rename from patches/server/0280-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch rename to patches/server/0281-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch diff --git a/patches/server/0281-Add-option-for-always-showing-item-in-player-death-m.patch b/patches/server/0282-Add-option-for-always-showing-item-in-player-death-m.patch similarity index 95% rename from patches/server/0281-Add-option-for-always-showing-item-in-player-death-m.patch rename to patches/server/0282-Add-option-for-always-showing-item-in-player-death-m.patch index 5465431e1..09f7d07ed 100644 --- a/patches/server/0281-Add-option-for-always-showing-item-in-player-death-m.patch +++ b/patches/server/0282-Add-option-for-always-showing-item-in-player-death-m.patch @@ -31,10 +31,10 @@ index d95d122601dd47a27e8d82a13b071919c360fe68..4a96d914f8aa6f0c5f13fc85369a311f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index f4c89696b2020c8aee85cdcae726e09f43fbcb6f..63e7532a87963fb37ce84e1040c5dd5d9710aacc 100644 +index 111250146a1db4d0e2497c0dce0d9f0f1f298ab6..8c1b21f6bfb6d92cdd461c8ef7b2dd98b8f7db40 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -566,4 +566,9 @@ public class PurpurConfig { +@@ -571,4 +571,9 @@ public class PurpurConfig { block.fallDistanceMultiplier = fallDistanceMultiplier.floatValue(); }); } diff --git a/patches/server/0282-place-end-crystal-on-any-block.patch b/patches/server/0283-place-end-crystal-on-any-block.patch similarity index 100% rename from patches/server/0282-place-end-crystal-on-any-block.patch rename to patches/server/0283-place-end-crystal-on-any-block.patch diff --git a/patches/server/0283-Add-option-to-disable-the-copper-oxidation-proximity.patch b/patches/server/0284-Add-option-to-disable-the-copper-oxidation-proximity.patch similarity index 100% rename from patches/server/0283-Add-option-to-disable-the-copper-oxidation-proximity.patch rename to patches/server/0284-Add-option-to-disable-the-copper-oxidation-proximity.patch diff --git a/patches/server/0284-register-minecraft-debug-commands.patch b/patches/server/0285-register-minecraft-debug-commands.patch similarity index 95% rename from patches/server/0284-register-minecraft-debug-commands.patch rename to patches/server/0285-register-minecraft-debug-commands.patch index 63a963e44..8263eb438 100644 --- a/patches/server/0284-register-minecraft-debug-commands.patch +++ b/patches/server/0285-register-minecraft-debug-commands.patch @@ -32,10 +32,10 @@ index 824afdc486a50952bf5e32b06509f7952da9bba5..abb60e5cf3ecdb40561510dc53294e30 io.papermc.paper.plugin.PluginInitializerManager.load(optionset); // Paper diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 63e7532a87963fb37ce84e1040c5dd5d9710aacc..2e893884a08f9a0c2f05e1c2c09626b8cc2d280d 100644 +index 8c1b21f6bfb6d92cdd461c8ef7b2dd98b8f7db40..7e1ffdf66be384e68c2ab005a1b439609e4a1a13 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -571,4 +571,9 @@ public class PurpurConfig { +@@ -576,4 +576,9 @@ public class PurpurConfig { private static void playerDeathsAlwaysShowItem() { playerDeathsAlwaysShowItem = getBoolean("settings.player-deaths-always-show-item", playerDeathsAlwaysShowItem); } diff --git a/patches/server/0285-Configurable-villager-search-radius.patch b/patches/server/0286-Configurable-villager-search-radius.patch similarity index 100% rename from patches/server/0285-Configurable-villager-search-radius.patch rename to patches/server/0286-Configurable-villager-search-radius.patch diff --git a/patches/server/0286-option-to-make-ravagers-afraid-of-rabbits.patch b/patches/server/0287-option-to-make-ravagers-afraid-of-rabbits.patch similarity index 100% rename from patches/server/0286-option-to-make-ravagers-afraid-of-rabbits.patch rename to patches/server/0287-option-to-make-ravagers-afraid-of-rabbits.patch diff --git a/patches/server/0287-config-for-startup-commands.patch b/patches/server/0288-config-for-startup-commands.patch similarity index 94% rename from patches/server/0287-config-for-startup-commands.patch rename to patches/server/0288-config-for-startup-commands.patch index f26cae019..4a6b6bb61 100644 --- a/patches/server/0287-config-for-startup-commands.patch +++ b/patches/server/0288-config-for-startup-commands.patch @@ -26,10 +26,10 @@ index 3df64fa31137116aed8b7993cb82164d8d5172cd..40a4273275822a8b3013807a9dd0716a long i; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 2e893884a08f9a0c2f05e1c2c09626b8cc2d280d..99e976afd6f6b4c458f3ad03c80887c76b441b32 100644 +index 7e1ffdf66be384e68c2ab005a1b439609e4a1a13..10f15a76e9443db84d2443dfe5cf9856e0472630 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -576,4 +576,16 @@ public class PurpurConfig { +@@ -581,4 +581,16 @@ public class PurpurConfig { private static void registerMinecraftDebugCommands() { registerMinecraftDebugCommands = getBoolean("settings.register-minecraft-debug-commands", registerMinecraftDebugCommands); } diff --git a/patches/server/0288-Config-to-reverse-bubble-column-flow.patch b/patches/server/0289-Config-to-reverse-bubble-column-flow.patch similarity index 96% rename from patches/server/0288-Config-to-reverse-bubble-column-flow.patch rename to patches/server/0289-Config-to-reverse-bubble-column-flow.patch index c701920b4..039a301d4 100644 --- a/patches/server/0288-Config-to-reverse-bubble-column-flow.patch +++ b/patches/server/0289-Config-to-reverse-bubble-column-flow.patch @@ -22,7 +22,7 @@ index 4c1f20fafdbd86011959cc2d4983b6c2f8e87a5f..78679c2c26a36cf08cf3ffe78617d97d } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 99e976afd6f6b4c458f3ad03c80887c76b441b32..cb2b85d997614df948b0a2ea8f4f792d5b7e973b 100644 +index 10f15a76e9443db84d2443dfe5cf9856e0472630..aea73061f4bd47c7307d6fdf0929765f5258cafc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -343,6 +343,8 @@ public class PurpurConfig { diff --git a/patches/server/0289-Adopt-MaterialRerouting.patch b/patches/server/0290-Adopt-MaterialRerouting.patch similarity index 100% rename from patches/server/0289-Adopt-MaterialRerouting.patch rename to patches/server/0290-Adopt-MaterialRerouting.patch diff --git a/patches/unapplied-server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/unapplied-server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch deleted file mode 100644 index 6755dbff9..000000000 --- a/patches/unapplied-server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: MelnCat -Date: Sat, 1 Oct 2022 11:33:15 -0700 -Subject: [PATCH] Add an option to fix MC-3304 (projectile looting) - - -diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 342eaa0e3b053e9b39dc58fa92cd18cac446a844..06f7bc4d8d6679d6625a8d392777722fc97739ba 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -@@ -77,6 +77,7 @@ public abstract class AbstractArrow extends Projectile { - @Nullable - private List piercedAndKilledEntities; - public ItemStack pickupItemStack; -+ public int lootingLevel; // Purpur - - // Spigot Start - @Override -@@ -655,6 +656,12 @@ public abstract class AbstractArrow extends Projectile { - this.knockback = punch; - } - -+ // Purpur start -+ public void setLootingLevel(int looting) { -+ this.lootingLevel = looting; -+ } -+ // Purpur end -+ - public int getKnockback() { - return this.knockback; - } -diff --git a/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java b/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java -index d27e83c08c45b8514207f26e48ceb1a91ded94be..8f01772a7b06b2acf96a3f922cb9b481f634680b 100644 ---- a/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java -+++ b/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java -@@ -131,6 +131,14 @@ public abstract class ProjectileWeaponItem extends Item { - entityarrow.setPierceLevel((byte) k); - } - -+ // Purpur start -+ int lootingLevel = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.LOOTING, weaponStack); -+ -+ if (lootingLevel > 0) { -+ entityarrow.setLootingLevel(lootingLevel); -+ } -+ // Purpur end -+ - return entityarrow; - } - -diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index 85dc79b9b969fa0cbf6964cb26bac139fa55710a..905a020dd7b365d51d5addadbbeb9555d03c5238 100644 ---- a/src/main/java/net/minecraft/world/item/TridentItem.java -+++ b/src/main/java/net/minecraft/world/item/TridentItem.java -@@ -81,6 +81,14 @@ public class TridentItem extends Item implements ProjectileItem { - entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; - } - -+ // Purpur start -+ int lootingLevel = EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.LOOTING, stack); -+ -+ if (lootingLevel > 0) { -+ entitythrowntrident.setLootingLevel(lootingLevel); -+ } -+ // Purpur end -+ - // CraftBukkit start - // Paper start - PlayerLaunchProjectileEvent - com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) entitythrowntrident.getBukkitEntity()); -diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java -index cfe953bc924f46b570e37395ac0f05ebcb82eb39..5500e7ada2dd783cc1317968a3e54696bdd73bf8 100644 ---- a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java -+++ b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java -@@ -57,6 +57,13 @@ public class LootingEnchantFunction extends LootItemConditionalFunction { - - if (entity instanceof LivingEntity) { - int i = EnchantmentHelper.getMobLooting((LivingEntity) entity); -+ // Purpur start -+ if (org.purpurmc.purpur.PurpurConfig.fixProjectileLootingTransfer && -+ context.getParamOrNull(LootContextParams.DIRECT_KILLER_ENTITY) -+ instanceof net.minecraft.world.entity.projectile.AbstractArrow arrow) { -+ i = arrow.lootingLevel; -+ } -+ // Purpur end - // CraftBukkit start - use lootingModifier if set by plugin - if (context.hasParam(LootContextParams.LOOTING_MOD)) { - i = context.getParamOrNull(LootContextParams.LOOTING_MOD); -diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 62612451c23bb146e82f4082ca8677e5dc57a08f..3b3d5bd9e645f440e033abd3c234a017972efa59 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -497,4 +497,9 @@ public class PurpurConfig { - String setPattern = getString("settings.username-valid-characters", defaultPattern); - usernameValidCharactersPattern = java.util.regex.Pattern.compile(setPattern == null || setPattern.isBlank() ? defaultPattern : setPattern); - } -+ -+ public static boolean fixProjectileLootingTransfer = false; -+ private static void fixProjectileLootingTransfer() { -+ fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer); -+ } - }