已解决 command双重调用问题
- 
					
					
					
					
如题,
经过测试,安装了LuckPerms插件的mirai,在测试command时会出现命令重复调用问题,在本地无LuckPerms插件的bot则可以正常使用command命令,不会出现重复调用问题。- 
本地:

 - 
安装了插件的服务器:

 
请教该问题出现的原因以及解决方式?
- 另附代码段:
 
onEnable:CommandManager.INSTANCE.registerCommand(Mycommand.INSTANCE, false);myCommand:public class Mycommand extends JSimpleCommand { public static final Mycommand INSTANCE = new Mycommand(); private Mycommand(){ super(Plugin.INSTANCE, "test", new String[]{"s"}, Plugin.INSTANCE.getParentPermission()); setDescription("这是一个测试command"); } @Handler public void onCommand(CommandSender sender, String mes){ sender.sendMessage("test"); } }EventHandler:FriendCommandSenderOnMessage to = new FriendCommandSenderOnMessage(event); CommandManager.INSTANCE.executeCommand(to, event.getMessage(),false); MemberCommandSenderOnMessage to = new MemberCommandSenderOnMessage(event); CommandManager.INSTANCE.executeCommand(to, event.getMessage(),false);以下测试基于本地没有LuckPerms插件的环境:
尽管我知道我似乎不应该在EventHandler中再次监听命令,但是不监听他就是不响应……去掉好友监听好友不响应,去掉群监听群不响应?? - 
 - 
					
					
					
					

 - 
					
					
					
					
另附双触发日志:
使用
command:2021-08-21 21:29:17 V/Bot.qq: [bot 测试(qq)] Orisland Unlimit() -> /s @主bot qwe错误的双触发:
2021-08-21 21:29:17 V/Bot.qq: Event: GroupMessagePreSendEvent(target=Group(qq), message=wocao ) 2021-08-21 21:29:17 V/Bot.qq: Group(qq) <- wocao 2021-08-21 21:29:17 V/Bot.qq: Event: GroupMessagePostSendEvent(target=Group(qq), message=wocao , exception=null, receipt=net.mamoe.mirai.message.MessageReceipt@1fe87ff1) 2021-08-21 21:29:17 V/Bot.qq: Event: GroupMessagePreSendEvent(target=Group(qq), message=wocao ) 2021-08-21 21:29:17 V/Bot.qq: Group(qq) <- wocao 2021-08-21 21:29:17 V/Bot.qq: Event: GroupMessagePostSendEvent(target=Group(qq), message=wocao , exception=null, receipt=net.mamoe.mirai.message.MessageReceipt@3728e35d) - 
					
					
					
					
如果你运行的是最新的luckperms,执行 lp verbose on, 鼠标移动至 MessageLog显示的文本上,显示的堆栈信息有助于debug
 - 
					
					
					
					
基于你再次注册了 executeCommand 判断 chat-command执行了一个命令你自己又执行了一次命令,与 luckperms 无关
 - 
					
					
					
					
@karlatemp
插件版本为luckperms-mirai-2.5-RC-dev-3+5.3-SNAPSHOT.jar
可是我不在eventHandler里写,bot就不响应命令=。=
去除好友/群事件监听中的executeCommand后则对应的好友/群命令无法响应。 - 
					
					
					
					
chat-command已经做了执行命令的事情你在做一次不就执行了两次
至于你说的不加不会执行命令,你给权限了没
 - 
					
					
					
					
@karlatemp
以下环境均在本地没有安装luckperm插件的环境下测试
权限测试全过程:- 
好友私聊,
eventHandler重复执行代码段存在:



 - 
注释
eventHandler:

 - 
再次测试:

command失效。 - 
删除注释->
command有效.


 - 
我:???????
 
 - 
 - 
					
					
					
					
然后我开始怀疑我是不是注册部分写错了还是怎么的,注册失败命令那不应该会出现在help命令里啊,出现上面情况的原因,我觉得在本地测试更像是写在
myCommand里的handler注解并没有起到任何作用,但是安装了luckperm后这个handler又自己恢复了??我开始进入迷惑状态。 - 
					
					
					
					
你命令斜杠呢
 - 
					
					
					
					
@karlatemp prefix里已删除,我不喜欢在命令前面带斜杠。
而且带不带斜杠都是不行的……
下图为eventHandler中注释掉相关代码后的命令表现:

另附权限截图:

 - 
					
					
					
					

 - 
					
					
					
					
@karlatemp
脸是晚上丢的,人是连夜走的。
光速逃离mirai论坛
我真不知道idea-mirai插件自带的工程里没有集成chat-command