Введение
В этом руководстве объясняется, как запустить бота Discord на сервере Linux. Бот Discord — отличный способ изучить основы веб-разработки и бэкенда, весело проводя время с друзьями. С недавним выходом Discord в открытый доступ изучение создания и запуска ботов Discord может стать увлекательным занятием. Создать бота Discord несложно, но для этого требуется ряд определённых шагов, которые необходимо соблюдать, чтобы ваш бот Discord был безопасным и работоспособным.
Поскольку боты Discord выполняют код и могут выполнять очень сложные взаимодействия с серверами Discord, их необходимо размещать на серверах. Хотя вы можете воспользоваться платными услугами по размещению бота Discord в интернете, после изучения обучающих программ, которые вы найдете здесь, создать собственный бота Discord станет гораздо проще.
В этом руководстве используется Python с библиотекой discord.py. Боты Discord в основном написаны на Python (библиотека discord.py) или JavaScript (библиотека discord.js), которые представляют собой отличные экосистемы, совместимые со всеми другими библиотеками, написанными на этом языке. Поэтому большинство шагов одинаковы для обоих языков (за исключением шагов, специфичных для конкретного языка). Однако начать работу с библиотекой Python проще, поэтому она и была выбрана для этого руководства.
Пример бота Discord в этой библиотеке будет представлять собой простого бота для проверки орфографии, который покажет вам некоторые из самых важных команд в библиотеке discord.py.
Предпосылки
- VPS или виртуальный частный сервер
Если у вас не так много пользователей или ваш бот выполняет простую задачу, то требований к оборудованию практически нет, и все, что вам нужно — это уметь запускать Python.
- Любая 64-битная операционная система Linux (x86-64 или Arm64)
В этом руководстве предполагается, что вы используете Ubuntu, но те же шаги будут работать и в других дистрибутивах Linux и Windows с небольшими изменениями.
- Учетная запись Discord с сервером Discord, на котором у вас есть права администратора.
Базовые или средние знания Python
Шаг 1 — Настройка виртуальной среды
Прежде чем начать, рекомендуется использовать виртуальную среду Python под названием virtualenv, которая позволяет каждому проекту использовать определённые версии библиотек, чтобы избежать несовместимости между проектами, которым могут потребоваться определённые версии библиотек. Это настоятельно рекомендуется для ботов Discord, работающих на Python, поскольку это гарантирует постоянную работоспособность бота и позволяет легко перенести его на другой сервер.
Откройте терминал на вашем Linux или подключитесь к серверу через SSH (безопасная оболочка) и выполните следующие команды:
apt update && apt install python3.10-venv
mkdir discord-bot && cd discord-bot/
python3 -m venv discord-bot-env
source discord-bot-env/bin/activateЭто установит пакет Python, необходимый для создания виртуальных сред, создаст каталог для бота Discord и активирует виртуальную среду Python. Теперь ваш терминал должен выглядеть так: (discord-bot-env) Прежде чем ваше имя пользователя отобразится, установите библиотеку discord.py.
python3 -m pip install --upgrade discord.pyمرحله 2 – ربات خود را با Discord ثبت کنید
Перед запуском любых скриптов вам необходимо зарегистрировать своего Discord-бота в Discord и получить токен, который ваш бот будет использовать для аутентификации в Discord. Это простой, хотя и длительный процесс. Просто выполните следующие действия:
1_Откройте веб-браузер.
2_Войдите на сайт Discord.
3_Войдите на портал разработчиков Discord.
4_Нажмите «Новая заявка».
5_В разделе «Создание приложения» дайте имя вашему боту.
6_Нажмите на бота и перейдите в раздел ботов.
7_Убедитесь, что выбран параметр “Публичный бот” и не выбран параметр “Требуется предоставление кода OAuth2”.
8_Нажмите “Сбросить токен” и запишите свой токен. Не потеряйте его. В противном случае вам придётся снова нажать кнопку, получить новый токен и обновить токен в вашем коде.
9_Прокрутите вниз и прочитайте весь раздел "«Намерения привилегированных шлюзов» Включить. Это позволит боту работать. Поскольку у вашего бота пока нет кода, условия для более чем 100 серверов не действуют.
10_Перейдите в раздел OAuth2, а затем в подраздел «Генератор URL». URL-адрес позволит вам и любому другому пользователю вашего бота легко добавить его на сервер, предоставив только необходимые разрешения и функции.
11_В разделе “Области действия” нажмите на “бот”.
12_В разделе "«Разрешения для ботов», выберите все разрешения, которые вы хотите предоставить боту. Это зависит от того, какие действия вы хотите разрешить вашему боту. Для простого бота в этом примере следующих разрешений должно быть достаточно.
13_В разделе «Сгенерированный URL» нажмите «Копировать».
14_Введите этот URL в строку поиска и перейдите по ссылке.
15_Ознакомьтесь с предоставленной информацией о возможностях бота и добавьте его на сервер. Добавить бота можно только на сервер, на котором у вас есть права администратора.
16_Рой“Продолжать”Щелчок»
17_Выберите разрешения, которые вы хотите предоставить своему боту на сервере, на который вы его добавляете. Постарайтесь предоставить боту минимальное количество разрешений, которые сохранят его полную функциональность. Предоставление дополнительных разрешений может представлять угрозу безопасности, если кто-то получит ваш токен бота.
Шаг 3 — Напишите код своего бота
Теперь, когда бот зарегистрирован в Discord, нужно написать его код. К счастью, создать простого бота для Discord легко, и файлы discord.py отлично подходят для этого.
В той же папке, где вы запускали команды в «Шаге 1», файл с именем discord_bot_script.py Создавайте текст в вашем любимом текстовом редакторе. В этом примере я буду использовать nano.
nano discord_bot_script.pyСкопируйте и вставьте следующий код и замените токен в последней строке на свой собственный токен:
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
words = [["youre", "you're"], ["im", "i'm"], ["Im", "I'm"], ["hes", "he's"], ["shes", "she's"]]
@client.event
async def on_ready():
print("Bot successfully logged in as " + client.user)
@client.event
async def on_message(message):
if message.author == client.user:
return
for word in words:
if word[0] in message.content:
await message.channel.send(str(message.author) + ", you misspelled " + word[1] + " as " + word[0], reference=message)
client.run('<YOUR-TOKEN-HERE>')من خط به خط نمیروم، اما این ربات ساده بیشتر آنچه را که برای شروع ایجاد رباتهای Discord خود در پایتون باید بدانید را نشان میدهد. با اعلام مقاصد شروع می شود، که اساساً فیلترهایی هستند که ربات شما برای قضاوت در مورد رویدادهایی که ثبت می کند و به آنها پاسخ می دهد استفاده می کند. برای مثال، اگر یک ربات غلطگیر املا دارید، فقط به رویدادهای پیام پاسخ میدهید، اما رویدادهایی مانند پیوستن افراد به سرور یا انجام بازیهای خاص را نادیده میگیرید. میتوانید در صفحه مستندات discord.py درباره مقاصد بیشتر بخوانید.
On_Ready, когда загружается скрипт бота и бот подключается к своим серверам.ON_MESSAGE, когда кто-то пишет новое сообщение на любом сервере, к которому подключен бот. Это событие также имеет аргумент, который передаёт содержимое сообщения и метаданные в функцию.
Для функции on_readyЭтот код просто заставляет бота выводить сообщение на терминал. Вы можете использовать функцию печати для записи событий, происходящих во время разработки.
Для функции on_messageСначала код проверяет, является ли автором сообщения сам бот, и если да, то функция возвращается. Если эта проверка не будет выполнена, бот может случайно зациклиться и бесконечно отвечать на собственные сообщения. Затем код проверяет, присутствуют ли в полученном сообщении какие-либо слова из списка. Если да, то он отвечает на отправленное сообщение с помощью функции send. Это одна из самых важных и мощных функций в discord.py, и изучение её полного потенциала позволит вам создавать интересные и сложные боты.
Теперь, когда вы написали своего бота, сохраните код и запустите его с помощью следующей функции:
python3 discord_bot_script.py

















