纯 vibe coding 实现 一个能让 Minecraft 和 Terraria 游戏之间实时互通聊天消息的桥接程序。
- 实时监听 Minecraft 和 Terraria 服务器日志
- 将两个游戏中的聊天消息双向转发
- 自动过滤重复消息(防止循环转发)
- 支持 RCON 协议向 Minecraft 发送消息
- 支持 TShock REST API 向 Terraria 发送广播消息
- 自动检测最新的 TShock 日志文件
程序通过以下方式实现跨游戏聊天:
- 监听 Minecraft 服务器日志获取玩家聊天消息
- 监听 Terraria (TShock) 服务器日志获取玩家聊天消息
- 使用 RCON 协议向 Minecraft 服务器发送
tellraw命令显示消息 - 使用 TShock REST API 的
/v2/server/broadcast端点发送广播消息
- Go 1.19+
- Minecraft 服务器启用 RCON
- TShock (Terraria 服务器) 启用 REST API
- 克隆项目:
git clone <repository-url>
cd <project-directory>- 安装依赖:
go mod tidy- 构建程序:
go build -o mc-tr-chatbridge程序通过 .env 文件或环境变量进行配置,支持以下参数:
| 参数 | 默认值 | 描述 |
|---|---|---|
MC_LOG |
logs/latest.log |
Minecraft 服务器日志文件路径 |
MC_RCON_ADDR |
127.0.0.1:25575 |
Minecraft RCON 地址 |
MC_RCON_PASS |
`` | Minecraft RCON 密码 |
TSHOCK_LOG |
/root/terraria_server/tshock/logs/live.log |
TShock 日志目录 |
TSHOCK_API |
http://127.0.0.1:7878 |
TShock REST API 地址 |
TSHOCK_TOKEN |
`` | TShock API 访问令牌 |
ForwardTagMC |
[MC] |
Minecraft 消息前缀标签 |
ForwardTagTR |
[TR] |
Terraria 消息前缀标签 |
创建 .env 文件示例:
MC_LOG=/path/to/minecraft/logs/latest.log
MC_RCON_ADDR=127.0.0.1:25575
MC_RCON_PASS=your_rcon_password
TSHOCK_LOG=/path/to/tshock/logs/
TSHOCK_API=http://127.0.0.1:7878
TSHOCK_TOKEN=your_tshock_token./mc-tr-chatbridge- 程序启动后会自动监听两个游戏的日志文件
- Minecraft 玩家的聊天消息会以
[MC] 玩家名: 消息的格式转发到 Terraria - Terraria 玩家的聊天消息会以
[TR] 玩家名: 消息的格式转发到 Minecraft - 程序会自动过滤已转发的消息,避免无限循环
- 确保 Minecraft 服务器启用了 RCON,并设置了正确的密码
- 确保 TShock 服务器启用了 REST API,并设置了访问令牌
- 确保程序对日志文件有读取权限
- 确保网络连接允许访问 RCON 和 REST API 端口
- 检查日志文件路径是否正确
- 验证 RCON 连接参数是否正确
- 确认 TShock API 地址和令牌是否有效
- 查看程序输出日志以获取更多信息
MIT License