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

  • Автор темы Автор темы 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;
                }
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх