|
64 | 64 | ItemStack itemStack = item.copy(); |
65 | 65 | ItemStack item1 = this.inputSlots.getItem(1); |
66 | 66 | ItemEnchantments.Mutable mutable = new ItemEnchantments.Mutable(EnchantmentHelper.getEnchantmentsForCrafting(itemStack)); |
67 | | -@@ -191,23 +_,36 @@ |
| 67 | +@@ -191,23 +_,34 @@ |
68 | 68 | int intValue = entry.getIntValue(); |
69 | 69 | intValue = level == intValue ? intValue + 1 : Math.max(intValue, level); |
70 | 70 | Enchantment enchantment = holder.value(); |
|
77 | 77 | canEnchant = true; |
78 | 78 | } |
79 | 79 |
|
80 | | -- for (Holder<Enchantment> holder1 : mutable.keySet()) { |
81 | | -+ // Purpur start - Config to allow unsafe enchants |
82 | | -+ java.util.Iterator<Holder<Enchantment>> mutableIterator = mutable.keySet().iterator(); |
83 | | -+ while (mutableIterator.hasNext()) { |
84 | | -+ Holder<Enchantment> holder1 = mutableIterator.next(); |
85 | | -+ // Purpur end - Config to allow unsafe enchants |
| 80 | ++ java.util.Set<Holder<Enchantment>> removedEnchantments = new java.util.HashSet<>(); // Purpur - Config to allow unsafe enchants |
| 81 | + for (Holder<Enchantment> holder1 : mutable.keySet()) { |
86 | 82 | if (!holder1.equals(holder) && !Enchantment.areCompatible(holder, holder1)) { |
87 | 83 | - canEnchant = false; |
88 | | -- i++; |
89 | | -+ canEnchant1 = this.canDoUnsafeEnchants || org.purpurmc.purpur.PurpurConfig.allowIncompatibleEnchants; // Purpur - Anvil API // Purpur - flag3 -> canEnchant1 - Config to allow unsafe enchants |
| 84 | ++ canEnchant1 = this.canDoUnsafeEnchants || org.purpurmc.purpur.PurpurConfig.allowIncompatibleEnchants; // Purpur - Anvil API // Purpur - canEnchant -> canEnchant1 - Config to allow unsafe enchants |
90 | 85 | + // Purpur start - Config to allow unsafe enchants |
91 | 86 | + if (!canEnchant1 && org.purpurmc.purpur.PurpurConfig.replaceIncompatibleEnchants) { |
92 | | -+ mutableIterator.remove(); // replace current enchant with the incompatible one trying to be applied // TODO: is this needed? |
| 87 | ++ removedEnchantments.add(holder1); |
93 | 88 | + canEnchant1 = true; |
94 | 89 | + } |
95 | 90 | + // Purpur end - Config to allow unsafe enchants |
96 | | -+ ++i; |
| 91 | + i++; |
97 | 92 | } |
98 | 93 | } |
| 94 | ++ mutable.removeIf(removedEnchantments::contains); // Purpur - Config to allow unsafe enchants |
99 | 95 |
|
100 | 96 | - if (!canEnchant) { |
101 | 97 | + if (!canEnchant || !canEnchant1) { // Purpur - Config to allow unsafe enchants |
|
0 commit comments