 |
|

14.04.2023, 01:31
|
|
Постоянный
Регистрация: 06.11.2021
Сообщений: 397
С нами:
2378594
Репутация:
48
|
|
Доброго времени форумчане БластХак!
Сегодня я расскажу и покажу, как создать своего первого бота в Discord!
Данный гайд посвящается всем, кто знает базу Python (кто не знает - иди учи питон)
Первый этап - Создание приложения.
Для начала вы должны создать приложение бота, для этого выполните все действия по порядку:
- Перейдите на страницу https://discord.com/developers/applications
- Нажмите на New Application.
- Введите название приложения, прочитайте 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/developer-policy) и также, я советую вам ознакомиться с https://discord.com/tos, после всего этого нажмите на кнопку Create.
Примечание: Вы можете изменить название приложения, описание, теги, также вы можете получить айди бота и его Public Key. Ниже вы можете увидеть ещё 4 галочки, но там вы и сами все поймете.
- Перейдите во вкладку Bot.
- Нажмите Add Bot и подтвердите это действие.
! Если у вас включена двухфакторная аутентификация, вы должны ввести 6-значный код. Поздравляю! Ваше приложение создано абсолютно успешно.
Второй этап - Запуск нашего бота.
Для того чтобы получить токен бота, нажмите на кнопку View Token.
Далее, напишем первый код!
Для удобства буду использовать библиотеку disnake (discord.py fork), но перед написанием кода мы должны создать файл с расширением .py!
Если создали файл - поздравляю, можем приступать к написанию кода!
Python:
Код:
# Импорт библиотеки disnake.
import
disnake
from
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 (пример использования команды).
Python:
Код:
@bot.command
(
name
=
"ping"
,
description
=
"Тест команда"
,
usage
=
"ping"
)
# в name задаём навзание команды
async
def
ping
(
ctx
)
:
# передаём аргумент ctx (контекст)
await
ctx
.
reply
(
"Понг!"
)
# отвечаем пользователю вызвавшему команду.
Теперь по команде !ping бот будет отвечать вам Понг!
UPD 30.04.Сейчас покажу как создавать слеш команды (команды косой черты)!
Для этого нам нужно использовать декоратор @bot.slash_command()
Он принимает все те же аргументы, что и текстовые команды.
Пример команды !ping, но уже на слешах:
Python:
Код:
@bot.slash_command
(
name
=
"ping"
,
description
=
"Тест команда"
,
usage
=
"ping"
)
async
def
ping
(
inter
)
:
# теперь мы передаём в аргументе не ctx, а inter | interaction (интеракция)
await
inter
.
response
.
send_message
(
"Понг!"
)
# отправляем сообщение
Небольшое пояснение про Interaction (кратко inter)
Что вообще такое ваш Interaction и с чем его едят?
Interaction в переводе с английского означает взаимодействие.
Это, по сути, вебхуки под капотом (и для ответа на взаимодействие не требуется токен бота). Таким образом, у вас может быть приложение, предназначенное только для взаимодействия, к которому могут получить доступ пользователи, не имея пользователя-бота в гильдии.
Бот должен быть добавлен с разрешением applications.commands, чтобы создавать слэш команды на сервере. Это рекомендуется к добавлению этого разрешение к приглашениям вашего бота.
Итоговый код нашего бота:
Python:
Код:
# Импорт библиотеки disnake.
import
disnake
from
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"
)
Спасибо за внимание, возможно в будущем ИМЕННО ТЫ станешь успешным разработчиком (нет)
|
|
|

15.04.2023, 18:59
|
|
Участник форума
Регистрация: 26.02.2022
Сообщений: 138
С нами:
2217577
Репутация:
18
|
|
Гайды на ютубе покинули чат 
|
|
|

16.04.2023, 01:34
|
|
Постоянный
Регистрация: 06.11.2021
Сообщений: 397
С нами:
2378594
Репутация:
48
|
|
Сообщение от KOHTOP
Гайды на ютубе покинули чат
гайды на ютубе по ботодеву созданы для нижнего слоя общества
|
|
|

16.04.2023, 10:50
|
|
Познающий
Регистрация: 28.11.2018
Сообщений: 87
С нами:
3925538
Репутация:
63
|
|
Сообщение от riverya4life
Данный гайд посвящается всем, кто знает базу Python (кто не знает - иди учи питон)
людям, которые знают базу python, гайды не нужны будут, а вот те кто не знают, как раз таки нужны
|
|
|

16.04.2023, 13:14
|
|
Постоянный
Регистрация: 05.11.2021
Сообщений: 634
С нами:
2380746
Репутация:
68
|
|
Сообщение от sadasdasdasdasdasd
людям, которые знают базу python, гайды не нужны будут, а вот те кто не знают, как раз таки нужны
Вот ты знаешь же основы пайтон??? Так, сделай мне приложение на PyQT5 с привязкой по серийнику диска без гайдов, пжпжпж
|
|
|

16.04.2023, 13:19
|
|
Постоянный
Регистрация: 06.11.2021
Сообщений: 397
С нами:
2378594
Репутация:
48
|
|
Сообщение от Vtylochka
Вот ты знаешь же основы пайтон??? Так, сделай мне приложение на PyQT5 с привязкой по серийнику диска без гайдов, пжпжпж
Мне лень щас вообще что то делать
|
|
|

16.04.2023, 13:21
|
|
Постоянный
Регистрация: 05.11.2021
Сообщений: 634
С нами:
2380746
Репутация:
68
|
|
Сообщение от riverya4life
Мне лень щас вообще что то делать
Та я не тебе, а этому гению)
|
|
|

16.04.2023, 13:23
|
|
Постоянный
Регистрация: 06.11.2021
Сообщений: 397
С нами:
2378594
Репутация:
48
|
|
Сообщение от Vtylochka
Та я не тебе, а этому гению)
Не заметил, сорян 😅
|
|
|

16.04.2023, 13:46
|
|
Познающий
Регистрация: 28.11.2018
Сообщений: 87
С нами:
3925538
Репутация:
63
|
|
Сообщение от Vtylochka
Вот ты знаешь же основы пайтон??? Так, сделай мне приложение на PyQT5 с привязкой по серийнику диска без гайдов, пжпжпж
какие основы, чувак, мы говорим про базу, а база, это умение читать и использовать документацию. не неси бреда, пожалуйста
|
|
|

16.04.2023, 13:54
|
|
Постоянный
Регистрация: 05.11.2021
Сообщений: 634
С нами:
2380746
Репутация:
68
|
|
Сообщение от sadasdasdasdasdasd
какие основы, чувак, мы говорим про базу, а база, это умение читать и использовать документацию. не неси бреда, пожалуйста
Умение читать документацию - навык, но никак не база)
База - это знание встроенных функций и конструкций, магических методов, ООП, PEP8 и другой информации о языке. Не неси бред кобылы, плз
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|