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 a6c1d0753e..6d81142a7b 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 17247f1774..c5a491acfe 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;