cqcppsdk icon indicating copy to clipboard operation
cqcppsdk copied to clipboard

改进的错误支持,MessageSegment::type重构为enum,对MessageSegment的其他重构和优化

Open dynilath opened this issue 4 years ago • 9 comments

dynilath avatar Apr 30 '20 03:04 dynilath

@dynilath 用枚举型不好吧,你永远不知道xx能给你整出什么新活儿。

ExerciseBook avatar Apr 30 '20 04:04 ExerciseBook

发送和接收的 CQ 码是有不重叠的,有些只能收不能发,还有的 CQ 码只有 Pro 能收,还有就是 酷Q 随时可能有新的 CQ 码,可能还是保持字符串比较好

stdrc avatar Apr 30 '20 07:04 stdrc

可以考虑用枚举表达常用的、能由用户构造的类型。其他的塞进一个other枚举里。在map里存{type,data},或者用其他更直观的表示(其实要用的都已经在前面所说的情况里了,很可能是根本用不上)。 实际上现在这个对于无法辨认的CQ码就用unimpl表示类型。并且为那些返回MessageSegment类型的static方法提供了枚举型支持。

dynilath avatar Apr 30 '20 07:04 dynilath

既枚举又保留扩展性的看起来不错。

ExerciseBook avatar Apr 30 '20 07:04 ExerciseBook

INVALID_TARGET的确是没找到哪里有用到。(总之先摆一个这里放着。)

dynilath avatar Apr 30 '20 07:04 dynilath

我记得醋Q里的 INVALID_TARGET 好像是 -23

找不到与目标QQ的关系,消息无法发送 (-23) t/45623

cq插件发送私聊信息 报错-23 t/43230

ExerciseBook avatar Apr 30 '20 07:04 ExerciseBook

上面是说这里有个INVALID_TARGET,但是并没有在sdk其他地方用到。(看来是个有些影响的重构问题。)

dynilath avatar Apr 30 '20 07:04 dynilath

CQ 还有很多 undocumented 的错误码,我其实是不太想让 sdk 来维护这事的,用户应该自己去看酷Q文档和日志,否则最后问题都会变成 sdk 的问题,做了很多重复工作(

stdrc avatar Apr 30 '20 09:04 stdrc

类似的,我不认为要围绕酷Q作出完整支持,而是围绕用户,对用户需要的、常用部分作出一定支持。 从这个角度来看,sdk已经将酷Q接口封装,errcode对于用户其实完全看不到,这反而不能在这个角度上帮助到用户。

dynilath avatar Apr 30 '20 18:04 dynilath