Опубліковано 24 лютого24 лют Адміністратор Перший етап - створення програми.Для початку ви повинні створити програму бота, для цього виконайте всі дії по порядку:Перейдіть на сторінку https://discord.com/developers/applicationsНатисніть New Application.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.Примітка: Ви можете змінити назву програми, опис, теги, також ви можете отримати айді бота та його Public Key. Нижче ви можете побачити ще 4 галочки, але там ви самі все зрозумієте.Перейдіть до вкладки Bot.Натисніть Add Bot і підтвердьте це.Якщо у вас включено двофакторну автентифікацію, ви повинні ввести 6-значний код. Вітаю! Ваша програма створена абсолютно успішно.Другий етап – Запуск нашого бота.Щоб отримати токен бота, натисніть кнопку View Token. Далі напишемо перший код! Для зручності використовуватиму бібліотеку disnake (discord.ua fork), але перед написанням коду ми повинні створити файл з розширенням .py ! Якщо створили файл – вітаю, можемо приступати до написання коду!# Імпорт бібліотеки disnake.import disnakeвід disnake.ext import commandsbot = commands.Bot(command_prefix="!") # Створення екземляра класу commands.Bot, у документації ви можете знайти які аргументи приймає цей клас.# За допомогою command_prefix задаємо префікс нашому боту, наприклад тут буде префікс!# Коли бот запущено, то буде викликано івент.@bot.eventasync 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 commandsbot = commands.Bot(command_prefix="!") # Створення екземляра класу commands.Bot, у документації ви можете знайти які аргументи приймає цей клас.# За допомогою command_prefix задаємо префікс нашому боту, наприклад тут буде префікс!# Коли бот запущено, то буде викликано івент.@bot.eventasync 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")
Для публікації повідомлень створіть обліковий запис або авторизуйтесь