diff --git a/gradle.properties b/gradle.properties index e20ab2aba..b959120ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,5 +13,5 @@ mod_description=A Warfare Mod minecraft_version=1.20.1 jei_version=15.2.0.27 cloth_config_version=11.1.106 -mod_version=0.5.5 +mod_version=0.5.6 mod_authors=Atsuishio, Roki27, Light_Quanta \ 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 b7e74132c..1df14eb3d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java @@ -92,7 +92,7 @@ public class ClickHandler { int button = event.getButton(); if (stack.is(ModTags.Items.GUN) || stack.is(ModItems.MONITOR.get()) || stack.is(ModItems.LUNGE_MINE.get()) || player.hasEffect(ModMobEffects.SHOCK.get()) - || (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand())) { + || (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player))) { if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { event.setCanceled(true); } @@ -303,7 +303,7 @@ public class ClickHandler { } - if (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.banHand()) { + if (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.banHand(player)) { if (iVehicle.isDriver(player)) { ClientEventHandler.holdFireVehicle = true; } @@ -351,7 +351,7 @@ public class ClickHandler { public static void handleWeaponZoomPress(Player player, ItemStack stack) { ModUtils.PACKET_HANDLER.sendToServer(new ZoomMessage(0)); - if (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.banHand()) { + if (player.getVehicle() instanceof IArmedVehicleEntity iVehicle && iVehicle.banHand(player)) { if (iVehicle.isDriver(player)) { ClientEventHandler.zoomVehicle = true; } diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/CrossHairOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/CrossHairOverlay.java index 67930bfe8..84e5a4e3e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/CrossHairOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/CrossHairOverlay.java @@ -57,7 +57,7 @@ public class CrossHairOverlay { if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) return; - if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) return; + if (!player.getMainHandItem().is(ModTags.Items.GUN) || (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player))) return; GuiGraphics guiGraphics = event.getGuiGraphics(); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/GrenadeLauncherOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/GrenadeLauncherOverlay.java index 53bd41727..cb330023f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/GrenadeLauncherOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/GrenadeLauncherOverlay.java @@ -30,7 +30,7 @@ public class GrenadeLauncherOverlay { if (player != null && player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) return; - if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) + if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) return; if (!shouldRenderCrossHair(player)) return; diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/JavelinHudOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/JavelinHudOverlay.java index 33ccb5dee..581dc9691 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/JavelinHudOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/JavelinHudOverlay.java @@ -55,7 +55,7 @@ public class JavelinHudOverlay { if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) return; - if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) return; + if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) return; if ((stack.getItem() == ModItems.JAVELIN.get() && !stack.getOrCreateTag().getBoolean("HoloHidden")) && Minecraft.getInstance().options.getCameraType().isFirstPerson() && ClientEventHandler.zoom) { RenderSystem.disableDepthTest(); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/KillMessageOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/KillMessageOverlay.java index 53b050af7..bdc24e9b3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/KillMessageOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/KillMessageOverlay.java @@ -178,7 +178,7 @@ public class KillMessageOverlay { if (player != null && player.getVehicle() instanceof VehicleEntity vehicleEntity) { // 载具图标 - if ((vehicleEntity instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand()) || record.damageType == ModDamageTypes.VEHICLE_STRIKE) { + if ((vehicleEntity instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand(player)) || record.damageType == ModDamageTypes.VEHICLE_STRIKE) { renderItem = true; ResourceLocation resourceLocation = vehicleEntity.getVehicleIcon(); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/RedTriangleOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/RedTriangleOverlay.java index 3995f9019..93478ab82 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/RedTriangleOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/RedTriangleOverlay.java @@ -37,7 +37,7 @@ public class RedTriangleOverlay { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModItems.RPG.get())) return; - if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) + if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) return; Entity idf = SeekTool.seekLivingEntity(player, player.level(), 128, 6); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java index ddb881337..42dc981f0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java @@ -731,8 +731,8 @@ public class Ah6Entity extends ContainerMobileEntity implements GeoEntity, IHeli } @Override - public boolean banHand() { - return true; + public boolean banHand(Player player) { + return player == this.getFirstPassenger(); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java index 9e1cdb000..655fc2389 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java @@ -538,7 +538,7 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, } @Override - public boolean banHand() { + public boolean banHand(Player player) { return true; } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java index e6ac06837..0a24ad205 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java @@ -804,7 +804,7 @@ public class Bmp2Entity extends ContainerMobileEntity implements GeoEntity, ICha } @Override - public boolean banHand() { + public boolean banHand(Player player) { return true; } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/IArmedVehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/IArmedVehicleEntity.java index aed5a6a86..8ec946436 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/IArmedVehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/IArmedVehicleEntity.java @@ -14,7 +14,7 @@ public interface IArmedVehicleEntity { int getAmmoCount(Player player); - boolean banHand(); + boolean banHand(Player player); boolean hidePassenger(); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java index 8f7cfdc08..a671a0aa3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java @@ -772,7 +772,7 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC } @Override - public boolean banHand() { + public boolean banHand(Player player) { return true; } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java index 64838ed69..720d1fc27 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java @@ -435,7 +435,7 @@ public class Mk42Entity extends VehicleEntity implements GeoEntity, ICannonEntit } @Override - public boolean banHand() { + public boolean banHand(Player player) { return true; } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java index 4d20051ca..428e5f538 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java @@ -486,7 +486,7 @@ public class Mle1934Entity extends VehicleEntity implements GeoEntity, ICannonEn } @Override - public boolean banHand() { + public boolean banHand(Player player) { return true; } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java index 221409e92..450b23808 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java @@ -5,7 +5,6 @@ import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.entity.projectile.ProjectileEntity; import com.atsuishio.superbwarfare.init.*; -import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.network.ModVariables; import com.atsuishio.superbwarfare.network.message.ShakeClientMessage; import com.atsuishio.superbwarfare.tools.CustomExplosion; @@ -542,8 +541,8 @@ public class SpeedboatEntity extends ContainerMobileEntity implements GeoEntity, } @Override - public boolean banHand() { - return !(this.getFirstPassenger() instanceof Player player) || !(player.getMainHandItem().getItem() instanceof GunItem); + public boolean banHand(Player player) { + return player == this.getFirstPassenger(); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index dff251989..7a2dd1cbb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -266,7 +266,7 @@ public class ClientEventHandler { if (stack.getItem() instanceof GunItem gunItem) { if (gunItem.canUseMelee(stack) && gunMelee == 0 && drawTime < 0.01 && ModKeyMappings.MELEE.isDown() - && !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) + && !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) && !holdFireVehicle && !notInGame() && !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit @@ -422,7 +422,7 @@ public class ClientEventHandler { } if ((holdFire || burstFireSize > 0) - && !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) + && !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) && !holdFireVehicle && (stack.is(ModTags.Items.NORMAL_GUN) && cantFireTime == 0 @@ -846,7 +846,7 @@ public class ClientEventHandler { } } - if (player != null && player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) + if (player != null && player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) return; if (level != null && stack.is(ModTags.Items.GUN)) { @@ -911,7 +911,7 @@ public class ClientEventHandler { } } - if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) { + if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) { event.setCanceled(true); } } @@ -1008,7 +1008,7 @@ public class ClientEventHandler { double speed = 1.5 - (0.07 * weight); if (zoom - && !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand()) + && !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) && !notInGame() && drawTime < 0.01 && !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) { @@ -1306,7 +1306,7 @@ public class ClientEventHandler { ItemStack stack = player.getMainHandItem(); - if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand() && zoomVehicle) { + if (player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand(player) && zoomVehicle) { event.setFOV(event.getFOV() / iArmedVehicle.zoomFov()); return; }