discord-bot/FEATURES.md
loki5512344 fe121c8546 feat: economy system with minigames, bank, rob, jobs, fishing, blackjack, slots
+ economy domain (EconomyAccount, Job, SlotCombination, EconomyTransaction)
+ EconomyRepository + SqlEconomyRepository + DB schema
+ EconomyService (transfer, daily, deposit/withdraw, stat upgrades)
+ FishingService (fish grid with difficulty levels, speed bonus)
+ BlackjackService (dealer stands on 16, ties lose)
+ SlotService (weighted combos up to x50)
+ JobService (6 jobs with level reqs and efficiency stat)
+ 11 commands: balance, baltop, pay, daily, bank, rob,
  fish, blackjack, slot, job, work
+ Tests for SqlEconomyRepository
+ EconomyModule + EconomyCommandRegistrar wired into BotModule
2026-06-20 00:23:15 +02:00

280 lines
9.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 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 <amount>` — очистить сообщения
- Автологирование всех действий
### 🎨 Кастомные роли
- `!createrole` — создать роль
- `!deleterole` — удалить роль
- `!editrole` — редактировать роль
- `!myroles` — мои роли
### 📈 Статистика
- `!stats` — статистика сервера
- `!rep`, `!minusrep` — репутация
- `!reptop` — топ по репутации
### 🔧 Утилиты
- `!avatar [@user]` — аватар пользователя
- `!info [@user]` — информация о пользователе
- `!poll` — создать голосование
- `!ping` — пинг бота
- `!help` — справка
---
## ⚙️ Команды настройки (только админы)
### Личные войс-каналы
```
!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 - показать настройки
```
### Сброс уровней (одноразовая команда)
```
!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