Помогите Очерёдность вывода сообщений в чат

Zangooron

Активный участник
Пользователь
Баллы
61
Здравствуйте. Пробую писать плагин чат-бота, который отлавливает в чате ключевые слова, и выдаёт рандомно заранее прописанные ответы. Столкнулся с такой проблемой: при написании фразы, содержащей ключевое слово в чат, сначала выводится сообщение бота, затем моя фраза, на которую он должен среагировать. Хотелось бы наоборот, чтоб сначала выводилась фраза, содержащая ключевое слово, а затем ответ бота. Версия bukkit API bukkit-1.7.10-R0.1-20140817.175650-8
Подскажите пожалуйста, что я делаю не так?
Вот код листенера:
Код:
@EventHandler(priority= EventPriority.HIGH)
        public boolean onPlayerChat(AsyncPlayerChatEvent event){
        if (Main.BotAI) {                                   // Если в конфиге стоит true
            Player player = event.getPlayer();
            String txt = event.getMessage();
            String msg = txt.toLowerCase();
            String botName = "" + (Object)ChatColor.DARK_RED + (Object)ChatColor.BOLD + "[BOT] Steve ";
            String botMsgColor = "" + (Object)ChatColor.GOLD;
            if (msg.contains("привет") || msg.contains("hi") ||  msg.contains("здарова") || msg.contains("добрый день")) {
                Random randomGen = new Random();
                int randomInt = randomGen.nextInt(10);
                if (randomInt == 0) {
                    player.sendMessage(botName + botMsgColor + "Привет, рад тебя видеть...");
                }
                if (randomInt == 1) {
                    player.sendMessage(botName + botMsgColor + "Здарова, давненько тебя не было...");
                }
                if (randomInt == 4) {
                    player.sendMessage(botName + botMsgColor + "Добрый день...");
                }
                if (randomInt == 3) {
                    player.sendMessage(botName + botMsgColor + "Привет! Приятной игры...");
                }
                if (randomInt == 2) {
                    player.sendMessage(botName + botMsgColor + "Сколько лет, сколько зим! Привет!...");
                }
                if (randomInt == 5) {
                    player.sendMessage(botName + botMsgColor + "Какие люди... Добро пожаловать!");
                }
                return true;
            }
            return false;
        }

        return false;
    }
 
Ну я вот захочу добавить команду /addtext и все
Ага, а потом edittext, removetext, generatetext, randomizetext, cleartextlist, etc. Больше команд богу команд, ведь перезагрузить конфиг это ужасно сложно.
 
Ага, а потом edittext, removetext, generatetext, randomizetext, cleartextlist, etc. Больше команд богу команд, ведь перезагрузить конфиг это ужасно сложно.
Тем не менее если стоит задача разработки этого, то надо делать, и колекции мне позволяют это адекватно делать, ограничения не есть хорошо
 
Тем не менее если стоит задача разработки этого, то надо делать, и колекции мне позволяют это адекватно делать, ограничения не есть хорошо
А зачем мне использовать лист вместо массива, когда количество объектов не будет изменяться?
Особенно когда весь мой текст захардкоден.
 
Ты только что изобрел ArrayList
А ваще ImmutableList, загрузил с конфига и пусть висят, а если надо добавить, то заноси в отдельный лист и при выключении плагина добавляй в конфиг.
 
А ваще ImmutableList, загрузил с конфига и пусть висят, а если надо добавить, то заноси в отдельный лист и при выключении плагина добавляй в конфиг.
Боже че за костыли, юзаешь лист один и все
 
Я так и задумывал, позже вынести всё в конфиг, а затем загружать всё в список, типа:
Код:
ArrayList<String> list1 = new ArrayList<String>();
list1 = this.plugin.getConfig().getStringList("Listing1.msg");
Потом уже работать с этим списком. Также можно будет и сохранять список обратно в конфиг. Про массив думал, но он вроде ограничен размерностью, а в список можно добавлять значения.
Изначально код написан через условия, больше для наглядности, мне так проще видеть структуру, и проверять на ошибки. Потом я естественно его буду оптимизировать. Возможно это неверный подход, и надо сразу писать код нормально, но я только учусь, поэтому как-то так.
 
Я так и задумывал, позже вынести всё в конфиг, а затем загружать всё в список, типа:
Код:
ArrayList<String> list1 = new ArrayList<String>();
list1 = this.plugin.getConfig().getStringList("Listing1.msg");
Потом уже работать с этим списком. Также можно будет и сохранять список обратно в конфиг. Про массив думал, но он вроде ограничен размерностью, а в список можно добавлять значения.
Изначально код написан через условия, больше для наглядности, мне так проще видеть структуру, и проверять на ошибки. Потом я естественно его буду оптимизировать. Возможно это неверный подход, и надо сразу писать код нормально, но я только учусь, поэтому как-то так.
А сразу с листом трудно работать?
 
PHP:
ArrayList<String> list1 = new ArrayList<String>();
list1 = this.plugin.getConfig().getStringList("Listing1.msg");
List<String> list1 = this.plugin.getConfig().getStringList("Listing1.msg");
Инициализация лишняя, getStringList всегда отдаст список.
 
Назад
Верх