zoukankan      html  css  js  c++  java
  • mirai 使用教程

    前言

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

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

  • 相关阅读:
    Ubuntu下的解压缩
    Android开机动画
    Android 5.0源码编译问题
    ubuntu学习的简单笔记
    全局变量:global与$GLOBALS的区别和使用
    Java语言中的面向对象特性总结
    c/c++常见面试题
    查数据库中的表,了解大体结构
    PHP数组详解
    HTML5新增及移除的元素
  • 原文地址:https://www.cnblogs.com/crab-in-the-northeast/p/mirai-tutorial.html
Copyright © 2011-2022 走看看