Создание дискорд-бота НАФФ


Преамбула

Вы хотите сделать своего собственного бота для Discord? У вас есть забавная идея для вашего сообщества? Что ж, давайте начнем.

В этом руководстве я буду использовать библиотеку NAFF на языке python.

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

Окружение

Как и при работе над любым проектом на python, я настоятельно рекомендую вам использовать виртуальные среды при работе над любым проектом. Это означает, что каждый проект не будет влиять ни на что другое в вашей системе. Не волнуйтесь, это не установка полноценной виртуальной машины, а просто небольшое окружение python.

cd "[your bots directory]"
python3 -m venv venv-name

# Linux
source venv/bin/activate
# Windows
venv/Scripts/activate
Вход в полноэкранный режим Выход из полноэкранного режима

Вот так просто, теперь вы используете виртуальную среду. Когда вы закончите, просто введите deactivate. Если вы хотите узнать больше о виртуальных средах, загляните на эту страницу.

Установка

Установить библиотеки python очень просто! Просто введите эту команду, и все готово.

python3 -m pip install naff
Войти в полноэкранный режим Выйти из полноэкранного режима

Базовый бот

Давайте сначала сделаем что-то очень простое, мы просто хотим подключиться к Discord и сказать, что мы вошли в систему.

import naff

bot = naff.Client()


@naff.listen()
async def on_ready():
    print(f"Logged in as {bot.user.username}")

bot.start("your_bot_token_here")
Войти в полноэкранный режим Выйти из полноэкранного режима

Теперь просто запустите ваш код, и вы увидите, что он вошел в систему!

Команды

Довольно скучно видеть только сообщение о входе в систему, было бы неплохо иметь команды, так что давайте сделаем это сейчас.

Для этого мы добавим команду ping слэш в код, который мы только что написали.

import naff

bot = naff.Client()


@naff.listen()
async def on_ready():
    print(f"Logged in as {bot.user.username}")

@naff.slash_command("ping", description="A ping command", scopes=[some_guild_id])
async def ping(ctx: naff.InteractionContext):
    await ctx.send("Pong")

bot.start("your_bot_token_here")
Войти в полноэкранный режим Выйти из полноэкранного режима

Давайте разберем этот декоратор. @naff.slash_command сообщает NAFF, что coroutine является командой. Отсюда у вас есть следующие параметры

Name — первый параметр, это имя команды, здесь это «ping».

Есть еще несколько параметров, с которыми вы можете играть, но их можно оставить для будущего руководства.

Вот и все, теперь у вас есть дискорд-бот с поддержкой NAFF и слэш-командами. Просто запустите бота и введите /ping в вашей гильдии!

Оцените статью
devanswers.ru
Добавить комментарий