Skip to content

Commit c7d7752

Browse files
committed
Fix switching between silk and fortune units not properly updating the applied enchantments
1 parent 0604311 commit c7d7752

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

src/main/java/mekanism/common/content/gear/ModuleContainer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,9 @@ private <MODULE extends ICustomModule<MODULE>> ItemEnchantments.Mutable updateEn
226226
Optional<Reference<Enchantment>> enchantment = provider.holder(enchantmentBased.enchantment());
227227
int level = getEnchantmentLevel(module);
228228
if (enchantment.isPresent() && enchantments.getLevel(enchantment.get()) != level) {
229-
adjustedEnchantments = new ItemEnchantments.Mutable(enchantments);
229+
if (adjustedEnchantments == null) {
230+
adjustedEnchantments = new ItemEnchantments.Mutable(enchantments);
231+
}
230232
adjustedEnchantments.set(enchantment.get(), level);
231233
}
232234
}

src/main/java/mekanism/common/item/gear/ItemMekaSuitArmor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,10 @@ public ItemEnchantments getAllEnchantments(@NotNull ItemStack stack, RegistryLoo
212212
IModuleContainer container = IModuleHelper.INSTANCE.getModuleContainer(stack);
213213
if (container != null) {
214214
ItemEnchantments moduleEnchantments = container.moduleBasedEnchantments();
215-
if (!moduleEnchantments.isEmpty()) {
215+
if (enchantments.isEmpty()) {
216+
//Skip copying if there are no builtin enchantments
217+
return moduleEnchantments;
218+
} else if (!moduleEnchantments.isEmpty()) {
216219
ItemEnchantments.Mutable mutable = new ItemEnchantments.Mutable(enchantments);
217220
for (Object2IntMap.Entry<Holder<Enchantment>> entry : moduleEnchantments.entrySet()) {
218221
mutable.upgrade(entry.getKey(), entry.getIntValue());

src/main/java/mekanism/common/item/gear/ItemMekaTool.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,10 @@ public ItemEnchantments getAllEnchantments(@NotNull ItemStack stack, RegistryLoo
176176
IModuleContainer container = IModuleHelper.INSTANCE.getModuleContainer(stack);
177177
if (container != null) {
178178
ItemEnchantments moduleEnchantments = container.moduleBasedEnchantments();
179-
if (!moduleEnchantments.isEmpty()) {
179+
if (enchantments.isEmpty()) {
180+
//Skip copying if there are no builtin enchantments
181+
return moduleEnchantments;
182+
} else if (!moduleEnchantments.isEmpty()) {
180183
ItemEnchantments.Mutable mutable = new ItemEnchantments.Mutable(enchantments);
181184
for (Object2IntMap.Entry<Holder<Enchantment>> entry : moduleEnchantments.entrySet()) {
182185
mutable.upgrade(entry.getKey(), entry.getIntValue());

0 commit comments

Comments
 (0)