From 58eca5affa12361d6547435f746a9f3f839bd831 Mon Sep 17 00:00:00 2001 From: ProfElements Date: Thu, 14 Jan 2021 16:02:33 -0600 Subject: [PATCH] Check for conflicting enchantments, this can probably be better --- .../items/electric/machines/BookBinder.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/BookBinder.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/BookBinder.java index 3830df224..82bb001ca 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/BookBinder.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/BookBinder.java @@ -104,10 +104,18 @@ public class BookBinder extends AContainer { @ParametersAreNonnullByDefault private Map combineEnchantments(Map ech1, Map ech2) { Map enchantments = new HashMap<>(); + boolean conflicts = false; enchantments.putAll(ech1); for (Map.Entry entry : ech2.entrySet()) { - enchantments.merge(entry.getKey(), entry.getValue(), (a, b) -> { + for (Map.Entry conflictsWith : enchantments.entrySet()) { + if (entry.getKey().conflictsWith(conflictsWith.getKey())) { + conflicts = true; + } + } + + if (!conflicts) { + enchantments.merge(entry.getKey(), entry.getValue(), (a, b) -> { if (a == b) { if (hasCustomMaxLevel.getValue()) { return a + 1 > customMaxLevel.getValue() ? customMaxLevel.getValue() : a + 1; @@ -123,9 +131,10 @@ public class BookBinder extends AContainer { } else { return highestLevel; } - + } - }); + }); + } } return enchantments;