• Добро пожаловать на сайт - wlux.net!

    FAQ по форуму

    1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа

    2. Сообщения учитываются в следующих разделах: Читать

    3.Что-бы скачать вложение нужно 2 сообщения.

    4.Личные переписки не работают на форуме

    5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта

    6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!

    5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Гайд Создание простого Discord-бота с нуля

Оффлайн

Rassol_1

Участник
LV
3
 
24.02.2024
15
1
28
Награды
4
25

Репутация:

  • Автор темы
  • #1
Discord-боты позволяют автоматизировать модерацию, игры, музыку и многое другое. В этом гайде мы разберём, как создать своего первого бота на Python с использованием библиотеки discord.py.

Содержание

  1. Создание приложения Discord и бота
  2. Установка необходимых инструментов
  3. Написание кода бота (Python)
  4. Добавление команд и событий
  5. Развертывание бота на сервере (бесплатные варианты)
  6. Дополнительные функции (роли, эмбеды, музыка)
  7. Публикация бота и мониторинг

1. Создание приложения Discord и бота

Шаг 1: Регистрация приложения

  1. Перейдите в

    Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

    .
  2. Нажмите "New Application" → введите имя (например, MyBot).

Шаг 2: Создание бота

  1. В меню слева выберите "Bot".
  2. Нажмите "Add Bot" → подтвердите действие.
  3. Скопируйте токен бота (не передавайте его никому!).

Шаг 3: Добавление бота на сервер

  1. Перейдите в "OAuth2" → "URL Generator".
  2. Выберите "bot" в Scope и нужные права (например, Send Messages, Read Messages).
  3. Скопируйте сгенерированную ссылку и перейдите по ней → выберите сервер.

2. Установка необходимых инструментов

Требования

  • Python 3.8+
  • Библиотека discord.py

Установка

bash
Copy
pip install discord.py python-dotenv
(Рекомендуется использовать виртуальное окружение venv.)


3. Написание кода бота (Python)

Создадим бота, который отвечает на команду !hello и реагирует на сообщения.

Структура проекта


Copy
my_bot/
├── .env # Токен бота
├── main.py # Основной код
└── requirements.txt

Файл .env (храним токен)

ini
Copy
DISCORD_TOKEN=ваш_токен_бота

Код бота (main.py)

python
Copy
import os
import discord
from discord.ext import commands
from dotenv import load_dotenv

# Загрузка токена из .env
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

# Настройка префикса команд (например, "!")
bot = commands.Bot(command_prefix="!", intents=discord.Intents.all())

# Событие при запуске бота
@bot.event
async def on_ready():
print(f"Бот {bot.user.name} запущен!")

# Команда !hello
@bot.command()
async def hello(ctx):
await ctx.send(f"Привет, {ctx.author.mention}!")

# Обработка сообщений
@bot.event
async def on_message(message):
if message.author == bot.user: # Игнорируем сообщения бота
return

if "привет" in message.content.lower():
await message.channel.send("И тебе привет!")

await bot.process_commands(message) # Важно для работы команд

# Запуск бота
if __name__ == "__main__":
bot.run(TOKEN)

Как это работает?

  • on_ready() — срабатывает при запуске бота.
  • @bot.command() — регистрирует команду (например, !hello).
  • on_message() — обрабатывает все сообщения.

Запуск бота

bash
Copy
python main.py
Теперь бот должен быть активен на сервере!


4. Добавление команд и событий

Пинг-понг команда

python
Copy
@bot.command()
async def ping(ctx):
await ctx.send("Pong! ")
(Теперь !ping выведет "Pong!")

Команда с аргументами

python
Copy
@bot.command()
async def say(ctx, *, text):
await ctx.send(f" {text}")
(Пример: !say Привет, мир!)

Модерация: очистка сообщений

python
Copy
@bot.command()
@commands.has_permissions(manage_messages=True)
async def clear(ctx, amount: int = 5):
await ctx.channel.purge(limit=amount + 1)
await ctx.send(f"Удалено {amount} сообщений!", delete_after=3)
(Требует права Manage Messages.)


5. Развертывание бота на сервере

Вариант 1: Replit (бесплатно)

  1. Загрузите код на

    Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

    .
  2. Добавьте токен в Secrets.
  3. Используйте UptimeRobot для автоперезапуска.

Вариант 2: VPS (Oracle Cloud Free Tier)

  1. Создайте бесплатный сервер в

    Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

    .
  2. Установите Python и зависимости:
    bash
    Copy
    sudo apt update && sudo apt install python3-pip
    pip3 install discord.py python-dotenv
  3. Запустите бота в screen/tmux:
    bash
    Copy
    screen -S bot
    python3 main.py

6. Дополнительные функции

Выдача ролей

python
Copy
@bot.command()
@commands.has_permissions(manage_roles=True)
async def addrole(ctx, member: discord.Member, role: discord.Role):
await member.add_roles(role)
await ctx.send(f"Роль {role.name} выдана {member.mention}!")

Эмбеды (красивые сообщения)

python
Copy
@bot.command()
async def embed(ctx):
embed = discord.Embed(
title="Заголовок",
description="Описание",
color=0x00ff00 # Зелёный
)
embed.add_field(name="Поле 1", value="Значение 1")
await ctx.send(embed=embed)

Музыкальный бот (на основе FFmpeg)

python
Copy
@bot.command()
async def play(ctx, url):
voice_channel = ctx.author.voice.channel
voice_client = await voice_channel.connect()
voice_client.play(discord.FFmpegPCMAudio(url))
(Требуется установка FFmpeg.)


7. Публикация бота и мониторинг

  • Добавьте описание в Developer Portal.
  • Настройте логирование ошибок:
    python
    Copy
    @bot.event
    async def on_command_error(ctx, error):
    await ctx.send(f"Ошибка: {error}")
  • Используйте cogs для организации кода (если бот растёт).

Заключение

Теперь у вас есть работающий Discord-бот! Дальше можно улучшать его:
Подключить базу данных (SQLite, PostgreSQL).
Добавить веб-панель управления (Flask/Django).
Создать сложные игры или экономику сервера.

Полезные ссылки:

Удачи в создании бота!
 

Поиск по форуму

Похожие темы:

Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше....