An open API service indexing awesome lists of open source software.

https://github.com/vberezinbadger/discord-sample-bot

An example of a Python and disnake based Discord bot with basic commands.
https://github.com/vberezinbadger/discord-sample-bot

discord discord-bot discord-py discordbot disnake disnake-bot python python3 template templates

Last synced: 2 months ago
JSON representation

An example of a Python and disnake based Discord bot with basic commands.

Awesome Lists containing this project

README

        

# Discord Sample Bot

Многофункциональный Discord бот с системой модерации, рангов и различными утилитами, написанный на скорую руку для одного хорошего друга. Это не значит, что вам нельзя его брать, вы можете использовать данный проект на здоровье: как за основу своего, так и для модернизации и доработки для собственных нужд.

> [!NOTE]
> Данный проект хорошо работает с `Python 3.11`. Если у вас что-то не работает, прочитайте `README` полностью, для вас вся информация доступна здесь.

## Возможности

- Система модерации (кик, бан, мут)
- Система предупреждений
- Система уровней и опыта
- Анализ ссылок
- Опросы и утилиты
- Напоминания

## Команды

### Модерация
- `/kick` - Кикнуть участника
- `/ban` - Забанить участника
- `/unban` - Разбанить участника по ID
- `/mute` - Замутить участника
- `/unmute` - Размутить участника
- `/warn` - Выдать предупреждение
- `/clear_warnings` - Очистить предупреждения

### Утилиты
- `/broadcast` - Отправить сообщение от имени бота
- `/clear` - Очистить сообщения
- `/poll` - Создать опрос
- `/remind` - Установить напоминание
- `/cancel_reminder` - Отменить напоминание
- `/list_reminders` - Список напоминаний

### Информация
- `/userinfo` - Информация о пользователе
- `/serverinfo` - Информация о сервере
- `/rank` - Показать ранг пользователя
- `/avatar` - Показать аватар
- `/servericon` - Показать иконку сервера
- `/emoji_info` - Информация об эмодзи
- `/members` - Статистика участников

### Развлечения
- `/random_number` - Случайное число
- `/coin` - Подбросить монетку
- `/roll` - Бросить кости
- `/say` - Сказать от имени бота
- `/weather` - Показать погоду (демо)

## Установка

1. Клонируйте репозиторий:
```bash
git clone https://github.com/vberezinbadger/discord-sample-bot.git
cd discord-sample-bot
```

> [!NOTE]
> Данный проект хорошо работает с `Python 3.11`. Если у вас что-то не работает, прочитайте `README` полностью, для вас вся информация доступна здесь.

2. Создайте виртуальное окружение:
```bash
python -m venv venv
```

3. Активируйте виртуальное окружение:
```bash
# Windows
.\venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
```

4. Установите зависимости:
```bash
pip install -r requirements.txt
```

5. Создайте файл .env (если его нет) и добавьте:
```env
DISCORD_TOKEN=your_bot_token
GUILD_ID=your_guild_id
```

6. Запустите бота:
```bash
python main.py
```

## Настройка бота

1. Создайте бота на [Discord Developer Portal](https://discord.com/developers/applications)
2. Включите все необходимые интенты (`Presence`, `Server Members`, `Message Content`)
3. Пригласите бота на сервер с нужными правами

## Требования

- Python 3.11 (стабильная работа на нём)
- Установленные зависимости из requirements.txt
- Токен Discord бота
- ID сервера Discord

## Как достать ID сервера?

Если вы не знаете, как достать ID, воспользуйтесь инструкцией:
1. Откройте настройки пользователя Discord
2. Перейдите в пункт "Расширенные"
3. Включите режим разработчика

Далее кликаете правой кнопкой мыши на ваш сервер (тот, на который вы хотите установить бота), и нажмите на "Копировать ID сервера". После чего, вставьте его в пункт `GUILD_ID` в конфигурации бота `.env`

## Примечания

- Бот использует систему slash-команд
- Для модерации требуются соответствующие права
- Система уровней сохраняется в файл `levels.json`
- Предупреждения сохраняются в файл `warnings.json`

## Что-то не работает

Если у вас установлено несколько версий Python, то вам нужна Python 3.11 (если не установлена, необходимо установить). В данном случае, используйте версию `python3.11`:

**Windows:**
```cmd
py -3.11 -m venv venv
py -3.11 -m pip install -r requirements.txt
```

**Linux/macOS:**
```bash
python3.11 -m venv venv
python3.11 -m pip install -r requirements.txt
```

Если вы используете версию выше, проект будет работать не корректно, имейте это в виду.