Skip to content

Releases: mamoe/mirai

0.30.0

24 Mar 09:19
Compare
Choose a tag to compare
0.30.0 Pre-release
Pre-release

此版本为二进制不兼容更新, 全部使用者都需要重新编译.

源码兼容的改变:

  • 删除全部 @Depreacted 兼容
  • 删除全部多余的 @JvmName 以兼容将来的改变 (新 MPP 模块等级制架构)
  • 调整部分函数的 JVM 可见性
  • 内联部分 MessageChain 工具函数
  • 更新到 Kotlin 1.4-M1

源码不兼容的改变:

  • 群设置由 Group 移动到独立的 GroupSettings
  • 调整 API 可见性: 将除 BotFactorymirai-core-qqandroid 中全部 API 改为 internal

消息部分:

  • SingleMessage 实现接口 CharSequenceComparable<String>
  • FriendImage, GroupImage, OnlineImage, OfflineImage 增加 companion object Key
  • 调整 RichMessage, 将所有子类聚合到一个文件
  • 移动 XmlMessageHelperRichMessage.Compation
  • 命名调整: buildXMLMessage 改为 buildXmlMessage
  • 修复 CombinedMessage 中错误的 leftelement

事件部分:

  • 加强 selectMessages, 增加回复, 引用回复, 默认值, 超时支持:
    原处理方式:
val message = nextMessageOrNull(10.secondsToMillis) ?: kotlin.run {
    quoteReply("请在 10 秒内发送一张图片")
    return@case
}
val image = message.getOrNull(OnlineImage) ?: kotlin.run {
    reply(message.quote() + "请发送一张图片")
    return@case
}
reply(message.quote() + image.originUrl)

使用 selectMessages DSL:

selectMessagesUnit {
    has<OnlineImage>() quoteReply {
        message[OnlineImage].originUrl
    }
    timeout(10.secondsToMillis) quoteReply {
        "请在 10 秒内发送图片以获取链接"
    }
    defaultQuoteReply {
        "请发送一张图片"
    }
}

0.29.1

22 Mar 16:23
Compare
Choose a tag to compare
0.29.1 Pre-release
Pre-release
  • 确保二进制兼容, #155
  • 修复 Android 上 ECDH init 失败问题, #154

0.29.0

22 Mar 08:36
Compare
Choose a tag to compare
0.29.0 Pre-release
Pre-release
  • 引入新消息监听 DSL: whileSelectMessages, 简化连续监听过程
bot.subscribeMessages {
    "开启复读模式" `->` {
        reply("成功开启")
        whileSelectMessages {
            "stop" `->` {
                reply("已关闭复读")
                false // 停止循环
            }
            default {
                reply(message)
                true // 继续循环
            }
        }
        reply("复读模式结束")
    }
}
  • 引入新消息监听 DSL: selectMessages, 简化筛选监听过程
bot.subscribeMessages {
    "test" `->` {
        reply("choose option: 'hello', 'hi'")
        val value: String = selectMessages {
            "hello" `->` { "123" }
            "hi" `->` { "222" }
            default { "default value" }
        }
        reply(value)
    }
}
  • 监听消息的 DSL 新增 infix fun String.->(block)
  • 处理 StatSvc.ReqMSFOffline (#150)
  • Contact.sendMessage 现在接受 Message 参数, 而不是 MessageChain 以兼容 CombinedMessage
  • Member.sendMessage 现在返回 MessageReceipt<Member> 而不是 QQ 泛型
  • 调整 JVM MessageUtils 中一些方法的可见性 (@JvmSynthetic)
  • 调整命名: OfflineImage.queryOriginUrl 改为 OfflineImage.queryUrl
  • 允许手动重新初始化 Bot (BotNetworkHandler.init), 确保重初始化资源释放

0.28.0

19 Mar 06:58
Compare
Choose a tag to compare
0.28.0 Pre-release
Pre-release
  • 修复 Jce 反序列化在部分情况下出错的问题, 修复 #145
  • 新增群公告低级 API
  • 新增群活跃数据低级 API
  • 修复 #141, #143, #131
  • 更多原生表情 (Face)

0.27.0

08 Mar 14:23
Compare
Choose a tag to compare
0.27.0 Pre-release
Pre-release
  • 支持 XML, Json, LightAppRichMessage

0.26.1

08 Mar 10:35
Compare
Choose a tag to compare
0.26.1 Pre-release
Pre-release
  • 重写 Jce 序列化, 提升反序列性能
  • 更新 Kotlin 版本到 1.3.70
  • 更新 kotlinx.coroutines, atomicfu, kotlinx.coroutines 依赖版本

0.26.0

07 Mar 16:08
Compare
Choose a tag to compare
0.26.0 Pre-release
Pre-release

0.25.0

06 Mar 12:08
Compare
Choose a tag to compare
0.25.0 Pre-release
Pre-release
  • 适配 8.2.7 版本(2020 年 3 月)协议
  • 全面的 Image 类型: Online/Offline Image, Friend/Group Image
  • 修复查询图片链接时好友图片链接错误的问题
  • 修复 bugs: #105, #106, #107

0.24.1

03 Mar 00:57
Compare
Choose a tag to compare
0.24.1 Pre-release
Pre-release
  • 修复 Member 的委托 QQ 弱引用被释放的问题
  • Bot.friends 替代 Bot.qqs
  • Bot.containsFriend, Bot.containsGroup 替代 Bot.contains
  • 新增 BotFactory.Bot(String, ByteArray) 用 md5 密码登录
  • BotFactory 等类型的一些扩展指定 JvmName
  • 移动 Bot.QQ 到低级 API

0.24.0

01 Mar 12:45
Compare
Choose a tag to compare
0.24.0 Pre-release
Pre-release
  • Java 完全友好: Java 使用者可以同 Kotlin 方式直接阻塞式或异步(Future)调用 API

  • 新增 MessegaSource.originalMessage: MessageChain 以获取源消息内容

  • 群消息的撤回现在已稳定 (Bot.recall)

  • 现在可以引用回复机器人自己发送的消息: MessageReceipt.quoteReply

  • 新增 MessageRecallEvent

  • 整理 MessageChain 的构造, 优化性能

  • 整理所有网络层代码, 弃用 kotlinx.io 而使用 io.ktor.utils.io

  • 其他杂项优化