From eb8c23c28c844f1751fe5e12a0b0e4ba3a7222ad Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 4 Feb 2025 02:10:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D=E5=A4=A7?= =?UTF-8?q?=E9=94=A4=E5=A4=8D=E5=88=B6bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atsuishio/superbwarfare/item/Hammer.java | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/item/Hammer.java b/src/main/java/com/atsuishio/superbwarfare/item/Hammer.java index a5cf0f655..eab9deaff 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/Hammer.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/Hammer.java @@ -1,9 +1,15 @@ package com.atsuishio.superbwarfare.item; +import com.atsuishio.superbwarfare.init.ModItems; import net.minecraft.world.item.*; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE) public class Hammer extends SwordItem { + public Hammer() { super(new Tier() { public int getUses() { @@ -39,12 +45,12 @@ public class Hammer extends SwordItem { @Override public ItemStack getCraftingRemainingItem(ItemStack itemstack) { - ItemStack retval = new ItemStack(this); - retval.setDamageValue(itemstack.getDamageValue() + 1); - if (retval.getDamageValue() >= retval.getMaxDamage()) { + ItemStack stack = new ItemStack(this); + stack.setDamageValue(itemstack.getDamageValue() + 1); + if (stack.getDamageValue() >= stack.getMaxDamage()) { return ItemStack.EMPTY; } - return retval; + return stack; } @Override @@ -52,4 +58,23 @@ public class Hammer extends SwordItem { return true; } + @SubscribeEvent + public static void onItemCrafted(PlayerEvent.ItemCraftedEvent event) { + var item = event.getCrafting(); + var container = event.getInventory(); + var player = event.getEntity(); + if (player == null) return; + + if (player.level().isClientSide) return; + + if (item.is(ModItems.HAMMER.get())) { + int count = 0; + for (int i = 0; i < container.getContainerSize(); i++) { + if (container.getItem(i).is(ModItems.HAMMER.get())) count++; + } + if (count == 2) { + container.clearContent(); + } + } + } }