Closed Ant00000ny closed 5 months ago
对应的代码:
@Listener
suspend fun onFriendRequest(event: OneBotFriendRequestEvent) {
try {
val reqInfo = botService.getStrangerInfo(event.requesterId)
delay(1.seconds)
event.accept() // 全肯定
log.info("通过了 ${reqInfo.nickname} (${reqInfo.userId}) 的好友请求")
} catch (e: Exception) {
log.error("好友请求处理异常", e)
}
}
看上去你收到了一个 poke
戳一戳事件,这个事件的协议约定 中是有一个 group_id
的,但是事件内却没有。
是否能确定这个戳一戳事件是来自群还是哪里?如果是来自群,那这疑似是协议实现者的缺陷。如果不是来自群而是私人消息,那这可能是OneBot11的设计缺陷,因为它只有“群内戳一戳”。
确认了下聊天记录,我认为不是来自群聊的,但是私人消息也没有收到过戳一戳。只能猜测也许是 QQ 加好友后的「戳一戳开场」提示导致的。
另外如果解析事件失败,忽略该事件而不是直接 crash 掉我认为会好一些
现在有在 #48 中考虑事件解析如果失败则转而包装为另一个事件推送。不过虽然现在出现错误会直接关闭 session,但是之后应该会尝试重连而不是直接 crash 了才对