miraiboot——简单的Java qq机器人开发框架
-
在开发基于指令和权限的机器人的过程中感觉mirai-console-plugin的开发方式很难受(没办法debug) 于是有了开发一个包含mirai-core项目的想法
然后觉得判断消息事件太麻烦逐渐发展成了一个框架
在这里感谢以下xiangming-bot这个项目 让这个框架多了一个粗糙的上下文交互的功能
项目已经发布
仓库在这里->miraiboot介绍
miraiboot是是对mirai框架的简单Java封装。
目的是为了让Java开发者更方便地开发基于指令响应的机器人。
特点
-
不用关心mirai-core的代码
miraiboot提供了一系列方便的工具类对mirai-core的核心功能依赖进行封装,如消息回复、语音、图片等本地文件的发送等,对于简单的qq机器人开发,Java开发者不需要在去接触kotlin代码,更适合于Java初级开发者。
-
自带简单的消息过滤器和权限管理模块
miraiboot提供了一系列的工具,可以方便地对消息事件进行过滤和权限管理。
权限管理基于SQLite且已经进行了封装,开发者无需考虑实现。
-
注解驱动开发
miraiboot所有的事件和异常处理都通过注解完成,开发者只需要对处理方法加上对应的注解,其余的都交由miraiboot进行管理,让开发者专注于功能的实现。
版本更新
v1.0.5:现在支持插件式开发了,不用每次都打包40M+的文件了
v1.0.6:将mirai核心更新到2.7.1 修复一个没有默认指令头部导致的严重bug一些展示
权限功能:
ExceptionHandler:
上下文交互:
仓库在这里->miraiboot
-
-
发布了,顺便更新了开发文档
-
得拿望远镜才能看清图
-
请问这个问题出现的原因是?
java: 无法访问net.diyigemt.miraiboot.annotation.EventHandler
错误的类文件: /Users/zhaolong/.m2/repository/net/diyigemt/miraiboot/mirai-boot/1.0.3/mirai-boot-1.0.3.jar!/net/diyigemt/miraiboot/annotation/EventHandler.class
类文件具有错误的版本 55.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。 -
@orisland
另外,似乎出现了一些其他问题?文中的qq号和qq密码均为正确值.
2021-05-29 17:18:17 I/mirai-boot-status:
2021-05-29 17:18:17 I/mirai-boot-status: 开始读取配置文件
Exception in thread "main" Cannot create property=miraiboot for JavaBean=ConfigFile(miraiboot=null)
in 'reader', line 1, column 1:
miraiboot:
^
Cannot create property=logger for JavaBean=ConfigFileMain(bots=[ConfigFileBot(account=这是bot的qq号, password=ConfigFileBotPassword(kind=PLAIN, value=这是bot的密码啊), configuration=ConfigFileBotConfiguration(protocol=ANDROID_PHONE, device=device.json)), ConfigFileBot(account=123, password=ConfigFileBotPassword(kind=PLAIN, value=pwd), configuration=ConfigFileBotConfiguration(protocol=ANDROID_PHONE, device=device.json))], logger=null, configs=null, alias=null)
in 'reader', line 2, column 3:
bots:
^等等……一大堆错误,似乎都是和配置文件没写入有关。
“Cannot create property”
似乎配置文件一个也没写进去。 -
@orisland 已于v1.0.4修复
-
@diyigemt 但是似乎又出现了其他问题,我提交了issue
-
@orisland
好家伙,你好像精准踩到了最新发现的bug,你可以看一下我issue的回复临时解决 -
我如何使用更高的mirai-core版本而不是2.6.4
-
@diyigemt 机器人回复消息带图片的话,群不回复,私聊的可以,但是控制台都有输出,求解惑,谢谢了
-
@fndream 在 miraiboot——简单的Java qq机器人开发框架 中说:
我如何使用更高的mirai-core版本而不是2.6.4
-
我将项目代码克隆下来为啥运行不了QAQ,mirai相关的包全都找不到,好像是kotlin反编译问题?大佬求助啊我真的不会解决啊,捣鼓了一下午了 T_T
import net.mamoe.mirai.Bot;
import net.mamoe.mirai.BotFactory;
像这些包全都找不到,这个问题是从2.7版本开始的,上一个版本2.6.8完全没有问题 -
@xdorz 2.6.8没问题,但是2.7有问题?检查你的IDEA版本,请确保至少升级到2020.3版本,最好升级到最新版本。别忘了去检查一下你的kotlin插件
-
启动项目会出错。Exception in thread "main" java.lang.NoSuchMethodError: kotlin.jvm.internal.FunctionReferenceImpl.<init>(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
at net.mamoe.mirai.utils.PlatformLogger$1.<init>(PlatformLogger.jvm.kt)
at net.mamoe.mirai.utils.PlatformLogger$1.<clinit>(PlatformLogger.jvm.kt)
at net.mamoe.mirai.utils.PlatformLogger.<init>(PlatformLogger.jvm.kt:54)
at net.mamoe.mirai.utils.DefaultFactory.create(MiraiLogger.kt:572)
at net.mamoe.mirai.utils.MiraiLogger$Factory.create(MiraiLogger.kt:64)
at net.mamoe.mirai.utils.MiraiLogger$Factory$INSTANCE.create(MiraiLogger.kt)
at net.mamoe.mirai.utils.MiraiLogger$Companion.create(MiraiLogger.kt:125)
at net.mamoe.mirai.utils.MiraiLogger.create(MiraiLogger.kt)
at net.diyigemt.miraiboot.mirai.MiraiMain.<clinit>(MiraiMain.java:22)
at net.diyigemt.miraiboot.autoconfig.MiraiApplication.run(MiraiApplication.java:68)
求助! -
@dingqianjian
能提供一下主类的main方法,或者整个项目的文件结构吗,可以私聊 -
此回复已被删除!