Плагин mcChat - Чат по новому в Майнкрафт
mcChat - Чат по новому

Плагин mcChat - Чат по новому 1.0.12



Требуется UtilM
https://mcdev.su/resources/utilm.73/
Для версий
  1. 1.8.x-1.21.x

mcChat - Чат по новому​

Конфигурируемый чат с кучей настроек

Screen Shot 2024-08-27 at 8.38.50 PM.png
photo_2024-11-22_03-17-07.jpg

Конфигурация плагина:

YAML:
# Плагин: mcChat (Чат)
# Версия: 1.8+
#
# Описание:
# Плагин добавляет конфигурацию чата.
#
# Зависимости: (плагины без которых этот работать не будет)
# - UtilM https://mcdev.su/resources/utilm.73/
#
# Опциональные зависимости: (плагины без которых не будет полного функционала, но работать будет)
# - PlaceholdersAPI https://www.spigotmc.org/resources/placeholderapi.6245/
#
# Регулярные выражения.
# Плагин использует регулярные выражения в качестве инструмента конфигурации.
# Пожалуйста ознакомьтесь с примерами ниже, подобные выражения неоднократно
# использованы в конфигурации по умолчанию.
#
# В данном примере регулярное выражение распространяется на команду и все подкоманды.
#
# Протестировать регулярное выражение онлайн.
# https://regex101.com/
# Выбранные галочки:
#   - (FLAVOR) Java 8
#   - (FUNCTION) Match
#
# Регулярное выражение "(?i)^/afk(\\s+.*)?$" и его валидность:
# "/afk" = валидно
# "/afk " = валидно
# "/aFk" = валидно
# "/AFK" = валидно
# "/afk argument1" = валидно
# "/afk argument1 argument2 argument3" = валидно
# "afk argument1" = нет
# "/af" = нет
# "/afkargument1" = нет
#
# "(?i)" - Делает нечувствительным к регистру.
# "^" — Указывает на начало строки.
# "/afk" — Буквально соответствует строке /afk.
# "(\\s+.*)?" — Это группа, которая может присутствовать или отсутствовать. Она состоит из:
#   "\\s+" — Один или несколько пробелов.
#   ".*" — Любое количество (включая ноль) любых символов.
#   "?" — Указывает, что вся группа может присутствовать ноль или один раз.
# "$" — Указывает на конец строки.
sample_regular_expression_1: "(?i)^/afk(\\s+.*)?$"

# В данном примере регулярное выражение распространяется только на команду без подкоманд/аргументов.
#
# Протестировать регулярное выражение онлайн.
# https://regex101.com/
# Выбранные галочки:
#   - (FLAVOR) Java 8
#   - (FUNCTION) Match
#
# Регулярное выражение "(?i)^/kit\\s*$" и его валидность:
# "/kit" = валидно
# "/kit " = валидно
# "/kiT" = валидно
# "/KIT" = валидно
# "/kit argument1" = нет
# "/kit argument1 argument2 argument3" = нет
# "kit argument1" = нет
# "/ki" = нет
# "/kitargument1" = нет
#
# "(?i)" - Делает нечувствительным к регистру.
# "^" — Указывает на начало строки.
# "/kit" — Буквально соответствует строке /kit.
# "\\s*" — 0 и более пробелов.
# "$" — Указывает на конец строки.
sample_regular_expression_2: "(?i)^/kit\\s*$"

message:
  # Поддерживается вывод сообщений в мультистрочном формате.
  reload_success:
    - "&aПлагин перезагружен!"
  permission_denied: "&cОтказано в доступе."
  spy_chat_enabled: "&eШпионский чат &aактивирован&e!"
  spy_chat_disabled: "&eШпионский чат &cвыключен&e!"
  help:
    - '&e/chat reload &7- перезагрузить плагин'
    - '&e/chat help &7- показать список команд'
    - '&e/chat spy &7- включить/выключить шпионский чат'

permission:
  reload: chat.reload # Разрешение на перезагрузку этого плагина.
  spy: chat.spy # Разрешение на включение/выключение шпионского чата.

# Конфигурация автоматического сохранения данных.
auto_save:
  delay: 300 # (Сек.) Интервал сохранения данных.

# Список модулей управления чатом.
#
# Примечание: последовательность объявления модулей важна, в начале следует
# объявить модули на проверки, а в конце модуль на чат (показывает сообщения).
# В противном случае сообщение сначала может быть показано, а потом будет
# написано, что оно не прошло проверку по той или иной причине, хотя показано.
chat_module_list:

  # Пример модуля на невозможность отправки сообщений в чат до
  # достижения игроком указанного проведенного времени в игре.
  newbie_message_delay_module: # ID модуля управления чатом.
    chat_module_type: NEWBIE_MESSAGE_DELAY # Тип модуля.
    bypass_permission: chat.newbie_message_delay_module.bypass # Разрешение на игнорирование работы этого модуля игроком.
    delay_seconds: 300 # (Сек.) Сколько секунд с момента входа игрока в игру на него будет действовать этот модуль?
    message:
      access_denied:
        time_color:
          # Цвет цифр оставшегося времени до прекращения действия "новичкового" ограничения.
          # Используйте цвета версии ядра на котором запускаете плагин (по умолничаю: 1.8.8).
          # Списки всех цветов для каждой версии:
          # https://helpch.at/docs/1.8.8/org/bukkit/ChatColor.html
          # https://helpch.at/docs/x.x.x/org/bukkit/ChatColor.html
          # ...
          number: AQUA
          abbreviation: RED
        text: "&cВоспользоваться чатом можно будет через %delay%"

  # Пример модуля на невозможность использования команд (в виде регулярных выражений) до
  # достижения игроком указанного проведенного времени в игре.
  newbie_command_delay_module:
    chat_module_type: NEWBIE_COMMAND_DELAY
    delay_seconds: 600 # (Сек.) Сколько секунд с момента входа игрока в игру на него будет действовать этот модуль?
    bypass_permission: chat.newbie_command_delay_module.bypass # Разрешение на игнорирование работы этого модуля игроком.
    command_regular_expression_list: # Список команд которые нельзя использовать пока игрок не проведет в игре "delay_seconds" секунд.
      - "(?i)^/spawn(\\s+.*)?$" # Я не понимаю, что это? Пожалуйста посмотрите примеры регулярных выражений вверху этого файла.
      - "(?i)^/afk\\s*$"
    message:
      access_denied:
        time_color:
          number: AQUA
          abbreviation: RED
        text: "&cВоспользоваться этой командой можно будет через %delay%"

  # Пример модуля на вайтлист команд (в виде регулярных выражений).
  # Только команды (в виде регулярных выражений) из этого списка будут разрешены к использованию.
  command_whitelist_module:
    chat_module_type: COMMAND_WHITELIST
    bypass_permission: chat.command_whitelist_module.bypass # Разрешение на игнорирование работы этого модуля игроком.
    command_regular_expression_list: # Список команд которые можно использовать (другие нельзя, тк. это вайтлист).
      - "(?i)^/spawn(\\s+.*)?$" # Я не понимаю, что это? Пожалуйста посмотрите примеры регулярных выражений вверху этого файла.
      - "(?i)^/afk\\s*$"
    message:
      access_denied: "&cЭтой команды нет в списке разрешенных, она запрещена к использованию."

  # Пример модуля на блеклист команд (в виде регулярных выражений).
  # Все команды (в виде регулярных выражений) кроме указанных в списке будут разрешены к использованию.
  command_blacklist_module:
    chat_module_type: COMMAND_BLACKLIST
    bypass_permission: chat.command_blacklist_module.bypass # Разрешение на игнорирование работы этого модуля игроком.
    command_regular_expression_list: # Список регулярных выражений команд которые нельзя использовать (другие можно, тк. это блеклист).

      # В качестве примера конфигурации по умолчанию, устроим пересечение ограничений вайтлиста и блеклиста, доступной останется только команда "/spawn".
      # Я не понимаю, что это? Пожалуйста посмотрите примеры регулярных выражений вверху этого файла.
      - "(?i)^/afk(\\s+.*)?$"

    message:
      access_denied: "&cЭта комнада находится в списке запрещенных, она запрещена к использованию."

  # Пример модуля на задержки выполнения команд (в виде регулярных выражений).
  # Команды (в виде регулярных выражений) из этого списка при повторном выполнении не выполнятся, а напишут время до след. выполнения.
  # Время задержки определяется по умолчанию или разрешением, чем более
  # привелигированное разрешение, тем меньше задержка (так по умолчанию, можно изменить).
  command_delay_module:
    chat_module_type: COMMAND_DELAY
    command_regular_expression_list: # Список регулярных выражений команд на которые будет распространяться задержка.
      - "(?i)^/afk(\\s+.*)?$" # Я не понимаю, что это? Пожалуйста посмотрите примеры регулярных выражений вверху этого файла.
      - "(?i)^/kit\\s*$"

    permission_delay: # Секция конфигурации разрешений-задержек.
      default_delay: 7 # (Сек.) Задержка после которой сработает команда.
      list: # Список разрешений-задержек.
        permission_delay_1:
          permission: chat.command_delay_module.permission_delay_1
          delay: 5 # (Сек.) Задержка после которой сработает команда при наличии разрешения.
        permission_delay_2:
          permission: chat.command_delay_module.permission_delay_2
          delay: 2
        permission_delay_3:
          permission: chat.command_delay_module.permission_delay_3
          delay: 0 # (Сек.) 0 и ниже означает отсутствие задержки при наличии разрешения.
    message:
      access_denied:
        time_color:
          number: AQUA
          abbreviation: RED
        text: "&cНа эту команду действует задержка на выполнение, до след. выполнения осталось %delay%"

  # Пример модуля на индивидуальные задержки выполнения команды (в виде регулярного выражения).
  # Команды (в виде регулярных выражений) из этого списка при повторном выполнении не выполнятся, а напишут время до след. выполнения.
  # Время задержки определяется по умолчанию или разрешением, чем более
  # привелигированное разрешение, тем меньше задержка (так по умолчанию, можно изменить).
  custom_command_delay_module:
    chat_module_type: CUSTOM_COMMAND_DELAY
    custom_command_delay_list: # Список ID команд на которые распространяются индивидуальные задержки.
      custom_command_delay_1: # ID команды на которую распространяется индивидуальная задержка.
        command_regular_expression: "(?i)^/repair(\\s+.*)?$" # Я не понимаю, что это? Пожалуйста посмотрите примеры регулярных выражений вверху этого файла.
        permission_delay: # Секция конфигурации разрешений-задержек.
          default_delay: 7 # (Сек.) Задержка после которой сработает команда.

          # Список разрешений-задержек.
          # Если нужно оставить только основную задержку "default_delay", без индивидуальных разрешений, то
          # закомментируйте или удалите содержимое секции "list" и присвойте ей значение "list: {}" (пустой).
          list:
            permission_delay_1:
              permission: chat.custom_command_delay_module.permission_delay_1
              delay: 5 # (Сек.) Задержка после которой сработает команда при наличии разрешения.
            permission_delay_2:
              permission: chat.custom_command_delay_module.permission_delay_2
              delay: 2
            permission_delay_3:
              permission: chat.custom_command_delay_module.permission_delay_3
              delay: 0 # (Сек.) 0 и ниже означает отсутствие задержки при наличии разрешения.
      custom_command_delay_2:
        command_regular_expression: "(?i)^/call\\s*$"
        permission_delay:
          default_delay: 7
          list:
            permission_delay_1:
              permission: chat.custom_command_delay_module.permission_delay_1
              delay: 5
            permission_delay_2:
              permission: chat.custom_command_delay_module.permission_delay_2
              delay: 2
            permission_delay_3:
              permission: chat.custom_command_delay_module.permission_delay_3
              delay: 0
    message:
      access_denied:
        time_color:
          number: AQUA
          abbreviation: RED
        text: "&cНа эту команду действует &lиндивидуальная&r&c задержка на выполнение, до след. выполнения осталось %delay%"

  # Пример модуля на блокировку сообщений содержащих плохие слова.
  bad_word_module:
    chat_module_type: BAD_WORD

    # Путь до файла/места хранения плохих слов в папке плагина (не "plugins", а "plugins/mcChat/N", где N и есть путь до файла).
    #
    # По умолчанию будет распакован файл по умолчанию который хранит в себе
    # плохие слова в формате, где каждая новая строка это плохое слово, например:
    # плохое слово 1
    # плохое слово 2
    #
    # Файл можно редактировать добавляя или удаляя плохие слова.
    #
    # Примечание:
    # Регистр (верхний нижний не важен) - "Жопа" и "жопа" не важен, дадут один и тот же результат.
    # Наличие пробелов - "Ж о п а" и "жопа" не важно, даст один и тот же результат.
    # Наличие переносов "\r", табуляции "\t" - "жо\rп\tа" и "жопа" не важно, даст один и тот же результат.
    # Наличие кодов цвета (HEX тоже) "жоп &fа" не важно, даст один и тот же результат.
    bad_words_txt_file: "bad_words.txt"

    # Путь до файла/места хранения хороших слов в папке плагина (не "plugins", а "plugins/mcChat/N", где N и есть путь до файла).
    #
    # По умолчанию будет распакован файл по умолчанию который хранит в себе
    # хорошие слова в формате, где каждая новая строка это хорошее слово, например:
    # хорошее слово 1
    # хорошее слово 2
    #
    # Файл можно редактировать добавляя или удаляя хорошие слова.
    good_words_txt_file: "good_words.txt"

    # Проверять наличие обновленной версии списка плохих слов?
    #
    # Обратите внимание:
    # Если будет найдено валидное обновление, то текущий файл "bad_words_txt_file" будет перезаписан.
    #
    # Примечание:
    # Если текущий файл "bad_words_txt_file" был модифицирован вами вручную, то его временная
    # метка изменения, что что может привести к недопониманию, обновление есть, но не скачивается.
    # Например:
    # На сервере есть файл "bad_words_txt_url" залитый в 16:30, в 16:32 вы меняете файл "bad_words_txt_file"
    # и влючаете сервер с проверкой наличия обновлений, обновление не установится, тк. 16:32 более актуальная дата
    # модификации файла чем 16:30 на сервере.
    # Такая ситуация невозможна при первой распаковке файла "bad_words_txt_file", тк. ему программно присваивается
    # временная метка "0" последней модификации (условно, "никогда не модифицировался").
    check_for_updates: false

    # URL получения обновленной версии плохих слов "bad_words_txt_file".
    #
    # Примечание:
    # Проверка новизны происходит по заголовку ответа "Last-Modified", который
    # автоматически добавляется веб-серверами если файл находится на диске.
    # Например в случае с Apache HTTP Server достаточно положить файл в папку "www" и
    # Apache HTTP Server сам определит последнюю дату модификации файла и укажет ее в
    # заголовке ответа.
    bad_words_txt_url: "https://example.com/foo/bar/bad_words.txt"

    # Разрешение на игнорирование работы этого модуля игроком.
    bypass_permission: chat.bad_word_module.bypass

    message:
      access_denied:
        text: "&cСообщение содержит недопустимые слова."

  # Пример модуля на предотвращение слишком частой отправки сообщений (не имеет занчения одинаковые сообщения или нет).
  anti_spam_module:
    chat_module_type: ANTI_SPAM

    # (Тиков. 1 сек = 20 тиков) Сколько тиков должно пройти до
    # возможности написать еще одно сообщение в чат (интервал).
    delay_ticks: 10

    # Разрешение на игнорирование работы этого модуля игроком.
    bypass_permission: chat.anti_spam_module.bypass

    message:
      access_denied:
        time_color:
          number: AQUA
          abbreviation: RED
        text: "&cНельзя отправлять сообщения в чат так быстро, до след. отправки осталось %delay%"

  # Пример модуля на предотвращение одинаковых сообщений в чате.
  # Если среди последних "max_messages_threshold" сообщений, отправляемое сообщение
  # встречалось "max_identical_messages" раз и более, то до тех пор пока
  # не пройдет "delay_seconds" с момента такого последнего отправленного сообщения,
  # такое новое сообщение не будет доставлено в чат с ошибкой "message.access_denied".
  anti_repetitions_module:
    chat_module_type: ANTI_REPETITIONS

    # После какого одинакового сообщения начнется задержка?
    # В примере по умолчанию 3-е одинаковое сообщение попадет под задержку и не отправится в чат.
    max_identical_messages: 2

    # Сколько последних сообщений будет храниться для проверки на наличие повторений.
    max_messages_threshold: 10

    # (Сек.) Сколько секунд действует задержка до следующей
    # возможности написать еще одно одинаковое сообщение в чат.
    delay_seconds: 5

    # Разрешение на игнорирование работы этого модуля игроком.
    bypass_permission: chat.anti_repetitions_module.bypass

    message:
      access_denied:
        time_color:
          number: AQUA
          abbreviation: RED
        text: "&cНельзя отправлять &lодинаковые&r&c сообщения в чат так быстро, до след. отправки осталось %delay%"

  # Пример модуля на чат.
  chat_module:
    chat_module_type: CHAT

    # Префикс перед сообщениями когда включен "/chat spy" чат (шпионский чат).
    # Это явно покажет что сейчас вы в режиме шпионского чата и можете прослушивать все сообщения.
    # Оставьте значение пустым 'spy_prefix: ""' чтобы отключить префикс.
    spy_prefix: "&7[Шпион] &r"

    # Разрешение на использование кодов цвета в сообщении.
    # При наличии у отправителя этого разрешения его сообщения в чате будут окрашиваться если использованы коды цветов.
    colorize_message_permission: chat.chat_module.colorize_message_permission

    # Конфигурация глобального/локального/донат/персонал чата.
    # Если активно, то обычные сообщения в чате увидят только игроки в указанном радиусе от отправителя, а для того
    # чтобы сообщения увидели все игроки, то перед сообщением необходимо написать специальный префикс, например "!".
    enable_global_chat: true # Если "true", то в чате будет разделение на глобальный и локальный чаты.
    global_chat_prefix: "!" # Что нужно написать в начале сообщения чтобы оно попало в глобальный чат?
    global_chat_message_format: "&e(глобальный чат) &7%player%&f: %message%" # Формат глобального сообщения (PAPI поддерживается).

    local_chat_radius: 100 # (Блоков) В радиусе скольки блоков от отправителя другие игроки увидят его локальное сообщение.
    local_chat_message_format: "&a(локальный чат) &7%player%&f: %message%" # Формат локального сообщения (PAPI поддерживается).

    # Формат обычного сообщения который будет использован в случае если "enable_global_chat: false" (PAPI поддерживается).
    chat_message_format: "&7%player%&f: %message%"

    enable_donate_chat: true # Если "true", то в чате будет добавлен донат-чат.
    donate_chat_permission: "chat.donate_chat_permission" # Разрешение на отправку сообщений в донат-чат.
    donate_chat_prefix: "@" # Что нужно написать в начале сообщения чтобы оно попало в донат-чат?
    donate_chat_message_format: "&6(донат-чат) &7%player%&f: %message%" # Формат донат-чат сообщения (PAPI поддерживается).

    enable_staff_chat: true # Если "true", то в чате будет добавлен персонал-чат.
    staff_chat_permission: "chat.staff_chat_permission" # Разрешение на отправку сообщений в персонал-чат.
    staff_chat_prefix: "#" # Что нужно написать в начале сообщения чтобы оно попало в персонал-чат?
    staff_chat_message_format: "&2(персонал-чат) &7%player%&f: %message%" # Формат персонал-чат сообщения (PAPI поддерживается).
  • Мне нравится
Реакции: dsdsadasd
Автор
mcdev
Покупатели
15
Показов
1,837
Первый выпуск
Обновление

Оценки

5.00 звёзд 2 оценок

Другие ресурсы пользователя mcdev

Последние обновления

  1. 1.0.12

    - В версии 1.0.10 был изменен режим обработки сообщений и команд на "средний", что позволяло бы...

Последние отзывы

Отличный плагин, но было бы отлично если бы была возможность отключать модули
хороший плагин, было бы хорошо если бы можно было отключать какие либо модули например модуль чата