1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите StringBuilder вывод сообщения

Тема в разделе "Разработка плагинов для новичков", создана пользователем Sergeo, 20 мар 2021.

Статус темы:
Закрыта.
  1. Автор темы
    Sergeo

    Sergeo Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Произошла проблема: выводит ник игрока в ответе, а так не должно быть sb.toString(); - выводит все аргументы до него, а как это избежать? Например, /answer Solomki привет - должно вывести игроку:
    Ответ: привет, а выводит Ответ: Solomki привет

    как сделать исключение на нулевой аргумент для билдера?

    код:


    Код:
    public class QuestionAnswerHandler extends BasicCommandHandler {
    
        protected static QuestionAnswerHandler instance;
    
        public QuestionAnswerHandler() {
            super(new Answer());
            instance = this;
        }
    
        @Override
        public List<String> onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) {
            return null;
        }
    
        private static class Answer extends BasicCommand {
    
            public Answer(String command, Usage<CommandSender, String[]> func) {
                super(command, func);
            }
    
            @Override
            public String getDescription()     { return "Send your answer to player"; }
    
            @Override
            public String getUsage()         { return "/answer"; }
    
            @Override
            public String getPermission()     { return "HelperMode.helper"; }
    
            public Answer() {
                super(null, null);
    
                func = (sender, args) -> {
                    final List<ECommand> cmds = new ArrayList<>(instance.getRegisteredCommands());
    
                    cmds.add(this);
    
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < args.length; i++) sb.append(args[i]).append(' ');
                    if (sb.length() < 1) {
                        for (String string : getStringList("HelpList")) {
                            sb.append(string);
                        }
                        String result = sb.toString();
                        send(sender, translateAlternateColorCodes('&', result));
                    }
    
                    if (!(sender instanceof Player)) return;
    
                    Player p = (Player) sender;
    
                    UUID id = p.getUniqueId();
    
                    Player player_extract = getPlayerExact(args[0]);
    
                    if (player_extract == null) {
                        send(sender, translateAlternateColorCodes('&', getString("NoPlayer")));
                        return;
                    }
    
                    UUID id_extract = player_extract.getUniqueId();
    
                    if(!map.contains(id_extract)) {
                        send(sender, ChatColor.translateAlternateColorCodes('&', ConfigManager.getString("NoQuestionPlayer")));
                        return;
                    }
    
                    if(args[0] == null || args[1] == null) {
                        for (String string : getStringList("HelpList")) {
                            sb.append(string);
                        }
                        String result = sb.toString();
                        send(sender, translateAlternateColorCodes('&', result));
                    }
    
                    for (String s : getStringList("DenyWordsInAnswer")) {
                        if (sb.toString().toLowerCase().contains(s)) {
                            send(sender, translateAlternateColorCodes('&', ConfigManager.getString("DenyMessage")));
                            return;
                        }
                    }
    
                    UUID id_player = player_extract.getUniqueId();
    
                    if (sender.hasPermission(getPermission()) || sender.isOp()) {
                        if (join.contains(id)) {
                            if (map.contains(id_player)) {
                                send(sender, translateAlternateColorCodes('&', "&6[ОТВЕТ НА ВОПРОС] &fОтвет: &c" + sb.toString() + " &8||&9 " + sender.getName()));
                                return;
                            }
                            return;
                        }
                        send(sender, translateAlternateColorCodes('&', getString("JoinHelperMode")));
                        return;
                    }
                    send(sender, translateAlternateColorCodes('&', getString("NotHavePermission")));
                };
            }
        }
    }
    проблемная часть:


    Код:
                    if (sender.hasPermission(getPermission()) || sender.isOp()) {
                        if (join.contains(id)) {
                            if (map.contains(id_player)) {
                                send(sender, translateAlternateColorCodes('&', "&6[ОТВЕТ НА ВОПРОС] &fОтвет: &c" + sb.toString() + " &8||&9 " + sender.getName()));
                                return;
                            }
                            return;
                        }
                        send(sender, translateAlternateColorCodes('&', getString("JoinHelperMode")));
                        return;
                    }
     
  2. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    int i = 1
     
  3. Автор темы
    Sergeo

    Sergeo Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    ,
    Благодарю
     
Статус темы:
Закрыта.

Поделиться этой страницей