-
|
现在是这个场景:我同一个qq有两端在线,一个是pcqq我自己用,一个是nb2挂机器人。我现在希望我在pcqq端自己发的消息也会被nb2端处理,也就是我用自己的号在qq发指令会收到我自己的响应,cq端已经打开report-self-message,但是nb2端会把我发的消息当作外发消息。 我在pcqq端发的消息在nb2输出是这样: 此处******均是同一个QQ号 |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 17 replies
-
|
事件类型是 |
Beta Was this translation helpful? Give feedback.
-
|
你可以通过继承Adapter,然后在事件序列化之前把 @yanyongyu 要不要加个hook?感觉这个pre deserialization hook需求我遇到好几个了 |
Beta Was this translation helpful? Give feedback.
-
|
你可以使用 @yourcommand.handle()
@on_message_sent.handle()
def yourhandler(bot: Bot, matcher: Matcher, event: Event):
...值得注意的是,event参数应当被声明为 同时, |
Beta Was this translation helpful? Give feedback.
-
|
两年以后我有相同需求来到了这里。我发现我的nonebot仍然无法处理message sent类型,于是我做了如下处理: nonebot/adapters/onebot/v11/adapter.py line 441: 我自己都觉得变钛,但是目的达到了。之前使用拉格朗自己就做了这一步,可惜不维护了。 |
Beta Was this translation helpful? Give feedback.
-
|
还有后续吗,完整教程是怎么样的 |
Beta Was this translation helpful? Give feedback.
你可以使用
on_message_sent = on("message_sent", block=False),并在你的handler函数前装饰:值得注意的是,event参数应当被声明为
Event而非MessageEvent或GroupMessageEvent,否则mathcer无法正常捕获消息。同时,
"message_sent"模式下的event无法从get_message()或其它方法获得消息,但你可以event.raw_message直接获取机器人账号的消息。你可以通过isinstance(event, Event)来判断当前方法是响应哪个事件来分别获得消息并响应。