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

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

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

  1. Автор темы
    CreeperMobDevice

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

    Баллы:
    76
    Имя в Minecraft:
    CreeperMobDevice
    Есть cfg в котором list в виде:
    Код:
    block:
    - spawnrg
    - lobbyrg
    Как сделать проверку на запрет данных слов в любой команде?
    Написал код, проблема в if, не знаю как сравнивать с массивом
    upload_2018-1-4_18-43-12.png
     
  2. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Циклом перебрать слова из списка и проверять есть ли такое в команде. Сейчас кто-то, как всегда, пришлёт решение с помощью Java8.
    И зачем конфиг обновлять при каждой команде? Ещё и файл получаешь криво. Если getConfig() не устраивает то можешь
    Код:
    new File(getDataFolder(),filename)
     
  3. Exception_Prototype

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

    Баллы:
    96
    PHP:
    private final List<String> list = ...;

    void block() {
        
    String message e.getMessage();
        if (list.
    stream().anyMatch(message::contains)) {
           
    //TODO:
         
    }
    }
     
  4. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Эффективнее будет хранить не List<String>, а Set<String> (естественно HashSet), и стримы тут не нужны будут.
    P.S. Хотя нет, это для случая если всю строку проверить проще. У товарища Exception_Prototype окейный вариант.
     
  5. Exception_Prototype

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

    Баллы:
    96
    На счёт Set<String> согласен. Там всего то лист в Set<String> сделать и сё.
     
  6. Автор темы
    CreeperMobDevice

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

    Баллы:
    76
    Имя в Minecraft:
    CreeperMobDevice
    contains менять надо?
    upload_2018-1-4_19-45-37.png
     
  7. Exception_Prototype

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

    Баллы:
    96
    Всё должно работать.
    PHP:
    private final Set<StringsetOfBlockedStrings = new HashSet<>(getConfig().getStringList("path"));

    @
    EventHandler(priority EventPriority.NORMALignoreCancelled true)
    public 
    void block(PlayerCommandPreprocessEvent e) {
        
    String message e.getMessage();
        if (
    setOfBlockedStrings.stream().anyMatch(message::contains)) {
            
    e.getPlayer().sendMessage("your message");
            
    e.setCancelled(true);
        }
    }
     
  8. Автор темы
    CreeperMobDevice

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

    Баллы:
    76
    Имя в Minecraft:
    CreeperMobDevice
    Он лишь попросил заменить jre1.8.0 на JavaSE-1.7
    upload_2018-1-4_20-14-40.png
     
  9. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173

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