Плагин Чат 💬 fcChat - Многофункциональный плагин на чат 💬 [v2.4]

Что было исправлено:
Исправлен sheduler в Автоматических сообщениях: При изменении таймера, плагин отправлял сообщения и по старому и по новому таймеру.

Что было убрано:
Интеграция с плагинами на кланы: Из-за API плагин не мог нормально запустится, поэтому было принято решение временно убрать интеграции с кланами.
Добавлено
  • Интеграция с hClans (hClans: true в config.yml): клановый канал работает через ru.he3hauka.hclans.api.ClanApi - проверка наличия клана, имя клана, группировка сообщений.
  • Встроенные контекстные плейсхолдеры: {ctx:sender}, {ctx:player}, {ctx:message}, {ctx:world} (также поддерживаются {context:...}) - резолвятся в форматах чата, приватов и бродкастов.
  • Встроенный action handler copy + команда /fcchat action <id> [message] с правами fcchat.action.<id>.
  • Текущий канал игрока показывается в таб-комплите /fcchat channel.
  • Таб-комплит для /fcchat action.
  • Исходники опубликованы на GitHub, коммиты на русском.

Изменено
  • Клановый канал теперь определяется по id: "clan" в chat/channel.yml; placeholder-механика (input/output) удалена.
  • Интеграция TowerClans переписана под новую API (TowerClansAPI / ClanManager), getClanManager() берётся из инстанса плагина.
  • Проверка наличия клана выполняется по актуальному реестру TowerClans (getClans() + сверка участников по UUID) - кэш ModifiedPlayer больше не используется.
  • TowerClans и hClans работают в связке: приоритет у TowerClans, hClans - fallback.
  • clearChat больше не использует deprecated Bukkit.broadcastMessage; анонс об очистке получает и отправитель.
  • switchChannel корректно обрабатывает null/пустой id (перевод в default).
  • AntiSpam.isSpam использует реальные значения кулдауна из moderation.yml.
  • Ховер цензурированных сообщений показывает только само сообщение, а не всю строку формата.

Исправлено
  • Антиспам не срабатывал: в isSpam остались неинициализированные переменные от декомпиляции, из-за чего проверка всегда была ложной.
  • Оригинал заблокированного фильтром сообщения был виден всем при наведении без права - теперь требуется fcchat.read (в локальном и глобальном чате; в каналах уже было).
  • После распуска клана в TowerClans игрок оставался в клановом канале: кэш ModifiedPlayer держал устаревшую ссылку на распущенный клан - проверка переведена на живой реестр кланов.
  • Дублирование слушателей и таймеров при /fcchat reload:
    • reloadEventsWithPriority теперь снимает старые слушатели ChatGame;
    • AutoMessages.start() идемпотентен (останавливает предыдущий таймер);
    • ChatGame останавливает активную игру при settings.enabled: false в chatgame.yml.

Оптимизация и рефакторинг
  • Публичное API ожило: каждый метод FcChatApi теперь работает и используется:
    • getChannels() / getPlayerChannel(UUID) / isCommandEnabled() подключены в плагин (таб-комплит, команды);
    • registerContextPlaceholder / registerActionHandler / executeAction обеспечены встроенными реализациями.
Что было добавлено:
1. Поддержка версий до 26.2
2. Добавлена многоядерная + Folia поддержка
3. Поддержка DiscordSRV, теперь сообщение с глобального канала могут отображаться через DiscordSRV

Что было исправлено:
1. Баг с градиентами, мы полностью перешли на использование одной единой библиотеки для адекватного отображение градиентов
2. Баг с ховерами в чате, что при наводке всегда показывало одно и тоже
3. Баг с отключением чата через конфиг

Что было удалено:
1. ActionManager - данная механика была тестовой и не планировалась к выпуску, но по чистой случайно мы её опубликовали
2. DiscordWebhook - Из-за добавления поддержки DiscordSRV, данная функция больше не нужна
Добавлено:

  • Возможность отключать команду /clear через config.yml (commands.clear.enabled).
  • Плейсхолдер отправителя в broadcast: {sender} (и поддержка {player} для совместимости).
  • Полноценное публичное API (fc.plugins.fcchat.api) для интеграции других плагинов:
    • FcChatApi, FcChatApiProvider.
    • API-события: FcChatApiReadyEvent, FcChatBroadcastEvent, FcChatPrivateMessageEvent, FcChatChannelSwitchEvent.
    • Регистрация контекстных плейсхолдеров ({ctx:key} / {context:key}).
    • Audience resolver для кастомной аудитории broadcast.
    • Action handler API.
  • Подключение API как Bukkit Service + провайдер при запуске плагина.
  • AI-модератор чата (OpenRouter):
    • Настройки в moderation.yml (endpoint, api-key, model, prompt, blocked-message).
    • Блокировка отправки сообщений по решению AI.
    • Команды управления:
      • /fcchat ai stats — статистика блокировок + статус логгера.
      • /fcchat ai logger — включение/выключение AI-логгера.
    • Онлайн-логгер для админов: сообщение о скрытии + hover с причиной блокировки.
    • Права: fcchat.ai.manage, fcchat.ai.logger.
    • Tab-complete для новых AI-команд.
  • Улучшенная логика отображения сообщений при AI-проверке:
    • Отправитель сначала видит сообщение локально.
    • После успешной проверки сообщение уходит всем остальным (без дубля у отправителя).
  • Поддержка Toast-уведомлений для пингов через NMS в диапазоне версий 1.16.5–1.21.11.
Изменено:

  • new-player-chat переведен на реальное игровое время из world/player statistics (vanilla stats),
    без хранения времени в отдельном файле плагина.
  • Формат broadcast по умолчанию обновлен с выводом отправителя.
Исправлено:

  • Улучшена обработка версий и fallback-логика в Toast/NMS для новых версий 1.21.x.
  • Исправлены сценарии, когда broadcast или switch channel отменяются внешними плагинами
    (добавлены отдельные сообщения об отмене).
  • Улучшен парсинг и устойчивость ответов AI-модератора (в т.ч. fallback для форматов ответа).
Оптимизация/рефакторинг:

  • Удален неиспользуемый код и лишние поля/классы:
    • PlayerInfoManager, FormatCache и сопутствующие неиспользуемые вызовы.
    • Упрощены PrivateMessageManager, PlayerTimeManager и части менеджеров чата/каналов.
  • Команды /broadcast, /msg, /reply, /clear, переключение каналов переведены
    на единый API-слой для расширяемости.
  • Лайк 0
Реакции:1 пользователя
Эта версия больше является патчем исправлений ошибок.

Что было исправлено:
1
. Исправлен баг что таймер newbie-chat не продвигался и был статичным.
2. Исправлен баг что в глобальный чат нельзя было писать если перед ! поставить пробел.
3. Исправлен баг что чат игра работала даже когда была отключена.

Что было добавлено:
1
. Добавлен новый режим для Автоматических сообщений.
2. Улучшена оптимизация плагина.
Что было исправлено:
1.
Исправлен баг со спамом в консоль из-за недействительных плейсхолдеров.
2. Исправлен баг с чат игрой, игра могла работать не смотря на то что она выкл.
3. Исправлен баг когда игрока мутят и он пытается что-то написать, то в чат отправляется <event cancelled>
4. Исправлен баг с окраской ника игрока.

Что было добавлено:
1.
Добавлены команды алиасы для облегчения:
/clear - очистить чат
/channel - переключить канал
2. Добавлена возможность быстрой отправки сообщения в канал,
для этого в каналах будет настраиваться свой символ который надо ввести перед сообщением чтобы отправить его в нанал.
3. Добавлена новая функция окраски ника в зависимости от того в каком мире игрок.
4. Добавлена возможность добавления футеров для автоматических сообщений.
5. Добавлены личные сообщения, быстрый ответ, объявления.
6. Добавлена возможность настройки приоритета плагина.
7. Полная поддержка новых версий.

Чтобы было убрано:
1.
Режим слежки за локальным чатом.
Чтобы было исправлено:
Добавлены звуки отправки сообщения.
Добавлены пинги @ник и @everyone
Чтобы было исправлено:
Убран вывод градиента в консоль.
Добавлена поддержка Hex в Автоматические Сообщения.
Добавлена новая функция вывода текста игрока голограммой над головой игрока.
Добавлена возможность создания клан чата в каналах плагина.
  • Лайк 0
Реакции:1 пользователя
Чтобы было исправлено:
Был исправлен баг с выводом градиента в чат для новых версий.
  • Лайк 0
Реакции:1 пользователя
Что было добавлено:
Добавлена синхронизация чата по серверам через MySQL.
Добавлен футер для копирования текста.
  • Лайк 0
Реакции:1 пользователя
ВерхНиз