羽希氷華
本帖最后由 羽希氷華 于 2023-6-10 04:04 编辑

必可活用于其他协议

最近头热想把 Sorabot 用 onebot 标准重构下,清理下旧屎山。在看跨平台方案的时候看到了这个项目 MatterBridge 支持的协议叹为观止。文档比较全面,而且支持自己做 api。

我以前也找过 Matrix Mc 的消息桥接方案,或者 widget ,官方插件库里是有一个项目的,但是太陈旧了、缺少维护,已经被废弃很久了。搭建可供参考的信息也非常少。

简单搜索下找到一个基于 MatterBridge 的,用于 MC 的通信实现 MatterLink

本篇日志旨在记录其搭建过程,比较简单。(又水一篇施工日志。)

成品图







背景介绍

RLCraft 服务器,运行于 sugurip 。Matrix Synapse ,运行于 sumika。

本篇在 RLCraft 服务器中加入 Forge 模组 MatterLink 和在 sugurip 上启用MatterBridge

启用 MatterBridge

到仓库去下载对应环境下的releases

chmod a+x matterbridge-1.25.2-linux-64bit
touch matterbridge.toml
./matterbridge-1.25.2-linux-64bit复制代码
修改 matterbridge.toml 配置,为 MatterLink 的 api 打开 gateway 。 更详细的 channel 配置参考这里

# matterbridge.toml
[matrix.100oj]
Server="https://matrix.100oj.com"
Login="Username"
Password="Password"

# 该项会被添加到转发消息(mc -> matrix)的文本前缀
RemoteNickFormat="💬 {NICK}> "

[[gateway]]
name="minecraft"
enable=true

#channel
[[gateway.inout]]
account="matrix.100oj"
channel="#bridge:100oj.com"

[api]
[api.matterlink]
BindAddress="127.0.0.1:4242"
Token=""
Buffer=1000
# 该项会被添加到转发消息(matrix -> mc)的文本前缀
RemoteNickFormat="{NICK}"
ShowJoinPart = true

[[gateway.inout]]
account="api.matterlink"
channel="api"复制代码
MatterBridge 的 service 基于 go ,会自动重载配置。

配置 MatterLink

RLCraft 基于 1.12.2,下载对应版本的 MatterLink

MatterLink 可以通过启动后,在游戏中/控制台使用 /mcl reload 来重载配置文件。   

包含四个配置文件   

identities.hjson
认证信息,用于将 Matrix 用户绑定到 mc 游戏内用户。
绑定后的用户可以在 Matrix 聊天中执行 mc 命令。
不绑定也可以执行,只是权限节点不同。
并且绑定后在 Matrix 的聊天被转发时会使用游戏内名,而不是 Matrix 内名。 在 Matix 房间中使用 !auth Username 来绑定,会在 mc 游戏内私信弹出一个 4 位数验证,验证成功即可。

matterlink.hjson
主要
用于配置转发哪些信息,比如是否转发死亡提示、成就提示、玩家进入离开、各个死亡情况用哪种提示、matrix 房间内聊天的样式等等。 配置项非常丰富,注释也写的很详细,这里就不全提了,建议自己去捣鼓。

commands.hjson  用于预制一些命令的缩写。 比如自带的映射
!tps -> /forge tps
!list -> /list   

另外可以使用 !exec commands 来执行任意命令。(需要对应的权限。)
可以用到的地方比较多。   

permissions.hjson
权限管理,在这里配置执行命令需要的权限。

配置好后使用 /mcl reload 来重载。


相似的项目还有 MatterCraft,也是基于 MatterBridge 的 MC 桥。

显然可以用于 discord、telegram、gitter 等所有 MatterBridge 支持的协议。




本篇日志同步发布于 咱的几箱

使用了 MM2BC - MCBBS Markdown To BBCode Converter 来将 markdown 转换为 bbcode。
来自群组: MC百科