Terraria TShock 服务端插件,通过 WebSocket 将玩家事件实时推送给外部程序,并接收外部消息在游戏内广播
- Terraria 1.4.4.9(及 TShock 5.2.x 所支持的更早版本)
- TShock 5.2.x,基于 .NET 6
dotnet build TianSuo.sln -c Release产物在:
TianSuo.TShock/bin/Release/net6.0/TianSuo.TShock.dllTianSuo.TShock/bin/Release/net6.0/TianSuo.Tool.dll
- 将
TianSuo.TShock.dll与TianSuo.Tool.dll复制到服务器的ServerPlugins文件夹 - 启动服务器,插件会在
tshock/下生成tiansuo.json配置文件 - 修改配置后重启服务器生效
{
"Enabled": true,
"ServerName": "TianSuo",
"AccessToken": "",
"WebSocketHost": "127.0.0.1",
"WebSocketPort": 8080,
"SubscribePlayerJoin": true,
"SubscribePlayerQuit": true,
"SubscribePlayerChat": true,
"SubscribePlayerDeath": true
}ServerName:客户端连接时必须携带x-self-name请求头,值需与之一致。AccessToken:非空时客户端还需携带Authorization: Bearer <token>请求头。
所有消息为 UTF-8 文本帧,JSON 信封格式:
{ "type": "event", "name": "player_join", "data": { "player": { "name": "Steve", "index": 3 } } }
{ "type": "api", "name": "broadcast", "data": { "message": "Hello" } }API 响应为 type=api、name=api_response:
{ "type": "api", "name": "api_response", "data": { "success": true, "message": "ok" } }