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

Плагин [CHAT] Chatty - всеядный менеджер чата [1.5.2 - 1.13 и выше].

Тема в разделе "Неподтвержденные плагины", создана пользователем MrBrikster, 31 май 2018.

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

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

    Баллы:
    78
    Имя в Minecraft:
    MrBrikster
    Chatty - уникальный плагин, который работает на любой современной версии ядра Bukkit, включая ядра Thermos, Cauldron и прочие (начиная с версии 1.5.2). В плагине отсутствуют ненужные неотключаемые функции, он работает стабильно и легко настраивается.

    Основные преимущества:
    • Стандартная настройка чатов "локальный/глобальный". При желании можно легко добавить другой чат, или, например, установить свой символ для глобального чата.
    • Умное разделение чатов по правам. Например, если у вас нет права "chatty.chat.local", но есть "chatty.chat.global", то вас автоматически будет бросать в глобальный чат.
    • Логирование чата. Чат сохраняется в отдельные файлы по дням в "Chatty/logs".
    • SPY-режим. При выдаче права "chatty.spy" позволяет видеть сообщения из всех чатов.
    • Работоспособность на всех современных версиях Bukkit/Spigot/Thermos и т.д.
    • Нет ненужных неотключаемых функций, апдейтеров: легковесный, понятный и стабильный.
    • Благодаря Vault API плагин берёт префиксы и суффиксы из вашего плагина на права.
    • Функция рассылок с помощью Advancements. В 1.12 добавили новую систему достижений. Теперь с помощью неё можно рассылать через эти окошки любой текст. В плагине есть такая функция!
    • Cooldown'ы на на сообщения в разных чатах.
    • Рассылки сообщений через чат.
    • JSON-форматирование сообщений.
    Права:
    1. chatty.chat.<чат> - позволяет писать сообщения в чат, или же:
      chatty.chat.<чат>.see - позволяет видеть сообщения из чата;
      chatty.chat.<чат>.send - позволяет отправлять сообщения в чат.
    2. chatty.spy.<чат> или chatty.spy - позволяет видеть сообщения из чатов (для модераторов).
    3. chatty.command.spy - позволяет выполнять команду /spy.
    4. chatty.command.reload - позволяет исполнять команду /chatty для перезагрузки конфигурации.
    5. chatty.cooldown или chatty.cooldown.<канал_чата> - обход задержки отправки сообщений.
    6. chatty.notification.chat.<список> - позволяет видеть сообщения из списка уведомлений чата.
    7. chatty.notification.advancements.<список> - позволяет видеть сообщения из списка уведомлений Advancements.
    8. chatty.notification.actionbar - позволяет видеть уведомления ActionBar.
    9. chatty.moderation.caps - даёт право обходить модерацию caps'а.
    10. chatty.moderation.caps - даёт право обходить модерацию рекламы
    11. chatty.style.<тип>- даёт право писать цветами в чаты. Если нужно выдать только на конкретный чат: chatty.style.<тип>.<чат> Типы:
    • chatty.style.colors - только цвета (&c, &a, &4 и т.д.)
    • chatty.style.bold - жирный шрифт (&l).
    • chatty.style.italic - курсив (&o).
    • chatty.style.magic - магия... (&k).
    • chatty.style.strikethrough - зачёркнутый текст (&m)
    • chatty.style.underline - подчёркивание (&n).
    • chatty.style.reset - сброс цветового кода (&r).
    • chatty.style.* - всё вышеперечисленное.
    Команды:
    1. /chatty - перезагрузка конфигурации.
    2. /spy - включить/отключить Spy-режим.

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

    Код:
    # ******************************************************
    # * Chatty
    #   Универсальная чат-система для Bukkit-сервера.
    #   Автор: MrBrikster.
    # * Опциональные зависимости:
    #   Vault, PlaceholderAPI.
    #
    # Подсказка:
    # * Если вам не нужны какие-то функции плагина,
    # то можно спокойно удалять её из конфигурации.
    # Это никак не повлияет на работоспособность,
    # а ненужные функции не будут занимать лишнее место.
    # ******************************************************
    
    # * Главный пункт настроек.
    # Общие настройки и мелкие функции.
    general:
      # Язык плагина.
      # Доступные значения:
      # en, ru.
      locale: ru
      # Приоритет для слушателя события чата.
      # Возможные значения:
      # lowest, low, normal, high, highest.
      priority: low
    
      # Логирование чата в директорую "Chatty/logs".
      log: true
    
      # Режим слежки.
      # Право:
      # chatty.spy.<чат>
      # или chatty.spy.
      #
      # Право на команду /spy:
      # chatty.command.spy
      spy:
       # Включение/отключение режима.
       enable: true
       # Вид сообщения, которое игрок видит
       # благодаря режиму слежки.
       format: '&6[Spy] &r{format}'
    
    # * Чаты.
    # На сервере могут существовать разные чаты с различными настройками,
    # будь то донат-чаты, админ-чаты, или же обычные локальный и глобальный.
    #
    # Права на чат:
    # chatty.chat.<чат> - право и на отправление, и на чтение сообщений.
    # chatty.chat.<чат>.write - право только на отправление сообщений.
    # chatty.chat.<чат>.see - право только на чтение сообщений.
    #
    # Чат имеет следующие опции:
    # enable - включить/выключить чат.
    # format - шаблон для форматирования чата.
    # range - радиус действия. -1 для общемирового чата, -2 для общесерверного.
    # symbol - символ, с которого нужно начинать сообщение для этого чата.
    # cooldown - промежуток времени, через который можно отправлять следующее сообщение (секунды).
    # money - стоимость отправки сообщения в чат (требуется Vault).
    # permission - необходимость права для отправки сообщения в чат. Если нужно отключить, используйте false.
    chats:
      local:
       enable: true
       format: '[Local] {prefix}{player}{suffix}: {message}'
       range: 100
       cooldown: -1
    
      global:
       enable: true
       format: '[Global] {prefix}{player}{suffix}: {message}'
       range: -1
       symbol: '!'
       cooldown: -1
    
    # * JSON.
    # Форматирование сообщений с JSON.
    # 1.7.10+.
    json:
      # 1.7.10+
      enable: true
    
      # Команда, исполняемая по нажатию на ник.
      # Поддерживает PlaceholderAPI.
      # *** Нельзя использовать "command" и "suggest_command" одновременно.
      command: /home
    
      # Команда, предлагаемая по нажатию на ник.
      # *** Нельзя использовать "command" и "suggest_command" одновременно.
      suggest_command: '/msg {player} '
    
      # Подсказка при наведении на ник.
      tooltip:
      - '&fИгрок &e{player}'
      - '&fЭта подсказка поддерживает'
      - '&fПеременные PlaceholderAPI!'
    
    # * Оповещения.
    # Существуют три вида оповещения:
    # через чат, ActionBar (1.8+) и Advancements (1.12+).
    notifications:
      # Оповещения через чат.
      chat:
       # Включить/отключить оповещения через чат.
       enable: true
       # Списки оповещений.
       lists:
         # Список "default".
         # Право: chatty.notification.chat.default
         default:
           # Промежуток между сообщениями в секундах.
           time: 60
           # Префикс для всех сообщений.
           prefix: ''
           # Список сообщений.
           messages:
           - '&7Текст сообщения &c#1'
           - '&7Текст сообщения &a#2'
           # Отключает требование права.
           # Если нужна проверка по праву - удалите строку.
           permission: false
    
      # Оповещения через ActionBar.
      # Представляют из себя постоянные уведомления,
      # Которые меняются с определённым промежутком времени.
      #
      # Право: chatty.notification.actionbar
      actionbar:
       # Включить/отключить оповещения через ActionBar.
       # Работает только на 1.8 и выше.
       enable: false
       # Время одного сообщения в секундах.
       time: 60
       # Префикс для всех сообщений.
       prefix: ''
       # Список сообщений.
       messages:
       - '&7Текст сообщения &c#1'
       - '&7Текст сообщения &a#2'
       # Отключает требование права.
       # Если нужна проверка по праву - удалите строку.
       permission: false
    
      # Оповещения через Advancements (достижения).
      advancements:
       # Включить/отключить оповещения через Advancements.
       # Работает только на 1.12 и выше.
       enable: false
       # Списки оповещений.
       lists:
         # Список "default".
         # Право: chatty.notification.advancements.default
         default:
           # Промежуток между сообщениями в секундах.
           time: 60
           # Список сообщений.
           #
           # icon - иконка для сообщения.
           # header - заголовок, footer - сообщение.
           messages:
           - icon: 'minecraft:cobblestone'
             header: '&6Заголовок'
             footer: '&7Сообщение #1'
           - icon: 'minecraft:apple'
             header: '&6Заголовок'
             footer: '&7Сообщение #2'
           # Отключает требование права.
           # Если нужна проверка по праву - удалите строку.
           permission: false
    
    # * Модерация
    # Средства для автоматической модерации чата.
    moderation:
      caps:
       # Включить/выключить защиту от злоупотребления caps'ом.
       # Право на обход защиты: chatty.moderation.caps
       enable: true
       # Минимальная длина, при которой сообщение проверяется на caps.
       length: 6
       # Минимальный процент больших букв, при котором сообщение считается caps'ом.
       procent: 80
       # Включить/отключить блокировку сообщения с caps'ом.
       # При значении false сообщение будет заменено на маленькие буквы.
       block: true
      advertisement:
       # Включить/отключить защиту от рекламы.
       # Право на обход защиты: chatty.moderation.advertisement
       enable: true
       # Регулярные выражения для обнаружения IP-адресов и сайтов.
       patterns:
         ip: '(?:\\d{1,3}[.,-:;\\/()=?}+ ]{1,4}){3}\\d{1,3}'
         web: '[-a-zA-Z0-9@:%_\\+.~#?&//=]{2,256}\\.[a-z]{2,4}\\b(\\/[-a-zA-Z0-9@:%_\\+~#?&//=]*)?'
       # Список разрешённых IP-адресов и сайтов.
       whitelist:
       - 'example.com'
       - 'vk.com'
       - 'google.com'
       - 'yandex.ru'
       - '192.168.1.1'
       - '127.0.0.1'
    
    Маленький лайфхак:
    Совсем необязательно оставлять все настройки в конфиге. Если вам ничего из этого не нужно, конфиг может быть самым минимальным:
    Код:
    chats:
      default:
        enable: true
        format: '{prefix}{player}{suffix}&r: {message}'
        permission: false
    
    Это простой глобальный чат без cooldown'а. Осталось лишь выдать право!

    Демонстрация работы рассылки через Advancements:


    Скриншот форматирования JSON:
    [​IMG]

    Использование PlaceholderAPI:
    Для использования PlaceholderAPI необходимо использовать placeholder'ы вида <placeholder> вместо %placeholder%, что предлагают в документации плагина.

    Changelog:
    Код:
    2.1.2 (18.08.2018): Фикс ConcurrentModificationException.
    2.1.1 (09.08.2018): Кажется, проблема с JSON пофикшена...
    2.1 (05.08.2018): Форматирование сообщений с JSON.
    2.0.4 (04.08.2018): Фикс проблемы с PlaceholderAPI.
    2.0.3 (03.08.2018): Поддержка английского языка.
    2.0.2 (01.08.2018): Фикс поддержки старых версий.
    2.0.1 (01.08.2018): Фиксы защиты от рекламы.
    2.0 (31.07.2018): Масштабное обновление кода. Убрал функцию групп команд за ненадобностью.
    1.8.3 (20.07.2018): Поддержка PlaceholderAPI.
    1.8.2 (15.07.2018): Фиксы spy-режима.
    1.8.1 (13.07.2018): Поддержка старых версий (1.5.2+).
    1.8.0 (12.07.2018): Фиксы багов. Добавил группы команд и платные сообщения в чат.
    1.7.8 (27.06.2018): Добавил ignoreCancelled для листенеров.
    1.7.7 (23.06.2018): Изменена система прав на команды: chatty.command.<команда>
    1.7.6 (23.06.2018): Разделение прав на чаты для spy-режима.
    1.7.5 (23.06.2018): Добавлена настройка "permission" для списков автосообщений, по аналогии с каналами чатов (true - стандартное значение).
    1.7.4 (23.06.2018): Теперь можно использовать "\n" в автосообщениях. Изменена система range: теперь "-1" - это чат на весь мир, а "-2" - чат на весь сервер.
    1.7.3 (21.06.2018): Фикс бага с глобальным чатом (работал в одном мире).
    1.7.2 (20.06.2018): Фикс бага со spy-режимом. Добавил сообщение "ads-found" в конфиг. Если убрать, то высвечиваться не будет.
    1.7.1 (20.06.2018): Фикс прав в каналах чатов.
    1.7.0 (20.06.2018): Анти-реклама в сообщениях.
    1.6.1 (19.06.2018): Фикс НуллПоинтера.
    1.6.0 (19.06.2018): Система рассылок сообщений в чат (auto message).
    1.5.0 (не размещалось на RuBukkit): "Вас никто не услышал", возможность отключить необходимость права для чата. Распределение прав на .see и .send.
    1.4.0 (04.06.2018): Добавлено раздение прав на использование стилей в чатах: chatty.style.<стиль>.<канал_чата>. (для всех - chatty.style.<стиль>). Добавлены cooldown'ы для разных чатов. Обход: chatty.cooldown или chatty.cooldown.<канал_чата>.
    1.3.0 (04.06.2018): Исправлена совместимость со старыми версиями. Исключена отправка пустого сообщения, например, просто цветового кода: "&r". Разделены права цветного чата: chatty.style.<стиль>.
    1.2.1 (03.06.2018): Добавлены рассылки через Advancements, право chatty.colors.
    1.1.0 (01.06.2018): Добавлена команда /spy для отключения Spy-режима. Фиксы багов.
    1.0.0 (31.05.2018): Первый релиз.

    Todo:
    • Добавить PM с кликабельными никами в чате.
    • Сделать оповещение о PM через Advancements.
    • Придумать что-то ещё с Advancements.
    • Сделать цвета выключаемыми в отдельном чат-моде.

    Загрузить плагин:
    Последняя версия: Загрузить!
    CI: Jenkins
    Опциональные зависимости: Vault, PlaceholderAPI.
    Spigot: https://www.spigotmc.org/resources/...bukkit-chat-system-solution-1-5-2-1-13.59411/
    Source code: https://github.com/MrBrikster/Сhatty

    Credits:
    При поддержке @VolanDeVovan.
     
    Последнее редактирование: 18 авг 2018 в 00:06
  2. Mr Hosting
  3. Автор темы
    MrBrikster

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

    Баллы:
    78
    Имя в Minecraft:
    MrBrikster
    Резерв.
     
  4. AbstractCoder

    AbstractCoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    AbstractCoder
    Снова велосипеды изобретаем? Ну а код оставляет желать лучшего.
     
  5. Daniel576

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

    Баллы:
    88
    Имя в Minecraft:
    DanielTenebris
    Плагин огонь!
     
  6. Автор темы
    MrBrikster

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

    Баллы:
    78
    Имя в Minecraft:
    MrBrikster
    А можно хоть немного конкретики?

    А здесь большего и не надо. Я наоборот старался сделать без всего лишнего)
     
    Последнее редактирование: 1 июн 2018
  7. Автор темы
    MrBrikster

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

    Баллы:
    78
    Имя в Minecraft:
    MrBrikster
    :rolleyes:
     
  8. _Alex_RB_

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

    Баллы:
    76
    Имя в Minecraft:
    DokanBoy
    Хороший плагин. Нет лишнего функционала, а те кому нужно что-то большее, могут взять сурца этого плагина и дописать.

    *Виртуальный лайк*
     
  9. Автор темы
    MrBrikster

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

    Баллы:
    78
    Имя в Minecraft:
    MrBrikster
    Последнее редактирование: 12 июл 2018
  10. AbstractCoder

    AbstractCoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    AbstractCoder
    Ору, дописывать что-то к этому говнокоду, жестко.
     
  11. AbstractCoder

    AbstractCoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    AbstractCoder
    Для начала ознакомься с DI.
     
  12. Автор темы
    MrBrikster

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

    Баллы:
    78
    Имя в Minecraft:
    MrBrikster
    На форуме полно людей, кому можно помочь, и у их плагинов код намного хуже.
    И причём тут dependency injection?
    Ты имеешь в виду, что нужно использовать DI вместо статик ссылки на Main? У меня статик ссылка использовалась только в одном месте, и то в последнем коммите убрал.
     
    Последнее редактирование: 1 июн 2018
  13. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Я вот например дальше смотреть не стал, после того как открыл мейн пакет и увидел 4 класса с названиями: Utils, Main, Chat, Config
     
  14. Автор темы
    MrBrikster

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

    Баллы:
    78
    Имя в Minecraft:
    MrBrikster
    М-да! Позволю себе процитировать слова @InterWall
    Моя цель в данном плагине - не написать ИДЕАЛЬНЫЙ код, а просто-навсего сделать удобный плагин. Если уж на то пошло, то код куда лучше, чем в том же ChatEx.
     
  15. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну вот твой как раз и написан на стене в сортире, для таких же сортирных ребят)
     
  16. Автор темы
    MrBrikster

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

    Баллы:
    78
    Имя в Minecraft:
    MrBrikster
    Я не понимаю, какой резон вам писать об этом?
    К тому же, кроме DI я пока не увидел ни одного аргумента. Приведите хоть один плагин, где реально используется dependency injection.
    Полно плагинов, которые вообще в один класс написаны, но там вообще всем абсолютно пофиг.
    Огромное количество паб плагинов баккит, если не считать крупые, как WG, вообще написано через ж*пу.
     
  17. _Alex_RB_

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

    Баллы:
    76
    Имя в Minecraft:
    DokanBoy
    Эх, куда не посмотри, вокруг талантливые разработчики. А когда идешь что-то смотреть в румайне, все через одно место сделано. На форуме все горазды говорить, а как что-то сделать...

    Эх, какое <...> сообщество в СНГ сегмент, вам пытаются что-то годное показать, а вы обсираете это.
     
  18. Nikolai_Faint

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

    Баллы:
    96
    [​IMG]
     
  19. MaximCSKA

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

    Баллы:
    88
    Имя в Minecraft:
    MaximCSKA
    Мне интересно, чем этот полумертвый форум угодил таким крутым "профессионалам", как ты, что ты не можешь пройти мимо любой темы и не оставить свой желчный комментарий.
    Мне кажется, разработчики уровня, который позволяет вот таким высокомерным образом "дальше не читать" чужой код, сидят и работают как минимум на фриланс основе, а не уделяют время такому бесполезному занятию, как принижение необоснованное чужих работ.
     
  20. bristol

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

    Баллы:
    46
    Он должен что-ли 24 на 7 сидеть и кодить? По твоему мнению, только новички должны сидеть на этом форуме. А профи должны сидеть и работать на каком нибудь фрилансе.
     
  21. MaximCSKA

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

    Баллы:
    88
    Имя в Minecraft:
    MaximCSKA
    уж явно не потешаться над чьми-то работами на этом полумертвом форуме.
    Такие "профи" отбивают желание выкладывать что-либо в паблик, а иногда и кодить вообще.
     

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