From 69c82319bae2830ebb83ebbeca434b42e766b6c6 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 31 Dec 2024 16:30:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=BC=80=E7=81=AB=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/item/gun/GunItem.java | 18 +++++++++++------- .../item/gun/handgun/Glock17Item.java | 15 +++------------ .../item/gun/handgun/Glock18Item.java | 9 ++------- .../item/gun/handgun/M1911Item.java | 4 ++-- .../item/gun/handgun/Trachelium.java | 4 ++-- .../item/gun/machinegun/DevotionItem.java | 4 ++-- .../item/gun/machinegun/M60Item.java | 4 ++-- .../item/gun/machinegun/RpkItem.java | 9 ++------- .../superbwarfare/item/gun/rifle/AK12Item.java | 9 ++------- .../superbwarfare/item/gun/rifle/AK47Item.java | 9 ++------- .../item/gun/rifle/Hk416Item.java | 9 ++------- .../superbwarfare/item/gun/rifle/M4Item.java | 9 ++------- .../item/gun/rifle/MarlinItem.java | 4 ++-- .../superbwarfare/item/gun/rifle/Mk14Item.java | 9 ++------- .../item/gun/rifle/Qbz95Item.java | 9 ++------- .../superbwarfare/item/gun/rifle/SksItem.java | 4 ++-- .../item/gun/shotgun/Aa12Item.java | 9 ++------- .../item/gun/shotgun/AbekiriItem.java | 4 ++-- .../item/gun/shotgun/M870Item.java | 4 ++-- .../superbwarfare/item/gun/smg/VectorItem.java | 15 +++------------ .../item/gun/sniper/HuntingRifleItem.java | 4 ++-- .../superbwarfare/item/gun/sniper/K98Item.java | 4 ++-- .../item/gun/sniper/M98bItem.java | 4 ++-- .../item/gun/sniper/MosinNagantItem.java | 4 ++-- .../item/gun/sniper/Ntw20Item.java | 4 ++-- .../item/gun/sniper/SentinelItem.java | 4 ++-- .../superbwarfare/item/gun/sniper/SvdItem.java | 4 ++-- .../network/message/FireModeMessage.java | 15 +++++++++------ 28 files changed, 74 insertions(+), 130 deletions(-) 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 5b8181715..aae5799b6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/GunItem.java @@ -291,15 +291,19 @@ public abstract class GunItem extends Item { return false; } - public boolean semi(ItemStack stack) { - return false; + public int getFireMode() { + return 0; } - public boolean burst(ItemStack stack) { - return false; - } + public enum FireMode { + SEMI(1), + BURST(2), + AUTO(4); - public boolean auto(ItemStack stack) { - return false; + public final int flag; + + FireMode(int i) { + this.flag = i; + } } } 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 497ea1c42..914e8d587 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 @@ -38,6 +38,7 @@ import java.util.Set; import java.util.function.Consumer; public class Glock17Item extends GunItem implements GeoItem, AnimatedItem { + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); public static ItemDisplayContext transformType; @@ -169,17 +170,7 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean burst(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 313a4fb99..8026282ea 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 @@ -177,12 +177,7 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ 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 376577c4f..ca8eef08b 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 @@ -160,7 +160,7 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 57dd0f381..d7c2f95ea 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 @@ -345,7 +345,7 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 9fa008635..4caf7d363 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 @@ -161,7 +161,7 @@ public class DevotionItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.AUTO.flag; } } \ 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 cb883c078..984c1e945 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 @@ -185,7 +185,7 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.AUTO.flag; } } \ 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 a96c4eacd..1aed5ff81 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 @@ -162,12 +162,7 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ 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 7e7896bf4..59694988d 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 @@ -261,12 +261,7 @@ public class AK12Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ 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 dccd03d62..05bfabd8b 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 @@ -270,12 +270,7 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ 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 c2e9f0de5..3e007f62c 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 @@ -272,12 +272,7 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ 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 b467e09cf..5f827d9c5 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 @@ -271,12 +271,7 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/MarlinItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/MarlinItem.java index e537bc880..8897a5703 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/MarlinItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/rifle/MarlinItem.java @@ -177,7 +177,7 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 d0437b2da..5b6c46d39 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 @@ -270,12 +270,7 @@ public class Mk14Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ 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 9252e01dc..7880fc4a4 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 @@ -268,12 +268,7 @@ public class Qbz95Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ 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 ef1b6e055..527c8171c 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 @@ -170,7 +170,7 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 67af59e85..736e2babd 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 @@ -194,12 +194,7 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.AUTO.flag; } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/AbekiriItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/AbekiriItem.java index c1a43bddd..6ff35da8b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/AbekiriItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/AbekiriItem.java @@ -155,7 +155,7 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/M870Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/M870Item.java index 660629f45..e328aabe6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/M870Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/shotgun/M870Item.java @@ -184,7 +184,7 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 02aa6257f..e3bd55ac0 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 @@ -43,6 +43,7 @@ import java.util.Set; import java.util.function.Consumer; public class VectorItem extends GunItem implements GeoItem, AnimatedItem { + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); public static ItemDisplayContext transformType; @@ -246,17 +247,7 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; - } - - @Override - public boolean burst(ItemStack stack) { - return true; - } - - @Override - public boolean auto(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag + FireMode.BURST.flag + FireMode.AUTO.flag; } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java index e76ea4094..dd2d47ca9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java @@ -136,7 +136,7 @@ public class HuntingRifleItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/K98Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/K98Item.java index 89a55b18d..061eedfe3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/K98Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/K98Item.java @@ -184,7 +184,7 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 919105c7e..e111c6717 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 @@ -167,7 +167,7 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/MosinNagantItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/MosinNagantItem.java index b20d76346..cfc26bbf0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/MosinNagantItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/MosinNagantItem.java @@ -179,7 +179,7 @@ public class MosinNagantItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 e3369686e..dfc68964f 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 @@ -168,7 +168,7 @@ public class Ntw20Item extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 1155360b3..cdce7003c 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 @@ -250,7 +250,7 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ 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 1b39e90c2..a3425a94f 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 @@ -155,7 +155,7 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem { } @Override - public boolean semi(ItemStack stack) { - return true; + public int getFireMode() { + return FireMode.SEMI.flag; } } \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/FireModeMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/FireModeMessage.java index 1bfad62f5..3b3bbef16 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/FireModeMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/FireModeMessage.java @@ -60,13 +60,16 @@ public class FireModeMessage { CompoundTag tag = stack.getOrCreateTag(); + int mode = gunItem.getFireMode(); + mode &= 0b111; + if (fireMode == 0) { - if (gunItem.burst(stack)) { + if ((mode & 2) != 0) { GunsTool.setGunIntTag(stack, "FireMode", 1); playChangeModeSound(player); return; } - if (gunItem.auto(stack)) { + if ((mode & 4) != 0) { GunsTool.setGunIntTag(stack, "FireMode", 2); playChangeModeSound(player); return; @@ -74,12 +77,12 @@ public class FireModeMessage { } if (fireMode == 1) { - if (gunItem.auto(stack)) { + if ((mode & 4) != 0) { GunsTool.setGunIntTag(stack, "FireMode", 2); playChangeModeSound(player); return; } - if (gunItem.semi(stack)) { + if ((mode & 1) != 0) { GunsTool.setGunIntTag(stack, "FireMode", 0); playChangeModeSound(player); return; @@ -87,12 +90,12 @@ public class FireModeMessage { } if (fireMode == 2) { - if (gunItem.semi(stack)) { + if ((mode & 1) != 0) { GunsTool.setGunIntTag(stack, "FireMode", 0); playChangeModeSound(player); return; } - if (gunItem.burst(stack)) { + if ((mode & 2) != 0) { GunsTool.setGunIntTag(stack, "FireMode", 1); playChangeModeSound(player); return;