mirai

高效率 QQ 机器人支持库

AGPL-3.0 License

Stars
14K
Committers
131

Bot releases are visible (Hide)

mirai - 2.6.2

Published by Him188 over 3 years ago

mirai-core

  • 修复账号在异地登录后无法在本地再次登录的问题 (#1199)
mirai - 2.6.1

Published by Him188 over 3 years ago

mirai-console

  • 修复启动后一段时间可能发生 100% 占用 CPU 的问题

Gradle

  • 修复 buildPlugin

IDE

  • 修复在 2020.3 一些情况下发生异常的问题
mirai - 2.6.0

Published by Him188 over 3 years ago

mirai-core

不兼容变更

  • RichMessageOrigin 更名为 MessageOrigin 以适应更多消息类型. 保留二进制兼容性. (#1116)
  • 弃用 RemoteFile.moveTo (#1180)

新特性

  • 新增 UserOrBot.nick: 获取用户或 Bot 的昵称

  • 新增 UserOrBot.nameCardOrNick: 当目标为群员且群名片不为空时返回群名片, 否则返回昵称

  • 新增 MessageUtils.buildMessageChain: 供 Java 使用

  • ForwardMessageBuilder 新增一些构建方法, 更新详细示例文档 (#1087, #1089)

  • 支持解析由 TIM PC 客户端发送的特殊的骰子消息为通用的 Dice

  • 支持处理暂未支持的消息 (UnsupportedMessage) (#1112)

  • 支持保存登录信息自动免密登录 (#1158)

  • 稳定 RawForwardMessage, 增加 ForwardMessageBuilder.toRawForwardMessage 以允许同一个合并转发被 render 多次 (#1162)

  • NormalMember.isMuted 移动到 NormalMember 成员 (#1037)

优化和修复

稳定登录

  • 免密登录和心跳处理 (#119, #1154)

    • 初步支持免密登录 (#1125)

    • 修复心跳逻辑 (#1149, #1150)

      • 因为心跳不正常导致接收不到消息 (#1149)
    • 修复频繁掉线重连导致的一系列问题

      • 发送消息时报错 CancellationException (#1139, #1004)

      • 重连时跳出验证码 (#328)

      • 频繁重连报错 (#935)

    PRs by @sandtechnology: #1125, #1128, #1131, #1150, #1169

文档更新

  • 更新 Message 相关文档使之更详细且覆盖更多使用上的帮助 (#1088, #1142)
  • 更新 FileCacheStrategy 和图片缓存相关文档 (#1046)

问题修复

  • 修复 TIM PC 回复机器人发送的合并转发时显示错误的问题 (#1119)
  • 修复一些情况下无法处理其他客户端平板账号上线事件的问题 (#1109)
  • 修复其他管理员同意他人加入群会时触发 Bot 入群的事件的问题 (#1120, #1123 by @sandtechnology)
  • 修复调用 FileMessage.upload 等方法报错 VerifyError 的问题 (#1136) (也即将会包含在 2.5.2 版本)
  • 修复发送嵌套的合并转发在客户端只能显示第一条消息的问题 (#1130, #1148)
  • 修复解析事件若出现异常则会忽略后续事件解析的问题 (#1124, #1147)
  • 修复 RemoteFile.resolveById 没有进入子目录的问题 (#1177)
  • 修复群全体禁言无效的问题 (#1181)
  • 修复在 Android 上异常没有正确记录到日志的问题
  • 在调用 MessageSerializers 时确保 Mirai 实现已经初始化, 解决因没有初始化导致的序列化问题 (#1086)
  • 修复机器人主动禁言群员时禁言事件没有广播的问题 (#1155, #1170)

mirai-console

新特性

  • 自动登录配置 AutoLoginConfig 默认使用 device.json 作为设备信息文件名 (mamoe/mirai-console#312)
  • 允许前端在 MiraiConsole 停止后覆盖已有实例 (重新调用 start)
  • 允许前端直接访问 backendAccess
  • 允许测试时继承 MiraiConsoleImplementationTerminal

优化和修复

  • 禁止 PermissionService 未被加载前的权限注册行为 (mamoe/mirai-console#307)
  • 优化 AutoSavePluginData 自动保存的性能 (mamoe/mirai-console#317)
  • 修复 JAutoSavePluginData.typedValue (mamoe/mirai-console#311)

IDE

新特性

  • 支持在 New Project 快速新建 Mirai Console 插件项目 (mamoe/mirai-console#313, mamoe/mirai-console#320)
    使用: File->New->Project 找到 Mirai
    • 支持 Java 和 Kotlin
    • 支持 Gradle Kotlin DSL 和 Gradle Groovy DSL
    • 不支持 Maven

优化和修复

  • 兼容 IntelliJ IDEA 2021.1
  • 提升检查错误时的性能
mirai - 2.6-RC

Published by Him188 over 3 years ago

mirai-core

不兼容变更

  • 弃用 RemoteFile.moveTo (#1180)

新特性

  • 支持保存登录信息自动免密登录 (#1158)

  • 稳定 RawForwardMessage, 增加 ForwardMessageBuilder.toRawForwardMessage 以允许同一个合并转发被 render 多次 (#1162)

  • NormalMember.isMuted 移动到 NormalMember 成员 (#1037)

优化和修复

  • 修复 RemoteFile.resolveById 没有进入子目录的问题 (#1177)

  • 修复群全体禁言无效的问题 (#1181)

  • 修复在 Android 上异常没有正确记录到日志的问题

  • 在调用 MessageSerializers 时确保 Mirai 实现已经初始化 (#1086)

  • 修复机器人主动禁言群员时禁言事件没有广播的问题 (#1155, #1170)

  • 提升快速登录的稳定性 (#1169 by @sandtechnology)

  • 2.5.2 的修改

mirai-console

  • 优化 AutoSavePluginData 自动保存的性能 (mamoe/mirai-console#317)

  • 修复 JAutoSavePluginData.typedValue (mamoe/mirai-console#311)

  • 允许前端在 MiraiConsole 停止后覆盖已有实例 (重新调用 start)

  • 允许前端直接访问 backendAccess

  • 允许测试时继承 MiraiConsoleImplementationTerminal

IDE

  • 兼容 IntelliJ IDEA 2021.1

  • 修复一些情况下创建 Java 项目出错的问题

  • 修复一些情况下无法检索 Mirai 版本列表的问题

  • 提升创建项目时的稳定性

  • 提升检查错误时的性能

mirai - 2.5.2

Published by Him188 over 3 years ago

mirai-core

  • 修复 RemoteFile.resolveById 无法递归进入子目录的问题 (对根目录操作时只能获取根目录下文件) (#1177)
  • 修复引用回复中的消息解析错误的问题 (涉及 MarketFace, Dice, MessageSouoce, 等) (#1156, #1157, #1167)
  • 修复调用部分 API 出现 VerifyError 的问题 (#1136)
mirai - 2.6-M2

Published by Him188 over 3 years ago

mirai-core

不兼容变更

  • RichMessageOrigin 更名为 MessageOrigin 以适应更多消息类型. 保留二进制兼容性. (#1116)

优化和修复

  • 免密登录和心跳处理 (#119, #1154)

    • 初步支持免密登录 (#1125)

    • 修复心跳逻辑 (#1149, #1150)

      • 因为心跳不正常导致接收不到消息 (#1149)
    • 修复频繁掉线重连导致的一系列问题

      • 发送消息时报错 CancellationException (#1139, #1004)

      • 重连时跳出验证码 (#328)

      • 频繁重连报错 (#935)

    PRs by @sandtechnology: #1125, #1128, #1131, #1150

  • 修复调用 FileMessage.upload 等方法报错 VerifyError 的问题 (#1136) (也即将会包含在 2.5.2 版本)

  • 修复发送嵌套的合并转发在客户端只能显示第一条消息的问题 (#1130, #1148)

  • 修复解析事件若出现异常则会忽略后续事件解析的问题 (#1124, #1147)

  • 更新 Message 相关文档使之更详细且覆盖更多使用上的帮助 (#1088, #1142)

mirai - 2.6-M1

Published by Him188 over 3 years ago

mirai-core

新特性

  • 新增 UserOrBot.nick: 获取用户或 Bot 的昵称

  • 新增 UserOrBot.nameCardOrNick: 当目标为群员且群名片不为空时返回群名片, 否则返回昵称

  • 新增 MessageUtils.buildMessageChain: 供 Java 使用

  • ForwardMessageBuilder 新增一些构建方法, 更新详细示例文档 (#1087, #1089)

  • 支持解析由 TIM PC 客户端发送的特殊的骰子消息为通用的 Dice

  • 支持处理暂未支持的消息 (UnsupportedMessage) (#1112)

优化和修复

  • 更新 FileCacheStrategy 和图片缓存相关文档 (#1046)

  • 修复 TIM PC 回复机器人发送的合并转发时显示错误的问题 (#1119)

  • 修复一些情况下无法处理其他客户端平板账号上线事件的问题 (#1109)

  • 修复其他管理员同意他人加入群会时触发 Bot 入群的事件的问题 (#1120, #1123 by @sandtechnology)

mirai-console

  • 自动登录配置 AutoLoginConfig 默认使用 device.json 作为设备信息文件名 (mamoe/mirai-console#312)
  • 禁止 PermissionService 未被加载前的权限注册行为 (mamoe/mirai-console#307)

IDE

  • 支持在 New Project 快速新建 Mirai Console 插件项目 (mamoe/mirai-console#313, mamoe/mirai-console#320)
    使用: File->New->Project 找到 Mirai
    • 支持 Java 和 Kotlin
    • 支持 Gradle Kotlin DSL 和 Gradle Groovy DSL
    • 不支持 Maven
mirai - 2.5.1

Published by Him188 over 3 years ago

mirai-core

  • 修复群文件获取目录中的文件列表时返回为空的问题 (#1118)
mirai - 2.5.0

Published by Him188 over 3 years ago

mirai-core

新特性

  • 新增 Kotlin Android 编译目标 (API 24), 使用 android.util.Log 作为默认日志实现, 并进行一些平台优化. (#988, #989)
    与 JVM 目标的区别:

    项目 Android JVM
    LoginSolver 无默认实现 提供 CLI, Swing 及 Selenium 滑动验证实现
    PlatformLogger 默认使用 android.util.Log 默认输出到 System.out

    现在在 Android 模块中使用 mirai 时会自动下载 Android 目标包, 这个切换是完全二进制和源码兼容的.

  • 支持群文件 RemoteFile 和文件消息 FileMessage: (#805, #1069, #1104, #1098, #1105)

    • 多线程上传

    • 获取下载链接

    • 重命名, 移动, 删除

    • 解析文件消息

    • 转发

    • 序列化 (#1082)

  • 支持新消息类型骰子 Dice (#1018, #1012, #1017 by @sandtechnology, @lc6a)

  • 实现 MusicShare 的 Mirai 码 (#1044)

  • MessageSubscriberBuilder 的各 reply 处理时忽略 null 返回值 (#1011)

优化和修复

  • 更新 Kotlin 到 1.4.30, 更新相关依赖 (#1049):

    模块 版本
    kotlin-stdlib 1.4.30
    kotlinx-coroutines-core 1.4.2
    kotlinx-serialization-core 1.1.0
    ktor-client-core 1.5.1
    atomicFU 0.15.1
    yamlkt 0.9.0
    kotlin-jvm-blocking-bridge 1.10.3

    通常来说, mirai 使用者也会自动获取到这些更新, 而不需要手动操作.
    如果编译失败, 请更新 Kotlin 编译器到 1.4.30 及以上.

  • 更新 FileCacheStrategy 的文档 (#1046)

  • 过滤重复的群成员变更事件

  • 优化在发送消息同时 Bot 被禁言导致消息发送失败时的异常, 现在抛出 BotIsBeingMutedException 而不是内部错误

  • 优化系统通知处理, 可能解决 #959, #610

  • 修复在拒绝添加好友请求时仍然创建了 Friend 对象的问题

  • 修复在接收消息时判断群成员权限失败的问题 (#1013, #1050)

  • 修复登录时加载 Bot.nick 出错的问题 (#1023)

  • 修复回复信息没有正确剔除多余的 at 的问题

  • 修复 Java 调用一些方法时发生 NoClassDefFoundError 的问题 (#1078, #1080)

  • 修复部分事件没有记录到日志的问题

  • 修复重复广播 MemberJoinEvent 的问题 (#1090)

  • 修复在 TIM 加入一个新群,不会触发 BotJoinGroupEvent 的问题 (#1058, #1060 by @sandtechnology)

  • 修复合并转发无法在 iOS 客户端查看的问题 (#1052)

  • 优化消息日志, 不进行 mirai 码格式转义处理

  • 提升网络稳定性

mirai-console

  • CompositeCommand.SubCommand.value 增加默认值 []

  • 为前端增加访问后端内部数据的接口 MiraiConsoleImplementation.backendAccess

  • 修复 Java 下 Command 没有正确识别 CommandSender 参数的问题 (mamoe/mirai-console#295)

  • 修复读取插件主类服务时没有忽略注释的问题

  • /help 指令时不显示没有权限执行的指令

  • 在停止服务时调用 Bot.close

  • CommandSender 类型不满足要求时应提示 "需要由xxx执行" 而不是 "参数类型错误" (mamoe/mirai-console#309 by @ZRnQ)

mirai - 2.5-RC

Published by Him188 over 3 years ago

这是一个测试版本, 新加入的功能可能不稳定, 也可能在未来有不兼容变更. 请酌情升级. (2.5 以后不会再特地给出这个提示)

mirai-core

  • 调整文件上传策略, 现在 RemoteFile.upload 会直接返回 FileMessage (#1104)
  • 稳定 RemoteFile, 增加扩展, 完善文档 (#1098, #1105)
  • 更名 ExternalResource.uploadAndSend, File.uploadAndSend.sendTo
  • FileMessage 支持序列化 (#1082)
  • 修复 Java 调用一些方法时发生 NoClassDefFoundError 的问题 (#1078, #1080)
  • 修复部分事件没有记录到日志的问题
  • 修复重复广播 MemberJoinEvent 的问题 (#1090)

mirai-console

  • 在停止服务时调用 Bot.close
  • CommandSender 类型不满足要求时应提示 "需要由xxx执行" 而不是 "参数类型错误" (mamoe/mirai-console#309 by @Under-estimate)
mirai - 2.5-M2

Published by Him188 over 3 years ago

这是一个测试版本, 新加入的功能可能不稳定, 也可能在未来有不兼容变更. 请酌情升级.

mirai-core

  • 支持群文件 RemoteFile: (#805, #1069)

    • 多线程上传

    • 获取下载链接

    • 重命名, 移动, 删除

    • 解析文件消息

    • 转发

    文件操作入口为 group.filesRoot, 使用 group.filesRoot.resolve("test.txt") 获取 RemoteFile, 然后调用其成员方法. 在 2.5-RC 会给出详细文档

  • 提升网络稳定性

  • 修复在 TIM 加入一个新群,不会触发 BotJoinGroupEvent 的问题 (#1058, #1060 by @sandtechnology)

  • 尝试修复合并转发无法在 iOS 客户端查看的问题 (#1052)

  • 优化在发送消息同时 Bot 被禁言导致消息发送失败时的异常, 现在抛出 BotIsBeingMutedException

  • 优化消息日志

mirai - 2.4.2

Published by Him188 over 3 years ago

  • 兼容 Kotlin 1.4.30 (#1066)
mirai - 2.4.1

Published by Him188 over 3 years ago

mirai-core

  • 修复登录时加载 Bot.nick 出错的问题 (#1023)

IDEA

  • 修复误报 "资源未关闭" 警告的问题 (mamoe/mirai-console#294)
mirai - 2.5-M1

Published by Him188 over 3 years ago

这是一个测试版本, 新加入的功能可能不稳定, 也可能在未来有不兼容变更. 请酌情升级.

mirai-core

新特性

  • 新增 Android 编译目标 (API 24), 使用 android.util.Log 作为默认日志实现, 并进行一些平台优化. 现在在 Android 模块中使用 mirai 时会自动下载 Android 目标包. (#988, #989)

    在 2.5.0 正式版时会给出细节

  • 支持骰子 Dice (#1018, #1012, #1017 by @sandtechnology, @lc6a)
  • 实现 MusicShare 的 Mirai 码 (#1044)
  • MessageSubscriberBuilder 的各 reply 处理时忽略 null 返回值 (#1011)

优化和修复

  • 修复在拒绝添加好友请求时仍然创建了 Friend 对象的问题

  • 修复在接收消息时判断群成员权限失败的问题 (#1013, #1050)

  • 修复登录时加载 Bot.nick 出错的问题 (#1023)

  • 过滤重复的群成员变更事件

  • 修复回复信息没有正确剔除多余的 at 的问题

  • 优化系统通知处理, 可能解决 #959, #610

  • 更新 Kotlin 到 1.4.30, 更新相关依赖 (#1049):

    模块 版本
    kotlin-stdlib 1.4.30
    kotlinx-coroutines-core 1.4.2
    kotlinx-serialization-core 1.1.0-RC
    ktor-client-core 1.5.1
    atomicFU 0.15.1
    yamlkt 0.9.0

    通常来说, mirai 使用者也会自动获取到这些更新, 而不需要手动操作.
    如果编译失败, 请更新 Kotlin 编译器到 1.4.30 及以上.

mirai-console

  • CompositeCommand.SubCommand.value 增加默认值 []
  • 为前端增加访问后端内部数据的接口 MiraiConsoleImplementation.backendAccess
  • 修复 Java 下 Command 没有正确识别 CommandSender 参数的问题 (mamoe/mirai-console#295)
  • 修复读取插件主类服务时没有忽略注释的问题
  • /help 指令时不显示没有权限执行的指令

IDEA

  • 修复误报 "资源未关闭" 警告的问题 (mamoe/mirai-console#294)
mirai - 2.4.0

Published by Karlatemp over 3 years ago

从现在起, 所有 mirai 软件包都同时发布到 JCenter 和 Maven Central (#970, #981)。

mirai-core

Contact 缓存

  • 支持好友列表和群成员列表缓存, 默认关闭, 可在 BotConfiguration 开启 (#987)

Bot

  • 修复 Bot.nick 没初始化的问题 (#1019)
  • Bot.close 时发送离线请求, 缓解重启后 PC 客户端收不到消息的问题 (#688)

ConfigPush

ConfigPush: 服务器推送登录服务器列表和资源上传会话信息等

  • 新增 ConfigPush 缓存 (#949)
  • 在丢失 ConfigPush 时自动重连 (#1001)
  • 优化 ConfigPush 处理流程 (#1015)
  • 修复 ConfigPush kotlin.UninitializedPropertyAccessException (#1003)

其他

  • 将所有语音都以 silk 格式上传, 可能解决 #940
  • 更新默认服务器列表 (#1015)
  • 修正 BotConfiguration 注释中的一个错误 (#1021)
  • 为 MusicShare 添加 RichMessageOrigin
  • 自动将接收的消息中的 \r, \r\n 替换为 \n, 可在 BotConfiguration 关闭 (#1010)
  • Voice.contentToString 与官方同步, 现在返回 "[语音消息]" 而不是 "[语音]"
  • 限制密码长度为 16 (#993)
  • 修复消息有时候会被多态序列化为数组的问题
  • ShowImageFlag 支持序列化
  • 弃用 SingleMessage.Serializer
  • 修复 BotConfiguration.copy 没有复制部分属性的问题

mirai-console

  • PluginData 支持 ConcurrentMap (mamoe/mirai-console#279)
  • 修复 Command` 无法在 Java 继承的问题

IDEA

  • 新诊断和修复: 在 PluginData.value 使用 HashMap, ArrayListMap, List 派生类型 (mamoe/mirai-console#278)
    image
  • 新增诊断, 检查未被关闭的资源并提供修复
  • 插件主类服务和子指令定义 LineMarker 支持 Java

迟到的情人节快乐

mirai - 2.4-RC

Published by Him188 over 3 years ago

这是一个测试版本, 新加入的功能可能不稳定, 也可能在未来有不兼容变更. 请酌情升级.

现在起, 所有 mirai 软件包都同时发布到 JCenter 和 Maven Central (#970, #981)。

mirai-core

Contact 缓存

  • 简化缓存配置, 统一使用 cacheDir 配置
  • 默认关闭好友列表和群成员列表缓存 (#1016)

ConfigPush

ConfigPush: 服务器推送登录服务器列表和资源上传会话信息等

  • 新增 ConfigPush 缓存 (#949)
  • 在丢失 ConfigPush 时自动重连 (#1001)
  • 修复 ConfigPush kotlin.UninitializedPropertyAccessException (#1003)

其他

  • 为 MusicShare 添加 RichMessageOrigin
  • 自动将接收的消息中的 \r, \r\n 替换为 \n (#1010)
  • Voice.contentToString 与官方同步, 现在返回 "[语音消息]" 而不是 "[语音]"
  • 限制密码长度为 16 (#993)

mirai-console

  • PluginData 支持 ConcurrentMap (mamoe/mirai-console#279)

IDEA

  • 新诊断和修复: 在 PluginData.value 使用 HashMap, ArrayListMap, List 派生类型 (mamoe/mirai-console#278)
    image

新年快乐🧨

mirai - 2.4-M1

Published by Him188 over 3 years ago

注意: 2.4-M1 是一个测试版本, 新加入的功能可能不稳定, 也可能在未来有不兼容变更. 请酌情升级.

mirai-core

  • 支持好友列表和群成员列表缓存, 默认启用, 可在 BotConfiguration 关闭 (#987)
  • 将所有语音都以 silk 格式上传, 可能解决 #940
  • Bot.close 时发送离线请求, 缓解重启后 PC 客户端收不到消息的问题 (#688)
  • 修复消息有时候会被多态序列化为数组的问题
  • ShowImageFlag 支持序列化
  • 弃用 SingleMessage.Serializer
  • 修复 BotConfiguration.copy 没有复制部分属性的问题

mirai-console

  • 修复 Command 无法在 Java 继承的问题

IDEA

  • 新增诊断, 检查未被关闭的资源并提供修复
  • 插件主类服务和子指令定义 LineMarker 支持 Java
mirai - 2.3.2

Published by Him188 over 3 years ago

mirai-core

  • 修复 EventChannel.context 丢失之前的 filter 的问题
  • 修复 EventChannel.filter Java 版没有正确处理阻塞调用的问题
  • 修复外部监听处理 Bot 事件的异常被记录到 network 的问题
  • 修复一个 Bot 被关闭, 其他 Bot 也被关闭的问题 (#956)
mirai - 2.3.1

Published by Him188 over 3 years ago

mirai-console

  • 修复从旧版更新时 device.json 报错的问题
mirai - 2.3.0

Published by Him188 over 3 years ago

mirai-core

  • 支持下载长消息 (#692)
  • 支持解析合并转发消息 (#623)
  • 新增消息元数据 RichMessageOrigin
  • 修复合并转发消息中发送人名称为空的问题
  • 修复消息多态序列化 (#951)
  • 修复群撤回在 TIM PC 客户端无效的问题
  • 修复因丢失 ConfigPush 导致群图片无法上传的问题 (#944)
  • 修复 EventChannel.filter 和 EventChannel.filterIsInstance 重复调用被覆盖的问题 (#953, #925)
  • 解决在 Linux 上因随机数收集导致登录缓慢的问题 (#941, #936)
  • 增加登录获取 ConfigPush 的超时到 20 秒, 避免过早超时导致无法上传语音

mirai-console

  • 支持在登录时选择协议
  • 支持在自动登录配置 Bot 设备信息文件名 (mamoe/mirai-console#249)
  • 插件 ID 允许下划线 (mamoe/mirai-console#263)
  • 默认为 Bot 启用 autoReconnectOnForceOffline (mamoe/mirai-console#143)
  • 默认为 Bot 配置 workingDirbots/$id
  • 在 Bot 自动登录失败时进行 Bot.close
  • 在执行指令时将 * 解析为根权限 ID (即 *:)
  • 在执行指令时将被许可人 ID 纯数字解析为 ExactUser

IDEA

  • 修复 ConfigurePluginMainServiceFixMETA-INF/services 创建到 src/main 的问题 (mamoe/mirai-console#256)