开发版本. 频繁更新, 不保证高稳定性
0.12.0 2020/1/19监听消息时允许使用条件式的表达式, 如:
(contains("1") and has<Image>()){
reply("Your message has a string '1' and an image contained")
}
(contains("1") or endsWith("2")){
}
原有单一条件语法不变:
contains("1"){
}
"Hello" reply "World"
eq 无法正确判断的问题; 性能优化.cancelled 属性修改为 val (以前是 var with private set)0.11.0 2020/1/12BotAccount.id. 将来它可能会被改名成为邮箱等账号. QQ 号码需通过 bot.uin 获取.Gender 由 inline class 改为 enumString.chain() 改为 String.toChain()List<Message>.chain() 改为 List<Message>.toChain()
修复在有入群验证时无法解析群资料的问题 (#30)
0.10.6 2020/1/8TIMPC
0.10.5 2020/1/30.10.4 2020/1/1Bot(qq, password, config=Default)0.10.3 2020/1/1ExternalImageAndroid0.10.1 2019/12/30Bot 构造
Bot 构造时修改 BotConfiguration 而不是登录时.
移除 CoroutineScope.Bot
移除 suspend Bot(...)
添加 Bot(..., BotConfiguration.() -> Unit)
添加 Bot(..., BotConfiguration = BotConfiguration.Default)
其他
全面的在线状态 (OnlineStatus)
移动部分文件, 模块化
0.10.0 2019/12/23事件优化
更快的监听过程
现在监听不再是 suspend, 而必须显式指定 CoroutineScope. 详见 Subscribers.kt
删除原本的 bot.subscribe 等监听模式.
其他
Contact 现在实现接口 CoroutineScope
0.9.0 2019/12/20协议模块独立
现在 mirai-core 只提供基础的抽象类. 具体的各协议实现为 mirai-core-PROTOCOL.
这些模块都继承自 mirai-core.
现在, 要使用 mirai, 必须依赖于特定的协议模块, 如 mirai-core-timpc.
查阅 API 时请查看 mirai-core.
每个模块只提供少量的额外方法. 我们会给出详细列表.
在目前的开发中您无需考虑多协议兼容.
Bot 构造
协议抽象后构造 Bot 需指定协议的 BotFactory.
在 JVM 平台, Mirai 通过 classname 自动加载协议模块的 BotFactory, 因此若您只使用一套协议, 则无需修改现行源码
事件
大部分事件包名修改.
UInt -> Long
修改全部 QQ ID, Group ID 的类型由 UInt 为 Long.
此为 API 不兼容更新, 请将所有无符号标志 u 删除即可. 如 123456u 改为 123456
另还有其他 API 的包名或签名修改. 请使用 IDE 自动修补 import 即可.
0.8.2 2019/12/150.8.1 2019/12/15At.qq, Long.qq 等函数不再是 suspend0.8.0 2019/12/14协议
功能
suspendsuspend, 原因为需要查询群资料. 在群 ID 无效时抛出 GroupNotFoundException优化
0.7.5 2019/12/090.7.4 2019/12/080.7.3 2019/12/070.7.2 2019/12/07internalclose 的不应该有的 suspendQQ, Member, Group 现在继承接口 CoroutineScopeLoginResult 由 inline class 修改为 enum classBotAccount 和 Bot 的构造器0.7.1 2019/12/050.7.0 2019/12/04协议
0.7.5 修复)功能
.qq() 和 .group() 的扩展函数.Message.concat 为 Message.followedByOPERATOR 为 ADMINISTRATOR性能优化
0.6.1 2019/12/03MessagePacket 下 At.qq() 捷径获取 QQ0.6.0 2019/12/02Member.mute(TimeSpan|Duration|MonthsSpan|Int|UInt))Member.unmute())