mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Fix #2805, make sure the book binder doesnt kill overleveled enchantments
This commit is contained in:
parent
4019b9612d
commit
92ed16473e
@ -63,6 +63,10 @@ public class BookBinder extends AContainer {
|
||||
enchantMeta.addStoredEnchant(entry.getKey(), entry.getValue(), bypassVanillaMaxLevel.getValue());
|
||||
}
|
||||
|
||||
if (enchantMeta.getStoredEnchants().isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
book.setItemMeta(enchantMeta);
|
||||
|
||||
MachineRecipe recipe = new MachineRecipe(25 * (enchantments.size() / this.getSpeed()), new ItemStack[] {target, item}, new ItemStack[] {book});
|
||||
@ -110,13 +114,23 @@ public class BookBinder extends AContainer {
|
||||
for (Map.Entry<Enchantment, Integer> entry : ech2.entrySet()) {
|
||||
for (Map.Entry<Enchantment, Integer> conflictsWith : enchantments.entrySet()) {
|
||||
if (entry.getKey().conflictsWith(conflictsWith.getKey())) {
|
||||
if (entry.getKey() == conflictsWith.getKey()) {
|
||||
|
||||
} else {
|
||||
conflicts = true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!conflicts) {
|
||||
enchantments.merge(entry.getKey(), entry.getValue(), (a, b) -> {
|
||||
int enchantMaxLevel = entry.getKey().getMaxLevel();
|
||||
|
||||
if (a == b) {
|
||||
if (enchantMaxLevel <= a) {
|
||||
return enchantMaxLevel;
|
||||
}
|
||||
if (hasCustomMaxLevel.getValue()) {
|
||||
return a + 1 > customMaxLevel.getValue() ? customMaxLevel.getValue() : a + 1;
|
||||
} else {
|
||||
@ -126,6 +140,10 @@ public class BookBinder extends AContainer {
|
||||
} else {
|
||||
int highestLevel = Math.max(a, b);
|
||||
|
||||
if (enchantMaxLevel <= highestLevel) {
|
||||
return enchantMaxLevel;
|
||||
}
|
||||
|
||||
if (hasCustomMaxLevel.getValue()) {
|
||||
return highestLevel > customMaxLevel.getValue() ? customMaxLevel.getValue() : highestLevel;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user