Skip to content

Developed a Discord bot that tracks chat and voice activity, grants XP, manages user levels, and auto-assigns roles. Includes slash commands, admin permission checks, and persistent data storage in PostgreSQL via Docker Compose.

Notifications You must be signed in to change notification settings

necholya1-tech/Discord-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Gosha — Discord XP Bot

Gosha — это Discord-бот, написанный на Go, который автоматически начисляет XP за активность пользователей в чате и голосовых каналах.
Он хранит данные в PostgreSQL, управляет уровнями, назначает роли при достижении XP-порогов и предоставляет набор удобных slash-команд.


🚀 Основной функционал

  • 🎯 Система XP и уровней

    • Начисление XP за сообщения в чате и участие в голосовых каналах.
    • Настраиваемая шкала уровней (XP → Level).
    • Автоматическое повышение уровня и уведомление пользователя.
  • 🧩 Роли по уровням

    • Автоматическая выдача ролей при достижении заданного уровня.
    • Поддержка нескольких ролей с разными XP-порогами.
    • Возможность ручного управления через админ-команды.
  • ⚙️ Slash-команды

    • /level — показать текущий уровень и XP пользователя.
    • /clear — чистит чат.
    • /give — выдать роль вручную.
    • /remove — снять роль.
    • /top — показать топ пользователей по XP.
    • /mute — выдает роль мута пользователю и убирает остальные роли временно,пользователь не может писать в чате и говорить в войсе.
  • 🛡️ Права и безопасность

    • Проверка прав по ADMIN_ROLE_IDS.
    • Ограничение доступа к административным командам.
  • 🗄️ База данных

    • PostgreSQL для хранения пользователей, уровней и ролей.
    • Таблицы:
      • usersuser_id, xp, level, last_message_ts
      • rolesrole_id, xp_need
    • Автоматическая миграция при запуске.
  • 🐳 Docker

    • Полная контейнеризация проекта через docker-compose.
    • Изоляция сервисов (app, db).
    • Переменные окружения в .env для гибкой настройки.

🧰 Технологии

  • Go (Golang)
  • PostgreSQL
  • Discord API (через discordgo)
  • Docker Compose
  • .env конфигурация

⚙️ Установка и запуск

  1. Клонирование репозитория
git clone https://github.com/<your-username>/gosha-bot.git
cd gosha-bot
  1. Создание .env файла

Создайте файл .env в корне проекта со следующим содержимым:

DISCORD_TOKEN=your_discord_bot_token
DATABASE_URL=postgres://postgres:postgres@db:5432/gosha?sslmode=disable
ADMIN_ROLE_IDS=123456789012345678,987654321098765432
XP_CHAT_GAIN=10
XP_VOICE_GAIN=5
LEVEL_MULTIPLIER=100
  1. Запуск через Docker Compose
docker-compose up --build

About

Developed a Discord bot that tracks chat and voice activity, grants XP, manages user levels, and auto-assigns roles. Includes slash commands, admin permission checks, and persistent data storage in PostgreSQL via Docker Compose.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages