MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    已解决 command双重调用问题

    开发交流
    java command 萌新
    2
    12
    746
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Orisland
      Orisland 摸鱼 最后由 编辑

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

      • 本地:
        a49c4406-0607-40a2-9a79-0e621bc575ad-image.png

      • 安装了插件的服务器:
        9c4225c4-42de-425b-8215-a629ef74e775-image.png

      请教该问题出现的原因以及解决方式?

      • 另附代码段:

      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中再次监听命令,但是不监听他就是不响应……去掉好友监听好友不响应,去掉群监听群不响应??

      1 条回复 最后回复 回复 引用 0
      • Karlatemp
        Karlatemp 最后由 编辑

        IMG_20210821_222248.jpg

        Orisland 1 条回复 最后回复 回复 引用 1
        • Orisland
          Orisland 摸鱼 最后由 Orisland 编辑

          另附双触发日志:

          使用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)
          
          1 条回复 最后回复 回复 引用 0
          • Karlatemp
            Karlatemp 最后由 编辑

            如果你运行的是最新的luckperms,执行 lp verbose on, 鼠标移动至 MessageLog显示的文本上,显示的堆栈信息有助于debug

            1 条回复 最后回复 回复 引用 0
            • Karlatemp
              Karlatemp 最后由 编辑

              基于你再次注册了 executeCommand 判断 chat-command执行了一个命令你自己又执行了一次命令,与 luckperms 无关

              Orisland 1 条回复 最后回复 回复 引用 0
              • Orisland
                Orisland 摸鱼 @Karlatemp 最后由 编辑

                @karlatemp
                插件版本为luckperms-mirai-2.5-RC-dev-3+5.3-SNAPSHOT.jar
                可是我不在eventHandler里写,bot就不响应命令=。=
                去除好友/群事件监听中的executeCommand后则对应的好友/群命令无法响应。

                1 条回复 最后回复 回复 引用 0
                • Karlatemp
                  Karlatemp 最后由 编辑

                  chat-command已经做了执行命令的事情你在做一次不就执行了两次

                  至于你说的不加不会执行命令,你给权限了没

                  Orisland 1 条回复 最后回复 回复 引用 0
                  • Orisland
                    Orisland 摸鱼 @Karlatemp 最后由 编辑

                    @karlatemp
                    以下环境均在本地没有安装luckperm插件的环境下测试
                    权限测试全过程:

                    • 好友私聊,eventHandler重复执行代码段存在:
                      0dcf7556-8934-4b11-9253-b3f15c3f8166-image.png
                      6de9b702-d115-4d24-ab84-664d27c888c2-image.png
                      5aef57d2-74a0-4fab-a2fd-145b60809553-image.png

                    • 注释eventHandler:
                      132847c8-2ed8-4ac2-b0de-d433065ba616-image.png

                    • 再次测试:
                      e7dfb4ab-24f3-4058-abe0-6faa55f1e19e-image.png
                      command失效。

                    • 删除注释->command有效.
                      20a7c638-8d0b-4f22-9402-c784bcd27f76-image.png
                      6dc9709b-8ab9-4d6f-b683-f92a267ad2e2-image.png

                    • 我:???????

                    1 条回复 最后回复 回复 引用 0
                    • Orisland
                      Orisland 摸鱼 最后由 编辑

                      然后我开始怀疑我是不是注册部分写错了还是怎么的,注册失败命令那不应该会出现在help命令里啊,出现上面情况的原因,我觉得在本地测试更像是写在myCommand里的handler注解并没有起到任何作用,但是安装了luckperm后这个handler又自己恢复了??我开始进入迷惑状态。

                      1 条回复 最后回复 回复 引用 0
                      • Karlatemp
                        Karlatemp 最后由 编辑

                        你命令斜杠呢

                        Orisland 1 条回复 最后回复 回复 引用 0
                        • Orisland
                          Orisland 摸鱼 @Karlatemp 最后由 Orisland 编辑

                          @karlatemp prefix里已删除,我不喜欢在命令前面带斜杠。
                          而且带不带斜杠都是不行的……
                          下图为eventHandler中注释掉相关代码后的命令表现:
                          64b65e6b-7bb0-42e4-be9c-7ca3706d9e22-image.png

                          另附权限截图:
                          4f2c413a-e74c-4828-931b-0a9cbb1c234d-image.png

                          1 条回复 最后回复 回复 引用 0
                          • Karlatemp
                            Karlatemp 最后由 编辑

                            IMG_20210821_222248.jpg

                            Orisland 1 条回复 最后回复 回复 引用 1
                            • Orisland
                              Orisland 摸鱼 @Karlatemp 最后由 编辑

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

                              1 条回复 最后回复 回复 引用 0
                              • 1 / 1
                              • First post
                                Last post
                              Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact