Closed STESmly closed 1 month ago
- bilichat最新版仅支持Python 3.10+,如果项目出现任何问题,3.9.10 将不会收到任何推送更新。
- 请提供详细的日志,至少为debug等级,包括收到消息后至发送响应后的全部内容,您可以使用 Matcha 以避免真实聊天信息泄露。
1.我并未pip bilichat插件,仅download了v11_selfmsg_hook.py
- bilichat最新版仅支持Python 3.10+,如果项目出现任何问题,3.9.10 将不会收到任何推送更新。
- 请提供详细的日志,至少为debug等级,包括收到消息后至发送响应后的全部内容,您可以使用 Matcha 以避免真实聊天信息泄露。
2.这是(在robot to robot的私聊)日志10-02
23:56:46 [SUCCESS] nonebot | OneBot V11 3791398858 | [message_sent.private.friend]: Message 1761522775 from 3791398858 '测试'
10-02 23:56:46 [DEBUG] nonebot | Checking for matchers in priority 1...
10-02 23:56:46 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246)
10-02 23:56:46 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246)
10-02 23:56:46 [DEBUG] nonebot | Running handler Dependent(call=_)
10-02 23:56:46 [INFO] nonebot | Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) running complete
10-02 23:56:46 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.测试, lineno=75)
10-02 23:56:46 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.测试, lineno=75)
10-02 23:56:46 [DEBUG] nonebot | Running handler Dependent(call=_)
10-02 23:56:46 [DEBUG] nonebot | OneBot V11 | Calling API send_msg
10-02 23:56:46 [INFO] nonebot | Matcher(type='message', module=src.plugins.测试, lineno=75) running complete
10-02 23:56:46 [DEBUG] nonebot | Stop event propagation
10-02 23:56:46 [DEBUG] nonebot | Checking for matchers completed
10-02 23:56:46 [SUCCESS] nonebot | OneBot V11 3791398858 | [message_sent.private.friend]: Message 1743277620 from 3791398858 '37913988583791398858'
10-02 23:56:46 [DEBUG] nonebot | Checking for matchers in priority 1...
10-02 23:56:46 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246)
10-02 23:56:46 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246)
10-02 23:56:46 [DEBUG] nonebot | Running handler Dependent(call=_)
10-02 23:56:46 [INFO] nonebot | Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) running complete
10-02 23:56:46 [DEBUG] nonebot | Stop event propagation
10-02 23:56:46 [DEBUG] nonebot | Checking for matchers completed
- bilichat最新版仅支持Python 3.10+,如果项目出现任何问题,3.9.10 将不会收到任何推送更新。
- 请提供详细的日志,至少为debug等级,包括收到消息后至发送响应后的全部内容,您可以使用 Matcha 以避免真实聊天信息泄露。
这是robot to user的私聊10-02 23:57:25
[SUCCESS] nonebot | OneBot V11 3791398858 | [message_sent.private.friend]: Message 1682246714 from 3791398858 '测试'
10-02 23:57:25 [DEBUG] nonebot | Checking for matchers in priority 1...
10-02 23:57:25 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246)
10-02 23:57:25 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246)
10-02 23:57:25 [DEBUG] nonebot | Running handler Dependent(call=_)
10-02 23:57:25 [INFO] nonebot | Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) running complete
10-02 23:57:25 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.测试, lineno=75)
10-02 23:57:25 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.测试, lineno=75)
10-02 23:57:25 [DEBUG] nonebot | Running handler Dependent(call=_)
10-02 23:57:25 [DEBUG] nonebot | OneBot V11 | Calling API send_msg
10-02 23:57:25 [INFO] nonebot | Matcher(type='message', module=src.plugins.测试, lineno=75) running complete
10-02 23:57:25 [DEBUG] nonebot | Stop event propagation
10-02 23:57:25 [DEBUG] nonebot | Checking for matchers completed
10-02 23:57:25 [SUCCESS] nonebot | OneBot V11 3791398858 | [message_sent.private.friend]: Message 455524326 from 3791398858 '37913988583791398858'
10-02 23:57:25 [DEBUG] nonebot | Checking for matchers in priority 1...
10-02 23:57:25 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246)
10-02 23:57:25 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246)
10-02 23:57:25 [DEBUG] nonebot | Running handler Dependent(call=_)
10-02 23:57:25 [INFO] nonebot | Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) running complete
10-02 23:57:25 [DEBUG] nonebot | Stop event propagation
10-02 23:57:25 [DEBUG] nonebot | Checking for matchers completed
- bilichat最新版仅支持Python 3.10+,如果项目出现任何问题,3.9.10 将不会收到任何推送更新。
- 请提供详细的日志,至少为debug等级,包括收到消息后至发送响应后的全部内容,您可以使用 Matcha 以避免真实聊天信息泄露。
这是robot to user的私聊10-02 23:57:25 [SUCCESS] nonebot | OneBot V11 3791398858 | [messagesent.private.friend]: Message 1682246714 from 3791398858 '测试' 10-02 23:57:25 [DEBUG] nonebot | Checking for matchers in priority 1... 10-02 23:57:25 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) 10-02 23:57:25 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) 10-02 23:57:25 [DEBUG] nonebot | Running handler Dependent(call=) 10-02 23:57:25 [INFO] nonebot | Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) running complete 10-02 23:57:25 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.测试, lineno=75) 10-02 23:57:25 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.测试, lineno=75) 10-02 23:57:25 [DEBUG] nonebot | Running handler Dependent(call=_) 10-02 23:57:25 [DEBUG] nonebot | OneBot V11 | Calling API send_msg 10-02 23:57:25 [INFO] nonebot | Matcher(type='message', module=src.plugins.测试, lineno=75) running complete 10-02 23:57:25 [DEBUG] nonebot | Stop event propagation 10-02 23:57:25 [DEBUG] nonebot | Checking for matchers completed 10-02 23:57:25 [SUCCESS] nonebot | OneBot V11 3791398858 | [messagesent.private.friend]: Message 455524326 from 3791398858 '37913988583791398858' 10-02 23:57:25 [DEBUG] nonebot | Checking for matchers in priority 1... 10-02 23:57:25 [INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) 10-02 23:57:25 [DEBUG] nonebot | Running Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) 10-02 23:57:25 [DEBUG] nonebot | Running handler Dependent(call=) 10-02 23:57:25 [INFO] nonebot | Matcher(type='message', module=src.plugins.词库的执行示例, lineno=246) running complete 10-02 23:57:25 [DEBUG] nonebot | Stop event propagation 10-02 23:57:25 [DEBUG] nonebot | Checking for matchers completed
都是使用的默认发送消息的的xx.send,而非使用await bot.send_private_msg(user_id=event.target_id,message=messgae) 现象为,不管发送的私聊对象是谁,xx.send只会send消息到bot对自己的私聊里面
很抱歉提的issue是bug,因为毕竟是我自己加的私聊人机合一的代码(虽然是根据套模版的)(doge)
个人认为可能是hook的字段中关于target的字段出现问题了,这可能与你所使用的bot客户端有关。
如果可以修改插件源代码,可以尝试在event中定位正确的字段名,并覆盖到hook模型的target上。
关于如何覆盖,可以参考Python内置功能 property
或 pydantic 校验器 validator
进行对某一类属性的逻辑化修改(而不是返回固定值)。
个人认为可能是hook的字段中关于target的字段出现问题了,这可能与你所使用的bot客户端有关。 如果可以修改插件源代码,可以尝试在event中定位正确的字段名,并覆盖到hook模型的target上。
那我还是做userid==selfid判断用await bot.send_private_msg(user_id=event.target_id,message=messgae)吧(),谢谢了
操作系统
Windows
Python 版本
3.9.10
NoneBot 版本
2.3.3
Bilichat 版本
无
描述问题
就是我看佬的插件里面有人机合一的代码,于是我就试着自己改了一下,加了个关于私聊的伪造代码如下 @register_event class PrivateMessageSentEvent(PrivateMessageEvent): """私聊消息里自己发送的消息"""
但我在加了之后发现,不管bot对任何人私聊,event里面得到的userid和selfid都是bot的自身的id 所以在默认send的时候都只会send到bot自己对自己的私聊里面 只能使用await bot.send_private_msg(user_id=event.target_id,message=messgae)去发送到对象私聊窗口里面 所以怎么改才让触发人机合一时,默认的xx.send也能发送到正确的私聊窗口里面
插件的配置项
无
截图或日志
无