From a641e89dc7c17e302832254210d3424350c42728 Mon Sep 17 00:00:00 2001 From: YocyCraft Date: Mon, 22 Jun 2026 13:05:06 +0800 Subject: [PATCH 1/3] fix(amulet): 421 amulets will not deactivate its subtypes when not equipped --- .../anvilcraft/api/amulet/type/FourToOneAmuletType.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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..9888fbedf6 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,9 @@ 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))); } } From 61903c5375ea9f828423788acf2da44ba48fe552 Mon Sep 17 00:00:00 2001 From: YocyCraft Date: Mon, 22 Jun 2026 13:09:16 +0800 Subject: [PATCH 2/3] chore(style): fix code style --- .../dubhe/anvilcraft/api/amulet/type/FourToOneAmuletType.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 9888fbedf6..87323c8836 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 @@ -40,8 +40,8 @@ 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 || - AmuletManager.INSTANCE.getAmuletsFromInventory(player).entries().stream() + type.inventoryTick(player, amulet, isEnabled + || AmuletManager.INSTANCE.getAmuletsFromInventory(player).entries().stream() .anyMatch(entry -> entry.getKey().value().equals(type))); } } From fd15c44d9cbed00e89c595f8d85d867f2b5181bc Mon Sep 17 00:00:00 2001 From: YocyCraft Date: Tue, 23 Jun 2026 10:17:14 +0800 Subject: [PATCH 3/3] chore(style): add comment --- .../dubhe/anvilcraft/api/amulet/type/FourToOneAmuletType.java | 1 + 1 file changed, 1 insertion(+) 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 87323c8836..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 @@ -40,6 +40,7 @@ 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 || AmuletManager.INSTANCE.getAmuletsFromInventory(player).entries().stream() .anyMatch(entry -> entry.getKey().value().equals(type)));