コンテンツへスキップ

LuaとMiraiによるQQボット自動化

2021年7月25日

GitHub

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

Lua Mirai ドキュメント

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ファイルをプラグインディレクトリに配置。

ディレクトリ構成

├─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 を終了するタスクもスケジュールする必要があります。

前の記事
授業管理ソフトウェアの研究
次の記事
PythonでBilibiliライブコメントを取得する