三一社区 · 聊天墙 API

Minecraft 服务器公屏聊天的只读接口

只读 公开 · 无需鉴权 HTTPS 支持 CORS 60 次/分钟 / IP

GET/api/chat

最近的公屏消息,按时间正序返回。

参数说明
limit要多少条,默认 300,最多 1000
before只要比这个时间戳(毫秒)更早的,用来往上翻页
{
  "ok": true,
  "chat": [
    { "t": 1793173903582, "from": "Six_eggs", "text": "...", "type": "chat" }
  ],
  "last": 1793173903582,
  "total": 5000
}
字段说明
t毫秒时间戳
from玩家名(游戏昵称,不含 QQ 号)
text消息内容
typechat 普通发言 / join 上线 / leave 下线 / death 死亡
last本次最后一条的时间戳,下次当 before 用
total服务端归档总条数

GET/events

SSE 实时流,新消息一产生就推一条 data: {...},字段同 /api/chat 里的单条。适合做实时看板。

// 浏览器
const es = new EventSource("https://api.trinitymc.site/events");
es.onmessage = e => console.log(JSON.parse(e.data));

GET/health

存活检查。{"ok":true,"clients":0,"feed":300},clients 是当前 SSE 连接数。

GET/avatar/<玩家名>

取玩家头像(服务端代理,不暴露上游地址)。

示例

浏览器里直接 fetch,跨域已放开。

// 拿最近 20 条
const r = await fetch("https://api.trinitymc.site/api/chat?limit=20");
const { chat } = await r.json();
chat.forEach(m => console.log(m.from, ":", m.text));

// 往上翻页(拿比 last 更早的 20 条)
const r2 = await fetch(`https://api.trinitymc.site/api/chat?limit=20&before=${chat[0].t}`);

注意

限流 60 次/分钟 / IP,突发最多约 50 次,超了返回 429。轮询别太勤,实时需求请用 /events。
消息里可能包含玩家自己打的网址或脏话,接入方自行过滤。

完整聊天墙网页在 msg.trinitymc.site

三一社区 · trinitymc.site