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

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

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

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

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

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

    Основные преимущества:
    • Стандартная настройка каналов "локальный/глобальный". При желании можно легко добавить другой канал, установить свой символ для глобального чата.
    • Умное разделение каналов по правам. Например, если у вас нет права "chatty.chat.local", но есть "chatty.chat.global", то вас автоматически будет бросать в глобальный чат.
    • Логирование чата. Чат сохраняется в отдельные файлы по дням в "Chatty/logs".
    • SPY-режим. При выдаче права "chatty.spy" позволяет видеть сообщения из всех каналов.
    • Работоспособность на всех современных версиях Bukkit/Spigot/Thermos и т.д.
    • Нет ненужных неотключаемых функций, апдейтеров: легковесный, понятный и стабильный.
    • Благодаря Vault API плагин берёт префиксы и суффиксы из вашего плагина на права.
    • Функция рассылок с помощью Advancements. В 1.12 добавили новую систему достижений. Теперь с помощью неё можно рассылать через эти окошки любой текст. В плагине есть такая функция!
    • Cooldown'ы на на сообщения в разных каналах.
    • Рассылки сообщений через чат.
    Права:
    1. chatty.chat.<канал_чата> - позволяет писать сообщения в канал чата, или же:
      chatty.chat.<канал_чата>.see - позволяет видеть сообщения из канала чата;
      chatty.chat.<канал_чата>.send - позволяет отправлять сообщения в канал чата.
    2. chatty.spy.<канал_чата> или chatty.spy - позволяет видеть сообщения из каналов (для модераторов).
    3. chatty.commandgroup.<группа_команд> - позволяет обходить ограничение по группе команд.
    4. chatty.command.spy - позволяет выполнять команду /spy.
    5. chatty.command.reload - позволяет исполнять команду /chatty для перезагрузки конфигурации.
    6. chatty.cooldown или chatty.cooldown.<канал_чата> - обход задержки отправки сообщений.
    7. chatty.alerts.<список> - позволяет видеть сообщения из списка рассылок.
    8. chatty.ads.bypass - даёт право обходить блокировку рекламы.
    9. 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-режим.

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

    Код:
    # ОСНОВНОЕ
    # Приоритет: приоритет листенера ивента чата:
    # lowest, low, normal, high или highest.
    #
    # Log: сохранять логи чата?
    #
    # Spy: позволяет видеть сообщения из всех каналов игрокам с правом "chatty.spy".
    # Format: формат сообщений, видимых через режим Spy.
    general:
      priority: normal
      log: true
      spy:
        enable: true
        format: '&6[Spy] &r{format}'
    
    # РЕЖИМЫ ЧАТА
    # Должен быть включен хотя бы один.
    #
    # Range: радиус действия чата.
    # -1 для чата на весь мир.
    # -2 для чата на весь сервер.
    #
    # Symbol: символ для использования канала (нужно писать в начале сообщения).
    # Пустая строка - стандартный канал.
    #
    # Cooldown: задержка для отправки сообщений в чат (в секундах).
    #
    # ******************************************
    # Вы можете создавать любые каналы, например, несколько глобальных.
    # Таким образом, можно разным группам выдать права на разные глобальные чаты
    # и сообщения разных групп будут видны в разном радиусе.
    #
    # Также, например, при отсутствии права на локальный чат,
    # сообщение будет идти в глобальный чат (при условии, что есть право на него).
    chats:
      # Локальный чат.
      # Право: отключено настройкой "permission: false"
      local:
        enable: true
        format: '[Локальный] {prefix}{player}{suffix}: {message}'
        range: 100
        cooldown: -1
        permission: false
        symbol: ''
    
      # Глобальный чат.
      # Право:
      # chatty.chat.global.see - читать сообщения.
      # chatty.chat.global.send- отправлять сообщения.
      # chatty.chat.global - полный доступ к чату.
      global:
        enable: true
        format: '[Глобальный] {prefix}{player}{suffix}: {message}'
        range: -1
        cooldown: -1
        symbol: '!'
        # Необходимое количество денег для написания в чат. Можно удалить.
        money: 100
    
    # КОМАНДЫ
    # Правила для групп команд
    #
    # Типы триггеров:
    # "CONTAINS abcd" - команда или аргументы содержит строку "abcd".
    # "STARTS abcd" - команда начинается со строки "abcd".
    # "COMMAND abcd" - команда имеет название "abcd".
    # "MATCHES regexp" - команда и аргументы соответствует регулярному выражению "regexp".
    #
    # Право для обхода: chatty.commandgroup.<группа-команд>
    commands:
      anti-hack:
        triggers:
        - 'CONTAINS :'
        block: true
        message: '&cВы не можете использовать команды с ":".'
      plugins-hiders:
        triggers:
        - 'COMMAND pl'
        - 'COMMAND plugins'
        block: true
        message: '&fPlugins (1): &aWorldGuard'
      spawn-cooldown:
        triggers:
        - 'COMMAND spawn'
        - 'COMMAND home'
        cooldown: 15
        message: '&cПожалуйста, подождите {cooldown} секунд перед повторным использованием команды.'
    
    # РАССЫЛКИ
    # Сообщения в окошках достижений "Advancements"
    #
    # ВНИМАНИЕ: 1.12+.
    announcements:
      enable: false
      # Промежуток между сообщениями в секундах.
      time: 60
      list:
      - icon: 'minecraft:cobblestone'
        header: '&6Заголовок'
        footer: '&7Текст сообщения #1'
      - icon: 'minecraft:apple'
        header: '&6Заголовок'
        footer: '&7Текст сообщения #2'
    
    # РАССЫЛКИ
    # Обычные рассылки сообщений в чат
    alerts:
      enable: true
      lists:
        # Право: chatty.alerts.default
        default:
          # Время повторения в секундах.
          time: 60
          # Префикс для cообщений. Можно убрать.
          prefix: ''
          messages:
          - '&7Message text &c#1'
          - '&7Message text &a#2'
    
    # АНТИ-РЕКЛАМА
    # Скрывает сообщения с рекламой от других игроков.
    anti-ads:
      enable: true
      whitelist:
      - 'example.com'
      - 'vk.com'
      - 'google.com'
      - '192.168.1.1'
      - '127.0.0.1'
    
    # СООБЩЕНИЯ
    messages:
      no-chat-mode: '&cДоступный канал чата не найден. Вы не можете отправить сообщение.'
      reload: '&aКонфиг перезагружен.'
      no-permission: '&cУ вас недостаточно прав.'
      spy-on: '&aВы включили Spy-режим.'
      spy-off: '&cВы отключили Spy-режим.'
      cooldown: '&cПодождите {cooldown} секунд перед тем, как отправлять сообщение снова.'
      # Можно убрать эту строку, тогда сообщения не будет.
      no-recipients: '&cВас никто не услышал.'
      ads-found: '&cВ вашем сообщении обнаружена реклама.'
    
    Маленький лайфхак:
    Совсем необязательно оставлять все настройки в конфиге. Если вам ничего из этого не нужно, конфиг может быть самым минимальным:
    Код:
    chats:
      default:
        enable: true
        format: '{prefix}{player}{suffix}&r: {message}'
        permission: false
    
    Это простой глобальный чат без cooldown'а. Осталось лишь выдать право!

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


    Changelog:
    Код:
    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.
    Source code: https://github.com/MrBrikster/chatty

    Credits:
    При поддержке @VolanDeVovan.
     
    Последнее редактирование: 14 июл 2018 в 16:39
  2. Mr Hosting
  3. Автор темы
    MrBrikster

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

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

    AbstractCoder Новичок Пользователь

    Баллы:
    11
    Имя в 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 в 17:32
  10. AbstractCoder

    AbstractCoder Новичок Пользователь

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

    AbstractCoder Новичок Пользователь

    Баллы:
    11
    Имя в 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 Активный участник Пользователь

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

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

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

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

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

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

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

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