No description
Find a file
loki5512344 fa5a6aab8f
fix: JDAVoiceUpdateListener null channel race drops voice server update
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.
2026-07-13 00:06:22 +02:00
.github/workflows v2.3: Major refactoring, Lavalink music system, Spotify support, CI/CD 2026-07-02 23:48:36 +02:00
.settings refactor: KISS/DRY/SOLID раунд + багфиксы радио/voice/message 2026-07-04 18:46:27 +02:00
config fix: update lavasrc 4.8.3, disable broken spotify, JDA 6.4.2 migration 2026-07-03 21:04:35 +02:00
data add prompts and knowledge files 2026-07-12 22:47:27 +02:00
gradle feat: ai page parser, message scanner, lang filter, /clear, prompt rewrite 2026-07-07 01:22:21 +02:00
lavalink fix: enable spotify source in lavalink, add User-Agent to booru API requests 2026-07-12 23:34:24 +02:00
ref Remove lavmusicbot submodule, keep ref as files 2026-07-02 23:56:19 +02:00
src fix: JDAVoiceUpdateListener null channel race drops voice server update 2026-07-13 00:06:22 +02:00
.classpath refactor: KISS/DRY/SOLID раунд + багфиксы радио/voice/message 2026-07-04 18:46:27 +02:00
.dockerignore feat: ai page parser, message scanner, lang filter, /clear, prompt rewrite 2026-07-07 01:22:21 +02:00
.editorconfig feat: economy system with minigames, bank, rob, jobs, fishing, blackjack, slots 2026-06-20 00:23:15 +02:00
.env.example fix: add rule34 API credentials support (required since Aug 2025) 2026-07-12 23:39:09 +02:00
.gitignore v2.3: Major refactoring, Lavalink music system, Spotify support, CI/CD 2026-07-02 23:48:36 +02:00
.project refactor: KISS/DRY/SOLID раунд + багфиксы радио/voice/message 2026-07-04 18:46:27 +02:00
build.gradle feat: ai page parser, message scanner, lang filter, /clear, prompt rewrite 2026-07-07 01:22:21 +02:00
deploy.sh feat: image navigation, yandere/e621random commands, ai session manager, deploy script 2026-07-12 22:24:43 +02:00
docker-compose.yml fix: add rule34 API credentials support (required since Aug 2025) 2026-07-12 23:39:09 +02:00
Dockerfile feat: nsfw image commands (!e621, !r34, !gelbooru) + help filtering 2026-07-07 16:03:03 +02:00
FEATURES.md feat: economy system with minigames, bank, rob, jobs, fishing, blackjack, slots 2026-06-20 00:23:15 +02:00
gradle.properties feat: ai page parser, message scanner, lang filter, /clear, prompt rewrite 2026-07-07 01:22:21 +02:00
gradlew v2.3: Major refactoring, Lavalink music system, Spotify support, CI/CD 2026-07-02 23:48:36 +02:00
README.md feat: economy system with minigames, bank, rob, jobs, fishing, blackjack, slots 2026-06-20 00:23:15 +02:00
settings.gradle v2.3: Major refactoring, Lavalink music system, Spotify support, CI/CD 2026-07-02 23:48:36 +02:00
TODO.md refactor: KISS/DRY/SOLID раунд + багфиксы радио/voice/message 2026-07-04 18:46:27 +02:00

🤖 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