diff --git a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 index 9c1247a70..80273c707 100644 --- a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 +++ b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 @@ -1,4 +1,4 @@ -// 1.20.1 2024-11-29T19:04:10.4852137 Tags for minecraft:item mod id superbwarfare +// 1.20.1 2024-12-30T13:49:03.1510086 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 @@ -33,7 +33,6 @@ cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_apply 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 -dff9ff6d6637951191906cb55a210ae5a3ad5cd6 data/superbwarfare/tags/items/extra_one_ammo.json 52598e22974c8da0d2852defe4c9005e1d67744b data/superbwarfare/tags/items/gun.json 62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json 49fbb8c030fdfafec1f291acc1cdff406c777c7e data/superbwarfare/tags/items/has_shell_effect.json @@ -42,7 +41,6 @@ dae3f86663e841d336efff9d23d8910aa7247be5 data/superbwarfare/tags/items/is_auto_w b404c6fd99d2ca68c6738f225cb7d68ee443c10a data/superbwarfare/tags/items/machine_gun.json a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/items/military_armor.json 1ff5db892183135cbdd9c38a6b8c6e4eb287341e data/superbwarfare/tags/items/normal_gun.json -324ad3d6125d66153f899a424521bc99f2c0dde8 data/superbwarfare/tags/items/open_bolt.json 15328cd564c931cc0a4fc000596240f93a7b29a1 data/superbwarfare/tags/items/revolver.json aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/items/rifle.json acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/shotgun.json diff --git a/src/generated/resources/data/superbwarfare/tags/items/extra_one_ammo.json b/src/generated/resources/data/superbwarfare/tags/items/extra_one_ammo.json deleted file mode 100644 index 9706044aa..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/extra_one_ammo.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "values": [ - "superbwarfare:ak_47", - "superbwarfare:ak_12", - "superbwarfare:svd", - "superbwarfare:mk_14", - "superbwarfare:vector", - "superbwarfare:sks", - "superbwarfare:rpk", - "superbwarfare:hk_416", - "superbwarfare:aa_12", - "superbwarfare:m_4", - "superbwarfare:devotion", - "superbwarfare:ntw_20", - "superbwarfare:m_98b", - "superbwarfare:sentinel", - "superbwarfare:glock_17", - "superbwarfare:glock_18", - "superbwarfare:m_1911", - "superbwarfare:qbz_95" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/tags/items/open_bolt.json b/src/generated/resources/data/superbwarfare/tags/items/open_bolt.json deleted file mode 100644 index 75c2e410a..000000000 --- a/src/generated/resources/data/superbwarfare/tags/items/open_bolt.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "values": [ - "superbwarfare:abekiri", - "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:ntw_20", - "superbwarfare:m_98b", - "superbwarfare:sentinel", - "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/datagen/ModItemTagProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java index 0bda865fd..25b69ff3c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java @@ -104,10 +104,6 @@ public class ModItemTagProvider extends ItemTagsProvider { ModItems.QBZ_95.get(), ModItems.MK_14.get(), ModItems.AA_12.get(), ModItems.GLOCK_18.get(), ModItems.VECTOR.get(), ModItems.AA_12.get(), ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.M_60.get(), ModItems.RPK.get()); - this.tag(ModTags.Items.EXTRA_ONE_AMMO).add(ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.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.NTW_20.get(), ModItems.M_98B.get(), - ModItems.SENTINEL.get(), ModItems.GLOCK_17.get(),ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.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()); diff --git a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java index 5b9269415..c59366a2b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java @@ -402,18 +402,24 @@ 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 (player.getInventory().hasAnyMatching(item -> item.is(ModItems.CREATIVE_AMMO_BOX.get()))) { GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") - + (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0)); + + (gunItem.bulletInBarrel(stack) ? 1 : 0)); } else { if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { - GunsTool.reload(player, stack, GunInfo.Type.SHOTGUN, stack.is(ModTags.Items.EXTRA_ONE_AMMO)); + GunsTool.reload(player, stack, GunInfo.Type.SHOTGUN, gunItem.bulletInBarrel(stack)); } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { GunsTool.reload(player, stack, GunInfo.Type.SNIPER, true); } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { GunsTool.reload(player, stack, GunInfo.Type.HANDGUN, true); } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { - GunsTool.reload(player, stack, GunInfo.Type.RIFLE, stack.is(ModTags.Items.EXTRA_ONE_AMMO)); + GunsTool.reload(player, stack, GunInfo.Type.RIFLE, gunItem.bulletInBarrel(stack)); } } stack.getOrCreateTag().putBoolean("is_normal_reloading", false); diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java b/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java index 8f0b60764..b7b9635bd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java @@ -17,7 +17,6 @@ public class ModTags { public static final TagKey USE_RIFLE_AMMO = tag("use_rifle_ammo"); public static final TagKey USE_SHOTGUN_AMMO = tag("use_shotgun_ammo"); public static final TagKey USE_SNIPER_AMMO = tag("use_sniper_ammo"); - public static final TagKey EXTRA_ONE_AMMO = tag("extra_one_ammo"); public static final TagKey SMG = tag("smg"); public static final TagKey HANDGUN = tag("handgun"); 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 858b5fa77..0cf1d926a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java @@ -55,6 +55,12 @@ public abstract class GunItem extends Item { return; } + GunItem gunItem = null; + if (stack.getItem() instanceof GunItem gunItem1) { + gunItem = gunItem1; + } + if (gunItem == null) return; + if (!ItemNBTTool.getBoolean(stack, "init", false)) { GunsTool.initGun(level, stack, this.getDescriptionId().substring(this.getDescriptionId().lastIndexOf('.') + 1)); GunsTool.generateAndSetUUID(stack); @@ -68,10 +74,10 @@ public abstract class GunItem extends Item { handleGunPerks(stack); handleGunAttachment(stack); - if ((stack.is(ModTags.Items.EXTRA_ONE_AMMO) && GunsTool.getGunIntTag(stack, "Ammo", 0) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + 1) - || (!stack.is(ModTags.Items.EXTRA_ONE_AMMO) && GunsTool.getGunIntTag(stack, "Ammo", 0) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag")) + if ((gunItem.bulletInBarrel(stack) && gunItem.getAmmoCount(stack) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + 1) + || (!gunItem.bulletInBarrel(stack) && gunItem.getAmmoCount(stack) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag")) ) { - int count = GunsTool.getGunIntTag(stack, "Ammo", 0) - GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") - (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0); + int count = gunItem.getAmmoCount(stack) - GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") - (gunItem.bulletInBarrel(stack) ? 1 : 0); entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { @@ -86,7 +92,7 @@ public abstract class GunItem extends Item { capability.syncPlayerVariables(entity); }); - GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0)); + GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + (gunItem.bulletInBarrel(stack) ? 1 : 0)); } } } @@ -251,4 +257,8 @@ public abstract class GunItem extends Item { public boolean isOpenBolt(ItemStack stack) { return false; } + + public boolean bulletInBarrel(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 2d4292fa2..3cc00c82e 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 @@ -157,4 +157,9 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 1675d7059..5b36a3d4c 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 @@ -160,4 +160,9 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 4d5905c62..61c73dbd2 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 @@ -148,4 +148,9 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 2379c71d4..00399b31a 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 @@ -144,4 +144,9 @@ public class DevotionItem extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 9c3e37012..ad68174cf 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 @@ -145,4 +145,9 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 98467ebe5..76c9505ef 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 @@ -209,4 +209,9 @@ public class AK12Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 d82b93404..32e6d9580 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 @@ -223,4 +223,9 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 27e57fd91..26d6c4fa9 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 @@ -225,4 +225,9 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 353087661..cc60218e5 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 @@ -224,4 +224,9 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 3a9b35334..cf55b2d0a 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 @@ -223,4 +223,9 @@ public class Mk14Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 dd015c2e2..18d5dd02a 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 @@ -226,4 +226,9 @@ public class Qbz95Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 75e50e4a8..3caa4c024 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 @@ -158,4 +158,9 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 d5f33a520..7d9dcb4b1 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 @@ -177,4 +177,9 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 cbe593e99..38aaedbf3 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 @@ -199,4 +199,9 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/M98bItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/M98bItem.java index 22f28fffa..0450f82f6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/M98bItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/M98bItem.java @@ -160,4 +160,9 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/Ntw20Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/Ntw20Item.java index ce1a1ff65..a724a184c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/Ntw20Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/Ntw20Item.java @@ -161,4 +161,9 @@ public class Ntw20Item extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java index 0a869a9c4..fb7004ea7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/SentinelItem.java @@ -243,4 +243,9 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(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 ee6bd6269..342cdc839 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 @@ -143,4 +143,9 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem { public boolean isOpenBolt(ItemStack stack) { return true; } + + @Override + public boolean bulletInBarrel(ItemStack stack) { + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/ReloadMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/ReloadMessage.java index 27616be8f..498264531 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/ReloadMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/ReloadMessage.java @@ -96,26 +96,12 @@ public class ReloadMessage { } if (canReload || clipLoad) { - int magazine = gunItem.getAmmoCount(stack); - - if (gunItem.isOpenBolt(stack)) { - if (stack.is(ModTags.Items.EXTRA_ONE_AMMO)) { - if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag") + 1) { - tag.putBoolean("start_reload", true); - } - } else { - if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag")) { - tag.putBoolean("start_reload", true); - } - } - } else if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag")) { - tag.putBoolean("start_reload", true); - } + tag.putBoolean("start_reload", true); return; } if (canSingleReload) { - if (GunsTool.getGunIntTag(stack, "Ammo", 0) < GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag")) { + if (gunItem.getAmmoCount(stack) < GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag")) { tag.putBoolean("start_single_reload", true); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java index 50a10bd89..d4e7e5518 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java @@ -2,6 +2,7 @@ package com.atsuishio.superbwarfare.tools; import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.init.ModTags; +import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.network.ModVariables; import com.atsuishio.superbwarfare.network.message.GunsDataMessage; import com.google.gson.stream.JsonReader; @@ -102,9 +103,14 @@ 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; int mag = GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag"); - int ammo = GunsTool.getGunIntTag(stack, "Ammo", 0); + int ammo = gunItem.getAmmoCount(stack); int ammoToAdd = mag - ammo + (extraOne ? 1 : 0); // 空仓换弹的栓动武器应该在换弹后取消待上膛标记