#matrix #bot #dice #game

bin+lib axfive-matrix-dicebot

简单的异步 Matrix 投掷机器人

3 个版本

0.1.2 2020年4月22日
0.1.1 2020年4月22日
0.1.0 2020年4月22日

#867 in 游戏

MIT 许可证

33KB
804

axfive-matrix-dicebot

这是一个用 Rust 编写的简单的 matrix 投掷机器人。它可能存在一些稳定性问题。我在野外还没有见过它死机,但它主要是被拼凑起来的代码,测试和审查都比较轻,我相信还有一些事情还没有完成,比如正确处理速率限制,以及处理任何类型的突发错误(比如突然被取消认证,需要重新认证)。

这主要是作为一种有趣的

  • 在 Rust 中编写异步程序进行实际操作的实验
  • 在 Matrix 中编写机器人的实验
  • 使用 nom 编写简单解析器的实验

这些都是我的新领域。

用法

要使用它,您可以将机器人 (@axfive-dicebot:matrix.org) 邀请到您想要的任何房间,然后它会自动加入。然后您可以简单地给出一个投掷表达式,如下所示

!roll 4d6
!r 4d7 + 3
!r 3d12 - 5d2 + 3 - 7d3 + 20d20

然后机器人应该会很快回复结果。

您也可以通过创建机器人账户、构建投掷机器人程序(无论是从这个仓库还是通过运行 cargo install axfive-matrix-dicebot)和创建如下所示的配置文件来运行它

[matrix]
home_server = 'matrix.org'

[matrix.login]
password = 'thisismypassword'
type = 'm.login.password'
user = 'axfive-dicebot'

当然,替换所有必要的字段。然后您可以通过指向该文件的 "dicebot" 二进制文件来运行它,它将登录并继续执行其任务。

您还可以使用 dicebot-cmd 命令在命令行上运行它,该命令期望您提供上述命令表达式之一,并将返回纯文本响应。

未来计划

实际上没有。这不是一个非常严肃的项目,我也没有计划进行大量的维护或类似的工作。这主要是为了好玩。如果我有动力改进它,我可能在某个时候做一些类似的事情

  • 真正处理速率限制和其他错误。
  • 向投掷表达式添加更多语法,也许使其具有更多像 Avrae 提供的功能。
  • 可能添加更多命令。

如果有人真的想使用它,我将很高兴接受任何类型的拉取请求,无论是为了额外的功能还是增强鲁棒性。代码设计得希望能够相对容易地扩展(例如添加新命令)。

依赖项

约9-13MB
约270K SLoC