Skip to content

LennyFace24/MCtoTerrariaChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MC-TR Chat Bridge

纯 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

安装部署

  1. 克隆项目:
git clone <repository-url>
cd <project-directory>
  1. 安装依赖:
go mod tidy
  1. 构建程序:
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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages