修复穿透数值读取问题,添加几处判断

This commit is contained in:
17146 2025-04-13 21:37:50 +08:00 committed by Light_Quanta
parent a0f29cf372
commit e745a37fb5
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
6 changed files with 5 additions and 2 deletions

View file

@ -657,6 +657,7 @@ public class ClientEventHandler {
public static void shootClient(Player player, final CompoundTag tag) {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
var data = GunData.from(stack);
if (stack.is(ModTags.Items.NORMAL_GUN)) {
if (data.ammo.get() > 0) {

View file

@ -34,7 +34,7 @@ public class DefaultGunData {
public int fireMode;
@SerializedName("BurstAmount")
public int burstAmount;
@SerializedName("BypassArmor")
@SerializedName("BypassesArmor")
public double bypassArmor;
@SerializedName("NormalReloadTime")

View file

@ -241,6 +241,7 @@ public class JavelinItem extends GunItem implements GeoItem, SpecialFireWeapon {
private void fire(Player player) {
Level level = player.level();
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
var data = GunData.from(stack);
CompoundTag tag = data.tag();

View file

@ -57,7 +57,6 @@ public class Aa12Item extends GunItem implements GeoItem {
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
if (this.animationProcedure.equals("empty")) {
if (GunData.from(stack).reload.empty()) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reload_empty"));
}

View file

@ -113,6 +113,7 @@ public record FireMessage(int msgType, double power, boolean zoom) implements Cu
public static void spawnBullet(Player player, final CompoundTag tag, double power, boolean zoom) {
ItemStack stack = player.getMainHandItem();
if (player.level().isClientSide()) return;
if (!stack.is(ModTags.Items.GUN)) return;
var data = GunData.from(stack);
var perk = data.perk.get(Perk.Type.AMMO);

View file

@ -40,6 +40,7 @@ public record ShootMessage(double spread, boolean zoom) implements CustomPacketP
public static void pressAction(Player player, double spared, boolean zoom) {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
var data = GunData.from(stack);
var tag = data.tag();