From 088358c5e06b28d2eb4f223539f3bcb9fce35e9a Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Sat, 23 Nov 2024 15:30:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=B3=E9=94=AE=E7=9E=84?= =?UTF-8?q?=E5=87=86bug=EF=BC=8C=E4=BF=AE=E5=A4=8D/effect=E7=BB=99?= =?UTF-8?q?=E8=87=AA=E5=B7=B1=E7=94=B5=E5=87=BB=E6=95=88=E6=9E=9C=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E5=BC=95=E8=B5=B7=E7=9A=84=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/client/ClickHandler.java | 83 ++++++++++++------- 1 file changed, 52 insertions(+), 31 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java b/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java index f77c560bd..04a58a129 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java @@ -58,7 +58,6 @@ public class ClickHandler { if (player == null) return; if (player.hasEffect(ModMobEffects.SHOCK.get())) { - event.setCanceled(true); return; } @@ -87,21 +86,22 @@ public class ClickHandler { ItemStack stack = player.getMainHandItem(); - if (player.hasEffect(ModMobEffects.SHOCK.get())) { - event.setCanceled(true); - return; - } int button = event.getButton(); if (player.getMainHandItem().is(ModTags.Items.GUN) || stack.is(ModItems.MONITOR.get()) + || player.hasEffect(ModMobEffects.SHOCK.get()) || (player.getVehicle() != null && player.getVehicle() instanceof ICannonEntity && player.getMainHandItem().getItem() instanceof CannonShellItem)) { if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { event.setCanceled(true); } } + if (player.hasEffect(ModMobEffects.SHOCK.get())) { + return; + } + if (button == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { if (player.getMainHandItem().is(ModTags.Items.GUN) || (player.isPassenger() && player.getVehicle() instanceof ICannonEntity)) { event.setCanceled(true); @@ -114,19 +114,21 @@ public class ClickHandler { } } - if (button == ModKeyMappings.FIRE.getKey().getValue()) { - handleWeaponFirePress(player, stack); - } + if (player.getMainHandItem().is(ModTags.Items.GUN)) { + if (button == ModKeyMappings.FIRE.getKey().getValue()) { + handleWeaponFirePress(player, stack); + } - if (button == ModKeyMappings.HOLD_ZOOM.getKey().getValue()) { - handleWeaponZoomPress(); - switchZoom = false; - return; - } + if (button == ModKeyMappings.HOLD_ZOOM.getKey().getValue()) { + handleWeaponZoomPress(); + switchZoom = false; + return; + } - if (button == ModKeyMappings.SWITCH_ZOOM.getKey().getValue()) { - handleWeaponZoomPress(); - switchZoom = !switchZoom; + if (button == ModKeyMappings.SWITCH_ZOOM.getKey().getValue()) { + handleWeaponZoomPress(); + switchZoom = !switchZoom; + } } } @@ -140,7 +142,6 @@ public class ClickHandler { ItemStack stack = player.getMainHandItem(); if (player.hasEffect(ModMobEffects.SHOCK.get())) { - event.setCanceled(true); return; } @@ -180,15 +181,15 @@ public class ClickHandler { ItemStack stack = player.getMainHandItem(); - if (player.hasEffect(ModMobEffects.SHOCK.get())) { - event.setCanceled(true); - return; - } - setKeyState(event); int key = event.getKey(); if (event.getAction() == GLFW.GLFW_PRESS) { + + if (player.hasEffect(ModMobEffects.SHOCK.get())) { + return; + } + if (key == Minecraft.getInstance().options.keyJump.getKey().getValue()) { handleDoubleJump(player); } @@ -231,28 +232,48 @@ public class ClickHandler { ModUtils.PACKET_HANDLER.sendToServer(new SensitivityMessage(false)); } - if (key == ModKeyMappings.FIRE.getKey().getValue()) { - handleWeaponFirePress(player, stack); + if (player.getMainHandItem().is(ModTags.Items.GUN)) { + if (key == ModKeyMappings.FIRE.getKey().getValue()) { + handleWeaponFirePress(player, stack); + } + + if (key == ModKeyMappings.HOLD_ZOOM.getKey().getValue()) { + handleWeaponZoomPress(); + switchZoom = false; + return; + } + + if (key == ModKeyMappings.SWITCH_ZOOM.getKey().getValue()) { + handleWeaponZoomPress(); + switchZoom = !switchZoom; + } + } + } else { + + if (player.hasEffect(ModMobEffects.SHOCK.get())) { + return; } - if (key == ModKeyMappings.HOLD_ZOOM.getKey().getValue()) { - handleWeaponZoomPress(); - } - } - - if (event.getAction() == GLFW.GLFW_RELEASE) { if (key == ModKeyMappings.FIRE.getKey().getValue()) { handleWeaponFireRelease(); } - if (key == ModKeyMappings.HOLD_ZOOM.getKey().getValue()) { handleWeaponZoomRelease(); + return; + } + + if (key == ModKeyMappings.SWITCH_ZOOM.getKey().getValue() && !switchZoom) { + handleWeaponZoomRelease(); } } } public static void handleWeaponFirePress (Player player, ItemStack stack) { + if (player.hasEffect(ModMobEffects.SHOCK.get())) { + return; + } + if (stack.is(Items.SPYGLASS) && player.isScoping() && player.getOffhandItem().is(ModItems.FIRING_PARAMETERS.get())) { ModUtils.PACKET_HANDLER.sendToServer(new SetFiringParametersMessage(0)); }