No description
The local copy of JDAVoiceUpdateListener.onVoiceServerUpdate() checked if the bot's cached voice channel was null and returned early, silently dropping the voice server update. Discord often sends the voice server update BEFORE the voice state update is processed by JDA, so the channel was always null on first attempt -> Lavalink never received the update -> voice connection never established -> timeout. Fix: pass null channelId to Lavalink's VoiceState instead of aborting. This matches the Kotlin original library code. |
||
|---|---|---|
| .github/workflows | ||
| .settings | ||
| config | ||
| data | ||
| gradle | ||
| lavalink | ||
| ref | ||
| src | ||
| .classpath | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .project | ||
| build.gradle | ||
| deploy.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| FEATURES.md | ||
| gradle.properties | ||
| gradlew | ||
| README.md | ||
| settings.gradle | ||
| TODO.md | ||
🤖 Loki Discord Bot
Многофункциональный Discord бот с системой уровней, личными голосовыми каналами и модерацией.
⚡ Быстрый старт
# Запуск
gradle run
# Настройка через Discord (префикс по умолчанию «!»)
!voice-setup trigger #создать-канал
!counter-setup channel #счетчик
!log-setup moderation #логи
🔧 Административные команды
Сброс уровней (одноразовая команда)
!resetlevels
Описание: Сбрасывает уровни и XP всех пользователей на сервере. Сохраняет время в войсе и количество сообщений.
Требования:
- Права администратора
- Команда работает только один раз
- Требует подтверждения через кнопки
Что сбрасывается:
- Уровень → 0
- XP → 0
Что сохраняется:
- Время в голосовых каналах
- Количество сообщений
- Репутация
Генерация рейтингов (супер-админ)
!generateratings
Описание: Генерирует все rating значения (ship, gay, iq, pp, mustache, fat, boykisser) для всех участников сервера.
Требования:
- Только для супер-админа (ID:
1414975197269987471) - Не перезаписывает существующие значения
- Сохраняет в SQLite базу данных
Генерируемые рейтинги:
- Ship (0-100%)
- Gay (0-100%)
- IQ (0-200)
- PP (0-30 см)
- Mustache (0-100, редко 1000-1500)
- Fat (0-100%)
- Boykisser (0-100%)
Особенности:
- Хранится в таблице
ratingsв SQLite - Пропускает ботов
- Показывает статистику генерации
📚 Документация
- FEATURES.md - Полный список функций
- TODO.md - План развития
🎯 Основные функции
- 🎯 Система уровней (200 XP × уровень)
- 🎤 Личные голосовые каналы
- 📊 Счетчик участников
- 📝 Логи модерации
- 🎮 Развлекательные команды
- 🛡️ Модерация
- 🎨 Кастомные роли
🛠️ Технологии
- Java 21
- JDA 5.0.0
- SQLite
- Google Guice
📦 Требования
- Java 21+
- Gradle 8.x
❤️ Health (HTTP)
В .env можно задать HEALTH_HTTP_PORT (0–65535, 0 = не поднимать сервер). После готовности JDA слушает GET /health и отдаёт JSON (uptime, счётчики команд, версия из манифеста или dev).
Версия: 2.0 | Лицензия: MIT