mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-01 09:06:05 +08:00
3.0 KiB
3.0 KiB
Mirai
一个以 TIM QQ协议(非web) 驱动的QQ机器人服务端核心
采用服务端-插件模式运行,同时提供独立的核心库
Mirai 的所有模块均开源
项目处于开发阶段,学生无法每日大量更新。
项目还有很多未完善的地方, 欢迎任何的代码贡献, 或是 issue.
部分协议来自网络上开源项目
一切开发旨在学习,请勿用于非法用途
抢先体验
核心框架结构已经开发完毕,一些核心功能也测试完成。
仅需几分钟就可以测试 Mirai.
现在你可以登录小号来测试 Mirai.
即使测试消息时未发现冻结情况,我们也无法100%保证账号冻结不会发生。
目前还没有写构建,请使用 IDE 运行单个 main 函数。
- Clone
- Import as Gradle project
- Run demo main Demo 1 Main
事件
Kotlin
这里只演示进行不终止地监听。
Top-level reified
多数情况下这是最好的方式。
inline fun <reified E: Event> subscribeAlways(handler: (E) -> Unit)
subscribeAlways<FriendMessageEvent>{
//it: MessageChain
}
DSL
查看更多: ListenerBuilder
inline fun <reified E: Event> subscribeAll(builder: ListenerBuilder.() -> Unit)
subscribe<FriendMessageEvent>{
always{
//it: MessageChain
//coroutineContext: EventScope.coroutineContext
}
//可同时开始多个监听。
always{
//it: MessageChain
//coroutineContext: EventScope.coroutineContext
}
}
KClass extension
更推荐使用 Top-level reified
fun <E : Event> KClass<E>.subscribeAlways(listener: suspend (E) -> Unit)
FriendMessageEvent::class.subscribeAlways{
if(it.message eq "你好")
it.reply("你好!")
}
图片测试
发送图片已经完成,但我们还在开发上传图片至服务器。
现在你可以通过发送一张图片给机器人账号,再让机器人账号发送这张图片。你可以查看 Image.kt
TODO
- 事件(Event)模块
- 插件(Plugin)模块
- Network - Touch
- Network - Login
- Network - Session
- Network - Verification Code
- Network - Message Receiving
- Network - Message Sending
- Network - Events
- Bot - Friend/group list
- Bot - Actions(joining group, adding friend, etc.)
- Message Section
- Image uploading
- Contact
- UI
- Console
使用方法
要求
- Kotlin 1.3+
JVM
- Java 11
插件开发
to be continued
...