# 🤖 Loki Discord Bot - Функции ## 📋 Описание Многофункциональный Discord бот с системой уровней, личными голосовыми каналами, модерацией и развлекательными командами. **Все команды — префиксные** (ниже для краткости префикс `!`; реальный префикс задаётся в конфиге бота). **Технологии:** - Java 21 - JDA 5.0.0 - SQLite + автомиграция - Google Guice (DI) --- ## ⭐ Основные функции ### 🎯 Система уровней и опыта - **Формула:** 200 XP × уровень - **Получение XP:** - 10 XP за сообщение (cooldown 60 сек) - 1 XP за минуту в войсе - **Команды:** - `!rank [@user]` — карточка ранга - `!leaderboard` — топ по уровням/сообщениям/войсу - **Уведомления:** Красивые embed при повышении уровня - **Награды:** Роли за достижение уровней (5, 10, 20, 30, 50) ### 🎤 Личные голосовые каналы - **Автосоздание:** Зайди в канал-триггер → создастся личный канал - **Управление через кнопки:** - 🔒 Закрыть/Открыть - 👥 Лимит пользователей - ✏️ Переименовать - 🎨 Битрейт - 🚫 Удалить - **Автоудаление:** Пустые каналы удаляются автоматически - **Настройка:** `!voice-setup` ### 📊 Счетчик участников - **Автообновление:** Название канала с количеством участников - **Формат:** `【👥】Участники: 123` - **Статистика:** Присоединения/выходы за день - **История:** 30 дней - **Настройка:** `!counter-setup` ### 📝 Логи модерации - **Что логируется:** - 🗑️ Удаление сообщений - 🔨 Баны/разбаны - 👢 Кики - 🔇 Муты/размуты - 🎤 Отключение микрофона/звука - **Настройка:** `!log-setup moderation` / `!log-setup levelup` ### 🎮 Развлекательные команды **Игры:** - `!coin` — подбросить монетку - `!dice` — бросить кубик - `!8ball` — магический шар - `!ship @user1 @user2` — совместимость - `!rate` — оценить что-то - `!gay`, `!fat`, `!iq`, `!pp` — процентомеры **GIF-интерактив (nekos.life):** - `!hug`, `!kiss`, `!poke`, `!slap`, `!tickle`, `!cuddle`, `!feed` **Развлечения (текст):** - `!pat` — погладить (без GIF, несколько pat-pat) - `!compliment`, `!roast` — комплимент / жарка ### 🛡️ Модерация - `!ban`, `!kick` — бан / кик пользователя - `!clear ` — очистить сообщения - Автологирование всех действий ### 🎨 Кастомные роли - `!createrole` — создать роль - `!deleterole` — удалить роль - `!editrole` — редактировать роль - `!myroles` — мои роли ### 📈 Статистика - `!stats` — статистика сервера - `!rep`, `!minusrep` — репутация - `!reptop` — топ по репутации ### 🔧 Утилиты - `!avatar [@user]` — аватар пользователя - `!info [@user]` — информация о пользователе - `!poll` — создать голосование - `!ping` — пинг бота - `!help` — справка --- ## ⚙️ Команды настройки (только админы) ### Личные войс-каналы ``` !voice-setup trigger - канал-триггер !voice-setup category - категория для каналов !voice-setup text-channel - текстовый канал для панелей !voice-setup info - показать настройки ``` ### Счетчик участников ``` !counter-setup channel - установить канал !counter-setup format - формат ({count}) !counter-setup info - показать настройки ``` ### Логирование ``` !log-setup moderation - канал логов модерации !log-setup levelup - канал уведомлений level up !log-setup info - показать настройки ``` ### Сброс уровней (одноразовая команда) ``` !resetlevels ``` **Описание:** Сбрасывает уровни и XP всех пользователей на сервере. **Требования:** - Права администратора - Команда работает только один раз - Требует подтверждения через кнопки **Что сбрасывается:** - Уровень → 0 - XP → 0 **Что сохраняется:** - Время в голосовых каналах - Количество сообщений - Репутация --- ## 🔐 Команды супер-админа **Супер-админ ID:** `1414975197269987471` ### Генерация рейтингов ``` !generateratings ``` **Описание:** Генерирует все rating значения для всех участников сервера. **Генерируемые рейтинги:** - Ship (0-100%) - Gay (0-100%) - IQ (0-200) - PP (0-30 см) - Mustache (0-100, редко 1000-1500) - Fat (0-100%) - Boykisser (0-100%) **Особенности:** - Не перезаписывает существующие значения - Пропускает ботов - Генерирует для всех участников сервера --- ## 🗄️ База данных **SQLite** с автоматической миграцией из JSON: - `config` - конфигурация - `user_stats` - статистика пользователей - `reputation` - репутация - `ship_pairs` - ship пары - `custom_roles` - кастомные роли - `voice_channels` - личные каналы - `counter_stats` - статистика счетчика --- ## 🚀 Быстрый старт 1. **Запуск:** ```bash gradle run ``` 2. **Настройка:** ``` !voice-setup trigger #создать-канал !voice-setup category Личные каналы !voice-setup text-channel #управление !counter-setup channel #счетчик !counter-setup format 【👥】Участники: {count} !log-setup moderation #логи !log-setup levelup #level-up ``` 3. **Готово!** Зайди в канал-триггер → создастся личный канал --- ## 📦 Структура проекта ``` src/main/java/creator/loki/ ├── audio/ # TTS и аудио ├── command/ # Команды │ └── impl/ │ ├── entertainment/ # Игры и взаимодействия │ ├── moderation/ # Модерация │ ├── roles/ # Кастомные роли │ ├── setup/ # Настройка │ ├── stats/ # Статистика │ └── utility/ # Утилиты ├── config/ # Конфигурация ├── core/ # Ядро бота ├── counter/ # Счетчик участников ├── data/ # JSON хранилище ├── database/ # SQLite + миграция ├── level/ # Система уровней ├── listener/ # Event listeners ├── voice/ # Личные каналы └── util/ # Утилиты ``` --- ## 🎯 Особенности ✅ **Dependency Injection** (Google Guice) ✅ **SQLite** с автомиграцией из JSON ✅ **Graceful shutdown** всех компонентов ✅ **Логирование** (SLF4J + Logback) ✅ **Кэширование** (Caffeine) ✅ **Rate limiting** и cooldowns ✅ **Метрики** производительности ✅ **Модульная архитектура** --- ## 📝 Права бота Необходимые права: - ✅ `MANAGE_CHANNELS` - создание/удаление каналов - ✅ `MOVE_MEMBERS` - перемещение пользователей - ✅ `MANAGE_PERMISSIONS` - выдача прав - ✅ `MANAGE_ROLES` - управление ролями - ✅ `BAN_MEMBERS` - баны - ✅ `KICK_MEMBERS` - кики - ✅ `MANAGE_MESSAGES` - удаление сообщений - ✅ `VIEW_AUDIT_LOG` - просмотр логов --- ## 🔄 Обновления ### v2.0 (2026-05-11) - ✅ SQLite база данных - ✅ Автомиграция из JSON - ✅ Личные голосовые каналы - ✅ Счетчик участников - ✅ Логи модерации - ✅ Уведомления level up - ✅ Обработчик кнопок для войс-каналов ### v1.0 - Базовая система уровней - Команды развлечений - Модерация - Кастомные роли --- **Версия:** 2.0 **Дата:** 2026-05-11 **Автор:** Loki Bot Team