From 124d54cd412018b66d9e35e44a18827fc07bc455 Mon Sep 17 00:00:00 2001 From: XUANHLGG Date: Sun, 8 Mar 2026 15:22:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E4=BD=BF=E5=85=B6=E5=85=81=E8=AE=B8=E6=8E=A5=E6=94=B6=E6=9D=A5?= =?UTF-8?q?=E8=87=AA=E6=8F=92=E4=BB=B6=E6=9C=8D=E7=9A=84=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E6=95=B0=E6=8D=AE=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ README_cn.md | 2 ++ .../java/cn/dancingsnow/dglab/config/ConfigHolder.java | 9 +++++++++ .../cn/dancingsnow/dglab/networking/DgLabPackets.java | 10 +++++++--- src/main/resources/assets/dglab/lang/en_us.json | 1 + src/main/resources/assets/dglab/lang/zh_cn.json | 1 + 6 files changed, 23 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c0033bb..27478af 100644 --- a/README.md +++ b/README.md @@ -117,3 +117,6 @@ you can see the config file in `.minecraft/config/dglab.yml`, when you first sta * A String to set the ws address, if your computer and your phone installed `DG-LAB` in same LAN, can set it to `192.168.xx.xx` that your computer ip address - port (int) * the port to create ws server, and DG-LAB app will connect it. +- bukkitCompatibilityMode (boolean) + * If true, DG-LAB payloads will be treated as optional channels, so the client can accept `dglab:*` custom payloads from non-NeoForge servers (e.g., Bukkit/Paper). Default: `false`. + * If your server is Bukkit/Paper and you have installed Minecraft-DG-LAB-Bukkit plugin, please set this option to `true`. diff --git a/README_cn.md b/README_cn.md index 3f98897..a5481ea 100644 --- a/README_cn.md +++ b/README_cn.md @@ -115,3 +115,5 @@ * 一个字符串来设置 WebSocket 连接地址,如果你的电脑和你的安装 DG-LAB 的手机在同一个局域网,可以设置此值为类似 `192.168.xx.xx`,这是你电脑的 ip 地址,可以运行 `ipconfig` 来查看。 - port (int) * 运行 WebSocket Server 的端口,将会在这个端口的 WebSocket Server 和你的 DG-LAB APP 连接。 +- bukkitCompatibilityMode (boolean) + * Bukkit 兼容模式。如果设置为 `true`,客户端将允许接收来自非 NeoForge 服务器(如 Bukkit/Paper)的 `dglab:*` 自定义数据包。默认为 `false`。若您的服务器是 Bukkit/Paper 且安装了 Minecraft-DG-LAB-Bukkit 插件,请开启此选项。 diff --git a/src/main/java/cn/dancingsnow/dglab/config/ConfigHolder.java b/src/main/java/cn/dancingsnow/dglab/config/ConfigHolder.java index cc08215..81863e0 100644 --- a/src/main/java/cn/dancingsnow/dglab/config/ConfigHolder.java +++ b/src/main/java/cn/dancingsnow/dglab/config/ConfigHolder.java @@ -59,6 +59,15 @@ public static class ClientConfigs { @Configurable.Comment({"If true, will show current strength in hud", "Default: true"}) public boolean enabled = true; + @Configurable + @Configurable.Comment({ + "Bukkit 兼容模式。", + "如果启用,DG-LAB 的数据包将被视为可选通道,", + "使得客户端可以接收来自非 NeoForge 服务器(如 Bukkit/Paper)的 dglab:* 自定义数据包。", + "默认值:false" + }) + public boolean bukkitCompatibilityMode = false; + @Configurable @Configurable.Comment({"The Gui Hud Scale", "Default: 1"}) public float hudScale = 1; diff --git a/src/main/java/cn/dancingsnow/dglab/networking/DgLabPackets.java b/src/main/java/cn/dancingsnow/dglab/networking/DgLabPackets.java index a3409c5..9b76dd0 100644 --- a/src/main/java/cn/dancingsnow/dglab/networking/DgLabPackets.java +++ b/src/main/java/cn/dancingsnow/dglab/networking/DgLabPackets.java @@ -3,6 +3,7 @@ import cn.dancingsnow.dglab.DgLabMod; import cn.dancingsnow.dglab.api.Strength; import cn.dancingsnow.dglab.client.ClientData; +import cn.dancingsnow.dglab.config.ConfigHolder; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; @@ -13,13 +14,16 @@ public class DgLabPackets { public static void init(PayloadRegistrar registrar) { - registrar.playToClient( + PayloadRegistrar r = + ConfigHolder.INSTANCE.client.bukkitCompatibilityMode ? registrar.optional() : registrar; + + r.playToClient( Strength.TYPE, Strength.STREAM_CODEC, (strength, ctx) -> ClientData.setStrength(strength)); - registrar.playToClient( + r.playToClient( ClearStrength.TYPE, ClearStrength.STREAM_CODEC, (c, ctx) -> ClientData.setStrength(null)); - registrar.playToClient( + r.playToClient( ShowQrCode.TYPE, ShowQrCode.STREAM_CODEC, (show, ctx) -> ClientData.setQrText(show.text())); } diff --git a/src/main/resources/assets/dglab/lang/en_us.json b/src/main/resources/assets/dglab/lang/en_us.json index 819d362..a96d047 100644 --- a/src/main/resources/assets/dglab/lang/en_us.json +++ b/src/main/resources/assets/dglab/lang/en_us.json @@ -6,6 +6,7 @@ "config.dglab.option.hudScale": "HUD Scale", "config.dglab.option.hudX": "HUD X", "config.dglab.option.hudY": "HUD Y", + "config.dglab.option.bukkitCompatibilityMode": "Bukkit Compatibility Mode", "config.dglab.option.port": "Port", "config.dglab.option.webSocket": "WebSocket Settings", "config.dglab.option.useHttps": "Use Https", diff --git a/src/main/resources/assets/dglab/lang/zh_cn.json b/src/main/resources/assets/dglab/lang/zh_cn.json index e6d8b89..a7b5853 100644 --- a/src/main/resources/assets/dglab/lang/zh_cn.json +++ b/src/main/resources/assets/dglab/lang/zh_cn.json @@ -6,6 +6,7 @@ "config.dglab.option.hudScale": "HUD 缩放", "config.dglab.option.hudX": "HUD X", "config.dglab.option.hudY": "HUD Y", + "config.dglab.option.bukkitCompatibilityMode": "Bukkit 兼容模式", "config.dglab.option.port": "端口", "config.dglab.option.webSocket": "WebSocket 设置", "config.dglab.option.useHttps": "使用 Https",