From 4d854e66b80dad9898d71a0f0b1f83cd39b97119 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 30 Jun 2025 11:39:07 +0200 Subject: [PATCH] Disable MC-163962 fix by default It changes restocking behavior pretty drastically compared to Vanilla, keep it as a config option for those that want it Fixes #12761 --- .../minecraft/world/item/trading/MerchantOffer.java.patch | 7 +++---- .../papermc/paper/configuration/GlobalConfiguration.java | 2 ++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/world/item/trading/MerchantOffer.java.patch b/paper-server/patches/sources/net/minecraft/world/item/trading/MerchantOffer.java.patch index a6c1d0753e2..6d81142a7b5 100644 --- a/paper-server/patches/sources/net/minecraft/world/item/trading/MerchantOffer.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/item/trading/MerchantOffer.java.patch @@ -63,12 +63,11 @@ ); } -@@ -124,7 +_,7 @@ - } +@@ -125,6 +_,7 @@ public void updateDemand() { -- this.demand = this.demand + this.uses - (this.maxUses - this.uses); -+ this.demand = Math.max(0, this.demand + this.uses - (this.maxUses - this.uses)); // Paper - Fix MC-163962 + this.demand = this.demand + this.uses - (this.maxUses - this.uses); ++ if (io.papermc.paper.configuration.GlobalConfiguration.get().misc.preventNegativeVillagerDemand) this.demand = Math.max(0, this.demand); // Paper - Fix MC-163962 } public ItemStack assemble() { diff --git a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java index 17247f17746..c5a491acfe4 100644 --- a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -357,6 +357,8 @@ public class GlobalConfiguration extends ConfigurationPart { @Comment("Defines how many orbs groups can exist in an area.") @Constraints.Min(1) public IntOr.Default xpOrbGroupsPerArea = IntOr.Default.USE_DEFAULT; + @Comment("See Fix MC-163962; prevent villager demand from going negative.") + public boolean preventNegativeVillagerDemand = false; } public BlockUpdates blockUpdates;