mirai 使用教程

时间:2024-02-17 07:48:38

前言

众所周知,CoolQ因为腾讯的封杀下架。(悲)

CoolQ 不一定是最好用的机器人框架,但对小白一定是最友好的。

而现在 CoolQ 没了,还有一个机器人框架可供我们选择 —— mirai。

mirai 相对于 CoolQ 来讲,没有 CoolQ 那么对小白友好,这也就是我写这个傻瓜式教程的目的。

ps:不建议非小白的大佬阅读本文。因为您可能会觉得太磨叽了,并且自己做要比按照我来做可能要好。这篇文章的受众对象是自己整不会 mirai 的。

pps:这篇文章使用 ubuntu 20.04 系统。使用其他版本的 ubuntu 应该问题很小。使用其他版本的 linux 可能在安装一些东西上跟本文版本不同。如果是 Windows 的话就不建议阅读这篇教程了(因为差异很大)。

前提准备

安装 openjdk

P.S. 如果您还使用这个系统玩 minecraft 的话,就不要下载最新版本的 openjdk 了,否则您的 minecraft 可能会炸。

访问这个页面,点击 Ready for use 的第一个链接(写这篇文章时是JDK 15,您看到这篇文章可能已经是JDK 16,17了),进入后下载 Linux / x64 版本。(也有可能是 AArch64,依据自己的版本而定。)

下载完这个压缩包后,进入压缩包所在文件夹,执行命令:tar -zxvf [文件名]。(我的文件名是 openjdk-15.0.1_linux-x64_bin.tar.gz

(接下来的指令操作可能需要 root 权限。sudo su root 进入 root 权限)

解压之后,把文件夹移到 /usr 目录下的一个你喜欢的位置。比如我选的是 /usr/lib/jdk。(我解压之后文件夹名就变成 jdk15.0 了)

然后输入命令 gedit /etc/environment。(当然也可以 vim)

追加这样几行:

JAVA_HOME="/usr/lib/jdk/jdk15.0/"
JAVA_PATH="/usr/lib/jdk/jdk15.0/bin/"

(改成你自己的路径)

然后在上边找到 PATH="(里边是环境变量)",在右边的双引号的前面追加 :/usr/lib/jdk/jdk15.0/bin/。(同样,可能要改成你自己的路径)

保存退出,执行指令 source /etc/environment

输入一下 java -version,不出意外的话不会报错,这样 openjdk 就安装好了。

安装 MCL

进入这个链接

下载

解压到一个你喜欢的位置(随便)。

然后进入文件夹,运行命令 ./mclmcl 就会开始加载 mirai console

如果不出意外,出现了 mirai-console started successfully. 的字样,说明加载OK。

但是也有可能出了意外(至少我出了)。意外是这样的:

java.lang.NoSuchMethodError: net.mamoe.mirai.utils.MiraiLogger$Companion.setDefaultLoggerCreator(Lkotlin/jvm/functions/Function1;)V
at net.mamoe.mirai.console.internal.MiraiConsoleImplementationBridge.(MiraiConsoleImplementationBridge.kt:99)
at net.mamoe.mirai.console.MiraiConsoleImplementation$Companion.start(MiraiConsoleImplementation.kt:209)
at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon(MiraiConsoleTerminalLoader.kt:153)
at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon$default(MiraiConsoleTerminalLoader.kt:152)
at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.main(MiraiConsoleTerminalLoader.kt:48)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...(此处省略一堆)

解决方案是,编辑 mcl 文件夹中的 config.json,让文件变成这样:

{
  "js_optimization_level": -1,
  "mirai_repo": "https://gitee.com/peratx/mirai-repo/raw/master",
  "maven_repo": "https://maven.aliyun.com/repository/public",
  "packages": [
    {
      "id": "net.mamoe:mirai-console",
      "channel": "nightly",
      "version": "2.0-M1-1",
      "type": "libs"
    },
    {
      "id": "net.mamoe:mirai-console-terminal",
      "channel": "nightly",
      "version": "2.0-M1-1",
      "type": "libs"
    },
    {
      "id": "net.mamoe:mirai-core-all",
      "channel": "nightly",
      "version": "2.0-M1-1",
      "type": "libs"
    }
  ],
  "disabled_scripts": [],
  "proxy": "",
  "log_level": 0,
  "script_props": {}
}

然后奇迹应该就会出现了。

这个时候可以尝试用 mcl 登录一下你的bot。(嗯,不建议用大号,建议将小号作为你的bot哦)

输入 /login bot的QQ号 bot的密码。(如果你想让bot自动登录,可以编辑mcl文件夹下的config/Console/AutoLogin.yml,里边有注释,相信读者可以看懂。)

见证奇迹的时候到了!

试着换用一下常用登录地点。如果已经是常用登录地点或者换了还是不管用,参见https://github.com/project-mirai/mirai-login-solver-selenium

现在机器人框架已经确保正常了,接下来是编写插件的时间。