From bd214c1560f0baed8b7606d5a28ce7d4fb13bcf3 Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Thu, 27 Feb 2025 12:53:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Mod=E6=94=B6=E8=B4=B9?= =?UTF-8?q?=E8=AD=A6=E5=91=8A=E7=9B=B8=E5=85=B3=E9=85=8D=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/screens/ModSellWarningScreen.java | 20 ++++--------------- .../superbwarfare/config/ClientConfig.java | 6 ++---- .../config/client/ModSellWarningConfig.java | 18 +++++++++++++++++ 3 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/atsuishio/superbwarfare/config/client/ModSellWarningConfig.java diff --git a/src/main/java/com/atsuishio/superbwarfare/client/screens/ModSellWarningScreen.java b/src/main/java/com/atsuishio/superbwarfare/client/screens/ModSellWarningScreen.java index 5ad125f5f..e4a7dc0b1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/screens/ModSellWarningScreen.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/screens/ModSellWarningScreen.java @@ -1,5 +1,6 @@ package com.atsuishio.superbwarfare.client.screens; +import com.atsuishio.superbwarfare.config.client.ModSellWarningConfig; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.Button; @@ -46,12 +47,6 @@ public class ModSellWarningScreen extends WarningScreen { "stupidNoPayWarningChecksum" // 神秘的盐 ); - // -// System.out.println("env info:"); -// environmentInfo.forEach(System.out::println); -// System.out.println("env info end"); - // - return sha256(String.join("|", environmentInfo)); } @@ -79,32 +74,25 @@ public class ModSellWarningScreen extends WarningScreen { this.lastScreen = lastScreen; } - // TODO 正确实现校验和配置文件 - private static String checksumTest = ""; @SubscribeEvent(priority = EventPriority.HIGH) public static void onGuiOpen(ScreenEvent.Opening event) { if (!(event.getNewScreen() instanceof JoinMultiplayerScreen && !(event.getCurrentScreen() instanceof ModSellWarningScreen))) return; - System.out.println("multiplayer screen open"); - - if (checksumTest.equals(ENVIRONMENT_CHECKSUM)) return; -// if (ModSellWarningConfig.ENVIRONMENT_CHECKSUM.get().equals(ENVIRONMENT_CHECKSUM)) return; + if (ModSellWarningConfig.ENVIRONMENT_CHECKSUM.get().equals(ENVIRONMENT_CHECKSUM)) return; // 拦截多人游戏界面加载 event.setCanceled(true); Minecraft.getInstance().setScreen(new ModSellWarningScreen(event.getCurrentScreen())); - System.out.println(ENVIRONMENT_CHECKSUM); } @Override protected void initButtons(int pYOffset) { this.addRenderableWidget(Button.builder(CommonComponents.GUI_PROCEED, button -> { if (this.stopShowing.selected()) { - checksumTest = ENVIRONMENT_CHECKSUM; -// ModSellWarningConfig.ENVIRONMENT_CHECKSUM.set(ENVIRONMENT_CHECKSUM); -// ModSellWarningConfig.ENVIRONMENT_CHECKSUM.save(); + ModSellWarningConfig.ENVIRONMENT_CHECKSUM.set(ENVIRONMENT_CHECKSUM); + ModSellWarningConfig.ENVIRONMENT_CHECKSUM.save(); } Minecraft.getInstance().setScreen(new JoinMultiplayerScreen(this.lastScreen)); }).bounds(this.width / 2 - 155, 100 + pYOffset, 150, 20).build()); diff --git a/src/main/java/com/atsuishio/superbwarfare/config/ClientConfig.java b/src/main/java/com/atsuishio/superbwarfare/config/ClientConfig.java index c78d0314f..4dcffb64e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/config/ClientConfig.java +++ b/src/main/java/com/atsuishio/superbwarfare/config/ClientConfig.java @@ -1,9 +1,6 @@ package com.atsuishio.superbwarfare.config; -import com.atsuishio.superbwarfare.config.client.DisplayConfig; -import com.atsuishio.superbwarfare.config.client.KillMessageConfig; -import com.atsuishio.superbwarfare.config.client.ReloadConfig; -import com.atsuishio.superbwarfare.config.client.VehicleControlConfig; +import com.atsuishio.superbwarfare.config.client.*; import net.minecraftforge.common.ForgeConfigSpec; public class ClientConfig { @@ -15,6 +12,7 @@ public class ClientConfig { KillMessageConfig.init(builder); DisplayConfig.init(builder); VehicleControlConfig.init(builder); + ModSellWarningConfig.init(builder); return builder.build(); } diff --git a/src/main/java/com/atsuishio/superbwarfare/config/client/ModSellWarningConfig.java b/src/main/java/com/atsuishio/superbwarfare/config/client/ModSellWarningConfig.java new file mode 100644 index 000000000..36d9c60b2 --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/config/client/ModSellWarningConfig.java @@ -0,0 +1,18 @@ +package com.atsuishio.superbwarfare.config.client; + +import net.minecraftforge.common.ForgeConfigSpec; + +public class ModSellWarningConfig { + + public static ForgeConfigSpec.ConfigValue ENVIRONMENT_CHECKSUM; + + public static void init(ForgeConfigSpec.Builder builder) { + builder.push("checksum"); + + builder.comment("System environment checksum, do not edit"); + ENVIRONMENT_CHECKSUM = builder.define("environment_checksum", ""); + + builder.pop(); + } + +}