DreamVoid
本帖最后由 DreamVoid 于 2023-1-8 17:48 编辑


MiraiMC —— 适用于Minecraft服务端的QQ机器人插件


介绍

什么是 MiraiMC?

MiraiMC 是一个基于 Mirai 的 Minecraft 服务端插件,能够让你在 Minecraft 服务器上使用 Mirai QQ 机器人程序,同时提供一些 API 帮助开发者简单的调用机器人接口为自己的插件实现多样的功能。

特性
  • 支持多个机器人同时登录
  • 支持启动服务端后自动登录
  • 兼容 Mirai 目录结构,方便快速迁移
  • 插件级别的 QQ 绑定,提供最方便的管理
  • 可拓展程度高,带有完善的接口
  • 支持 HTTP API 工作模式,连接到 MCL 多插件共用一个机器人(实验性特性)
  • 开发者不断整新功能,尽可能提供帮助
  • 还有更多……等待你的发掘!

开始使用

服主

如果你是服主,正在被接入 QQ 机器人所困扰(尤其是 Linux 和面板服),那么只需要下载本插件即可方便快捷的接入并使用 QQ 机器人且无需使用额外的软件。
请按下面的步骤开始使用 MiraiMC:
  • 下载插件,并将插件文件放入 plugins 文件夹
  • 下载基于 MiraiMC 开发的其他插件(如果有的话),并将这些插件放入 plugins 文件夹
  • 启动服务端(如果尚未启动)
  • 使用指令“/mirai login <账号> <密码>”登录你的机器人账号(可执行多次以登录多个机器人)
  • 如果你同时使用了基于MiraiMC开发的插件,请在这些插件的配置文件中调整有关 MiraiMC 的配置
  • 享受优雅的 QQ 机器人服务!
可以在这里找到更为详细的使用教程:https://docs.miraimc.dreamvoid.me/

插件开发者

如果你是插件开发者,正在考虑让自己的插件能够对接QQ机器人,那么只需要使用本插件提供的API即可方便快捷的实现需求而无需让服主进行额外的配置。
你可以简单的使用MiraiMC开发模板来开始开发一个全新的插件
你也可以为现有插件引入 MiraiMC,只需按照以下步骤即可接入 MiraiMC:
  • 将下面的代码复制到 pom.xml 的 dependencies 项直接将插件 jar 文件作为外部库导入
    1. <dependency>
    2.     <groupId>io.github.dreamvoid</groupId>
    3.     <artifactId>MiraiMC-Integration</artifactId>
    4.     <!--请确保版本为Github上的最新版本-->
    5.     <version>1.7.1</version>
    6.     <scope>provided</scope>
    7. </dependency>
    复制代码

  • 参照 JavadocMiraiMC 开发模板编写相关的代码
  • 发布你的插件
可以在这里找到更为详细的开发教程:https://docs.miraimc.dreamvoid.me/

常见问题

1. 为什么总会莫名其妙的出现这样或那样的报错?

请尽量避免使用Forge服务端(如Catserver、Loliserver、Mohist、Arclight之类的支持安装mod的Bukkit服务端),这类服务端通常会修改插件的工作方式以“兼容”mod或原版游戏的工作。我不再帮助解决因使用上述服务端导致的任何问题,请自行联系相关服务端作者解决兼容性问题。
如果你没有使用Forge服务端,则可以通过将服务端日志文件回复给置顶楼层或者前往Github Issue Tracker提交问题。


2. 为什么我开的Issue/Pull Request被直接关闭了?

①你没有按照要求开Issue,我不会花费时间去理解不按模板提交的issue。

②你的Issue在之前已经有人提过了,为了处理效率不接受两个相同问题的Issue。

③你在Gitee等其他Git平台提交了PR,除了GitHub外,所有Git平台都是GitHub的镜像,都从GitHub拉取代码,因此不接受其他Git平台的PR。


3. 为什么出现报错“JCE cannot authenticate the provider BC”

此问题不影响正常使用,可直接忽略。如果你不想看见这个报错,请阅读此链接给出的解决方案,如无效或者你无法理解解决方案,请确保你使用的是未被修改过的Java。我推荐使用Azul Zulu。另外,有报告称出现此问题的用户使用了OpenJ9,如果你正在使用,可尝试更换Hotspot版本。


4. 我看其他同类机器人插件都说Linux/面板服不能登录,让我去下载这个或那个软件,我要怎么用你这个插件?

MiraiMC已经完全重写登录验证流程,不会存在其他不完善插件的问题。当你登录机器人账号时,插件会引导你完成登录验证。请放心在Linux等无图形界面的系统环境使用。



指令与权限

指令

命令描述权限
/mirai MiraiMC 机器人主命令miraimc.command.mirai
/mirai login <账号> <密码> [协议]登录一个机器人(可多次执行此命令以登录多个机器人)miraimc.command.mirai.login
/mirai logout <账号>退出并关闭一个机器人miraimc.command.mirai.logout
/mirai list列出当前在线的机器人miraimc.command.mirai.list
/mirai sendfriendmessage <账号> <好友> <消息>向指定好友发送消息miraimc.command.mirai.sendfriendmessage
/mirai sendfriendnudge <账号> <好友>向指定好友发送戳一戳miraimc.command.mirai.sendfriendnudge
/mirai sendgroupmessage <账号> <群号> <消息>向指定群发送消息miraimc.command.mirai.sendgroupmessage
/mirai checkonline <账号>检查指定机器人是否在线miraimc.command.mirai.checkonline
/mirai autologin add <账号> <密码> [协议]添加一个自动登录机器人账号miraimc.command.mirai.autologin
/mirai autologin remove <账号>移除一个自动登录机器人账号miraimc.command.mirai.autologin
/mirai autologin list查看自动登录机器人账号列表miraimc.command.mirai.autologin
/miraimcMiraiMC 插件主命令miraimc.command.miraimc
/miraimc bind add <玩家名> <QQ号>为玩家和QQ号添加绑定miraimc.command.miraimc.bind
/miraimc bind getplayer <玩家名>获取指定玩家名绑定的QQ号miraimc.command.miraimc.bind
/miraimc bind getqq <QQ号>获取指定QQ号绑定的玩家名miraimc.command.miraimc.bind
/miraimc bind removeplayer <玩家名>删除一个玩家的绑定miraimc.command.miraimc.bind
/miraimc bind removeqq <QQ号>删除一个QQ号的绑定miraimc.command.miraimc.bind
/miraimc reload重新加载配置文件miraimc.command.miraimc.reload

权限

权限节点描述默认
miraimc.command.mirai允许使用 /miraiOP
miraimc.command.mirai.*允许使用 /mirai 的所有子命令OP
miraimc.command.mirai.login允许使用 /mirai loginOP
miraimc.command.mirai.logout允许使用 /mirai logoutOP
miraimc.command.mirai.list允许使用 /mirai listOP
miraimc.command.mirai.sendfriendmessage允许使用 /mirai sendfriendmessageOP
miraimc.command.mirai.sendfriendnudge允许使用 /mirai sendfriendnudgeOP
miraimc.command.mirai.sendgroupmessage允许使用 /mirai sendgroupmessageOP
miraimc.command.mirai.checkonline允许使用 /mirai checkonlineOP
miraimc.command.mirai.autologin允许使用 /mirai autologinOP
miraimc.command.miraimc允许使用 /miraimcOP
miraimc.command.miraimc.*允许使用 /miraimc 的所有子命令OP
miraimc.command.miraimc.bind允许使用 /miraimc bind 及下属子命令OP
miraimc.command.miraimc.reload允许使用 /miraimc reloadOP

配置文件

受限于排版格式,请移步此处查看完整的配置文件说明:https://docs.miraimc.dreamvoid.me/docs/configure-file

PlaceholderAPI 变量

请先运行命令/papi ecloud download miraimc,然后才能使用以下变量。
  • %miraimc_isworking% - 插件是否正常工作
  • %miraimc_counts% - 存在的机器人数量
  • %miraimc_isonline_<bot>% - 指定机器人是否在线
  • %miraimc_nick_<bot>% - 指定机器人昵称
  • %miraimc_friendcounts_<bot>% - 指定机器人好友数量
  • %miraimc_groupcounts_<bot>% - 指定机器人群数量
  • %miraimc_bindqq% - 当前玩家绑定的 QQ 号
  • %miraimc_bindqq_<player/uuid>% - 指定玩家绑定的 QQ 号
  • %miraimc_bindname_<qq>% - 指定 QQ 绑定的玩家 UUID
  • %miraimc_binduuid_<qq>% - 指定 QQ 绑定的玩家名

使用 MiraiMC 的插件


已知 Bug

如果你遇到任何 Bug,请通过在 GitHub 上提交 issue的方式进行反馈,我将在之后进行功能补充和完善。

  • 在非图形界面环境下登录带设备锁或验证码的账号时无法完成验证 (1.3 已修复)
  • 极少数情况可能出现插件载入、机器人登录问题 (1.3 已修复)
  • 在BungeeCord使用时无法使用自动登录机器人功能 (1.4、1.5 已修复)
  • BungeeCord和Sponge的自动登录机器人无法添加账号 (1.7 已修复)

兼容性报告

你可以点击这里查看不兼容MiraiMC的服务端和插件。

下载
正式版:,测试版:
为帖子评分解锁下载地址支持我继续开发(评分人气不消耗自己的人气)

本帖使用下载地址回复可见功能,回复前请先点我阅读相关版规
如果你想不违反版规又想立刻下载到插件,你可以复制下面这段话直接回复避免违反版规
  1. MiraiMC 真棒,是一款很优秀的插件!
复制代码
█████,如果您要查看本帖隐藏内容请回复

开源


更多帮助&外部链接


致谢

感谢以下人员/项目为 MiraiMC 提供的支持:
  • mamoe/mirai:高效率 QQ 机器人支持库,MiraiMC 的根本
  • lucko/helper:强大的 Bukkit 插件开发帮手,为 MiraiMC 提供动态加载 mirai 核心的解决方案
  • brettwooldridge/HikariCP:高效率 MySQL 连接池
  • bStats:Metrics 统计工具
  • 特别感谢 JetBrains 为开源项目提供免费的 IntelliJ IDEA 等 IDE 的授权
  • Github 提供建议和反馈的每一位用户,是你们的建议和反馈让 MiraiMC 变得更好
  • 在使用 MiraiMC 的每一个服主,你们的鼓励是我不断开发的动力

下一步的目标

牙膏要一点一点挤,显卡要一刀一刀切,PPT要一张一张放,代码要一行一行写,单个功能预计自出现在此列表起,三年内开发完毕
  • [√] 初步实现 CoreAPI 的基础功能
  • [√] 初步完善指令和权限系统
  • [√] 初步完善 API 接口供其他插件开发者调用
  • [√] 加入自动登录机器人的功能(1.2实现)
  • [√] 添加剩余未添加的Mirai事件(1.2实现)
  • [√] 支持 BungeeCord(1.3实现)
  • [√] 重写登录流程以适应 Bukkit(和未来支持的 Bungee,甚至 Sponge)(1.3实现)
  • [√] 完全兼容 mirai console 的结构供已在使用mirai的服主使用
  • [√] 支持 Sponge(1.5实现)
  • [√] 支持 PlaceholderAPI(1.5实现)
  • [√] 引入 Mirai-Http-API 模式来连接到mirai-console(1.6实现)
  • [√] 支持 Velocity(1.6实现)
  • [  ] 支持 Fabric
  • [  ] 像 mirai console 一样加载 mirai console 插件(遥遥无期,欢迎PR)


本插件所用代码部分来自其他开源或闭源(已授权)作品


更新日志
可移步 GitHub 发布页面查看更为完整的更新日志:https://github.com/DreamVoid/MiraiMC/releases



CCAV90
请问这个插件 面板服能有吗 不需要添加额外的应用了吗

DreamVoid
本帖最后由 DreamVoid 于 2021-6-6 22:01 编辑
CCAV90 发表于 2021-6-6 21:56
请问这个插件 面板服能有吗 不需要添加额外的应用了吗


当然了,我还在完善插件,所以可以等我后续的开发动态

DreamVoid
DH守卫者 发表于 2021-6-7 07:09
请问它能在linux系统使用吗?

可以,但是我没有进行测试,并且如果在Linux上登录带有设备锁的账号可能会引发一个已知的Bug

Thyme_Chen
这个插件可以直接让服务器和QQ群联动吗

DreamVoid
Thyme_Chen 发表于 2021-6-9 00:13
这个插件可以直接让服务器和QQ群联动吗

可以,但是目前需要附属插件。不过,我正考虑开发这一附属插件

tao3111679503
下载英文看不懂哎

DreamVoid

我都是用中文写的提示信息,英文不需要看懂

yupaopao11

MCBBS有你更精彩~

1515838895
大佬我装了这个插件登录机器人账号没有任何反应怎么办啊

DreamVoid
1515838895 发表于 2021-7-7 21:35
大佬我装了这个插件登录机器人账号没有任何反应怎么办啊

如果是后台没输出日志,那么检查你是不是关掉了日志输出
或者是服务端卡住了,没资源用来登录
你也可以输入/mirai list看看机器人是不是登录了

Eiup_Niow
可以和AmaingBot搭配使用吗

DreamVoid
Eiup_Niow 发表于 2021-7-8 11:59
可以和AmaingBot搭配使用吗

可以,但是登录协议记得换一下

mjiangmc
不错的插件

Eiup_Niow
DreamVoid 发表于 2021-7-8 12:33
可以,但是登录协议记得换一下

可以问问怎么更换吗

OldEnderDragon
太好了,这个功能很好很强大

LONGYONG
支持楼主

DreamVoid
Eiup_Niow 发表于 2021-7-8 20:15
可以问问怎么更换吗

/mirai login <机器人账号> <机器人密码> <登录协议>
登录协议可以是Android_Phone(手机) Android_Pad(平板) Android_Watch(手表)

第一页 上一页 下一页 最后一页