本文最后更新于 2021-07-25,文章内容可能已经过时。

Github

https://github.com/only52607/lua-mirai

Lua Mirai Doc

https://ooooonly.gitee.io/lua-mirai-doc/

Mirai官方文档

https://docs.mirai.mamoe.net/
开始之前务必看完文档

作为MiraiConsoleLoader插件运行

这里是把 Lua Mirai 作为 MCL 的插件运行

  1. 编译或下载最新版本 mirai console loader
  2. 配置 mirai console loader 环境,并将jar放入 mirai console loader 插件目录。

目录结构

├─bots
│  └─QQ号
├─cache
├─config
│  ├─Console
│  └─lua-mirai
├─data
├─libs
├─plugins------插件目录
└─scripts
 config.json
 mcl------Linux运行
 mcl.cmd------Windows运行
 mcl.jar

基本指令

全部指令需在控制台下输入
/lua list 列出所有已加载脚本(包括已执行的和未执行的)。
/lua add <脚本路径> 载入一个脚本,但不执行。
/lua load <脚本路径> 载入一个脚本,并且执行。
/lua execute <脚本编号> 执行一个已经载入的脚本(如果已经被执行过,则忽略)。
/lua reload <脚本编号> 重新执行一个脚本(该操作会先停用脚本并重新从文件中读取内容并执行)。
/lua stop <脚本编号> 停用一个脚本(该操作会停止脚本内所有的事件监听器)。
/lua delete <脚本编号> 删除一个脚本(仅移出脚本列表,不删除文件) 。

编辑Lua脚本

在plugins目录下新建 ai.lua 编辑以下内容

Event.subscribe("BotOnlineEvent",function(event)
    local bot = event.bot
    bot:getFriend(要发送的QQ号):sendMessage("要发送的消息")
end)

注意使用 UTF-8 编码,不然发出的中文信息会乱码

运行

双击 mcl.cmd 运行
运行之后,使用自动登录指令添加自动登录的QQ号,并指定使用"ANDROID_PAD"协议登录

/AutoLogin add QQ号 QQ密码
autoLogin setConfig QQ号 protocol ANDROID_PHONE

或者编辑 /config/Console/AutoLogin.yml

accounts:
  - # 账号, 现只支持 QQ 数字账号
    account: QQ号
    password: QQ密码
      # 密码种类, 可选 PLAIN 或 MD5
      kind: PLAIN
      # 密码内容, PLAIN 时为密码文本, MD5 时为 16 进制
      value:

    # 账号配置, 可用配置列表 (注意大小写), 建议使用"ANDROID_PAD", 不会把手机QQ挤下线
    # "protocol": "ANDROID_PHONE" / "ANDROID_PAD" / "ANDROID_WATCH"
    # "device": "device.json"
    configuration:
      protocol: ANDROID_PHONE
      device: device.json

添加插件:

/lua load plugins\\ai.lua

或者编辑 /config/lua-mirai/scripts.json

[
    {
        "type": "file",
        "file": "plugins\\ai.lua",
        "enable": true
    }
]

完成之后只需要运行mcl.cmd就可以自动登录,并且自动发送消息

定时发送

定时发送消息只需要在 Windows计划任务 中定时运行 mcl.cmd 就可以了
每次运行之后,需要再定时杀掉 mcl.cmd 不然无法再次运行