Перейти до змісту

Рекомендовані відповіді

Опубліковано
  • Адміністратор

Перший етап - створення програми.
Для початку ви повинні створити програму бота, для цього виконайте всі дії по порядку:

  1. Перейдіть на сторінку https://discord.com/developers/applications

  2. Натисніть New Application.

Screenshot_1.png

3.Введіть назву програми, прочитайте Developer Terms of Service ( https://discord.com/developers/docs/policies-and-agreements/developer-terms-of-service ) та Developer Policy ( https://discord.com/developers/docs/policies-and-agreements/deo com /tos , після цього натисніть кнопку Create.

Screenshot_1.png

Примітка: Ви можете змінити назву програми, опис, теги, також ви можете отримати айді бота та його Public Key. Нижче ви можете побачити ще 4 галочки, але там ви самі все зрозумієте.

Screenshot_1.png

Перейдіть до вкладки Bot.

Screenshot_1.png

Натисніть Add Bot і підтвердьте це.

Screenshot_1.png

Якщо у вас включено двофакторну автентифікацію, ви повинні ввести 6-значний код. Вітаю! Ваша програма створена абсолютно успішно.

Другий етап – Запуск нашого бота.

Щоб отримати токен бота, натисніть кнопку View Token. Далі напишемо перший код! Для зручності використовуватиму бібліотеку disnake (discord.ua fork), але перед написанням коду ми повинні створити файл з розширенням .py ! Якщо створили файл – вітаю, можемо приступати до написання коду!

Screenshot_1.png

# Імпорт бібліотеки disnake.

import disnake

від disnake.ext import commands

bot = commands.Bot(command_prefix="!") # Створення екземляра класу commands.Bot, у документації ви можете знайти які аргументи приймає цей клас.

# За допомогою command_prefix задаємо префікс нашому боту, наприклад тут буде префікс!

# Коли бот запущено, то буде викликано івент.

@bot.event

async def on_ready():

print("Ваш бот готовий!")

# Запуск дискорд бота, як знайти токен написано в гайді.

bot.run("YOUR_DISCORD_BOT_TOKEN")

Далі запускаємо нашого бота. Можна запускати як через cmd, так і через створений файл bat.
Готово!

Також наведу приклад команди !ping , яка буде нам відповідати "Понг!"

Тут ми використовуємо вже декоратор @bot.command()
@bot.command()
приймає аргументи, а саме - name (ім'я команди, можна зробити команду російською мовою), description (опис команди, більше підходить для команд косої риси) і usage (приклад використання команди).

@bot.command(name = "ping", description = "Тест команда", usage = "ping") # в name задаємо навзання команди

async def ping(ctx): # передаємо аргумент ctx (контекст)

await ctx.reply("Понг!") # відповідаємо користувачеві, що викликав команду.

Тепер за командою !ping бот відповідатиме вам Понг!

UPD 30.04.
Зараз покажу як створювати зліш команди (команди косої межі)!
Для цього нам потрібно використовувати декоратор @bot.slash_command()
Він приймає ті самі аргументи, що і текстові команди.
Приклад команди !ping , але вже на слішах:

@bot.slash_command(name = "ping", description = "Тест команда", usage = "ping")

async def ping(inter): # тепер ми передаємо у аргументі не ctx, а inter | interaction (інтеракція)

await inter.response.send_message("Понг!") # відправляємо повідомлення

Що взагалі
таке ваш Interaction і з чим його їдять ?

Interaction у перекладі з англійської означає взаємодію.
Це, по суті, вебхукі під капотом (і для відповіді на взаємодію не потрібно токен робота). Таким чином, у вас може бути програма, призначена тільки для взаємодії, до якої можуть отримати доступ користувачі, не маючи користувача-бота в гільдії.
Бот повинен бути доданий з роздільною здатністю applications.commands , щоб створювати слеш команди на сервері. Це рекомендується додати цей дозвіл до запрошень вашого бота.

Підсумковий код нашого боту:

# Імпорт бібліотеки disnake.

import disnake

від disnake.ext import commands

bot = commands.Bot(command_prefix="!") # Створення екземляра класу commands.Bot, у документації ви можете знайти які аргументи приймає цей клас.

# За допомогою command_prefix задаємо префікс нашому боту, наприклад тут буде префікс!

# Коли бот запущено, то буде викликано івент.

@bot.event

async def on_ready():

print("Ваш бот готовий!")

# Наша перша команда

@bot.command(name = "ping", description = "Тест команда", usage = "ping") # в name задаємо навзання команди

async def ping(ctx): # передаємо аргумент ctx (контекст)

await ctx.reply("Понг!") # відповідаємо користувачеві, що викликав команду.

# Наша сліш команда

@bot.slash_command(name = "ping", description = "Тест команда", usage = "ping")

async def ping(inter): # тепер ми передаємо у аргументі не ctx, а inter | interaction (інтеракція)

await inter.response.send_message("Понг!") # відправляємо повідомлення

# Запуск дискорд бота, як знайти токен написано в гайді.

bot.run("YOUR_DISCORD_BOT_TOKEN")

Для публікації повідомлень створіть обліковий запис або авторизуйтесь

Важлива інформація

By using this site, you agree to our Умови використання.