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

Плагин [CHAT] MessageFilter - фильтруем базар, рынок и вокзал! [BukkitDev]

Тема в разделе "Неподтвержденные плагины", создана пользователем fromgate, 29 июн 2014.

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

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    MessageFilter

    Этот плагин вносит дополнительный контроль над сообщениями в чате (от любых источников). Вы можете скрывать надоедливые повторяющиеся соообщения, добавлять им кулдаун и полностью заменять (а значит, если потребуется, осуществлять таким образом перевод плагина).

    BukkitDev / Spigot
    Скачать

    Видео-демонстрация



    Для чего это нужно?

    • Чтобы скрывать однотипные повторяющиеся сообщения, которые достали всех и каждого;
    • Чтобы заменять одного сообщение другим;
    • Чтобы переводить сообщения от плагинов, которые не предусматривают файла с сообщениями (и не ждать на рубакките два года, пока переведут Ваш любимый плагин ;))

    Функционал
    • Удаление сообщений
    • Замена сообщений "на лету"
    • Установка лимита по времени для отображения сообщения (к примеру 1 раз в 10 секунд)
    • Поддержка регулярных выражений (и других способов установления соответствия строк)
    Как это работает?
    Для каждого сообщения (с которым нужно что-то сделать) создается правило. Все правильна хранятся в директории "MessageFilter/rules". Вы можете добавлять, изменять, удалять правил как используя команду так и редактируя сами файлы с правилами.

    У каждого правила есть ряд параметров:
    • Type — Тип. Определяет метод, который будет использоваться для определения соответствия строки. Всего пять типов:
      • EQUAL — Сравнение (от регистра не зависит). (Пример: "Aaaa Bbbb" будет равно "aaaa bbbb")
      • CONTAINS — поиск подстроки
      • START — проверят начинается ли сообщение с указанного в параметрах текста
      • END — проверяет завершает ли, указанный в параметрах текст, строку в чате
      • REGEX — используются регулярные выражения
    • message-mask — текст, который будет использоваться для определения соответствия сообщения правилу
    • replace-to — текст на который будет произведена замена. Здесь можно использовать плейсхолдеры %word1% ... %wordN%, которые указывают на соответствующие слова в оригинальном сообщении. Пример: Сообщение "fromgate joins server", здесь: word1 - fromgate, word2 = joins, word3 - server
    • cooldown-time — лимит времени, которые задается в формате описания времени из плагина ReActions. Этот параметр используется для того чтобы указать период в течение которого оригинальное сообщение будет отображено лишь один раз. В остальное время будет выполняться замена.
    Когда какой-то плагин (или иной источник) отправляет сообщение, то перед тем как его увидит игрок оно обрабатывается силами MessageFilter, который при наличии соответствующего правила изменяет текст сообщения. Игрок увидит уже измененное сообщение вместо оригинального. Это позволяет не просто скрывать сообщения, но даже переводить плагины, которые изначально этого не поддерживают (т.е. в которых сообщения намертво зашиты в коде плагина и без перекомпиляции которых ничего путного не сделать).
    Добавлять и изменять правила можно непосредственно в файле (вот пример) либо при помощи команд

    Команды
    Главная команда плагина msgfilter (алиасы: mfilter, filter).

    • /msgfilter help — ээээ...
    • /msgfilter test — Проверяет работает MessageFilter или нет. Если пишет, что работает — значит 100% работает! Если пишет, что тест не пройден - обновите ProtocolLib и/или сам плагин.
    • /msgfilter add <RuleId> [GroupId] — создать новое правило. Группа - это по сути имя файла, в который будет сохраняться правило.
    • /msgfilter set <RuleId> type|input|output|cooldown|group <Value> — задать параметр (type, input mask, output mask, cooldown time or group) равным <Value>
    • /msgfilter remove <RuleId> — удалить правило
    • /msgfilter list [Mask] [PageNumber] — отобразить список правил
    • /msgfilter info <RuleId> — отобразить подробную информацию по правилу
    • /mfilter reload — перезагрузить правила из файла
    Пермишены
    messagefilter.config — только один пермишен - для доступа к командам
    messagefilter.test — проводить проверку работы MessageFilter при входе игрока на сервер

    Зависимости
    Для работы данного плагина необходим ProtocoLib. Без него работать не будет!
     
    Последнее редактирование: 18 сен 2015
  2. Quickston

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

    Баллы:
    78
    Имя в Minecraft:
    Quickston
    Круто :good:
    Надеюсь другие плагины не будут конфликтовать по поводу этого.
     
  3. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Quickston
    Вообще ни как не должно конфликтовать. Плагин отправляя сообщение игроку - отправляет его и всё. Что с ним дальше происходит - его никак не касается и не проверяется.
    Т.е. для плагина выглядит так - он отправил сообщение и (условно) считается, что оно отобразилось.
    После этого клиенту отправляется пакет с этим сообщением, который и перехватывается (при помощи ProtocolLib) и уже в нём происходит модификация текста.
     
  4. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
  5. JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Отличный плагин! Я его навернт раньше всех еще увидел (на Ютубе), но сейчас ты наконец-то создал тему :)
     
  6. gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Отличная вещь! Это ведь можно легко убрать лишние сообщения, а так же переводить многие плагины без изменения классов.
    Было бы неплохо добавить возможность пропуска слов и чисел в сообщении. Например: "Online: 148 players" - "Онлайн: %int% игроков".
     
  7. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Для поиска - в таких случаях надо использовать регулярные выражения.

    Вот пример правила, которое отловит и "переведёт" такую строку:

    Код:
    online:
      type: REGEX
      message-mask: 'Online: \d+ players'
      replace-to: 'В игре %word2% игроков'
      cooldown-time: ''
    
     
  8. 0bsid1

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

    Баллы:
    123
    Имя в Minecraft:
    Artarious
    Отличный плагин! :good:
    Посмотрел видио не понял о чём плагин, прочитал описание все сразу понятно стало.
    :good:
     
  9. kirr9999

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

    Баллы:
    103
    Где можно почитать про регулярные выражения?
     
  10. master_crafter

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

    Баллы:
    153
    Skype:
    mr_ddclash
    Имя в Minecraft:
    ddclash_and_SeJIyA
    Очередной шедевр
     
  11. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    http://ru.wikipedia.org/wiki/Регулярные_выражения


    А вообще я пользуюсь шпаргалками:
    http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
    http://regexlib.com/CheatSheet.aspx

    И очень помогают разного рода онлайн-тестеры:
    http://regex101.com/
    http://www.freeformatter.com/regex-tester.html


    Спасибо :)
     
  12. S. ToDD

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

    Баллы:
    78
    Имя в Minecraft:
    ToDD
    Замечательный плагин. А на 1.7.2 будет работать?
     
  13. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    По идее да. А вот на 1.6 и более старых точно не будет
     
  14. Meowt

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

    Баллы:
    123
    На 1.6.4. отлично работает с ProtocolLib 3.3.1.
    Еще бы замену сообщений в GUI и тогда плагин будет глобальным переводчиком любого плагина без изменения его кода :3
    Ах да, плагин как всегда превосходен.
     
    Последнее редактирование: 3 июл 2014
  15. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Мощно, респект!
     
  16. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    О! Значит, автор ProtocolLib не оставил без внимание мою просьбу ;)
    Про GUI - это имеется в виду что? ;) Интерфейсе майнкрафтов/модов этого естественно не будет. А вот в названиях предметов - я уже подумывал. Это не сложно, принципе тот же. Просто лень одолевает ;)
     
  17. Space Flux

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

    Баллы:
    46
    А где тема Romance? :)
     
  18. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Space Flux
    Я ж говорю "лень одолевает" :)
     
  19. master_crafter

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

    Баллы:
    153
    Skype:
    mr_ddclash
    Имя в Minecraft:
    ddclash_and_SeJIyA
    Слушай, помнишь ты стих писал про ReActions?

    Я его потерял.. (Тип намек)00)
     
  20. Meowt

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

    Баллы:
    123
    Названия окон и предметов (и их описаний) в GUI от каких-либо плагинов.
     

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