From 56750c0e251eed21c784f1be1a541fbb98830729 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Mon, 30 Dec 2024 15:08:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E6=B8=85=E7=90=86tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2e07f3c482445536d45c00e6abf223465c01c841 | 9 +---- .../tags/items/can_apply_barrel.json | 12 ------- .../tags/items/can_apply_grip.json | 12 ------- .../tags/items/can_apply_magazine.json | 11 ------ .../tags/items/can_apply_scope.json | 12 ------- .../tags/items/can_apply_stock.json | 11 ------ .../tags/items/can_custom_gun.json | 12 ------- .../tags/items/has_shell_effect.json | 20 ----------- .../superbwarfare/client/ClickHandler.java | 11 +++--- .../client/tooltip/ClientGunImageTooltip.java | 3 +- .../datagen/ModItemTagProvider.java | 23 ------------ .../event/ClientEventHandler.java | 9 ++--- .../superbwarfare/event/GunEventHandler.java | 14 ++------ .../atsuishio/superbwarfare/init/ModTags.java | 9 ----- .../superbwarfare/item/gun/GunItem.java | 34 +++++++++++++++--- .../item/gun/handgun/Glock17Item.java | 5 +++ .../item/gun/handgun/Glock18Item.java | 5 +++ .../item/gun/handgun/M1911Item.java | 5 +++ .../item/gun/handgun/Trachelium.java | 25 +++++++++++++ .../item/gun/machinegun/DevotionItem.java | 5 +++ .../item/gun/machinegun/M60Item.java | 5 +++ .../item/gun/machinegun/RpkItem.java | 5 +++ .../item/gun/rifle/AK12Item.java | 35 +++++++++++++++++++ .../item/gun/rifle/AK47Item.java | 35 +++++++++++++++++++ .../item/gun/rifle/Hk416Item.java | 35 +++++++++++++++++++ .../superbwarfare/item/gun/rifle/M4Item.java | 35 +++++++++++++++++++ .../item/gun/rifle/Mk14Item.java | 35 +++++++++++++++++++ .../item/gun/rifle/Qbz95Item.java | 30 ++++++++++++++++ .../superbwarfare/item/gun/rifle/SksItem.java | 5 +++ .../item/gun/shotgun/Aa12Item.java | 5 +++ .../item/gun/smg/VectorItem.java | 35 +++++++++++++++++++ .../item/gun/sniper/SvdItem.java | 5 +++ .../network/message/EditModeMessage.java | 7 ++-- .../superbwarfare/tools/GunsTool.java | 6 +--- 34 files changed, 360 insertions(+), 165 deletions(-) delete mode 100644 src/generated/resources/data/superbwarfare/tags/items/can_apply_barrel.json delete mode 100644 src/generated/resources/data/superbwarfare/tags/items/can_apply_grip.json delete mode 100644 src/generated/resources/data/superbwarfare/tags/items/can_apply_magazine.json delete mode 100644 src/generated/resources/data/superbwarfare/tags/items/can_apply_scope.json delete mode 100644 src/generated/resources/data/superbwarfare/tags/items/can_apply_stock.json delete mode 100644 src/generated/resources/data/superbwarfare/tags/items/can_custom_gun.json delete mode 100644 src/generated/resources/data/superbwarfare/tags/items/has_shell_effect.json diff --git a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 index 4b9265383..a24c2606b 100644 --- a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 +++ b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 @@ -1,4 +1,4 @@ -// 1.20.1 2024-12-30T14:34:41.442112 Tags for minecraft:item mod id superbwarfare +// 1.20.1 2024-12-30T15:07:23.9778545 Tags for minecraft:item mod id superbwarfare cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json 0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json 295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json @@ -26,15 +26,8 @@ af6fd64b4a685c353f243763db268f7b2304c009 data/forge/tags/items/storage_blocks/le 30d1daa7590f7364b5bc2dc777a00caf2f5eecb0 data/forge/tags/items/storage_blocks/silver.json 3743c2790deca7e779d3e4b82f092de39b446988 data/forge/tags/items/storage_blocks/steel.json 144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json -cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_apply_barrel.json -4b0864ba4b2bb2ca3b30bdc2fefe3077f5020466 data/superbwarfare/tags/items/can_apply_grip.json -41a5f975239ec6e000229dfc212b9d886496cccc data/superbwarfare/tags/items/can_apply_magazine.json -cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_apply_scope.json -29af1d9a8f837510bc039feb578330f1a053543f data/superbwarfare/tags/items/can_apply_stock.json -cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_custom_gun.json 52598e22974c8da0d2852defe4c9005e1d67744b data/superbwarfare/tags/items/gun.json 62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json -49fbb8c030fdfafec1f291acc1cdff406c777c7e data/superbwarfare/tags/items/has_shell_effect.json 68ec25b0ccd68abbbe2f33ab7097572c2140c9da data/superbwarfare/tags/items/launcher.json b404c6fd99d2ca68c6738f225cb7d68ee443c10a data/superbwarfare/tags/items/machine_gun.json a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/items/military_armor.json diff --git a/src/generated/resources/data/superbwarfare/tags/items/can_apply_barrel.json b/src/generated/resources/data/superbwarfare/tags/items/can_apply_barrel.json deleted file mode 100644 index 2b8865a87..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/can_apply_barrel.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "values": [ - "superbwarfare:ak_12", - "superbwarfare:ak_47", - "superbwarfare:m_4", - "superbwarfare:hk_416", - "superbwarfare:qbz_95", - "superbwarfare:vector", - "superbwarfare:trachelium", - "superbwarfare:mk_14" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/items/can_apply_grip.json b/src/generated/resources/data/superbwarfare/tags/items/can_apply_grip.json deleted file mode 100644 index 8f9626cdc..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/can_apply_grip.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "values": [ - "superbwarfare:ak_12", - "superbwarfare:m_4", - "superbwarfare:hk_416", - "superbwarfare:qbz_95", - "superbwarfare:ak_47", - "superbwarfare:vector", - "superbwarfare:trachelium", - "superbwarfare:mk_14" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/items/can_apply_magazine.json b/src/generated/resources/data/superbwarfare/tags/items/can_apply_magazine.json deleted file mode 100644 index 6d660d0a4..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/can_apply_magazine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "values": [ - "superbwarfare:ak_12", - "superbwarfare:ak_47", - "superbwarfare:m_4", - "superbwarfare:hk_416", - "superbwarfare:qbz_95", - "superbwarfare:vector", - "superbwarfare:mk_14" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/items/can_apply_scope.json b/src/generated/resources/data/superbwarfare/tags/items/can_apply_scope.json deleted file mode 100644 index 2b8865a87..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/can_apply_scope.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "values": [ - "superbwarfare:ak_12", - "superbwarfare:ak_47", - "superbwarfare:m_4", - "superbwarfare:hk_416", - "superbwarfare:qbz_95", - "superbwarfare:vector", - "superbwarfare:trachelium", - "superbwarfare:mk_14" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/items/can_apply_stock.json b/src/generated/resources/data/superbwarfare/tags/items/can_apply_stock.json deleted file mode 100644 index 7884f08db..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/can_apply_stock.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "values": [ - "superbwarfare:ak_12", - "superbwarfare:ak_47", - "superbwarfare:m_4", - "superbwarfare:hk_416", - "superbwarfare:vector", - "superbwarfare:trachelium", - "superbwarfare:mk_14" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/items/can_custom_gun.json b/src/generated/resources/data/superbwarfare/tags/items/can_custom_gun.json deleted file mode 100644 index 2b8865a87..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/can_custom_gun.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "values": [ - "superbwarfare:ak_12", - "superbwarfare:ak_47", - "superbwarfare:m_4", - "superbwarfare:hk_416", - "superbwarfare:qbz_95", - "superbwarfare:vector", - "superbwarfare:trachelium", - "superbwarfare:mk_14" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/items/has_shell_effect.json b/src/generated/resources/data/superbwarfare/tags/items/has_shell_effect.json deleted file mode 100644 index 6e863343a..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/has_shell_effect.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "values": [ - "superbwarfare:ak_47", - "superbwarfare:ak_12", - "superbwarfare:svd", - "superbwarfare:m_60", - "superbwarfare:mk_14", - "superbwarfare:vector", - "superbwarfare:sks", - "superbwarfare:rpk", - "superbwarfare:hk_416", - "superbwarfare:aa_12", - "superbwarfare:m_4", - "superbwarfare:devotion", - "superbwarfare:glock_17", - "superbwarfare:glock_18", - "superbwarfare:m_1911", - "superbwarfare:qbz_95" - ] -} \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java b/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java index aee711c22..50b5be55b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java @@ -214,22 +214,23 @@ public class ClickHandler { } if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) { + if (!(stack.getItem() instanceof GunItem gunItem)) return; if (ModKeyMappings.EDIT_GRIP.getKeyModifier().isActive(KeyConflictContext.IN_GAME)) { - if (key == ModKeyMappings.EDIT_GRIP.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_GRIP)) { + if (key == ModKeyMappings.EDIT_GRIP.getKey().getValue() && gunItem.canCustomGrip(stack)) { ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(4)); editModelShake(); } } else { - if (key == ModKeyMappings.EDIT_SCOPE.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_SCOPE)) { + if (key == ModKeyMappings.EDIT_SCOPE.getKey().getValue() && gunItem.canCustomScope(stack)) { ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(0)); editModelShake(); - } else if (key == ModKeyMappings.EDIT_BARREL.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_BARREL)) { + } else if (key == ModKeyMappings.EDIT_BARREL.getKey().getValue() && gunItem.canCustomBarrel(stack)) { ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(1)); editModelShake(); - } else if (key == ModKeyMappings.EDIT_MAGAZINE.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_MAGAZINE)) { + } else if (key == ModKeyMappings.EDIT_MAGAZINE.getKey().getValue() && gunItem.canCustomMagazine(stack)) { ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(2)); editModelShake(); - } else if (key == ModKeyMappings.EDIT_STOCK.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_STOCK)) { + } else if (key == ModKeyMappings.EDIT_STOCK.getKey().getValue() && gunItem.canCustomStock(stack)) { ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(3)); editModelShake(); } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientGunImageTooltip.java b/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientGunImageTooltip.java index 0e28d6b1d..042c3fa9a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientGunImageTooltip.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientGunImageTooltip.java @@ -3,7 +3,6 @@ package com.atsuishio.superbwarfare.client.tooltip; import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent; import com.atsuishio.superbwarfare.init.ModKeyMappings; import com.atsuishio.superbwarfare.init.ModPerks; -import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.perk.AmmoPerk; import com.atsuishio.superbwarfare.perk.Perk; @@ -75,7 +74,7 @@ public class ClientGunImageTooltip implements ClientTooltipComponent { } protected boolean shouldRenderEditTooltip() { - return stack.is(ModTags.Items.CAN_CUSTOM_GUN); + return gunItem.canCustom(stack); } protected boolean shouldRenderPerks() { diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java index 557bed711..d0f9b2dc8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java @@ -98,30 +98,7 @@ public class ModItemTagProvider extends ItemTagsProvider { this.tag(ModTags.Items.REVOLVER).add(ModItems.TRACHELIUM.get()); - this.tag(ModTags.Items.HAS_SHELL_EFFECT).add(ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.get(), ModItems.M_60.get(), ModItems.MK_14.get(), ModItems.VECTOR.get(), - ModItems.SKS.get(), ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(), ModItems.GLOCK_17.get(), - ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get()); - this.tag(ModTags.Items.MILITARY_ARMOR).add(ModItems.RU_CHEST_6B43.get(), ModItems.US_CHEST_IOTV.get()); - - this.tag(ModTags.Items.CAN_CUSTOM_GUN).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get(), - ModItems.MK_14.get()); - - this.tag(ModTags.Items.CAN_APPLY_BARREL).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get(), - ModItems.MK_14.get()); - - this.tag(ModTags.Items.CAN_APPLY_GRIP).add(ModItems.AK_12.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.AK_47.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get(), - ModItems.MK_14.get()); - - this.tag(ModTags.Items.CAN_APPLY_SCOPE).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get(), - ModItems.MK_14.get()); - - this.tag(ModTags.Items.CAN_APPLY_MAGAZINE).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get(), - ModItems.MK_14.get()); - - this.tag(ModTags.Items.CAN_APPLY_STOCK).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get(), - ModItems.MK_14.get()); - } private static TagKey forgeTag(String name) { diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index 3035d31de..6f5431a2a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -8,6 +8,7 @@ import com.atsuishio.superbwarfare.entity.IArmedVehicleEntity; import com.atsuishio.superbwarfare.entity.ICannonEntity; import com.atsuishio.superbwarfare.entity.SpeedboatEntity; import com.atsuishio.superbwarfare.init.*; +import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.network.ModVariables; import com.atsuishio.superbwarfare.network.message.LaserShootMessage; import com.atsuishio.superbwarfare.network.message.ShootMessage; @@ -489,7 +490,7 @@ public class ClientEventHandler { public static void playGunClientSounds(Player player) { ItemStack stack = player.getMainHandItem(); - if (!stack.is(ModTags.Items.GUN)) { + if (!(stack.getItem() instanceof GunItem gunItem)) { return; } @@ -530,7 +531,7 @@ public class ClientEventHandler { ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos()))); ModUtils.queueClientWork((int) (1 + 1.5 * shooterHeight), () -> { - if (stack.is(ModTags.Items.HAS_SHELL_EFFECT)) { + if (gunItem.ejectShell(stack)) { if (stack.is(ModTags.Items.SHOTGUN)) { player.playSound(ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); } else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { @@ -954,7 +955,7 @@ public class ClientEventHandler { Player player = Minecraft.getInstance().player; if (player == null) return; ItemStack stack = player.getMainHandItem(); - if (!stack.is(ModTags.Items.GUN)) return; + if (!(stack.getItem() instanceof GunItem gunItem)) return; float times = (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 1.6); int barrelType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.BARREL); @@ -978,7 +979,7 @@ public class ClientEventHandler { default -> 2.0; }; - if (!stack.is(ModTags.Items.CAN_CUSTOM_GUN)) { + if (!gunItem.canCustom(stack)) { recoil = 1.6; gripRecoilX = 0.75; gripRecoilY = 1.25; diff --git a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java index c59366a2b..e5d691c43 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java @@ -312,11 +312,8 @@ public class GunEventHandler { */ private static void handleGunReload(Player player) { ItemStack stack = player.getMainHandItem(); - GunItem gunItem = null; - if (stack.getItem() instanceof GunItem gunItem1) { - gunItem = gunItem1; - } - if (gunItem == null) return; + if (!(stack.getItem() instanceof GunItem gunItem)) return; + CompoundTag tag = stack.getOrCreateTag(); CompoundTag data = stack.getOrCreateTag().getCompound("GunData"); // 启动换弹 @@ -401,12 +398,7 @@ public class GunEventHandler { public static void playGunNormalReload(Player player) { ItemStack stack = player.getMainHandItem(); - - GunItem gunItem = null; - if (stack.getItem() instanceof GunItem gunItem1) { - gunItem = gunItem1; - } - if (gunItem == null) return; + if (!(stack.getItem() instanceof GunItem gunItem)) return; if (player.getInventory().hasAnyMatching(item -> item.is(ModItems.CREATIVE_AMMO_BOX.get()))) { GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java b/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java index 2e636217e..caf0c7534 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java @@ -28,15 +28,6 @@ public class ModTags { public static final TagKey REVOLVER = tag("revolver"); public static final TagKey NORMAL_GUN = tag("normal_gun"); - public static final TagKey CAN_CUSTOM_GUN = tag("can_custom_gun"); - - public static final TagKey CAN_APPLY_BARREL = tag("can_apply_barrel"); - public static final TagKey CAN_APPLY_SCOPE = tag("can_apply_scope"); - public static final TagKey CAN_APPLY_GRIP = tag("can_apply_grip"); - public static final TagKey CAN_APPLY_MAGAZINE = tag("can_apply_magazine"); - public static final TagKey CAN_APPLY_STOCK= tag("can_apply_stock"); - - public static final TagKey HAS_SHELL_EFFECT= tag("has_shell_effect"); public static final TagKey MILITARY_ARMOR = tag("military_armor"); public static final TagKey MILITARY_ARMOR_HEAVY = tag("military_armor_heavy"); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java index f5cebe243..79c52942d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java @@ -55,11 +55,7 @@ public abstract class GunItem extends Item { return; } - GunItem gunItem = null; - if (stack.getItem() instanceof GunItem gunItem1) { - gunItem = gunItem1; - } - if (gunItem == null) return; + if (!(stack.getItem() instanceof GunItem gunItem)) return; if (!ItemNBTTool.getBoolean(stack, "init", false)) { GunsTool.initGun(level, stack, this.getDescriptionId().substring(this.getDescriptionId().lastIndexOf('.') + 1)); @@ -270,4 +266,32 @@ public abstract class GunItem extends Item { public boolean useBackpackAmmo(ItemStack stack) { return false; } + + public boolean canCustom(ItemStack stack) { + return false; + } + + public boolean canCustomBarrel(ItemStack stack) { + return false; + } + + public boolean canCustomGrip(ItemStack stack) { + return false; + } + + public boolean canCustomMagazine(ItemStack stack) { + return false; + } + + public boolean canCustomScope(ItemStack stack) { + return false; + } + + public boolean canCustomStock(ItemStack stack) { + return false; + } + + public boolean ejectShell(ItemStack stack) { + return false; + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock17Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock17Item.java index 3cc00c82e..008328f96 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock17Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock17Item.java @@ -162,4 +162,9 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem { public boolean bulletInBarrel(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock18Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock18Item.java index 79413336b..3c500e04c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock18Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Glock18Item.java @@ -170,4 +170,9 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/M1911Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/M1911Item.java index 61c73dbd2..3e5c5ec87 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/M1911Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/M1911Item.java @@ -153,4 +153,9 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem { public boolean bulletInBarrel(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Trachelium.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Trachelium.java index 669023fb0..cfcd5e0dc 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Trachelium.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/handgun/Trachelium.java @@ -318,4 +318,29 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem { public boolean isMagazineReload(ItemStack stack) { return true; } + + @Override + public boolean canCustom(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomBarrel(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomGrip(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomScope(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomStock(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/DevotionItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/DevotionItem.java index 39127a703..b3e1874ad 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/DevotionItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/DevotionItem.java @@ -154,4 +154,9 @@ public class DevotionItem extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/M60Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/M60Item.java index 707d91632..47b5200dd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/M60Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/M60Item.java @@ -178,4 +178,9 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/RpkItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/RpkItem.java index f4d7a4005..16475d395 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/RpkItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/RpkItem.java @@ -155,4 +155,9 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK12Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK12Item.java index 5caa1fe89..57acdaa5d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK12Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK12Item.java @@ -219,4 +219,39 @@ public class AK12Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean canCustom(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomBarrel(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomGrip(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomMagazine(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomScope(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomStock(ItemStack stack) { + return true; + } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK47Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK47Item.java index 05efd8e1c..537d1006b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK47Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/AK47Item.java @@ -233,4 +233,39 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean canCustom(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomBarrel(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomGrip(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomMagazine(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomScope(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomStock(ItemStack stack) { + return true; + } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Hk416Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Hk416Item.java index a46275c96..aa26c6f66 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Hk416Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Hk416Item.java @@ -235,4 +235,39 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean canCustom(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomBarrel(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomGrip(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomMagazine(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomScope(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomStock(ItemStack stack) { + return true; + } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/M4Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/M4Item.java index edd59e6bc..e78ca7d1a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/M4Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/M4Item.java @@ -234,4 +234,39 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean canCustom(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomBarrel(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomGrip(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomMagazine(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomScope(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomStock(ItemStack stack) { + return true; + } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Mk14Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Mk14Item.java index 87849ba09..258d28c64 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Mk14Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Mk14Item.java @@ -233,4 +233,39 @@ public class Mk14Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean canCustom(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomBarrel(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomGrip(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomMagazine(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomScope(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomStock(ItemStack stack) { + return true; + } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Qbz95Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Qbz95Item.java index dbdf128f3..2120258b2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Qbz95Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/Qbz95Item.java @@ -236,4 +236,34 @@ public class Qbz95Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean canCustom(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomBarrel(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomGrip(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomMagazine(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomScope(ItemStack stack) { + return true; + } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/SksItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/SksItem.java index 3caa4c024..f10ae7679 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/SksItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/SksItem.java @@ -163,4 +163,9 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem { public boolean bulletInBarrel(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/Aa12Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/Aa12Item.java index 20aaea292..b4dc97270 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/Aa12Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/Aa12Item.java @@ -187,4 +187,9 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java index ec52181ae..3301fe4eb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java @@ -209,4 +209,39 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { public boolean autoWeapon(ItemStack stack) { return true; } + + @Override + public boolean canCustom(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomBarrel(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomGrip(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomMagazine(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomScope(ItemStack stack) { + return true; + } + + @Override + public boolean canCustomStock(ItemStack stack) { + return true; + } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SvdItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SvdItem.java index 342cdc839..58ea04f57 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SvdItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SvdItem.java @@ -148,4 +148,9 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem { public boolean bulletInBarrel(ItemStack stack) { return true; } + + @Override + public boolean ejectShell(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/EditModeMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/EditModeMessage.java index cdc9f244e..8aae9635e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/EditModeMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/EditModeMessage.java @@ -1,9 +1,9 @@ package com.atsuishio.superbwarfare.network.message; +import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.network.ModVariables; import com.atsuishio.superbwarfare.tools.SoundTool; -import com.atsuishio.superbwarfare.init.ModSounds; -import com.atsuishio.superbwarfare.init.ModTags; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -39,9 +39,10 @@ public class EditModeMessage { if (type == 0) { ItemStack mainHandItem = player.getMainHandItem(); + if (!(mainHandItem.getItem() instanceof GunItem gunItem)) return; var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null); - if (mainHandItem.is(ModTags.Items.CAN_CUSTOM_GUN)) { + if (gunItem.canCustom(mainHandItem)) { if (!player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) { SoundTool.playLocalSound(player, ModSounds.EDIT_MODE.get(), 1f, 1f); } diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java index d4e7e5518..2f7d81788 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java @@ -103,11 +103,7 @@ public class GunsTool { public static void reload(Player player, ItemStack stack, GunInfo.Type type, boolean extraOne) { CompoundTag tag = stack.getOrCreateTag(); - GunItem gunItem = null; - if (stack.getItem() instanceof GunItem gunItem1) { - gunItem = gunItem1; - } - if (gunItem == null) return; + if (!(stack.getItem() instanceof GunItem gunItem)) return; int mag = GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag"); int ammo = gunItem.getAmmoCount(stack);