Releases: simple-robot/simpler-robot
v2.0.0-RC.3
RC.3
不出意外的话,这或许是最后一个RC。
- 暂停
component-ding
模块的更新,直到新的钉钉模块开发完成。在那之前,版本控制所管理的钉钉模块版本为2.0.0-RC.2
。
核心
- #51 优化监听函数监听参数与监听类型不一致而导致的错误,并增加解析期警告异常。
// 监听函数解析期间会输出警告日志,因为你监听了 GroupMsg, 而参数中的 PrivateMsg 却没有被监听,它在触发监听时会抛出异常。
@OnGroup
public void listen(PrivateMsg msg) {
// ...
}
// 监听函数解析期间会输出警告日志,因为你监听了 GroupMsg, 而参数中的 PrivateMsg 却没有被监听,它将永远为null。
@OnGroup
public void listen(@Depend(orIgnore = true) PrivateMsg msg) {
// ...
}
- #52 支持
kotlin
的nullable
参数,使其等效于@Depend(orIgnore = true)
。
// myBean 可以为null,因此如果依赖管理找不到此实例则会得到null值,而不是抛出异常。
@OnGroup
fun listen(msg: GroupMsg, myBean: MyBean?) {
// ...
}
// In Java like: listen(PrivateMsg msg) { /* ... */ }
@OnPrivate
fun PrivateMsg.listen() {
println(this.text)
}
-
移动接口类路径:
love.forte.simbot.intercept.Context
->love.forte.simbot.Context
。正常情况下,此变动不会影响正常使用。 -
#49 响应值处理器,提供一个接口
ListenResultProcessor
来实现注册一个响应值处理器,可以在监听函数全部执行完成后,对最终的ListenResult
进行统一处理。 -
#54 通过 响应值处理器(#49) 实现的响应快速回复。
实现返回值快速回复,例如:
kotlin:/** * 监听 [私聊消息][PrivateMsg]与[群聊消息][GroupMsg], * 并在收到消息的时候统一回复 "Hello. this is Quick reply.", 如果在群聊中,会AT触发事件的人。 * 其中,在群聊中需要被AT。 */ @OnGroup @OnPrivate @Filters(atBot = true) fun listen() = Reply.reply("Hello. this is Quick reply.", at = true)
java:
/** 与上述方法含义一样。 */ @OnGroup @OnPrivate @Filters(atBot = true) public ReplyAble listen(){ return Reply.reply("Hello. this is Quick reply.", true); }
-
修改
AtDetection
中的atBot
、atAny
、atAll
的处理逻辑:如果当前消息类型为PrivateMsg(私聊消息)
, 那么上述三个值均为true
。
v2.0.0-RC.2
v2.0.0-RC.2
mirai
- 更新至 v2.0.0 。
- 兼容
record
类型CAT码。 - 优化通过ID发送图片的时候的闪照处理。
可爱猫
- 需要注意,可爱猫新成员离群和入群暂时不支持获取
accountInfo
。
fix
题外话,你可以通过 issue 、discussions 等方式向我提供可公示的作品。
v2.0.0-RC.1
v2.0.0-RC.1
目前来看,mirai组件和可爱猫组件已经处于可用状态。发布rc.1并开始收集、修复bug。
核心
- 现在
BotInfo(bot信息)
也属于一种AccountInfo(账号信息)
了。 MultipleResults
的实现类中,getSize()
更替为更符合习惯的size()
。暂时兼容旧方法几个版本。- 增加一个获取空的
MessageContent
实例的方法:MessageContents.emptyContent()
- 修复内部
Ignore
处理错误。 - 简单优化/增加部分log日志。
Mirai
- 更新mirai为
v2.0-RC
。 - 优化mirai组件中针对
MessageContentBuilder.text(...)
的操作。 - 优化mirai组件中的私聊发送。
- 内置默认使用的
http-client-ktor
切换为与mirai内部一致的client-okhttp
。 - 修复cookies获取。
http-client-ktor
- 更新ktor为
v1.5.0
- 优化实例化流程
v2.0.0-BETA.8
2.0.0-BETA.8
核心
-
#40 提供一个
AccountInfo
的子类型GroupAccountInfo
并为群成员
等相关的信息提供一些额外的参数,例如用户头衔accountTitle
,生效于与群成员有关的地方,例如群聊消息、获取到的群成员列表信息等。 -
弃用
GroupAdmin
、GroupOwner
、GroupMemberInfo
、BanInfo
、FriendInfo
中的getAccountInfo
, 而是使得他们本身就属于AccountInfo
. -
追加一个
PrivateMsg(私聊事件)
的子事件类型FriendMsg(好友私聊事件)
, 其代表为一个确认为 好友 的私聊消息。
Mirai
- 更新至 v2.0-M2-2 版本。
可爱猫
- 优化springboot-starter,如果不加
@EnableSimbot
不会再报错了。
feature
# 默认(遇到不支持的API时使用的)送信器。
# 是枚举 love.forte.simbot.core.configuration.DefaultSenderType 的元素值。
# 默认为 'ERROR',即会抛出一个错误。
# 目前可选:ERROR (会直接抛出异常)、FAILED (会返回一个默认的失败返回值)
simbot.core.sender.default.type=ERROR
- #32 实现备用监听
@SpareListen
以及一个习惯用法@Spare
.
fix
- #39 监听函数优先级失效
2.0.0-BETA.7
2.0.0-BETA.7
核心
追加配置:
# 是否启用启动时的tips。默认启动
simbot.core.tips.enable=true
# 使用tips时的数据源。可选:GITHUB、GITEE、LOCAL。其中,其他数据源如果失败,最终会尝试使用LOCAL。
# 默认GITEE源。
simbot.core.tips.resource=GITHUB
# 是否展示启动时的logo。默认开启。
simbot.core.logo.enable=true
新模块
- http-client-restTemplate 使用spring-web的
restTemplate
的http客户端模块,适用于在整合springboot的时候减少项目环境中的额外依赖。 - serialization-json-jackson 使用jackson的json序列化模块。一般可用作在整合springboot的时候减少项目环境中的额外依赖。
- lovelycat-springboot-starter 可爱猫的springboot-starter。使用的时候注意参考文档:https://www.yuque.com/simpler-robot/simpler-robot-doc/rv3ux2
新实现
-
#29
@Filter
和@Filters
提供了一个target
参数以允许使用其他的过滤目标。
例如text
则使用MsgGet.getText
进行过滤,而msg
则使用MessageGet.getMsg
进行过滤。
可以通过操作love.forte.simbot.filter.FilterTargetManager
类的实例来实现追加、移除解析器。
提供了一个FilterTargets
常量类来降低一些target目标手写的出错概率。
具体描述可参考love.forte.simbot.annotation.Filter#target
的文档注释或等待文档相关章节的更新。 -
#33 现在
@Listens
、@Listen
和对应的模板注解允许标记在类上。
fix
v2.0.0-BETA.6
v2.0.0-BETA.6
核心
Setter
追加API:setFriendDelete(friend)
- 删除好友
私聊类型(PrivateMsg.Type
) 增加一个类型 SELF
, 代表私聊类型为自己。
time-task
-
实现定时任务模块 (#24), 并向下兼容一个版本(
v2.0.0-BETA.5
).
所谓向下兼容,即第一个发布的版本为上一个版本,因此你可以直接通过上一个版本的版本号使用此模块,但是无法想要进行统一版本控制,需要手动填入版本号。目前定时任务相关模块为:
使用(以quartz模块为例):
<dependency>
<groupId>love.forte.simple-robot.time-task</groupId>
<artifactId>time-task-quartz</artifactId>
</dependency>
虽然发布的兼容版本只有上一个版本,但是理论上其他BETA
旧版本(2.0.0-BETA.x
)也可以使用。
mirai
-
更新mirai版本到 v2.0-M2 。
- 其中,mirai更新了对
滑动验证
的支持,可以参考 mirai文档-登录 、 mirai-login-solver-selenium 。
mirai组件同样不强制引用此依赖,如果需要请添加相关依赖:net.mamoe:mirai-login-solver-selenium:${version}
- 其中,mirai更新了对
-
移除配置项
simbot.component.mirai.loginSolverType
。 -
使用CatCode发送图片的时候,如果存在id参数,则会通过
Image($id)
构建图片。因此如果id未知,则不要使用id。 -
提供mirai的特殊监听事件
love.forte.simbot.component.mirai.message.event.MiraiGroupHonorChanged
荣耀变动事件。
监听方式:@Listen(MiraiGroupHonorChanged.class)
。 -
提供mirai的特殊监听事件
love.forte.simbot.component.mirai.message.event.MiraiGroupTalkativeChanged
群龙王变动事件。
监听方式:@Listen(MiraiGroupTalkativeChanged.class)
。 -
提供mirai的特殊监听事件
love.forte.simbot.component.mirai.message.event.MiraiOtherClientOnline
其他设备上线事件。
监听方式:@Listen(MiraiOtherClientOnline.class)
。 -
提供mirai的特殊监听事件
love.forte.simbot.component.mirai.message.event.MiraiOtherClientOffline
其他设备下线事件。
监听方式:@Listen(MiraiOtherClientOffline.class)
。 -
提供mirai的特殊监听事件
love.forte.simbot.component.mirai.message.event.MiraiOtherClientMessage
其他客户端发送消息给Bot事件。
监听方式:此事件会被处理为一个 私聊消息(PrivateMsg
)。你也可以使用mirai的专属事件监听:@Listen(MiraiOtherClientMessage.class)
-
提供mirai的特殊监听事件
love.forte.simbot.component.mirai.message.event.MiraiGroupMessageSync
客户端发送群消息时的同步。
监听方式:此事件不会被处理为一个 群消息(GroupMsg
)。使用mirai的专属事件监听:@Listen(MiraiGroupMessageSync.class)
fix
- #28 GroupMsgRecall 获取群信息
v2.0.0-BETA.5 time-task
time-task
-
实现定时任务模块 (#24), 并向下兼容一个版本(
v2.0.0-BETA.5
).
所谓向下兼容,即第一个发布的版本为上一个版本,因此你可以直接通过上一个版本的版本号使用此模块,但是无法进行统一版本控制,需要手动填入版本号。目前定时任务相关模块为:
使用(以quartz模块为例):
<dependency>
<groupId>love.forte.simple-robot.time-task</groupId>
<artifactId>time-task-quartz</artifactId>
<version>2.0.0-BETA.5</version>
</dependency>
虽然发布的兼容版本只有上一个版本,但是理论上其他BETA
旧版本(2.0.0-BETA.x
)也可以使用。
从之后的版本开始可使用版本控制。
v2.0.0-BETA.5
v2.0.0-BETA.5
mirai
- 追加配置项:
simbot.component.mirai.daemon=false
此配置为设置保持mirai的存活线程是否作为守护线程。一般可以在与spring-boot-web相整合的时候设置为true。
- 优化发送网络图片/语音时的并发请求。
http-client-ktor
- 更新ktor版本至
v1.4.3
。