diff --git a/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/FourToOneAmuletType.java b/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/FourToOneAmuletType.java index f0f29ad281..18dad792b3 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/FourToOneAmuletType.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/amulet/type/FourToOneAmuletType.java @@ -1,6 +1,7 @@ package dev.dubhe.anvilcraft.api.amulet.type; import com.google.common.collect.Lists; +import dev.dubhe.anvilcraft.api.amulet.AmuletManager; import dev.dubhe.anvilcraft.api.amulet.fromto.Effect; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.damagesource.DamageSource; @@ -39,7 +40,10 @@ public boolean matches(ItemLike item) { @Override public void inventoryTick(ServerPlayer player, ItemStack amulet, boolean isEnabled) { for (AmuletType type : this.types) { - type.inventoryTick(player, amulet, isEnabled); + // 在这里要考虑到四合一护符未装备,但某个子类型护符已装备的可能性 + type.inventoryTick(player, amulet, isEnabled + || AmuletManager.INSTANCE.getAmuletsFromInventory(player).entries().stream() + .anyMatch(entry -> entry.getKey().value().equals(type))); } }