• 注册
  • MOD模组 MOD模组 关注:188 内容:46879

    Webstone:通过 WebSocket 远程控制红石装置(Webstone)

  • 查看作者
  • 打赏作者
  • 当前位置: SodaMC > MOD模组 > 正文
  • 潮涌核心
    永久赞助者

    Webstone:通过 WebSocket 远程控制红石装置(Webstone)


    Webstone 是一个 Minecraft 模组,允许玩家通过 WebSocket 协议远程控制游戏中的红石装置。它提供了一个 WebSocket 服务器,支持自定义配置和安全选项,并包含详细的 API 参考。

    Webstone:通过 WebSocket 远程控制红石装置(Webstone)

    背景

    这个模组灵感来源于 Fundy 的一个 YouTube 视频,他在视频中展示了一个可通过浏览器控制的自定义红石方块。由于这部分内容从未作为独立模组发布,Webstone 应运而生。

    使用方法

    Webstone 在端口 4321 上启动一个 WebSocket 服务器,允许你使用任何 WebSocket 客户端(例如 这个客户端 或托管在 链接 的客户端)来切换已注册方块的状态或更改其输出信号强度。

    在创造模式的“红石方块”标签页中可以找到 Webstone 远程方块(目前没有生存模式合成配方)。要注册方块,请用空手右键点击它(如果成功,你会在快捷栏上方看到消息)。要本地切换方块状态,请在潜行时右键点击方块。

    合成配方

    从 Webstone 1.0.1 开始,Webstone 远程方块可以在创造模式外合成:

    Webstone:通过 WebSocket 远程控制红石装置(Webstone)

    配置选项

    Webstone 有自己的配置文件,位于 .minecraft/config/webstone-config.toml。你可以设置以下选项:

    键 默认值 描述
    Passphrase "" 用于仅允许授权用户连接的密码短语。
    WebSocketPort 4321 Webstone WebSocket 服务器使用的端口。
    SecureWebSocket false 指定 WebSocket 是否使用安全连接。
    CertificateFilename cert.pem 证书公钥在 .minecraft/data 中的文件名。
    CertificateKeyFilename key.pem 证书私钥在 .minecraft/data 中的文件名。
    CertificateKeyPass "" 用于私钥的密码短语。

    API 参考

    服务器 → 客户端

    如果 WebSocket 服务器需要密码短语才能连接,客户端需要在 Sec-WebSocket-Protocol 头中以十六进制字符串形式提供。使用 JavaScript,你可以在创建 WebSocket 实例时将其作为第二个参数添加到数组中:

    const socket = new WebSocket('ws://<IP 地址或 FQDN>:4321', ['<你的密码短语>']);已复制!

    连接时,客户端会收到当前已注册方块列表(包括显示名称、当前激活状态、输出信号强度和分配的组 ID,如果有的话)以及方块组信息。

    示例 JSON 数据:

    • block_list:包含方块 ID、名称、功率、激活状态和组 ID。
    • block_groups:包含组 ID、名称和方块 ID 列表。

    如果任何方块或组更新,数据将广播给所有连接的客户端。

    客户端 → 服务器

    方块管理

    • 设置方块激活状态:使用 block_state 类型,包含 blockId 和 powered(true 或 false)。
    • 设置方块输出信号强度:使用 block_power 类型,包含 blockId 和 power(0 到 15 之间的值)。
    • 设置方块显示名称:使用 rename_block 类型,包含 blockId 和 name。
    • 从 Web UI 删除方块:使用 unregister_block 类型,包含 blockId。
    • 添加或移除方块到/从组:使用 change_group 类型,包含 blockId 和 groupId。
    • 在组内移动方块位置:使用 move_block 类型,包含 blockId 和 newIndex(仅当方块已分配到组时生效)。

    组管理

    • 创建新组:使用 create_group 类型,包含 name。
    • 重命名组:使用 create_group 类型,包含 groupId 和 name。
    • 删除组:使用 delete_group 类型,包含 groupId。
    • 在组列表中移动组位置:使用 move_group 类型,包含 groupId 和 newIndex。

    安全性

    在 Webstone 1.0.2 中,添加了两个安全选项:连接 WebSocket 服务器所需的可选密码短语,以及使用 SSL 证书的安全 WebSocket 支持。

    密码短语

    为了保护服务器免受未经授权的访问,你可以添加一个可选密码短语,客户端在连接前需要提交。此密码短语使用 Bcrypt 哈希存储,因此无需以明文形式保存。

    生成 Bcrypt 哈希的方法(例如在基于 Debian 的系统上使用 mkpasswd 命令),然后将结果添加到配置文件的 Passphrase 键中。

    连接时,客户端需要在 Sec-WebSocket-Protocol 头中设置十六进制编码的密码短语,否则连接将被拒绝。

    使用 TLS 的安全 WebSocket

    默认情况下,WebSocket 服务器和客户端之间的流量未加密。要加密流量,你需要一个域名和该域名的 SSL 证书,包括私钥和公钥。两个密钥需分别存储在 .minecraft/data 中作为 cert.pem(公钥)和 key.pem(私钥)。如果私钥需要自己的密码短语,可以在配置中设置 CertificateKeyPass 键。

    要启用或禁用安全 WebSocket,请将 SecureWebSocket 键设置为 true 或 false。

    支持与兼容性

    目前仅支持 Forge。欢迎将此模组移植到其他模组加载器,但请明确注明此项目为原始来源。

    模组已在 Minecraft 1.20.1 上测试,但也应适用于更新版本。它可能或可能不适用于旧版 Minecraft。

    致谢

    • Fundy:原始创意和纹理(可能)
    • Kaupenjoe:创建教程系列,使这个模组成为可能

      截图:

      版本&下载

      Webstone 1.20.1-1.0.2

      1.20.1-1.0.2 · Release版本: 1.20.1-1.0.2支持游戏: 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6类型: ForgeRelease下载次数: 819

      Webstone 1.20.1-1.0.1

      1.20.1-1.0.1 · Release版本: 1.20.1-1.0.1支持游戏: 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6类型: ForgeRelease下载次数: 80

      Webstone 1.20.1-1.0.0

      1.20.1-1.0.0 · Release版本: 1.20.1-1.0.0支持游戏: 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6类型: ForgeRelease下载次数: 59

  • 收录

  • 请登录之后再进行评论

    登录
  • Soda任务 图片
  • 帖子间隔 侧栏位置:左