蓝图连接

蓝图连接

通过WebSocket + UDP从外部客户端浏览、下载和上传Minecraft示意图。

BlockPrint Link

从任意设备浏览、下载和上传 Minecraft 原理图。

BlockPrint Link 是一个客户端模组,它在 Minecraft 客户端(玩家实例,而非专用服务器)上暴露一个本地 WebSocket 桥接器和 UDP 发现信标。将其与 BlockPrint Cat 移动应用配对,即可浏览你的原理图库、预览文件,并将新蓝图直接推入你的世界——无需离开手机。

截图

✨ 功能

  • 原理图库浏览器 — 列出主机上所有 Litematica、原版结构导出和 WorldEdit 原理图。
  • 双向传输 — 将蓝图下载到设备,或将 .litematic / .schematic 文件上传回游戏。
  • 通过 UDP 自动发现 — 模组在端口 18081 广播其存在,移动应用可在同一网络下自动找到它。无需输入 IP。
  • 二维码配对 — 在游戏中按 F7 打开二维码覆盖层,移动应用扫描后即可立即连接。
  • 可配置 — 令牌、端口和聊天通知位于 config/blockprintlink-bridge.toml 中。通过 /blockprint-reload 重新加载更改。
  • 可选的模组集成 — 自动检测 WorldEdit(用于其原理图目录)和 Building Gadgets 2(在聊天中点击复制上传的模板 JSON)。
  • 实时文件监控 — 添加或删除文件时,原理图列表实时更新。
  • SHA-256 验证上传 — 每次传输都进行端到端校验。

📦 原理图来源

来源 路径 启用条件
Litematica 原理图 <gameDir>/schematics/ 总是启用
原版结构导出 <gameDir>/saves/*/generated/minecraft/structures/ 总是启用
WorldEdit 原理图 <gameDir>/config/worldedit/schematics/ 当 WorldEdit 在类路径上时(自动检测)

WorldEdit 集成无需 Gradle 依赖——它会在运行时从默认目录读取,并通过类路径探测检测。


🚀 快速入门

  1. 将模组 jar 放入你的 mods/ 文件夹。
  2. 启动 Minecraft。模组的 WebSocket 服务器在端口 18080 启动;UDP 信标在 18081。
  3. 在手机上打开 BlockPrint Cat 应用(同一 Wi-Fi)。它会自动发现服务器。
  4. 如果自动发现失败,在游戏中按 F7 显示二维码,然后在应用中扫描它。

⚙️ 配置

配置文件:config/blockprintlink-bridge.toml

[bridge]
token = ""               # 留空以自动生成;持久化到 blockprintlink-token.txt
showChatMessages = true  # 加入时在聊天中显示桥接状态
wsPort = 18080           # WebSocket 端口
discoveryPort = 18081    # UDP 发现端口
  • 令牌在加入时显示在聊天中。可以是任意非空字符串。
  • 持久化的令牌位于 <gameDir>/blockprintlink-token.txt 中,在重启后仍然保留。
  • 使用 /blockprint-reload 重新加载。

📋 需求

  • NeoForge / Forge:Kotlin for Forge ([5,)) — 作为加载器端依赖打包。
  • Fabric:Fabric Loader >=0.16.9 和 Fabric API >=0.116.12+1.21.1(或匹配的 gradle/libs.versions.toml 行中列出的版本)。
  • Java:21(Forge 1.20.1 为 17)。

🧩 协议(供应用开发者使用)

桥接器在端口 18080 上使用小型 JSON-over-WebSocket 协议,并支持用于文件传输的二进制帧。完整规范、消息类型和错误代码:

亮点:

  • list — 请求原理图列表
  • download / upload — 带 SHA-256 的两阶段文件传输
  • list/changed — 磁盘文件更改时服务器推送
  • error — 带代码的结构化错误响应(AUTH_FAILED、FILE_TOO_LARGE、SHA_MISMATCH 等)