mirai 使用教程

  • Post author:
  • Post category:其他


前言

众所周知,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

进入

这个链接

下载

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

然后进入文件夹,运行命令

./mcl



mcl

就会开始加载

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

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



版权声明:本文为crab_xbc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。