235 lines
8.1 KiB
Markdown
235 lines
8.1 KiB
Markdown
# 🤖 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`
|
||
|
||
### 🎮 Развлекательные команды
|
||
|
||
**Игры:**
|
||
- `/coin` - подбросить монетку
|
||
- `/dice` - бросить кубик
|
||
- `/8ball` - магический шар
|
||
- `/ship @user1 @user2` - совместимость
|
||
- `/rate` - оценить что-то
|
||
- `/gay/@fat/@iq/@pp` - процентомеры
|
||
|
||
**Взаимодействия:**
|
||
- `/hug/@kiss/@pat/@poke` - обнять/поцеловать/погладить/ткнуть
|
||
- `/slap/@tickle/@cuddle` - шлепнуть/пощекотать/обнять
|
||
- `/compliment/@roast` - комплимент/жарка
|
||
- `/feed` - покормить
|
||
|
||
### 🛡️ Модерация
|
||
- `/ban/@kick` - бан/кик пользователя
|
||
- `/clear <amount>` - очистить сообщения
|
||
- Автологирование всех действий
|
||
|
||
### 🎨 Кастомные роли
|
||
- `/createrole` - создать роль
|
||
- `/deleterole` - удалить роль
|
||
- `/editrole` - редактировать роль
|
||
- `/myroles` - мои роли
|
||
|
||
### 📈 Статистика
|
||
- `/stats [@user]` - статистика пользователя
|
||
- `/rep/@minusrep` - репутация
|
||
- `/reptop` - топ по репутации
|
||
- `/serverstats` - статистика сервера
|
||
|
||
### 🔧 Утилиты
|
||
- `/avatar [@user]` - аватар пользователя
|
||
- `/info [@user]` - информация о пользователе
|
||
- `/poll` - создать голосование
|
||
- `/ping` - пинг бота
|
||
- `/help` - справка
|
||
- `/tts <text>` - озвучить текст
|
||
|
||
---
|
||
|
||
## ⚙️ Команды настройки (только админы)
|
||
|
||
### Личные войс-каналы
|
||
```
|
||
/voice-setup trigger <channel> - канал-триггер
|
||
/voice-setup category <category> - категория для каналов
|
||
/voice-setup text-channel <channel> - текстовый канал для панелей
|
||
/voice-setup info - показать настройки
|
||
```
|
||
|
||
### Счетчик участников
|
||
```
|
||
/counter-setup channel <channel> - установить канал
|
||
/counter-setup format <format> - формат ({count})
|
||
/counter-setup info - показать настройки
|
||
```
|
||
|
||
### Логирование
|
||
```
|
||
/log-setup moderation <channel> - канал логов модерации
|
||
/log-setup levelup <channel> - канал уведомлений level up
|
||
/log-setup info - показать настройки
|
||
```
|
||
|
||
---
|
||
|
||
## 🗄️ База данных
|
||
|
||
**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
|