MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. MrXiaoM
    3. 主题
    • 资料
    • 关注 9
    • 粉丝 39
    • 主题 37
    • 帖子 865
    • 最佳 206
    • 有争议的 0
    • 群组 5

    MrXiaoM 创建的主题

    • MrXiaoM

      不知不觉11月了,今年你code=45了吗
      摸鱼区 • • MrXiaoM

      5
      4
      赞同
      5
      帖子
      839
      浏览

      MrXiaoM

      kawaii.png

    • MrXiaoM

      [Overflow] LocalFileService —— 不再以 base64 形式发送图片、语音、短视频
      插件发布 • jvm plugin kotlin overflow • • MrXiaoM

      4
      3
      赞同
      4
      帖子
      1600
      浏览

      MrXiaoM

      本插件为 Overflow 的附属插件。

      项目地址:https://github.com/MrXiaoM/LocalFileService

      LocalFileService

      Overflow 的附属模块,目前用于更改图片、语音、短视频消息的文件上传方案,使用更优雅的方法兼容 mirai 原本的上传文件。

      适用于 mirai 与 Onebot 协议实现 部署在同一机器下,可访问同一文件系统的情形。
      如 LLOnebot、NapCat、Gensokyo 等。

      当负载在 mirai 上传图片、语音、短视频时,插件提供的文件服务将会把数据流保存到本地临时文件,并将文件路径回传,用于发送到 Onebot 协议端。
      以此覆盖掉 Overflow 自带的 Base64 文件服务,可以使得日志文件占用更小,更方便查看最近上传文件。

      mirai-console 使用

      安装本插件,启动后到配置文件 config/top.mrxiaom.overflow-local-file-service/config.yml 设置以下选项

      保存路径,默认为 data/top.mrxiaom.overflow-local-file-service 文件保存时间(天),默认为 7天 如果要上传的是本地文件,是否直接使用本地文件,默认为 开启

      等。使用命令 /lfs reload 重载配置即可。

      mirai-core 使用

      请参考本插件源码 LocalFileService.kt
      调用 register() 即可注册该服务

    • MrXiaoM

      发生了一个错误
      摸鱼区 • • MrXiaoM

      2
      2
      赞同
      2
      帖子
      540
      浏览

      MrXiaoM

      XaX
      mirai_error (20240601024811).png

      pid 119231085

    • MrXiaoM

      Overflow —— 将 mirai 实现换成 Onebot,机器人的又一个解决方案
      项目发布 • kotlin jvm onebot • • MrXiaoM

      63
      5
      赞同
      63
      帖子
      13935
      浏览

      MrXiaoM

      Overflow.png
      项目地址:https://github.com/MrXiaoM/Overflow

      官网:https://mirai.mrxiaom.top

      无缝迁移 mirai 到 OpenShamrock、Gensokyo、Lagrange、LLOnebot、NapCat 等 Onebot 实现!

      该项目正在施工中,敬请期待

      详细安装教程请见官网结尾。

      由于学业问题以及还有其它项目正在进行,Overflow 的开发暂缓

      mirai-core 和 mirai-console 均可使用。

      项目开发进度以及开发版本发布将会在群 1047497524 中进行,目前已经可以正常收发消息。

    • MrXiaoM

      MiraiDailySign —— 高度自定义的签到插件
      插件发布 • jvm plugin kotlin economy 自定义 • • MrXiaoM

      20
      4
      赞同
      20
      帖子
      3211
      浏览

      MrXiaoM

      MiraiDailySign

      拥有极高自由度的签到插件。适配 经济服务 Mirai Economy Core。

      项目地址:https://github.com/MrXiaoM/MiraiDailySign

      简介

      本插件为用户的经济服务金钱提供了来源。每日签到可领取自定义货币自定义数量的金钱。

      功能 高度自定义的回复格式与变量 分经济上下文给予奖励 给予随机金钱 通过脚本给予自定义金钱 日签到记录 连续签到奖励 月签到月历 Coming soon 截图

      1694874832578.png
      签到.jpg

      脚本

      本插件附带一个默认脚本 config/top.mrxiaom.mirai.dailysign/script.js。

      你可以使用该脚本

      为签到反馈提示增加自定义变量 自定义月签到月历的样式 自定义签到奖励算法

      在脚本开头有注释提示,脚本中有访问网络获取一言和获取脚本内随机句子的示例,尽情发挥你的想象吧!

      关于自定义月签到月历的函数 function signCalendar(p, data, isGlobal) 中的参数 p,详细用法请见 SurfaceHelper.kt 的源码注释。

      安装

      首先下载并安装以下前置:

      必装 mirai-economy-core (经济核心) 可选 mirai-skia-plugin (绘图前置,用于绘制签到月历)

      再到 Releases 下载插件并放入 plugins 文件夹进行安装。

      如果你觉得本插件好用,不妨给本帖点赞或给 Github 仓库点个 Star,感谢。

      控制台使用命令 /dailysign reload 即可重载脚本 script.js 以及 groups 中的所有签到配置!
      重载后会将载入的签到配置写入文件,以保证更新版本之后配置文件兼容,请在重载之前确保你编辑的配置文件已保存!
      用户数据在 data 文件夹,不建议手动编辑。用户数据实时保存,若在运行时编辑用户数据,你的更改可能会被覆盖。

      保证你的 mirai 版本大于或等于 2.11.0
      下载 MiraiDailySign-*.mirai2.jar
      安装完毕后,编辑配置文件作出你想要的修改。在控制台执行 /dailysign reload 重载配置即可~

      无桌面环境系统配置

      如果你需要在无桌面环境中使用绘图功能(签到日历),请将相关的中文字体(比如黑体)放到以下目录(相对于 mirai 运行目录)

      data/xyz.cssxsh.mirai.plugin.mirai-skia-plugin/fonts/ 其它插件

      推荐与其它已适配经济系统的插件搭配使用。欢迎在 Pull Requests 补充该列表,仅接受补充 MiraiForum 帖子链接,要求插件开源。

      LoliYouWant CommandYouWant 权限 权限 说明 top.mrxiaom.mirai.dailysign:command.miraidailysign 允许重载插件 top.mrxiaom.mirai.dailysign:calendar 允许触发查看签到日历

      签到命令也需要权限,默认权限是 top.mrxiaom.mirai.dailysign:sign.default,可以在配置文件中设置。

      这里是内置权限系统的一些常用的给予权限命令,不要乱加空格,不要乱删空格

      给予某群所有人权限 /perm permit m群号.* 权限,如 /perm permit m114514.* com.example:name
      给予某群某人权限 /perm permit m群号.QQ号 权限,如 /perm permit m114514.1919810 com.example:name
      给予某人权限 /perm permit QQ号 权限,如 /perm permit 1919810 com.example:name

      配置教程

      打开目录 ./config/top.mrxiaom.mirai.dailysign/groups/,使用文本编辑器打开 default.yml,按照自己的需要修改配置项。

      如果你需要不同配置,请把 default.yml 复制改名为 任意名称.yml 再进行编辑。

      用法

      如果没有编辑过配置文件的话,用法如下

      @机器人 签到 @机器人 签到日历 @机器人 群签到日历

      默认需要at,可以设置不at,为了避免机器人之间冲突,强烈建议开启需要at。

      捐助

      前往 爱发电 捐助我。

    • MrXiaoM

      SignManager —— 图形化签名服务管理器,更方便地配置签名服务
      项目发布 • csharp mirai-console encrypt sign • • MrXiaoM

      35
      5
      赞同
      35
      帖子
      6427
      浏览

      MrXiaoM

      icon.png

      SignManager

      项目地址:https://github.com/MrXiaoM/SignManager

      由于 ufq 和 fpv 删库,本软件已无法用于安装签名服务,配置功能仍正常运作

      Stars Releases

      SignManager 是适用于 mirai 平台的签名服务管理器

      图标由画师人间工作绘制

      本程序用于配置 cssxsh/fix-protocol-version 对接的签名服务。
      如果你想使用即装即用的内嵌签名服务,另请参见 MrXiaoM/qsign

      使用方法

      本软件仅支持在 Windows 下运行,你可以在 Windows 下配置好签名服务再迁移至其他系统使用。

      欲运行本程序,需要安装 .NET Core 6.0 桌面运行时环境。

      本程序不支持 32 位操作系统,请使用 Windows 7 或以上的 64 位操作系统。

      到 Releases 下载 SignManager-x.x.x-win-x64.exe,放入 mirai 所在目录并打开,即可安装并配置签名服务。

      如果你觉得有用,不妨给本帖点赞或到项目地址点一个 Star。

      入门级教程

      如果无法加载版本列表,请关闭代理、重启程序后再试。
      如果还不行,可能是你请求次数过多,请至少等待1小时后再试。

      目前推荐使用 8.9.63 (较稳定),下文以 8.9.63 举例,其它版本的安装方法雷同。

      确保 mirai 已经彻底关闭。 将本程序放到 mirai 所在目录 (那里可以看到 config、data、plugins 等文件夹),然后打开本程序。 点击 下载/更新签名服务,选择一个版本,点击 下载,等待安装完成。 在 签名服务相关配置 中选择版本 8.9.63,点击 生成该版本启动脚本。 若 签名对接插件 显示 未安装,点击 安装/更新插件,选择一个版本,点击 下载,等待安装完成。 点击 签名服务连接配置,点击 8.9.63 版本,如果没有就点 新建,输入8.9.63新建一个配置并选中它。 在 读取配置 选中 8.9.63,点击 从签名服务配置中读取,点击 保存,关闭窗口。 点击 下载协议信息,刷新版本列表,选择 8.9.63,下载它的 ANDROID_PHONE,完成后关闭窗口。

      如果 检查 处3个状态灯都是绿灯,则代表配置完成。

      配置完成后,打开签名服务脚本,
      Windows 是 start_unidbg-fetch-qsign.cmd
      Linux/macOS 是 start_unidbg-fetch-qsign.sh

      在浏览器打开 检查 里提到的签名服务 服务地址,如果出现 IAA 云天明 章北海 之类的字样则代表签名服务开启成功。

      如果签名服务开启失败,点击 更改该版本配置,将服务地址那行第二个输入框的数字(端口)改成 1024-65535 之间任意一个数,
      保存之后再重新打开脚本,重新验证签名服务运行是否正常。
      正常之后再返回上面的第6步重新配置。

      签名服务成功开启后,再打开 mirai,用以下命令登录即可

      /login 账号 密码 截图 ...

      pic1
      pic2
      pic3
      pic4

      引用项目 mamoe/mirai cssxsh/fix-protocol-version fuqiuluo/unidbg-fetch-qsign NingShenTian/CsharpJson
    • MrXiaoM

      已解决 code=45 详细解决教学 以及注意事项
      使用交流 • 教程 encrypt 登录问题 • • MrXiaoM

      2
      1
      赞同
      2
      帖子
      1457
      浏览

      MrXiaoM

      https://wiki.mrxiaom.top/mirai/45

      如果你觉得有用,可以给本帖点赞或者到本文档的 Github 仓库点一个 Star,感谢。

      最后更新:2023/07/22

    • MrXiaoM

      qsign —— 签名 不要指望用来解决code=45
      插件发布 • jvm plugin kotlin encrypt sign • • MrXiaoM

      168
      6
      赞同
      168
      帖子
      38874
      浏览

      MrXiaoM

      开源签名服务已停止更新,不止是我。不推荐再使用开源的签名服务,都是玩剩下的了。

      https://github.com/MrXiaoM/qsign

      8.9.58 - 8.9.85 支持。

      8.9.88、8.9.90 协议信息包含,可登录不保证可用性

      如果你对可快速配置上手的新版插件内置签名服务感兴趣,请参见 MrXiaoM/qsign,目前稳定运行,正在测试中。 能用,不保证以后能用,做好拉闸的准备。
      MrXiaoM/qsign 的安装非常简单,只需要寥寥几步即可快速上手。

      支持 mirai-core 使用,详见项目地址末尾。

      仓库中 txlib 内,除了签名配置外,还有各协议版本的 android_phone.json 和 android_pad.json,这些资料也可以用于 go-cqhttp。

      ... SignManager

      https://mirai.mamoe.net/topic/2421

      外置签名服务的图形化搭建方法,更方便不懂得如何编辑配置文件、经常忽略确认版本正不正确的小白使用。

      ufq 和 fpv 已删库,导致该软件依赖的下载源消失,已无法使用。

      KawaiiMiku(已停更)

      https://github.com/MrXiaoM/KawaiiMiku
      KawaiiMiku 旧版可使用,已测试通过。但旧版缺少一部分算法。

      KawaiiMiku 新版测试未通过,且 KawaiiMiku 不会再更新新版内容,请使用 fix-protocol-version

      旧README备份

      如果你觉得有用,给本帖点赞或者给仓库点个Star,感谢。

      协议库可能撑不了多久了,且用且珍惜。

      更多内容

      解决 code=45 的详细教程以及注意事项:
      https://wiki.mrxiaom.top/mirai/45

      捐助

      前往 爱发电 捐助我。

      IMG_20231011_171334.jpg
      mirai,2019——至今。

      插播一条广告

      onebot 转 mirai:https://mirai.mrxiaom.top/

    • MrXiaoM

      Lapis —— Mirai开发版本下载器
      项目发布 • java mirai-console lapis mirai-core • • MrXiaoM

      2
      3
      赞同
      2
      帖子
      1365
      浏览

      MrXiaoM

      Lapis

      https://github.com/MrXiaoM/Lapis
      mirai-console 开发版一键安装器。

      除非有特殊需要,比如尝试新版本的更新或者修复内容,否则请不要安装开发版本。

      用法

      在本仓库点击 Code -> Download Zip 将源代码拉到本地并解压。
      确保你的系统已经安装 Java
      尽可能使用 Java 17,不要使用 Java 20
      到 Mirai预览仓库 寻找你要安装的版本,记下来。

      Windows 系统打开 setup.ps1 或 setup.bat
      Linux/MacOS 系统打开 setup.sh

      按照提示,输入版本号并回车即可。

      出现绿色的 BUILD SUCCESSFUL 时,代表构建成功,
      可到 ./build/lapis 文件夹寻找打包好的一键包,找个地方解压使用。

      如果你觉得有用,不妨给本帖点赞或者到仓库点一个Star

      捐助

      前往 爱发电 捐助我。

    • MrXiaoM

      GroupYouWant —— 只允许用户加入其中一个联合群聊
      插件发布 • kotlin plugin xxxyouwant group 群统计 • • MrXiaoM

      3
      0
      赞同
      3
      帖子
      624
      浏览

      MrXiaoM

      GroupYouWant

      「你想要的插件」系列作品

      项目地址:https://github.com/MrXiaoM/GroupYouWant

      只允许用户加入其中一个联合群聊

      简介

      灵感来源于论坛坛友,将几个群添加到联合群聊配置中后,
      运行配置检查,当联合群聊的所有群中,有群员在两个或以上的群聊时,将会把群员踢出群,只留他在其中的一个群。
      配置检查会在用户申请入群的时候运行,或者使用命令手动运行。

      用法

      本插件除了首次加载之外不会有任何写配置的行为,你可以放心在 mirai 开启的情况下编辑配置文件。

      第一次启动该插件,会生成默认配置 /config/top.mrxiaom.groupyouwant/groups/default.yml。
      编辑该配置文件,根据配置文件中的注释补全信息,然后执行命令 /guw reload 重载配置文件。

      使用命令 /guw list 查看已加载的配置。
      使用命令 /guw check [配置] 来运行配置检查,以便踢出重复群员。
      使用命令 /guw check 可运行所有的配置检查。

      拥有权限 top.mrxiaom.groupyouwant:bypass 的人将不会被检查和踢出。(详见 Permission 模块)

      给予权限示例: /perm permit u114514 top.mrxiaom.groupyouwant:bypass
      撤销权限示例: /perm cancel u114514 top.mrxiaom.groupyouwant:bypass

      在配置文件中可配置在其中一个群有管理员的群员不会被检查和踢出。

      如果你需要添加更多的联合群聊配置,复制默认配置,修改文件名称,对配置文件做出修改,使用命令重载配置文件即可

      下载

      到 Releases 下载插件并放入 plugins 文件夹进行安装

      下载 GroupYouWant-*.mirai2.jar
      从 2.12.0-RC 起,mirai 修复了配置文件子路径问题,故本插件仅能运行在 mirai 2.12.0-RC 或更高版本。

      安装完毕后,编辑配置文件作出你想要的修改。在控制台执行 /guw reload 重载配置即可~

      捐助

      前往 爱发电 捐助我。

      ...

      来自群组: SkyNet1748

    • MrXiaoM

      二维码扫码登录
      插件发布 • kotlin plugin qrcode 二维码登录 • • MrXiaoM

      54
      14
      赞同
      54
      帖子
      19592
      浏览

      MrXiaoM

      mirai-console-dev-qrlogin

      mirai-console 的扫码登录命令 临时实现。
      https://github.com/MrXiaoM/mirai-console-dev-qrlogin

      扫码登录目前可用状态比较糟糕,已不再推荐使用。请尝试使用其他方法登录。

      https://wiki.mrxiaom.top/mirai/45
      https://mirai.mamoe.net/topic/223

      Releases Stars

      注意事项 扫码登录不一定能够解决风控问题,该报 235 可能还得报 235,因人而异。 请确保 mirai 所在网络环境与你手机所在网络环境相似,否则QQ可能不会允许你确认登录。 请使用手机摄像头扫码,或者使用 XPosed 模块绕过不可通过相册扫码登录的限制。 扫码登录暂无预发行版本或稳定版本支持,仅有开发版支持,可能会有较明显的 bug。 扫码登录的接口可能会在 2.15.0-RC 发生变化,本插件不保证在以后版本的可用性。

      最近已知的风控

      服务器最近似乎针对手表协议进行了更新,发送消息过快可能会导致机器人被风控无法再发送群消息。 该风控可通过让机器人频繁发送消息复现。一般来说通过密码登录皆为 code=45 若机器人无法发送群消息,请删除 cache 和 device.json 重新登录再试。 请尝试寻找降低消息发送速度的措施。(可尝试使用插件 ryoii/mirai-rate-limit)

      请等待密码登录相关协议的更新。

      这是什么

      最近二维码登录的 PR 合并了,但是我并没有找到登录命令,所以我打算写一份暂时用着。为了较快地能写出一套登录命令,大部分代码是抄的mirai原来的自动登录系统。

      用法

      在 mirai 版本大于或等于 2.15.0-dev-27 的控制台中安装该插件,如果你不会下载开发版本,可在本文末尾加群下载一键包。你也可以使用最近的一个测试版本 2.15.0-M1

      安装插件后启动,在控制台输入命令

      qrlogin <QQ号>

      即可进行二维码登录,第一次进行二维码登录要求使用手机QQ扫码二维码确认,第二次及以后可自动使用登录会话来登录而无需扫码。建议在第一次登录后添加自动登录。

      如果看不清控制台输出的二维码图片,可以在 ./data/top.mrxioam.qrlogin/ 找到二维码图片文件。

      使用 ANDROID_WATCH 协议进行扫码登录时,需要 mirai 与你的手机处于同一网络环境,可以通过连接同一 WiFi 来实现。
      如果你的 mirai 在服务器上,可尝试在服务器上搭建代理服务器,手机连接代理服务器再扫码。

      你页可以在本地电脑扫码登录完成后退出登录,在服务器删除 ./bots/机器人QQ号 文件夹,将本地的 ./bots/机器人QQ号 文件夹传输到服务器,至少等待半小时再登录。
      等待足够长的时间避免短时间内异地登录造成风控要求重新扫码,这个方法大概率可以成功,在已被标记风控的IP地址可能无法成功。

      帮助命令

      和 mirai-console 自带命令基本一致,只是命令前缀多了 qr,选项少了密码。

      /qrLogin <qq> [protocol] # 扫码登录,协议可用 ANDROID_WATCH 和 MACOS,默认 ANDROID_WATCH /qrAutoLogin add <account> # 添加(扫码登录)自动登录 /qrAutoLogin clear # 清除(扫码登录)自动登录的所有配置 /qrAutoLogin list # 查看(扫码登录)自动登录账号列表 /qrAutoLogin remove <account> # 删除一个(扫码登录)自动登录账号 /qrAutoLogin removeConfig <account> <configKey> # 删除一个账号(扫码登录)自动登录的一个配置项 /qrAutoLogin setConfig <account> <configKey> <value> # 设置一个账号(扫码登录)自动登录的一个配置项

      添加 jvm 参数 -Dmirai.no-desktop 可以禁用窗口式扫码登录处理器。
      添加 jvm 参数 -Dqrlogin.no-solver 可以禁止本插件修改登录解决器。

      构建

      非开发者可无视此部分。

      ./gradlew buildPlugin

      对于想要使用 扫码登录 的 mirai-core 用户,请见 mirai 2.15.0-M1 的 Release Note,里面有扫码登录的操作方法。
      或者参考本插件源码:

      登录命令: QRLoginCommand.kt
      修改登录解决器: QRLoginSolver.kt

      扫码登录版本一键包下载

      加入群 1047497524 在群文件 Mirai 一键包 文件夹下载。

      如果你觉得有用,请给本贴点赞,或到 Github 项目地址点一个标星 (Star)

      捐助

      前往 爱发电 捐助我。

    • MrXiaoM

      【教程】用MCL升级mirai到预发行版 操作示例
      使用交流 • 教程 mcl mirai-console • • MrXiaoM

      27
      1
      赞同
      27
      帖子
      7185
      浏览

      MrXiaoM

      如需升级到开发版本,另请参见

      https://mirai.mamoe.net/topic/2333

      文字通常没有操作示例那么让人易懂,所以我闲着没事录一点。

      更改为预发行版更新通道 (可选)

      有时候有些预发行版会包含重大更新,而 MCL 是默认下载稳定版的。如果出于某种原因你想要更新到预发行版本,那么这时我们需要编辑配置文件,再进行更新。
      预发布.gif

      ... 使用 stop 命令关闭 MCL。 在 查看 勾选 文件扩展名。(win7 请见这个教程) 在 MCL 所在文件夹用记事本(或其他文本编辑器)打开 config.json。 将 maven-stable 改成 maven,保存。 进行帖子往下的操作 (不用第一步) 执行更新 mirai,这里以 cmd 举例,PowerShell 同理。 在 CMD 执行

      cmd.gif

      ... 使用 stop 命令关闭 MCL 在 MCL 所在文件夹打开 cmd 使用 mcl -u 命令更新 mirai 等待下载完成后,使用 /status 查看当前版本 在 PowerShell 执行

      据说部分用户打开 cmd 没有管理员权限,此时可使用 PowerShell 来升级,流程基本一致
      powershell.gif

      ... 使用 stop 命令关闭 MCL 在 MCL 所在文件夹打开 powershell 使用 ./mcl -u 命令更新 mirai 等待下载完成后,使用 /status 查看当前版本

      我手中没有趁手的 Linux 机器,懒得装 WSL,Linux 用户应该自己会更新吧?
      不会还有 Linux 用户执行个命令或者改个文件都不会吧?不会吧不会吧?

      ...

      手把手教了属于是
      来自群组: SkyNet1748

    • MrXiaoM

      Aoki —— 仅用安卓手机解决登录验证
      项目发布 • android mirai-core aoki • • MrXiaoM

      11
      3
      赞同
      11
      帖子
      3938
      浏览

      MrXiaoM

      icon_round.png logo.svg

      Releases Stars Android

      Aoki 是在 Android 平台上基于 mirai 开发的登录处理器

      本项目名称来源于
      i-style project 推出的虚拟歌手蒼姫ラピス (Aoki Lapis)
      项目图标由人间工作绘制

      本项目所使用的“迁移设备信息”方法可能已不再适用,请通过以下链接教程部署签名服务

      https://wiki.mrxiaom.top/mirai/45

      注意事项 请确保你在真实的 Android 设备上进行登录 请确保你已在该 Android 设备登录了官方的 QQ 客户端 Aoki 可以确保你在第一次登录时能够正常登录,不能保证已经触发过 235/237/45 的账号能登录 由于服务器策略更新,“迁移设备信息” 这种登录方法可能不再可用。 使用方法

      先设法将你的本地 mirai 版本升级到 2.15.0-dev-98 或以上 (或 2.15.0-RC)。升级到开发版方法将会在以后放出。

      使用插件将 ANDROID_PAD 协议的版本信息改为 8.8.88,如 fix-protocol-version 插件。
      如果开启时提示“服务注册失败”,你可能还需要再安装 KawaiiMiku 插件

      在真实的 Android 手机上安装 Aoki,

      注意一定要在真实的手机上打开 Aoki,因为 Aoki 需要读取你的手机型号等信息生成 device.json。

      打开并按照引导进行登录 (使用平板协议)。出现「登录成功」提示后,你可以

      压缩并分享

      登录成功后点击「打包并分享到…」,然后在弹出的分享面板中想办法将该文件发送到电脑上,比如 通过QQ文件传输助手发送到电脑,或者 使用蓝牙连接发送到电脑 等等。

      你也可以在「账号管理」中找到「打包并分享到…」。

      通过路径复制文件

      使用任何你能想到的方法将手机储存目录下的 Android/data/top.mrxiaom.mirai.aoki/files/AokiMirai 文件夹传输到电脑上,可用的方法包括但不限于如下:

      使用数据线复制文件夹 压缩文件夹,通过QQ文件传输助手发送到电脑

      将从以上其中一种方法获得的 bots 文件夹中以qq号命名的文件夹,
      覆盖到 mirai 目录,然后你就可以在 mirai 中登录你的账户了。

      建议在导出文件后,等待半小时左右再登录,以免因为短时间内两次登录的 IP 归属地变动较大被风控。

      下载

      在 Github Releases 下载最新版本
      如果你觉得有用,请点击右下角的点赞按钮,或到 Github 点一个标星(Star),感谢支持。

      帮助

      使用过程中的问题请在本帖或 QQ 群 1047497524 询问。
      若出现bug或者想要贡献代码,请前往 Github。

      捐助

      前往 爱发电 捐助我。

    • MrXiaoM

      我写了一个 mirai 登录 App
      摸鱼区 • • MrXiaoM

      5
      1
      赞同
      5
      帖子
      774
      浏览

      MrXiaoM

      我写了一个能仅用 Android 手机就能完成登录的 App。登录完成后将会在手机储存目录下的 AokiMirai 文件夹生成跟 mirai-console 类似的账户目录结构,复制到 mirai 根目录即可。

      就在刚刚,它完成了第一次登录,而且还是在模拟器上。(不推荐用模拟器,App要获取手机系统信息来生成 device.json 和浏览器 UA)

      写好了,但没完全写好,还有亿些小bug没解决,正式完成后开源。

      -66ba190aa8a7939d.png
      -478ea1c821c5ec70.png
      53501a792fb7929b.png
      50e79bcf63eea2a6.png
      -16e7514d8fb24570.png

    • MrXiaoM

      获取回复消息(QuoteReply)指向原文的实现思路
      技术交流板块 • • MrXiaoM

      6
      1
      赞同
      6
      帖子
      751
      浏览

      MrXiaoM

      总所周知,腾讯服务器给你返回的 QuoteReply 的源消息并不是富文本消息,也就是说,图片会“退化”为[图片]等等。如果我们想做回复消息搜图之类的功能,这给我们带来了比较多的麻烦。

      但是,我们可以取到源消息的 MessageSource,只要你本地存了聊天记录,就能够通过 MessageSource 获取相应消息。按照这个思路,我们只要跟QQ客户端一样,把消息存到本地,需要时获取即可。

      具体实现

      本帖中将使用 Mirai Hibernate Plugin 插件储存聊天记录,演示获取回复消息原文的方法。

      引用依赖 // build.gradle(.kts) repositories { mavenCentral() } dependencies { compileOnly("xyz.cssxsh.mirai:mirai-hibernate-plugin:依赖版本") } // hibernate 6 和 HikariCP 5 需要 jdk11 mirai { jvmTarget = JavaVersion.VERSION_11 } //author("MrXiaoM") // 在主类插件信息处声明插件依赖关系 dependsOn("xyz.cssxsh.mirai.plugin.mirai-hibernate-plugin", false) Kotlin val QuoteReply.originalMessageFromLocal: MessageChain get() = MiraiHibernateRecorder[source].firstOrNull()?.toMessageChain() ?: source.originalMessage // 使用示例 @EventHandler fun GroupMessageEvent.listen() { // 检测回复消息 message[QuoteReply.Key]?.run { val original = originalMessageFromLocal // do sth. } } Java public static MessageChain getOriginalMessageFromLocal(QuoteReply quote) { Optional<MessageRecord> record = MiraiHibernateRecorder.INSTANCE.get(quote.getSource()).stream().findFirst(); return record.map(MessageRecord::toMessageChain).orElseGet(() -> quote.getSource().getOriginalMessage()); } // 使用示例 @EventHandler public void onGroupMessage(GroupMessageEvent event) { // 检测回复消息 QuoteReply quote = event.getMessage().get(QuoteReply.Key); if (quote != null) { MessageChain original = getOriginalMessageFromLocal(quote); // do sth. } }
    • MrXiaoM

      CommandYouWant —— 重定向其他插件的命令
      插件发布 • kotlin plugin xxxyouwant 命令 • • MrXiaoM

      22
      0
      赞同
      22
      帖子
      3565
      浏览

      MrXiaoM

      CommandYouWant

      项目地址:https://github.com/MrXiaoM/CommandYouWant

      「你想要的插件」系列作品

      重定向命令,统一机器人命令格式。

      灵感来源于 Minecraft 服务端插件 OhMyCmd

      经济系统支持

      本插件支持使用经济系统(可选) Mirai Economy Core,
      如有需要使用金钱功能,请自行安装。若不需要金钱功能可不安装,不影响使用。

      简介

      各大插件作者对于机器人命令的命名方式各不相同,
      同时,有的插件年久失修,且没有提供命令修改方法。
      这时,CommandYouWant 派上了用场,你可以逐一部署
      各个命令的别名,将这个命令的参数任意映射到另一个命令上。

      安装

      到 Releases 下载插件并放入 plugins 文件夹进行安装

      安装完毕后,编辑配置文件作出你想要的修改。在控制台执行 /cmduw reload 重载配置即可~

      使用方法和示例

      以调用 cssxsh 大佬的 NovelAi Helper 为例,先到文件夹 config/top.mrxiaom.commandyouwant/commands,第一次启动这个插件会创建这个文件夹并把示例配置 sample.yml 放进去。首先把 sample.yml 复制一份,取任意名放在同一文件夹中。然后打开编辑:

      perm: test perm-desc: 获取图片 deny-tips: '权限不足' keyword: '{at:bot}画画 {next}' keywords-list: [] # 参数屏蔽词 keyword-block: # 第二个参数 {next} 中禁止出现的字符列表 1: - '#' keyword-block-tips: 你输入的参数不合规 actions: - 'cmd:/nai {1}' - 'send:可以像这样一次执行多条指令' # false 的时候忽略执行以上两条命令的权限检查 is-action-check-perm: false

      首先我们设置权限,比如将 perm 设为 test,填写后用户需要有权限 top.mrxiaom.commandyouwant:command.test 才能执行这个命令。

      然后,我们需要定义用户要怎样才能触发这个命令,将格式写到 keyword 里。如果需要更多命令别名,加到 keywords-list 里,格式与 keyword 一致。

      在 keyword 中插入 {} 包围的内容作为命令参数,如图中的例子,有两个参数 {at:bot} 和 {next} (都能填什么参数可以在后面的表格看到),用户需要发「@机器人 画画 初音未来 可爱(任意字符都行)」,插件就会把其中的参数提取出来,按顺序排好,这里的参数是

      索引 内容 0 @机器人 1 "初音未来 可爱(任意字符都行)"

      然后,插件会将这些参数替换掉 actions 里的 {索引} 然后模拟用户执行命令。

      说白了,就是给其他插件的命令套壳。
      写要执行的命令到 actions 之前,需要添加前缀。不添加前缀将默认以 cmd: 方式执行。

      前缀 说明 cmd: 使用 mirai-console 的命令系统执行命令 msg: 模拟消息事件,触发其他插件收到群消息/好友消息 send: 发送消息,后面填写的内容即发送的内容

      在 actions 中,你可以使用这些基础变量,如有需要其他变量,欢迎 PR。

      变量(不区分大小写) 说明 {at} @发送命令的人,好友消息时将为空白 {quote} 回复消息 {botId} 机器人QQ号 {groupId} 群号,好友消息时将为空白 {friendId} 好友QQ号,群消息时将为空白 {senderId} 命令发送者QQ号 {subjectId} 好友消息时为QQ号,群消息时为群号

      如果无法通过索引补充参数到要模拟执行的命令里,将会在后台报错。如果你有特别需求忽略这个错误,请在后面再加个 ?,如 {0}?

      在完成了命令的基础设置后,你可以更改一些进阶设置,注释在默认配置文件里都有。

      keyword/keywords 所有可用的参数如下

      内容 解释 {arg} 单个文字参数,识别到空格就终止 {next} 长段文字参数,识别到其他类型的消息元素或消息末尾就终止 {at} @某人,@所有人都可以 {at:QQ号} @某人,只能@特定某个人 {at:bot} @机器人 {img} 图片 {face} 表情

      希望你能看懂这份教程。

      捐助

      前往 爱发电 捐助我。

      ...

      来自群组: SkyNet1748

    • MrXiaoM

      (WIP) GraphicalMirai —— 新一代 mirai 启动器/插件中心
      项目发布 • csharp mirai-console 启动器 插件中心 • • MrXiaoM

      20
      6
      赞同
      20
      帖子
      6550
      浏览

      MrXiaoM

      GraphicalMirai

      项目地址:https://github.com/MrXiaoM/GraphicalMirai

      正在开发中,可以正常下载启动 mirai,但仍不完善故没有发布版本,给大家画个大饼,敬请期待

      当前进度 下载 mirai 启动 mirai 控制台着色 使用 Socket 实现 GraphicalMirai 与 mirai 通信,不强制安装 MAH 但强制安装 GraphicalMirai 通信桥 登录UI 管理自动登录 辅助处理滑块验证 多用户聊天窗口 管理本地插件 获取论坛上的插件 下载论坛上的插件 获取 mirai-repo 上的插件 下载 mirai-repo 上的插件 包管理器 截图

      以下截图仅供评估,不代表最终品质。欢迎提出问题和建议。

      001.png
      002.png
      003.png
      004.png
      005.png
      006.png

    • MrXiaoM

      变成了群友形状的 mirai 娘❤🔪
      摸鱼区 • mirai-core mirai-console 同人创作 pixiv • • MrXiaoM

      4
      0
      赞同
      4
      帖子
      606
      浏览

      MrXiaoM

      看bt群友在群里发作的时候突发奇想

      pid 100812085

      java 那杯咖啡好难画所以领带上的图标换成了极简 kt 图标

    • MrXiaoM

      保存只读配置文件
      技术交流板块 • kotlin console 配置文件 • • MrXiaoM

      4
      0
      赞同
      4
      帖子
      398
      浏览

      MrXiaoM

      先上代码。这可能对大多数人来说没有必要,仅仅是我个人奇怪的操作习惯。

      // 添加下面的代码到你继承了 ReadOnlyPluginData 或者 ReadOnlyPluginConfig 的配置类即可 @OptIn(ConsoleExperimentalApi::class) private lateinit var owner_: PluginDataHolder @OptIn(ConsoleExperimentalApi::class) private lateinit var storage_: PluginDataStorage @OptIn(ConsoleExperimentalApi::class) override fun onInit(owner: PluginDataHolder, storage: PluginDataStorage) { owner_ = owner storage_ = storage } // 不需要设为 public,直接调用扩展方法 save 即可 @OptIn(ConsoleExperimentalApi::class) private fun save() { kotlin.runCatching { storage_.store(owner_, this) }.onFailure { e -> // 记得处理异常 }

      如果你只想关闭定时保存,不想关闭属性修改后自动保存,请用 AutoSavePluginData 或 AutoSavePluginConfig 并重写  ​shouldPerformAutoSaveWheneverChanged​() 使它返回 false

      mirai 的只读配置文件曾让我陷入了两难的局地,按照我的个人理解,PluginConfig 是给用户确定插件的一些参数的,插件不应该去修改数值,所以我没用 AutoSavePluginConfig 而是用了 ReadOnlyPluginConfig,在我编写插件调试的过程中我发现一个问题,它真的是只读的 —— 这很正常,因为它就叫只读配置,它在配置文件不存在时会保存默认配置文件,但在我添加新的配置键到类之后,却因为它的只读而没有在配置文件里更新不存在的配置键……

      这不符合我的预期,由于我当时没看到 AutoSavePluginData 里可以关定时保存,故着手研究如何保存只读配置,最后在 AutoSavePluginData 里找到了……

      重载配置文件时,reload() 再 save(),即可更新不存在的配置键。

      我只能以「简化成了我想要的样子不像 AutoSavePluginData 有我不需要的功能」来安慰自己了 :(

      补充

      经过讨论,ReadOnlyPluginData 无法保存是在旧版本 mirai 中的问题,在新版本 mirai 可正常保存(具体哪个版本我还没去验证)。添加上述代码可兼容在旧版本 mirai 保存只读配置文件。

    • MrXiaoM

      LoliYouWant —— 随机萝莉图,刑啊
      插件发布 • kotlin plugin xxxyouwant 色图 loli • • MrXiaoM

      56
      0
      赞同
      56
      帖子
      11733
      浏览

      MrXiaoM

      LoliYouWant

      项目地址:https://github.com/MrXiaoM/LoliYouWant

      「你想要的插件」系列作品

      刑,真是太刑了。

      经济系统支持

      本插件支持使用经济系统(可选) Mirai Economy Core,
      如有需要使用金钱功能,请自行安装。若不需要金钱功能可不安装,不影响使用。

      简介

      论坛又一大涩图插件 (bushi)。本插件使用 Lolibooru 的 API,全是萝莉图,萝莉控狂喜。

      由于该站点在大陆内部分地区无法访问 (我在我家的机子和手机都可以访问,但在学校,该站点被 SNI 阻断了),请自备代理或者使用本地反向代理来绕过 SNI 阻断,在这方面我不会提供任何帮助。

      其他功能详见配置文件。

      0.3.0 新增搜索功能,用户输入的关键词将会使用腾讯交互翻译进行 中译日、日译英 然后在 Lolibooru 查找相关 Tags,再获取图片。

      腾讯交互翻译在日文人名这方面翻译得相当不准确,如果是直接中译英,则结果是逐字翻译成英文,故先中译日再日译英。

      目前测试和泉纱雾会以英文习惯把姓名倒过来 (此问题已经过特殊处理解决),绪山真寻则是根本翻译不出来。这些错误导致翻译结果并不符合tag命名规则,在之后的版本会经过特殊处理尽量规避。

      安装

      到 Releases 下载插件并放入 plugins 文件夹进行安装

      安装完毕后,编辑配置文件作出你想要的修改。在控制台执行 /luwadmin reload 重载配置即可~

      配置文件内有详细的注释,详见 源码

      配置文件路径是
      ./config/top.mrxiaom.loliyouwant/config.yml

      0.3.0 配置文件大改,如果你是从 0.2.x 升级到 0.3.0 的,请在升级前备份配置文件,升级后修改新加的选项。
      新版本将一些配置移动了位置,比如 /loli get 命令的各种回复消息、超时时间、是否保存图片等通通移到了 command 块。
      keywords 配置没有改动。

      命令 命令 解释 /loli get <[数量] tags> 根据tags获取N张图片,不输入数量则默认为1张,多个tag用空格分开,tag只能为英文,tag中的空格用下划线代替,不支持模糊搜索 /loli search <[数量] 搜索关键词> 根据关键词搜索到最符合、图片数量最多的 tags,并根据tags获取N张图片,不输入数量则默认为1张。关键词最好用英文,中文会自动翻译但不准确 /loliadmin reload 重载配置文件 /loliadmin keywords 查看已载入的关键词配置 权限 权限 解释 top.mrxiaom.loliyouwant:command.loliyouwant 允许使用 /loli 命令 top.mrxiaom.loliyouwant:command.loliyouwantadmin 允许使用 /loliadmin 命令 top.mrxiaom.loliyouwant:random 允许使用关键词随机图片功能 top.mrxiaom.loliyouwant:search 允许使用关键词搜索功能 (不是 /loli search 命令权限) top.mrxiaom.loliyouwant:bypass.cooldown 无视冷却时间

      random 和 search 权限,即可以给群,也可以给群员,也可以给好友。如果把权限给到群,群内所有人均可使用关键词

      提示:可通过以下命令给权限

      /perm permit g群号 权限 /perm permit g群号.群友QQ号 权限 /perm permit m群友QQ号 权限 /perm permit QQ号 权限
      用法

      给予 random 权限后,发送 @机器人 来只萝莉 即可,空格可不加,剩下的详见配置文件。

      添加关键词的方法如下

      ...

      默认配置文件是这样的

      keywords: 来只萝莉: # 指定该关键词包括的 Tag tags: [] # 获取图片的最大数量 # 接口每次只能申请40张图片,过滤器会过滤掉一部分,故该数量仅供限制最多发送数量 # 若数量大于等于2,将通过合并转发发送 count: 1 # 单张图片的连接超时时间 (秒) timeout: 60 # 是否需要 @ 机器人来触发随机发图 at: true # 返回图片的画质 # PREVIEW - 低画质 # SAMPLE - 中等画质 # FILE - 原画质 quality: SAMPLE # 获取成功的回复信息 # \$at @发送者 # \$quote 回复发送者 # \$id 图片ID # \$previewUrl 图片直链 (预览画质) # \$sampleUrl 图片直链 (中等画质) # \$fileUrl 图片直链 (原画质) # \$url 图片直链 (发送的图所选画质) # \$tags 图片标签 # \$rating 图片分级,q (Questionable) 或者 s (Safe) # \$pic 下载的图片,下载失败时用 image-fail-download 的值代替 reply-success: \"\$pic\\n图片地址: https://lolibooru.moe/post/show/\$id\\n标签: \$tags\" # 图片下载失败时的代替文字 image-fail-download: 「图片下载失败」 # 获取成功的回复信息 # \$at @发送者 # \$quote 回复发送者 reply-fail: '\$quote获取失败,稍后再试吧' # 正在获取的回复信息 # \$at @发送者 # \$quote 回复发送者 reply-fetching: '\$quote正在获取中,请稍等' # 图片获取完成后撤回正在获取的回复信息 recall-fetching-message: true # 是否顺便保存图片到本地 (data 文件夹) download: false # 重写图片保存路径,该路径相对于 data/top.mrxiaom.loliyouwant/ override-download-path: '' # 执行命令所需金钱的货币类型 # 留空为不花费金钱 # 该功能需要安装 mirai-economy-core 插件生效 costMoneyCurrency: mirai-coin # 执行命令所需金钱 costMoney: 10.0 # 是否从全局上下文扣除金钱 # 若关闭该项,将在用户执行命令所在群的上下文扣除金钱 # 私聊执行命令将强制使用全局上下文 costMoneyGlobal: false # 执行命令金钱不足提醒 # $at 为 @ 发送者,$quote 为回复发送者,$cost 为需要花费的金钱 costMoneyNotEnough: "$quote你没有足够的 Mirai 币 ($cost) 来执行该命令!"

      把来只萝莉:到最后override...那里复制粘贴一下,然后把 来只萝莉改成你想要的关键词,然后按照上面注释的中文提示,改下面的选项,改好后保存然后控制台执行命令 /loli reload 或者重启 mirai 就行。改好后的配置如下

      keywords: 来只萝莉: tags: [] count: 1 timeout: 60 at: true quality: SAMPLE replySuccess: "$pic\n图片地址: https://lolibooru.moe/post/show/$id\n标签: $tags" imageFailDownload: 「图片下载失败」 replyFail: '$quote获取失败,稍后再试吧' replyFetching: '$quote正在获取中,请稍等' recallFetchingMessage: true download: false overrideDownloadPath: '' costMoneyCurrency: mirai-coin costMoney: 10.0 costMoneyGlobal: false costMoneyNotEnough: "$quote你没有足够的 Mirai 币 ($cost) 来执行该命令!" 来点原神: tags: - genshin_impact count: 5 timeout: 60 at: true quality: SAMPLE replySuccess: "$pic\n图片地址: https://lolibooru.moe/post/show/$id" imageFailDownload: 「图片下载失败」 replyFail: '$quote获取失败,稍后再试吧' replyFetching: '$quote正在获取中,请稍等' recallFetchingMessage: true download: false overrideDownloadPath: '' costMoneyCurrency: mirai-coin costMoney: 10.0 costMoneyGlobal: false costMoneyNotEnough: "$quote你没有足够的 Mirai 币 ($cost) 来执行该命令!"

      给予 search 权限后,发送 @机器人 来点和泉纱雾 即可搜索图片。在配置文件找不到关键词时,以 来点 开头将会触发搜索。

      建议添加 r16 tag 到配置文件的 hidden-tags 中尽可能避免机器人因发图而封号。以下是默认的 r16 tag,可能会更新,但不会随插件更新而更新,需要自行手动复制

      ... hidden-tags: - pantie - pantsu - underwear - navel - breast - bikini - stomach - topless - bottomless - groin - butt # 加下面这个单纯是我本人不喜欢 3D 渲染的图 - 3dcg # 下面这个是漫画,可以过滤掉大部分非插画 - comic - bum - backside - fanny - bunny - bunny_girl - less - bottom - kiss - swimsuit - sukusui - towel - naked_towel - denim - armpits - ribs - bare_shoulders - translation_request - no_bra - blush - ass - absurdres - head_out_of_frame - spats - short - short_under_skrit - short_skrit - thighhighs 捐助

      前往 爱发电 捐助我。

      ...

      来自群组: SkyNet1748

    • 1
    • 2
    • 1 / 2