已解决 【求助】有什么插件源码修改,会导致机器人对所有QQ消息都无法解析命令吗?
-
问题描述:
最近更新了一下自己开发的插件版本,发现了命令失效问题:
- 可以正常在控制台看到接收到的消息/指令,但从QQ消息中获取到的命令全都不生效了,包括控制台内置的命令(例如/permission 等)
- 对于在控制台上直接输入的命令可以正常执行
- 对于设置了事件监听器的,可以正常触发监听器并发送消息出来
环境
开发JDK版本:java8
开发运行mirai版本:2.9.2
测试运行mirai版本:2.11.0-M1(未更新插件前可用)对客户端的修改:
只有对应插件JAR文件做过更新,其他都没有修改,权限测试账户也是有配置权限的。切换回旧版本插件时(插件/控制台)指令都可以正常执行
本次更新做的更改:
此次commit的链接:https://github.com/CuteLuoBo/CuteExtrain/commit/4550e354928452fce8cdccebabfaa4711fb3a3fd
1.增加了一个Command指令处理器同时注册命令(注释后命令仍无效)
2.增加了两个事件监听器和配套的缓存(可用,注释后命令仍无效)
3.特定Command调整了注册的权限节点(恢复后仍无效)
4.配置中增加了个人用户权限(从测试端复制来的,未更新插件前测试端可用)
5.其他指令处理器搭配的业务代码
6.更新了测试类代码尝试排除:
IDEA里面直接DEBUG时,对Mirai的命令解析器打断点,控制台输入的命令可以正常跳转,QQ消息接收到的消息无法生效。
折腾两小时了,折磨,之前测试的时候也有遇到过命令不生效的问题,但太久不记得具体解决过程了,只好来论坛问问大佬
-
还是变量排除有问题,洗完澡又重新测试了一下解决了。
源码修改这部分没有问题,应该是权限系统导致的错误,没权限执行命令,自然也没有回应了。- 用了之前旧服务器的旧客户端mirai-console v2.11.0-M1,搭配这次修改的新插件,用户命令可用。
- 使用相同权限配置文件,在linux平台用最新mcl部署的 mirai-consolev2.11.0和新插件,用户命令无效
- 使用相同权限配置文件, 在IDEA中,使用测试方法运行的mirai-console v2.9.2和新插件debug环境,用户命令无效
于是只好用回旧版本v2.11.0-M1进行部署了,目前正常运行
- 用了之前旧服务器的旧客户端mirai-console v2.11.0-M1,搭配这次修改的新插件,用户命令可用。
-
-