From 6513d65f2203fb5d559349c69a4be4a429798944 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 3 Mar 2025 00:48:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=B9=E8=8D=AF=E7=9B=92?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/common/ammo/AmmoBox.java | 5 ++-- .../item/common/ammo/AmmoSupplierItem.java | 28 +++++++++---------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/item/common/ammo/AmmoBox.java b/src/main/java/com/atsuishio/superbwarfare/item/common/ammo/AmmoBox.java index d9adbcc82..d9e7675e4 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/common/ammo/AmmoBox.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/common/ammo/AmmoBox.java @@ -30,8 +30,10 @@ public class AmmoBox extends Item { @Override public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { ItemStack stack = player.getItemInHand(hand); - CompoundTag tag = stack.getOrCreateTag(); + if (hand == InteractionHand.OFF_HAND) return InteractionResultHolder.fail(stack); + + CompoundTag tag = stack.getOrCreateTag(); player.getCooldowns().addCooldown(this, 10); int type = stack.getOrCreateTag().getInt("Type"); @@ -162,5 +164,4 @@ public class AmmoBox extends Item { .append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal(FormatTool.format0D(ItemNBTTool.getInt(stack, "HeavyAmmo", 0)) + ((type == 0 || type == 5) ? " ←-" : " ")).withStyle(ChatFormatting.BOLD))); } - } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/common/ammo/AmmoSupplierItem.java b/src/main/java/com/atsuishio/superbwarfare/item/common/ammo/AmmoSupplierItem.java index 8454b9425..51f8c31a9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/common/ammo/AmmoSupplierItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/common/ammo/AmmoSupplierItem.java @@ -31,26 +31,26 @@ public class AmmoSupplierItem extends Item { player.getCooldowns().addCooldown(this, 10); stack.shrink(count); - ItemStack ammobox = player.getOffhandItem(); + ItemStack offhandItem = player.getOffhandItem(); - if (ammobox.is(ModItems.AMMO_BOX.get())) { - var newAmmoCount = switch (this.type) { - case HANDGUN -> ammobox.getOrCreateTag().getInt("HandgunAmmo"); - case RIFLE -> ammobox.getOrCreateTag().getInt("RifleAmmo"); - case SHOTGUN -> ammobox.getOrCreateTag().getInt("ShotgunAmmo"); - case SNIPER -> ammobox.getOrCreateTag().getInt("SniperAmmo"); - case HEAVY -> ammobox.getOrCreateTag().getInt("HeavyAmmo"); + if (offhandItem.is(ModItems.AMMO_BOX.get())) { + int newAmmoCount = switch (this.type) { + case HANDGUN -> offhandItem.getOrCreateTag().getInt("HandgunAmmo"); + case RIFLE -> offhandItem.getOrCreateTag().getInt("RifleAmmo"); + case SHOTGUN -> offhandItem.getOrCreateTag().getInt("ShotgunAmmo"); + case SNIPER -> offhandItem.getOrCreateTag().getInt("SniperAmmo"); + case HEAVY -> offhandItem.getOrCreateTag().getInt("HeavyAmmo"); } + ammoToAdd * count; switch (this.type) { - case HANDGUN -> ammobox.getOrCreateTag().putInt("HandgunAmmo", newAmmoCount); - case RIFLE -> ammobox.getOrCreateTag().putInt("RifleAmmo", newAmmoCount); - case SHOTGUN -> ammobox.getOrCreateTag().putInt("ShotgunAmmo", newAmmoCount); - case SNIPER -> ammobox.getOrCreateTag().putInt("SniperAmmo", newAmmoCount); - case HEAVY -> ammobox.getOrCreateTag().putInt("HeavyAmmo", newAmmoCount); + case HANDGUN -> offhandItem.getOrCreateTag().putInt("HandgunAmmo", newAmmoCount); + case RIFLE -> offhandItem.getOrCreateTag().putInt("RifleAmmo", newAmmoCount); + case SHOTGUN -> offhandItem.getOrCreateTag().putInt("ShotgunAmmo", newAmmoCount); + case SNIPER -> offhandItem.getOrCreateTag().putInt("SniperAmmo", newAmmoCount); + case HEAVY -> offhandItem.getOrCreateTag().putInt("HeavyAmmo", newAmmoCount); } } else { player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - var newAmmoCount = switch (this.type) { + int newAmmoCount = switch (this.type) { case HANDGUN -> capability.handgunAmmo; case RIFLE -> capability.rifleAmmo; case SHOTGUN -> capability.shotgunAmmo;