No description
Find a file
loki5512344 77649ff6ca
fix: wait for Lavalink node readiness before radio voice connection
The radio bot's own LavalinkClient may not be connected yet when
startRadio() is called (async connection). Without this wait, the
voice server update is forwarded to a not-yet-connected client and
lost, causing a voice connection timeout.

Also ensure the radio bot uses its own LavalinkManager (separate
LavalinkClient with radio bot's user ID) instead of sharing the
main bot's, which caused user ID mismatch.
2026-07-12 23:52:26 +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: wait for Lavalink node readiness before radio voice connection 2026-07-12 23:52:26 +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