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());
|
enchantMeta.addStoredEnchant(entry.getKey(), entry.getValue(), bypassVanillaMaxLevel.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (enchantMeta.getStoredEnchants().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
book.setItemMeta(enchantMeta);
|
book.setItemMeta(enchantMeta);
|
||||||
|
|
||||||
MachineRecipe recipe = new MachineRecipe(25 * (enchantments.size() / this.getSpeed()), new ItemStack[] {target, item}, new ItemStack[] {book});
|
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> entry : ech2.entrySet()) {
|
||||||
for (Map.Entry<Enchantment, Integer> conflictsWith : enchantments.entrySet()) {
|
for (Map.Entry<Enchantment, Integer> conflictsWith : enchantments.entrySet()) {
|
||||||
if (entry.getKey().conflictsWith(conflictsWith.getKey())) {
|
if (entry.getKey().conflictsWith(conflictsWith.getKey())) {
|
||||||
|
if (entry.getKey() == conflictsWith.getKey()) {
|
||||||
|
|
||||||
|
} else {
|
||||||
conflicts = true;
|
conflicts = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!conflicts) {
|
if (!conflicts) {
|
||||||
enchantments.merge(entry.getKey(), entry.getValue(), (a, b) -> {
|
enchantments.merge(entry.getKey(), entry.getValue(), (a, b) -> {
|
||||||
|
int enchantMaxLevel = entry.getKey().getMaxLevel();
|
||||||
|
|
||||||
if (a == b) {
|
if (a == b) {
|
||||||
|
if (enchantMaxLevel <= a) {
|
||||||
|
return enchantMaxLevel;
|
||||||
|
}
|
||||||
if (hasCustomMaxLevel.getValue()) {
|
if (hasCustomMaxLevel.getValue()) {
|
||||||
return a + 1 > customMaxLevel.getValue() ? customMaxLevel.getValue() : a + 1;
|
return a + 1 > customMaxLevel.getValue() ? customMaxLevel.getValue() : a + 1;
|
||||||
} else {
|
} else {
|
||||||
@ -126,6 +140,10 @@ public class BookBinder extends AContainer {
|
|||||||
} else {
|
} else {
|
||||||
int highestLevel = Math.max(a, b);
|
int highestLevel = Math.max(a, b);
|
||||||
|
|
||||||
|
if (enchantMaxLevel <= highestLevel) {
|
||||||
|
return enchantMaxLevel;
|
||||||
|
}
|
||||||
|
|
||||||
if (hasCustomMaxLevel.getValue()) {
|
if (hasCustomMaxLevel.getValue()) {
|
||||||
return highestLevel > customMaxLevel.getValue() ? customMaxLevel.getValue() : highestLevel;
|
return highestLevel > customMaxLevel.getValue() ? customMaxLevel.getValue() : highestLevel;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user