LanAnY
@Override
        public boolean onCommand(CommandSender sender,Command cmd,String label,String[] args) {
                if(label.equalsIgnoreCase("test")||label.equalsIgnoreCase("tt")) {
                        if(args.length==0) {
                                sender.sendMessage("输入/tt gg");
                                sender.sendMessage("输入/tt mm");
                        }
                        if(args.length==1) {
                                if(args[0].equalsIgnoreCase("gg")) {
                                        if(sender instanceof Player) {
                                                Player player=(Player) sender;
                                                player.sendMessage("GG玩家执行了Test GG指令!");
                                        }else {
                                                sender.sendMessage("控制台执行了Test GG指令!");
                                        }
                                        return true;
                                }
                                if(args[0].equalsIgnoreCase("mm")) {
                                        if(sender instanceof Player) {
                                                Player player=(Player) sender;
                                                player.sendMessage("MM玩家执行了Test MM指令!");
                                        }else {
                                                sender.sendMessage("控制台执行了Test MM指令!");
                                        }
                                        return true;
                                }
                        }
                }
                return false;
        }
为什么我方法体里的执行成功了还会执行到return false去?然后输出plugin.yml文件里的usage的内容?


2021.12 数据,可能有更多内容@Override
        public boolean onCommand(CommandSender sender,Command cmd,String label,String[] args) {
                if(label.equalsIgnoreCase("test")||label.equalsIgnoreCase("tt")) {
                        if(args.length==0) {
                                sender.sendMessage("输入/tt gg");
                                sender.sendMessage("输入/tt mm");
                        }
                        if(args.length==1) {
                                if(args[0].equalsIgnoreCase("gg")) {
                                        if(sender instanceof Player) {
                                                Player player=(Player) sender;
                                                player.sendMessage("GG玩家执行了Test GG指令!");
                                        }else {
                                                sender.sendMessage("控制台执行了Test GG指令!");
                                        }
                                        return true;
                                }
                                if(args[0].equalsIgnoreCase("mm")) {
                                        if(sender instanceof Player) {
                                                Player player=(Player) sender;
                                                player.sendMessage("MM玩家执行了Test MM指令!");
                                        }else {
                                                sender.sendMessage("控制台执行了Test MM指令!");
                                        }
                                        return true;
                                }
                        }
                }
                return false;
        }
为什么我方法体里的执行成功了还会执行到return false去?然后输出plugin.yml文件里的usage的内容?



天辉胡萝卜
你if(args.length==0) 花括号里也要写return true
不然无参数的会return false

⠀蛋⠀
if(args.length==0) {
                                sender.sendMessage("输入/tt gg");
                                sender.sendMessage("输入/tt mm");
                        }

很迷,不知道你为什么不写return true;