Помогите Запрет слов из list'a в команде

CreeperMobDevice

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
CreeperMobDevice
Есть cfg в котором list в виде:
Код:
block:
- spawnrg
- lobbyrg
Как сделать проверку на запрет данных слов в любой команде?
Написал код, проблема в if, не знаю как сравнивать с массивом
upload_2018-1-4_18-43-12.png
 
Циклом перебрать слова из списка и проверять есть ли такое в команде. Сейчас кто-то, как всегда, пришлёт решение с помощью Java8.
И зачем конфиг обновлять при каждой команде? Ещё и файл получаешь криво. Если getConfig() не устраивает то можешь
Код:
new File(getDataFolder(),filename)
 
PHP:
private final List<String> list = ...;

void block() {
    String message = e.getMessage();
    if (list.stream().anyMatch(message::contains)) {
       //TODO:
     }
}
 
Эффективнее будет хранить не List<String>, а Set<String> (естественно HashSet), и стримы тут не нужны будут.
P.S. Хотя нет, это для случая если всю строку проверить проще. У товарища Exception_Prototype окейный вариант.
 
Эффективнее будет хранить не List<String>, а Set<String> (естественно HashSet), и стримы тут не нужны будут.
P.S. Хотя нет, это для случая если всю строку проверить проще. У товарища Exception_Prototype окейный вариант.
На счёт Set<String> согласен. Там всего то лист в Set<String> сделать и сё.
 
Всё должно работать.
PHP:
private final Set<String> setOfBlockedStrings = new HashSet<>(getConfig().getStringList("path"));

@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void block(PlayerCommandPreprocessEvent e) {
    String message = e.getMessage();
    if (setOfBlockedStrings.stream().anyMatch(message::contains)) {
        e.getPlayer().sendMessage("your message");
        e.setCancelled(true);
    }
}
 
Всё должно работать.
PHP:
private final Set<String> setOfBlockedStrings = new HashSet<>(getConfig().getStringList("path"));

@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void block(PlayerCommandPreprocessEvent e) {
    String message = e.getMessage();
    if (setOfBlockedStrings.stream().anyMatch(message::contains)) {
        e.getPlayer().sendMessage("your message");
        e.setCancelled(true);
    }
}
Он лишь попросил заменить jre1.8.0 на JavaSE-1.7
upload_2018-1-4_20-14-40.png
 
Назад
Верх