From a6ce734fd0f9c6e86ab3eab17e7490de95bd0e64 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Sat, 8 Mar 2025 05:13:25 +0100 Subject: [PATCH] Fix zombie villager not dropping item once cured (#12230) --- .../sources/net/minecraft/world/entity/Mob.java.patch | 10 ++++++++++ .../world/entity/monster/ZombieVillager.java.patch | 8 -------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/world/entity/Mob.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/Mob.java.patch index 6e9bf95ddf..deac638824 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/Mob.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/Mob.java.patch @@ -326,6 +326,16 @@ } } } +@@ -981,7 +_,9 @@ + double d = this.getEquipmentDropChance(equipmentSlot); + if (d > 1.0) { + this.setItemSlot(equipmentSlot, ItemStack.EMPTY); ++ this.forceDrops = true; // Paper - Add missing forceDrop toggles + this.spawnAtLocation(level, itemBySlot); ++ this.forceDrops = false; // Paper - Add missing forceDrop toggles + } + } + } @@ -1269,6 +_,22 @@ public <T extends Mob> T convertTo( EntityType<T> entityType, ConversionParams conversionParams, EntitySpawnReason spawnReason, ConversionParams.AfterConversion<T> afterConversion diff --git a/paper-server/patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch index d86b3f0005..220356954d 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch @@ -57,14 +57,6 @@ EntityType.VILLAGER, ConversionParams.single(this, false, false), villager -> { -@@ -223,6 +_,7 @@ - SlotAccess slot = villager.getSlot(equipmentSlot.getIndex() + 300); - slot.set(this.getItemBySlot(equipmentSlot)); - } -+ this.forceDrops = false; // CraftBukkit - - villager.setVillagerData(this.getVillagerData()); - if (this.gossips != null) { @@ -237,19 +_,24 @@ villager.finalizeSpawn(serverLevel, serverLevel.getCurrentDifficultyAt(villager.blockPosition()), EntitySpawnReason.CONVERSION, null); villager.refreshBrain(serverLevel);