HELPER BANNERS ВИЗУАЛЬНОЕ ЯДРО DISCORD SELECT / URL MODAL / WEBSITE SYNC / MODULE PREVIEW
Центр баннеров хранит URL-обложки для модулей сервера. Администратор выбирает систему, вставляет ссылку, получает красивый preview, а HELPER синхронизирует изменения между Discord, сайтом и зависимыми модулями.
Что делает Visual Core
Banners — это централизованная библиотека URL-картинок по серверу. Один модуль задаёт визуал для заявок, тикетов, магазина, розыгрышей, статистики, лидербордов и других панелей. Это не просто настройка: это способ сделать Discord-сервер похожим на готовый premium-продукт.
Выбор системы
Админ выбирает нужный banner key через select или autocomplete.
URL картинки
Вводится ссылка http/https. Пустое значение очищает баннер.
Сохранение
Данные пишутся в banners_settings.json отдельно по guild_id.
Обновление
Cog отправляет событие banner_updated зависимым модулям.
Больше информации картинками
Этот раздел показывает весь путь глазами владельца сервера: команда, select-меню, modal, успешное обновление, список баннеров, сайт и итоговые Discord-плашки.
Команды Discord
Управление закрыто правами администратора. Если модуль выключен через сайт, команды показывают disabled-панель, а сохранённые URL не стираются.
/bannersОткрывает ephemeral embed “ВИЗУАЛЬНОЕ ЯДРО” и select-меню выбора системы.
/banner_set key:shop url:https://cdn.server/shop.pngУстанавливает URL для конкретного ключа и сразу показывает embed с картинкой.
/banner_clear key:shopОчищает конкретный баннер. Модули переходят на стандартное изображение.
/banner_listПоказывает, какие ключи уже настроены на сервере, и выводит сохранённые URL.
Настройка на сайте
Сайт и Discord работают с одним файлом data/banners_settings.json. На сайте удобно сделать визуальный editor: слева список систем, справа preview, поле URL, кнопки сохранить/очистить и статус синхронизации.
Что делает cog
Watcher замечает изменение файла, сравнивает старые и новые URL, отправляет banner_updated только по изменённым ключам и очищает deploy_requested.
Как работает синхронизация
Discord или сайт
atomic lock
changed keys
banner_updated
модуль обновил embed
Discord → Site
Команда /banner_set сохраняет URL в общий JSON. Сайт читает тот же файл и видит новое значение.
Website → Discord
Сайт ставит deploy_requested=True. Watcher ограниченно обновляет изменённые или уже настроенные ключи.
Если модуль выключен
Выключение через module_states.json закрывает управление, но не удаляет сохранённые URL.
module_states.jsonхранит состояние модуля banners / visual aliases.is_module_active()проверяет статус перед командами и кнопками.ProtectedViewблокирует старые кнопки при выключенном модуле.Какие картинки использовать
Хороший баннер
Широкий формат, крупный заголовок, фирменные цвета сервера, контраст, без мелкого текста, ссылка открывается без авторизации.
Плохой баннер
Закрытая ссылка, вертикальный постер, много мелких деталей, разные стили на каждом модуле, картинка не связана с назначением панели.
Подходит для premium gaming, RP, tech и коммерческих серверов.
Можно быстро менять оформление под сезон, турнир, праздник или обновление.
Карта технической логики
Ошибки и решения
Баннер не появился в Discord
Проверьте, что ссылка начинается с http:// или https:// и открывается без авторизации.
Как удалить баннер?
Через /banner_clear key или через modal, оставив поле пустым. Модуль перейдёт на fallback-изображение.
Один сервер влияет на другой?
Нет. Настройки лежат отдельно по guild_id, поэтому каждый клиент может иметь свой визуальный пакет.
Почему на сайте сохранилось, а Discord не обновился?
Проверьте deploy_requested, логи watcher и наличие изменений URL. Watcher обновляет только изменённые или уже настроенные ключи.
Команда пишет “доступно только администраторам”
У пользователя должны быть права администратора сервера. Это защита от случайной смены визуала обычными участниками.
Модуль выключен, но баннеры остались
Так и должно быть: выключение закрывает управление, но не стирает сохранённые картинки.