Помогите Некорректный вывод причины.

Статус
Закрыто для дальнейших ответов.

waterwalker

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
TheSeems
Доброго времени, в процессе написания плагина столкнулся с проблемой. Когда человек пытается заглушить игрока на время и с причиной, вместо первого слова причины выводятся 2, дальше все в порядке. Код и скрины ниже.
Код:
if(cmd.getName().equalsIgnoreCase("mute")){
            //Игрок
            if(sender instanceof Player){
                if(PermissionsEx.getUser(sender.getName()).has("sw.mute")){
                    //Админ
                    if(PermissionsEx.getUser(sender.getName()).has("sw.admin")){
                        if(args.length == 0){
                            sender.sendMessage(pr + "Укажите ник игрока!");
                            return true;
                        }
                        if(args.length == 1){
                            mute(args[0], "Вы были замучены навсегда!", (Player) sender);
                            Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут администратором " + sender.getName() + ". Навсегда");
                            return true;
                        }
                        if(args.length == 2){
                            StringBuilder s1 = new StringBuilder();
                            if (args.length >= 2) {
                                s1.append(args[1]);
                                for (int i = 2; i < args.length; i++) {
                                    s1.append(" ");
                                    s1.append(args[i]);
                                }
                            }
                            String res = s1.toString();
                            mute(args[0], res, (Player) sender);
                            Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут администратором " + sender.getName() + ". Навсегда." + " Причина: '" + res + "'");
                            return true;
                        }

                        if(args.length >= 3){
                            StringBuilder s1 = new StringBuilder();
                            if (args.length >= 3) {
                                s1.append(args[2]);
                                for (int i = 2; i < args.length; i++) {
                                    s1.append(" ");
                                    s1.append(args[i]);
                                }
                            }
                            java.util.Timer timer2 = new java.util.Timer();
                            TimerTask task = new TimerTask() {
                                public void run()
                                {
                                    unmute(args[0].toLowerCase(), (Player) sender);
                                }
                            };
                            try { 
                                int es = new Integer(args[1]);
                                timer2.schedule(task, es*60000);
                                String res = s1.toString();
                                mute(args[0], res, (Player) sender);
                                Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут администратором " + sender.getName() + ". На " + args[1] + " минут." + " Причина: '" + res + "'");
                            }catch (NumberFormatException e) {  
                                sender.sendMessage(priority.pre() + "Указано не (целое) число!");
                                return false;
                            }  

                        }


                    }
                    //Обычный
                    else{

                        if(args.length == 0){
                            sender.sendMessage(pr + "Укажите ник игрока!");
                            return true;
                        }
                        if(args.length == 1){
                            if(PermissionsEx.getUser(sender.getName()).has("mute.ever")){
                                if(priority.p(sender.getName())>priority.p(args[0])){
                                    mute(args[0], "Вы были замучены навсегда!", (Player) sender);
                                    Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут администратором " + sender.getName() + ". Навсегда");
                                    return true;
                                }
                                else{

                                    sender.sendMessage(priority.pre() + "Недостаточно приоритета, чтобы заткнуть этого пользователя");
                                    sender.sendMessage(priority.pre() + "Логическая запись: §a" + priority.p(args[0]) + " §7>= §c" + priority.p(sender.getName()));
                                    return true;
                                }
                            }
                            else{

                                sender.sendMessage(pr + "У Вас нет прав, чтобы мутить навсегда!");
                                return true;
                            }
                        }
                        if(args.length == 2){
                            if(priority.p(sender.getName())>priority.p(args[0])){
                                StringBuilder s1 = new StringBuilder();
                                if (args.length >= 2) {
                                    s1.append(args[1]);
                                    for (int i = 2; i < args.length; i++) {
                                        s1.append(" ");
                                        s1.append(args[i]);
                                    }
                                }
                                String res = s1.toString();
                                mute(args[0], res, (Player) sender);
                                Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут администратором " + sender.getName() + ". Навсегда." + " Причина: '" + res + "'");
                                return true;
                            }
                            else{
                                sender.sendMessage(priority.pre() + "Недостаточно приоритета, чтобы заткнуть этого пользователя");
                                sender.sendMessage(priority.pre() + "Логическая запись: §a" + priority.p(args[0]) + " §7>= §c" + priority.p(sender.getName()));
                                return true;
                            }
                        }

                        if(args.length >= 3){
                            if(priority.p(sender.getName())>priority.p(args[0])){

                                java.util.Timer timer2 = new java.util.Timer();
                                TimerTask task = new TimerTask() {
                                    public void run()
                                    {
                                        unmute(args[0].toLowerCase(), (Player) sender);
                                    }
                                };
                                try { 
                                    StringBuilder s1 = new StringBuilder();
                                    if (args.length >= 3) {
                                        s1.append(args[2]);
                                        for (int i = 2; i < args.length; i++) {
                                            s1.append(" ");
                                            s1.append(args[i]);
                                        }
                                    }
                                    int es = new Integer(args[1]);
                                    timer2.schedule(task, es*60000);
                                    String res = s1.toString();
                                    mute(args[0], res, (Player) sender);
                                    Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут игроком " + sender.getName() + ". На " + args[1] + " минут." + " Причина: '" + res + "'");
                                }catch (NumberFormatException e) {  
                                    sender.sendMessage(priority.pre() + "Указано не (целое) число!");
                                    return false;
                                }  

                            }
                            else{

                                sender.sendMessage(priority.pre() + "Недостаточно приоритета, чтобы заткнуть этого пользователя");
                                sender.sendMessage(priority.pre() + "Логическая запись: §a" + priority.p(args[0]) + " §7>= §c" + priority.p(sender.getName()));
                                return true;
                            }

                        }


                    }
                }
                else{

                    sender.sendMessage(cperm("mute"));
                }
            }
            //Консоль
            else{
                if(args.length == 0){
                    sender.sendMessage(pr + "Укажите ник игрока!");
                    return true;
                }
                if(args.length == 1){
                    mute(args[0], "Вы были замучены навсегда!", (Player) getServer().getConsoleSender());
                    Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут Консолью" + ". Навсегда");
                    return true;
                }
                if(args.length == 2){
                    StringBuilder s1 = new StringBuilder();
                    if (args.length >= 2) {
                        s1.append(args[1]);
                        for (int i = 2; i < args.length; i++) {
                            s1.append(" ");
                            s1.append(args[i]);
                        }
                    }
                    String res = s1.toString();
                    mute(args[0], res, (Player) getServer().getConsoleSender());
                    Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут Консолью" + ". Навсегда." + " Причина: '" + res + "'");
                    return true;
                }

                if(args.length == 3){
                    StringBuilder s1 = new StringBuilder();
                    if (args.length >= 3) {
                        s1.append(args[1]);
                        for (int i = 2; i < args.length; i++) {
                            s1.append(" ");
                            s1.append(args[i]);
                        }
                    }
                    java.util.Timer timer2 = new java.util.Timer();
                    TimerTask task = new TimerTask() {
                        public void run()
                        {
                            unmute(args[0].toLowerCase(), (Player) getServer().getConsoleSender());
                        }
                    };
                    try { 
                        int es = new Integer(args[1]);
                        timer2.schedule(task, es*60000);
                        String res = s1.toString();
                        mute(args[0], res, (Player) sender);
                        Bukkit.broadcastMessage(pr + "Игрок " + args[0] + " был заткнут Консолью" +  ". На " + args[1] + " минут." + " Причина: '" + res + "'");
                    }catch (NumberFormatException e) {  
                        sender.sendMessage(priority.pre() + "Указано не (целое) число!");
                        return false;
                    }  

                }





            }






            return true;
        }
Screenshot_8.png
 
  1. }
  2. if(args.length == 2){
  3. StringBuilder s1 = new StringBuilder();
  4. if (args.length >= 2) {
Найди ошибку
Исправь:
  1. if (args.length >= 3) {
  2. s1.append(args[2]);
  3. for (int i = 2; i <
  4. int i = 3, а не 2
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх