1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Check for conflicting enchantments, this can probably be better

This commit is contained in:
ProfElements 2021-01-14 16:02:33 -06:00
parent 5cd1d8cb22
commit 58eca5affa

View File

@ -104,10 +104,18 @@ public class BookBinder extends AContainer {
@ParametersAreNonnullByDefault
private Map<Enchantment, Integer> combineEnchantments(Map<Enchantment, Integer> ech1, Map<Enchantment, Integer> ech2) {
Map<Enchantment, Integer> enchantments = new HashMap<>();
boolean conflicts = false;
enchantments.putAll(ech1);
for (Map.Entry<Enchantment, Integer> entry : ech2.entrySet()) {
enchantments.merge(entry.getKey(), entry.getValue(), (a, b) -> {
for (Map.Entry<Enchantment, Integer> 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;