diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableFilteredItemStackHandler.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableFilteredItemStackHandler.java index dac58299b..6d483d95e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableFilteredItemStackHandler.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/PollableFilteredItemStackHandler.java @@ -1,6 +1,5 @@ package dev.dubhe.anvilcraft.api.itemhandler; -import dev.dubhe.anvilcraft.util.Util; import net.minecraft.world.item.ItemStack; import java.util.List; @@ -12,12 +11,7 @@ public PollableFilteredItemStackHandler(int size) { @Override public boolean isItemValid(int slot, ItemStack stack) { - // 临时解决方案 - if (Util.findCaller("doClick")) { - return super.isItemValid(slot, stack); - } else { - return getEmptyOrSmallerSlot(stack) == slot && super.isItemValid(slot, stack); - } + return getEmptyOrSmallerSlot(stack) == slot && super.isItemValid(slot, stack); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SlotItemHandlerWithFilter.java b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SlotItemHandlerWithFilter.java index 95e5c4fba..5b7ca3d62 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SlotItemHandlerWithFilter.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/itemhandler/SlotItemHandlerWithFilter.java @@ -47,4 +47,9 @@ public boolean isSlotDisabled(int slot) { } return false; } + + @Override + public int getMaxStackSize(ItemStack stack) { + return Math.min(this.getMaxStackSize(), stack.getMaxStackSize()); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/inventory/FrostGrindstoneMenu.java b/src/main/java/dev/dubhe/anvilcraft/inventory/FrostGrindstoneMenu.java index cbe9ab7fc..e8d78a4c9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/inventory/FrostGrindstoneMenu.java +++ b/src/main/java/dev/dubhe/anvilcraft/inventory/FrostGrindstoneMenu.java @@ -21,7 +21,6 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.inventory.AnvilMenu; import net.minecraft.world.inventory.ContainerLevelAccess; import net.minecraft.world.inventory.MenuType; import net.minecraft.world.inventory.ResultContainer; @@ -162,7 +161,6 @@ private ItemStack createResult() { ItemStack inputItem = this.input.getItem(0).copy(); Map, ItemEnchantments.Mutable> mutableMap = new HashMap<>(); - int cost = 0; for (int i = 0; i < this.enchantments.size(); i++) { EnchantmentData data = ListUtil.safelyGet(this.enchantments, i).orElse(null); if (data == null) continue; @@ -173,14 +171,11 @@ private ItemStack createResult() { ); if (this.selectedIndexes.contains(i)) continue; newMut.set(data.enchantment(), data.level()); - - cost = AnvilMenu.calculateIncreasedRepairCost(cost); } for (Map.Entry, ItemEnchantments.Mutable> entry : mutableMap.entrySet()) { inputItem.set(entry.getKey(), entry.getValue().toImmutable()); } - inputItem.set(DataComponents.REPAIR_COST, cost); ItemEnchantments.Mutable stored = mutableMap.get(DataComponents.STORED_ENCHANTMENTS); if (inputItem.is(Items.ENCHANTED_BOOK) && stored != null && stored.keySet().isEmpty()) {