diff --git a/Plugin/pom.xml b/Plugin/pom.xml
index 91e00770..5c4c8f5d 100644
--- a/Plugin/pom.xml
+++ b/Plugin/pom.xml
@@ -245,7 +245,7 @@
com.comphenix.protocol
ProtocolLib
- 4.5.0
+ 4.6.0-SNAPSHOT
provided
diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/display/DisplayPacketAdapter.java b/Plugin/src/main/java/com/willfp/ecoenchants/display/DisplayPacketAdapter.java
index 29360ad7..7e6571cc 100644
--- a/Plugin/src/main/java/com/willfp/ecoenchants/display/DisplayPacketAdapter.java
+++ b/Plugin/src/main/java/com/willfp/ecoenchants/display/DisplayPacketAdapter.java
@@ -4,15 +4,18 @@ import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketEvent;
import com.willfp.ecoenchants.Main;
+import org.bukkit.inventory.MerchantRecipe;
import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
public class DisplayPacketAdapter extends PacketAdapter {
private static final List packets = Arrays.asList(
PacketType.Play.Server.WINDOW_ITEMS,
PacketType.Play.Server.SET_SLOT,
- PacketType.Play.Client.SET_CREATIVE_SLOT
+ PacketType.Play.Client.SET_CREATIVE_SLOT,
+ PacketType.Play.Server.OPEN_WINDOW_MERCHANT
);
public DisplayPacketAdapter() {
@@ -34,6 +37,24 @@ public class DisplayPacketAdapter extends PacketAdapter {
item = EnchantDisplay.displayEnchantments(item);
return item;
});
+ } else if (PacketType.Play.Server.OPEN_WINDOW_MERCHANT.equals(packetType)) {
+ List merchantRecipes = event.getPacket().getMerchantRecipeLists().readSafely(0);
+ if (merchantRecipes != null) {
+ List newList =
+ merchantRecipes.stream().map(oldRecipe -> {
+ MerchantRecipe recipe =
+ new MerchantRecipe(EnchantDisplay.displayEnchantments(oldRecipe.getResult()),
+ oldRecipe.getUses(),
+ oldRecipe.getMaxUses(),
+ oldRecipe.hasExperienceReward(),
+ oldRecipe.getVillagerExperience(),
+ oldRecipe.getPriceMultiplier());
+ recipe.setIngredients(oldRecipe.getIngredients());
+ return recipe;
+ }).collect(Collectors.toList());
+
+ event.getPacket().getMerchantRecipeLists().writeSafely(0, newList);
+ }
}
}