From 8446dc03657f00911b01b53338acf0ad87e63037 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 21 Oct 2024 02:39:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=85=8D=E4=BB=B6=E6=8C=89?= =?UTF-8?q?=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/mcreator/superbwarfare/ModUtils.java | 4 +- .../superbwarfare/client/ClickHandler.java | 27 +++++-- .../superbwarfare/init/ModKeyMappings.java | 74 ++----------------- .../network/message/EditMessage.java | 4 +- .../network/message/EditModeMessage.java | 26 +++---- 5 files changed, 42 insertions(+), 93 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/ModUtils.java b/src/main/java/net/mcreator/superbwarfare/ModUtils.java index bab0aae81..2187f47e6 100644 --- a/src/main/java/net/mcreator/superbwarfare/ModUtils.java +++ b/src/main/java/net/mcreator/superbwarfare/ModUtils.java @@ -125,8 +125,8 @@ public class ModUtils { addNetworkMessage(ShootMessage.class, ShootMessage::encode, ShootMessage::decode, ShootMessage::handler); addNetworkMessage(ShootClientMessage.class, ShootClientMessage::encode, ShootClientMessage::decode, ShootClientMessage::handle, Optional.of(NetworkDirection.PLAY_TO_CLIENT)); addNetworkMessage(DrawClientMessage.class, DrawClientMessage::encode, DrawClientMessage::decode, DrawClientMessage::handle, Optional.of(NetworkDirection.PLAY_TO_CLIENT)); - addNetworkMessage(EditModeMessage.class, EditModeMessage::encode, EditModeMessage::new, EditModeMessage::handler); - addNetworkMessage(EditMessage.class, EditMessage::encode, EditMessage::new, EditMessage::handler); + addNetworkMessage(EditModeMessage.class, EditModeMessage::encode, EditModeMessage::decode, EditModeMessage::handler); + addNetworkMessage(EditMessage.class, EditMessage::encode, EditMessage::decode, EditMessage::handler); event.enqueueWork(() -> BrewingRecipeRegistry.addRecipe(Ingredient.of(PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER)), Ingredient.of(Items.LIGHTNING_ROD), PotionUtils.setPotion(new ItemStack(Items.POTION), ModPotion.SHOCK.get()))); diff --git a/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java b/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java index 0c0a500ac..f6d414c76 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/client/ClickHandler.java @@ -160,11 +160,28 @@ public class ClickHandler { setKeyState(event); int key = event.getKey(); - if (key == Minecraft.getInstance().options.keyJump.getKey().getValue() && event.getAction() == GLFW.GLFW_PRESS) { - handleDoubleJump(player); - } - if (key == ModKeyMappings.CONFIG.getKey().getValue() && event.getAction() == GLFW.GLFW_PRESS) { - handleConfigScreen(player); + if (event.getAction() == GLFW.GLFW_PRESS) { + if (key == Minecraft.getInstance().options.keyJump.getKey().getValue()) { + handleDoubleJump(player); + } + if (key == ModKeyMappings.CONFIG.getKey().getValue()) { + handleConfigScreen(player); + } + if (key == ModKeyMappings.EDIT_MODE.getKey().getValue()) { + ModUtils.PACKET_HANDLER.sendToServer(new EditModeMessage(0)); + } + if (key == ModKeyMappings.EDIT_SCOPE.getKey().getValue()) { + ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(0)); + } + if (key == ModKeyMappings.EDIT_BARREL.getKey().getValue()) { + ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(1)); + } + if (key == ModKeyMappings.EDIT_MAGAZINE.getKey().getValue()) { + ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(2)); + } + if (key == ModKeyMappings.EDIT_STOCK.getKey().getValue()) { + ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(3)); + } } } diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModKeyMappings.java b/src/main/java/net/mcreator/superbwarfare/init/ModKeyMappings.java index a4eeb8594..32af243be 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModKeyMappings.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModKeyMappings.java @@ -103,75 +103,11 @@ public class ModKeyMappings { public static final KeyMapping CONFIG = new KeyMapping("key.superbwarfare.config", KeyConflictContext.IN_GAME, KeyModifier.ALT, InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_O, "key.categories.superbwarfare"); - public static final KeyMapping EDIT_MODE = new KeyMapping("key.superbwarfare.edit_mode", GLFW.GLFW_KEY_H, "key.categories.superbwarfare") { - private boolean isDownOld = false; - - @Override - public void setDown(boolean isDown) { - super.setDown(isDown); - if (isDownOld != isDown && isDown) { - ModUtils.PACKET_HANDLER.sendToServer(new EditModeMessage(0)); - EditModeMessage.pressAction(Minecraft.getInstance().player, 0); - } - isDownOld = isDown; - } - }; - - public static final KeyMapping EDIT_SCOPE = new KeyMapping("key.superbwarfare.edit_scope", GLFW.GLFW_KEY_UP, "key.categories.superbwarfare") { - private boolean isDownOld = false; - - @Override - public void setDown(boolean isDown) { - super.setDown(isDown); - if (isDownOld != isDown && isDown) { - ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(0)); - EditMessage.pressAction(Minecraft.getInstance().player, 0); - } - isDownOld = isDown; - } - }; - - public static final KeyMapping EDIT_BARREL = new KeyMapping("key.superbwarfare.edit_barrel", GLFW.GLFW_KEY_LEFT, "key.categories.superbwarfare") { - private boolean isDownOld = false; - - @Override - public void setDown(boolean isDown) { - super.setDown(isDown); - if (isDownOld != isDown && isDown) { - ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(1)); - EditMessage.pressAction(Minecraft.getInstance().player, 1); - } - isDownOld = isDown; - } - }; - - public static final KeyMapping EDIT_MAGAZINE = new KeyMapping("key.superbwarfare.edit_magazine", GLFW.GLFW_KEY_DOWN, "key.categories.superbwarfare") { - private boolean isDownOld = false; - - @Override - public void setDown(boolean isDown) { - super.setDown(isDown); - if (isDownOld != isDown && isDown) { - ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(2)); - EditMessage.pressAction(Minecraft.getInstance().player, 2); - } - isDownOld = isDown; - } - }; - - public static final KeyMapping EDIT_STOCK = new KeyMapping("key.superbwarfare.edit_stock", GLFW.GLFW_KEY_RIGHT, "key.categories.superbwarfare") { - private boolean isDownOld = false; - - @Override - public void setDown(boolean isDown) { - super.setDown(isDown); - if (isDownOld != isDown && isDown) { - ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(3)); - EditMessage.pressAction(Minecraft.getInstance().player, 3); - } - isDownOld = isDown; - } - }; + public static final KeyMapping EDIT_MODE = new KeyMapping("key.superbwarfare.edit_mode", GLFW.GLFW_KEY_H, "key.categories.superbwarfare"); + public static final KeyMapping EDIT_SCOPE = new KeyMapping("key.superbwarfare.edit_scope", GLFW.GLFW_KEY_UP, "key.categories.superbwarfare"); + public static final KeyMapping EDIT_BARREL = new KeyMapping("key.superbwarfare.edit_barrel", GLFW.GLFW_KEY_LEFT, "key.categories.superbwarfare"); + public static final KeyMapping EDIT_MAGAZINE = new KeyMapping("key.superbwarfare.edit_magazine", GLFW.GLFW_KEY_DOWN, "key.categories.superbwarfare"); + public static final KeyMapping EDIT_STOCK = new KeyMapping("key.superbwarfare.edit_stock", GLFW.GLFW_KEY_RIGHT, "key.categories.superbwarfare"); @SubscribeEvent public static void registerKeyMappings(RegisterKeyMappingsEvent event) { diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/EditMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/EditMessage.java index 83bc1da4d..5d795c91d 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/EditMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/EditMessage.java @@ -17,8 +17,8 @@ public class EditMessage { this.type = type; } - public EditMessage(FriendlyByteBuf buffer) { - this.type = buffer.readInt(); + public static EditMessage decode(FriendlyByteBuf buffer) { + return new EditMessage(buffer.readInt()); } public static void encode(EditMessage message, FriendlyByteBuf buffer) { diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/EditModeMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/EditModeMessage.java index 2481c07b4..b2bf49a39 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/EditModeMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/EditModeMessage.java @@ -16,8 +16,8 @@ public class EditModeMessage { this.type = type; } - public EditModeMessage(FriendlyByteBuf buffer) { - this.type = buffer.readInt(); + public static EditModeMessage decode(FriendlyByteBuf buffer) { + return new EditModeMessage(buffer.readInt()); } public static void encode(EditModeMessage message, FriendlyByteBuf buffer) { @@ -32,23 +32,19 @@ public class EditModeMessage { public static void pressAction(Player player, int type) { if (player == null) return; - // security measure to prevent arbitrary chunk generation - if (!player.level().isLoaded(player.blockPosition())) - return; + + if (!player.level().isLoaded(player.blockPosition())) return; + if (type == 0) { - EditMode(player); - } - } + ItemStack mainHandItem = player.getMainHandItem(); + var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null); - public static void EditMode(Player player) { - ItemStack mainHandItem = player.getMainHandItem(); - var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null); - - if (mainHandItem.is(ModTags.Items.CAN_CUSTOM_GUN)) { - cap.ifPresent(capability -> { - capability.edit = !cap.orElse(new ModVariables.PlayerVariables()).edit; + if (mainHandItem.is(ModTags.Items.CAN_CUSTOM_GUN)) { + cap.ifPresent(capability -> { + capability.edit = !cap.orElse(new ModVariables.PlayerVariables()).edit; capability.syncPlayerVariables(player); }); + } } } }