From 0f4af9e7353e6526d93ff5884c67db6e38c1535c Mon Sep 17 00:00:00 2001 From: Josh Roy <10731363+JRoy@users.noreply.github.com> Date: Sun, 2 Apr 2023 17:45:46 -0400 Subject: [PATCH] Use strict comparison for potions in trade signs (#5260) --- .../src/main/java/com/earth2me/essentials/signs/SignTrade.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Essentials/src/main/java/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/main/java/com/earth2me/essentials/signs/SignTrade.java index 96aa6f08d..3bfa4848c 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/signs/SignTrade.java +++ b/Essentials/src/main/java/com/earth2me/essentials/signs/SignTrade.java @@ -87,6 +87,9 @@ public class SignTrade extends EssentialsSign { final Trade trade = getTrade(sign, 2, AmountType.COST, false, true, ess); ItemStack stack = Inventories.getItemInHand(player.getBase()); if (trade.getItemStack() != null && stack != null && !MaterialUtil.isAir(stack.getType()) && trade.getItemStack().getType() == stack.getType() && MaterialUtil.getDamage(trade.getItemStack()) == MaterialUtil.getDamage(stack) && trade.getItemStack().getEnchantments().equals(stack.getEnchantments())) { + if (MaterialUtil.isPotion(trade.getItemStack().getType()) && !trade.getItemStack().isSimilar(stack)) { + return null; + } final int amount = trade.getItemStack().getAmount(); if (Inventories.containsAtLeast(player.getBase(), trade.getItemStack(), amount)) { stack = stack.clone();