图片模板开发
概述
用任意前端框架开发 FlowGate 图片模板
图片模板是一段静态前端页面(HTML/CSS/JS,可由 React/Vue/Svelte/原生等任意框架打包),由 FlowGate Nexus 在无头浏览器中渲染并截图,最终作为图片消息发送到聊天平台。
作为开发者,你只需要关心两件事:
- 在
manifest.json里声明模板需要哪些数据(在线玩家、服务器状态、PlaceholderAPI 变量)以及哪些参数可由管理员自定义。 - 在页面里用
@fgate/template-sdk读取这些数据与参数,渲染你的页面,最后调用ready()通知宿主截图。
工作原理
管理员上传 .zip ──▶ Nexus 校验/解压到 data/templates/<id>/
│
群里发送绑定指令 ──▶ Nexus 按 manifest 拉取数据(向 MC 服务器发 RPC)
│
注入 window.__FGATE_TEMPLATE__ ──▶ 打开 dist/index.html
│
你的页面渲染 + 调用 ready() ──▶ 截图 ──▶ 作为图片发送数据流与能力协商
模板声明的每个数据源可能对应 MC 服务器的一种能力,也可能是纯 Nexus 数据库数据(不依赖 MC 端配合)。共 12 种数据源类型:
| 分组 | 数据源 | 说明 |
|---|---|---|
| MC 服务器能力 | online_players、server_status、player_statistics、player_advancements、player_equipment | 需 FGateClient 声明对应能力位,旧版客户端默认不支持 |
| PlaceholderAPI | placeholder、placeholder_rank | 仅安装了 PAPI 的 Paper/Bukkit 服务器 |
| Nexus 数据库 | player_profile、recent_joins、binding_stats、server_status_history、event_leaderboard | 不依赖 MC 端能力,服务器离线也可用 |
每种数据源的具体字段与返回值,见 Manifest 格式。
每个数据源都可以标记 required:
required: true(默认):服务器不具备该能力时,实例无法启用,渲染中止。required: false:能力不可用时该数据源降级为null/[],模板需自行处理缺失数据。
把不通用的能力(如 placeholder)标记为 required: false,就能让同一个模板包在支持与不支持该能力的服务器上都能工作——这就是「开发一次、支持多平台」的方式。
接下来请阅读 Manifest 格式、SDK 用法 与 打包与上传。