Создание бота на основе discord.py. Часть 1
Это первая статья про создание бота для Discord. В конце статьи находятся ссылки на следующие части, со временем они будут дополняться. Статьи следуют друг за другом, без каких-либо «информационных дыр». Если нашли опечатку или неточность, отпишите о проблеме в комментариях или в личных сообщениях, максимально оперативно всё поправим! А теперь переходим непосредственно к созданию бота.
В данной части
- Создание тестового сервера
- Включение режима разработчика
- Создание приложения и получение токена
- Добавление бота на сервер
- Установка библиотеки discord.py
- Первые строчки кода
Создание сервера
Гайд будет максимально подробный, поэтому и начинать будем с создания тестового сервера. Зачем он нужен? Лишь для вашего удобства и безопасности, если у вас уже есть большой сервер, тем более не стоит сразу добавлять на него разрабатываемого бота. Никто не защищён от багов и дыр в безопасности.

- Заходим в дискорд
- Слева видим список серверов, листаем в самый низ до кнопки «Создать сервер«.
- Создаём сервер по любому из предложенных шаблонов.
Включаем режим разработчика
Это необязательно, но очень желательно. В режиме разработчика появляются некоторые полезные элементы для удобства разработки, например, в меню пользователя появляется пункт, который позволяет скопировать его ID.

Чтобы включить этот режим, заходим в настройки.

В категории «Настройки приложения» ищем «Расширенные«.

И включаем режим разработчика.

Получение токена
Для начала нам нужно зайти на страницу создание приложений и нажать New Application.

После этого вам предложат назвать ваше приложение (Потом можно будет изменить).

После создания, попадаем на страницу настройки приложения. В меню выбираем «Bot«.

На данной странице нажимаем на «Add Bot«. Скопируем токен и сохраним его.

Так же, сразу можно выдать дополнительные разрешения боту, чтобы потом об этом не задумываться.

Добавление бота на сервер
В меню ищем пункт OAuth2 –> URL Generator.

В поле SCOPES выбираем bot и applications.commands. В появившемся ниже поле выбираем Administrator, это более удобно для тестирования. Но когда бот будет работать в продакшене, лучше выставлять только те права, которые правда нужны, потому что никто не защищён от потери токена, а с правами администратора это может стать очень большой проблемой.

Копируем появившеюся ниже ссылку и вставляем в адресную строку браузера. Если у вас не выполнен вход в браузере, его необходимо произвести. После чего выбираем тестовый сервер из списка и нажимаем «Продолжить» и далее «Авторизовать«.

Ура! Наш бот на тестовом сервере!

Установка библиотеки
Для начала нужно установить python, данный этап не расписан, но желательно установить версию 3.10 (Последняя версия на момент написания 3.10.5). Если у вас Windows, для проверки можете использовать следующую команду
py --version
В ответ получите версию вашего python. Устанавливать будем не стабильную, а разрабатываемую версию, для этого пропишем следующую команду. (Это можно делать уже внутри проекта). Хотя некоторые IDE устанавливаю git вместе с собой, можете скачать его отдельно.
py -m pip install git+https://github.com/rapptz/discord.py
Если всё же хотите установить стабильную, релизную версию, пропишите следующую команду.
py -3 -m pip install -U discord.py py -3 -m pip install -U discord.py[voice]
Подробнее про установку библиотеки и саму библиотеку можно прочитать тут.
Первые строчки кода
Пришло время писать код! Программирование в статьях будет происходить в PyCharm, хоть это и довольно тяжёлая IDEA, она удобная и бесплатная для студентов.
Не советую создавать проект через внутренний интерфейс, может появиться множество ненужных папок и файлов, вместо этого создадим папку проекта вручную и откроем как пустой проект.
Для этого заходим в PyCharm, далее File –> Open.

P.s. Не обращайте внимания на другую тему IDE.
В появившемся окне ищем созданную папку, выбираем её и нажимаем «Ok«. Обратите внимание на то, что нужно просто нажать по папке, а не проваливаться в неё.

Если PyCharm автоматически не создал main.py, создайте его вручную.
Вставляем код ниже и запускаем.
import discord # Подключаем библиотеку from discord.ext import commands intents = discord.Intents.default() # Подключаем "Разрешения" intents.message_content = True # Задаём префикс и интенты bot = commands.Bot(command_prefix='>', intents=intents) # С помощью декоратора создаём первую команду @bot.command() async def ping(ctx): await ctx.send('pong') bot.run('token')

В консоли вы увидите логи запуска бота. Они могут быть красными, не бойтесь, сначала прочитайте сами сообщения, они скорее, всего просто информационные.

Идём в дискорд и используем нашу первую команду.

Немного объясним данную структуру. Поскольку это обычная команда, вся информация хранится в ctx(Переменная одноимённого класса). Она имеет следующие поля:
['args', 'author', 'bot', 'channel', 'cog', 'command', 'command_failed', 'guild', 'invoked_parents', 'invoked_subcommand', 'invoked_with', 'kwargs', 'me', 'message', 'prefix', 'subcommand_passed', 'valid', 'voice_client']
И следующие команды:
['fetch_message', 'history', 'invoke', 'pins', 'reinvoke', 'reply', 'send', 'send_help', 'trigger_typing', 'typing']
Если вы знакомы с синтаксисом языка, то данный список можно получить с помощью встроенной функции dir.
print(dir(ctx))
На более правильно прочитать документацию про Context.
Заключение
Сразу отвечу всем комментаторам. Да — подобных статей море, в том числе есть официальная документация. Но поскольку в моих планах есть создать серию статей, я хотел бы, что бы в них было описано всё, начиная с самых азов.
И небольшое примечание. Статьи строятся на основании того, что у вас есть опыт и знания программирования на python.
Команды для Discord

Мессенджер Дискорд обладает неимоверным функционалом. Среди многочисленных возможностей Дискорда можно выделить специальные команды для текстового чата. Их цель разнообразить и сделать более ярким общение с друзьями в текстовом чате мессенджера. Воспользуйтесь советами статьи и удивите своих друзей интересными фишками в сообщениях.
Общие сведения
Разработчики Discord изобрели целый набор команд для своего мессенджера, который пользователи могут использовать по своему усмотрению.
Условно разделим команды в Дискорде на три группы:
- для форматирования текста в сообщениях;
- для прикольных фишек;
- команды для ботов.
Далее поочередно рассмотрим каждую группы команд по отдельности.
Форматирование текста
Участники текстовых чатов могут с помощью специальных символов изменить шрифт в своих сообщениях. Доступны следующие основные шрифты:
- курсив;
- жирный;
- подчеркнутый;
- перечеркнутый.
Для изменения шрифта в своих сообщениях, необходимо правильно использовать комбинации специальных символов. Для простоты и наглядности приведем следующую таблицу.
| Шрифт | Пример | Результат |
| Курсив | *111* или _111_ | 111 |
| Жирный | **222** | 222 |
| Подчеркнутый | __333__ (здесь используется по два нижних подчеркивания с каждой стороны) | 333 |
| Перечеркнутый | ~~444~~ | 444 |
ВАЖНО! Для успешного выполнения команд по форматированию текста важно вписывать специальные символы и выделяемый отрывок без пробелов.
После ввода текста и выделения необходимых фрагментов с помощью указанных выше специальных символов нажмите ENTER и в отправленном сообщении текст будет изменен.
В Дискорде доступна возможность комбинирования 4-х основных шрифтов. В данном случае необходимо правильно комбинировать специальные знаки. Исчерпывающий список комбинированных шрифтов (которого нет даже на официальном сайте Дискорда) смотрите в таблице ниже.
| Шрифт | Пример комбинации | Результат |
| Жирный курсив | ***111*** | 111 |
| Подчеркнутый курсив | __*222*__ (здесь используется по два нижних подчеркивания с каждой стороны) | 222 |
| Перечеркнутый курсив | ~~*333*~~ | 333 |
| Подчеркнутый жирный | __**444**__ (здесь используется по два нижних подчеркивания с каждой стороны) | 444 |
| Перечеркнутый жирный | ~~**555**~~ | 555 |
| Подчеркнутый перечеркнутый | __~~666~~__ (здесь используется по два нижних подчеркивания с каждой стороны) | 666 |
| Подчеркнутый жирный курсив | __***777***__ (здесь используется по два нижних подчеркивания с каждой стороны) | 777 |
| Перечеркнутый жирный курсив | ~~***888***~~ | 888 |
| Подчеркнутый перечеркнутый жирный | ~~__**999**__~~ (здесь используется по два нижних подчеркивания с каждой стороны) | 999 |
| Подчеркнутый перечеркнутый курсив | ~~__*000*__~~ | 000 |
| Подчеркнутый перечеркнутый жирный курсив | __~~***1111***~~__ (здесь используется по два нижних подчеркивания с каждой стороны) | 1111 |

При комбинации специальных символов нет разницы в том, какой знак стоит ближе к форматируемому тексту. К примеру: комбинации ~~*Дискорд*~~ и *~~Дискорд~~* приведут к одному результату – слово “Дискорд” будет оформлено перечеркнутым курсивом.
Выделить текст с обеих сторон символами, которые используются для форматирования, и при этом сделать так, чтобы они отображались в тексте, возможно. При этом форматирование будет отменено. Для этого перед отрывком, в котором будут использоваться специальные знаки, нужно поставить знак бэкслеш. Выглядит он так “\” (без кавычек).
Команды для прикольных фишек
В Discord существует специальный набор команд, который может разнообразить общение в текстовом чате, а также выполнить определенные действия. Расскажем о двух наборах команд, которые предваряются двумя специальными знаками.
Для использования первой группы команд необходимо в начале сообщения ввести знак “/” (без кавычек) и соответствующее слово. Рассмотрим 9 таких команд.
- /giphy. После ввода команды впишите через пробел слово, на тему которого хотите найти анимированную гифку. Дискорд предложит на выбор несколько вариантов. Кликните на понравившийся ролик и нажмите ENTER для отправки.
- /tenor. Суть этой команды повторяет предыдущую – отличие лишь в наборе роликов.
- /tts. Введите эту комбинацию в чат и через пробел впишите текст. После отправки такого послания, текст вашего сообщения будет преобразован в речь и будет вслух зачитан отправленному контакту.
- /me. Шрифт текста после этой комбинации будет преобразован в курсив.
- /tableflip. Введите комбинацию, через пробел желаемый текст и нажмите ENTER. Получателю будет отправлено ваше сообщение в конце которого будет такое изображение (╯°□°)╯︵ ┻━┻. Судя по переводу слова и изображению речь идет о перевернутом столе.
- /unflip. Эта команда нарисует следующее изображение: ┬─┬ ノ( ゜-゜ノ).
- /shrug. Эта комбинация отправит получателю такую веселую картинку: ¯\_(ツ)_/¯.
- /spoiler. Ввод этого слова скрывает текст, введенный после него. Текст будет заретуширован чёрным цветом. Таким образом создается интрига содержания сообщения. Чтобы увидеть, что скрывается под чёрным “покрывалом” достаточно нажать на скрытое послание.
- /nick. Это вводное слово сменит ваш ник на сервере. Просто впишите /nick и ваш новый ник. Нажмите ENTER и ваше имя на сервере изменится.
Если вы пользуетесь Дискордом на компьютере, тогда после ввода в текстовое поле знака “/” автоматически появится список с описанными выше командами.
ВНИМАНИЕ! На телефоне и планшете функции с использованием символа “/” не работают.
Вторая группа команд начинается с ввода знака “@” (без кавычек). При вводе символа “собачки” на компьютерной версии мессенджера на выбор будут представлены 2 команды:
- @everyone. Введите указанное слово, впишите необходимое сообщение и отправьте его. Этим сообщением будут оповещены все, кто обладает правом на просмотр канала, через который отправляется послание.
- @here. Эта команда схожа с предыдущей – различие лишь в том, что оповещены о месседже будут только те участники сервера, которые находятся в сети.
Если знак “собачки” ввести первым символом в текстовом поле, тогда будет выведен список участников сервера, из которого можно выбрать человека для отправки сообщения.
Команды для ботов
В этом разделе стоит упомянуть о том, что ботов — программ-помощников существует большое разнообразие. Боты различаются между собой по назначению, поэтому функции и команды для их выполнения также отличаются друг от друга. Ввиду этого описать все возможные команды для всех ботов в одной статье просто невозможно.
Функции ботов очень разнообразны. К примеру, они могут выполнять следующие действия:
- находить и воспроизводить музыкальные треки;
- выводить информационные сообщения на различные тематики;
- показывать веселые фотографии;
- выгонять участников сервера;
- изменять имя канала.
Весь спектр команд для бота, которые он может выполнить, можно узнать на сайте, откуда скачивается робот-помощник. Если бот уже скачан на Дискорд, тогда при помощи определенного запроса, бот сам выведет весь список выполняемых команд. Часто в таком запросе присутствует английское слово “help”.

САМОЕ ВАЖНОЕ! Дискорд имеет большой спектр возможностей. Для того чтобы воспользоваться обилием функций этого мессенджера, пригодится знание специальных команд для их реализации. С помощью команд, описанных в статье, вы сможете форматировать текст в сообщениях, разнообразите вашу переписку на сервере, а также узнаете, где можно получить информацию о наборе команд для любого бота-помощника.
Пользовательские команды
Вы можете создавать свои команды, которые могут выполнять определенные действия.
Пользовательские команды (кастомные команды) создаются и настраиваются в панели управления сервера во вкладке с названием «Команды». Любую пользовательскую команду можно отключить при необходимости и настроить необходимые права доступа аналогично встроенным командам бота.
Интерфейс настроек#
У каждой команды есть определенный набор общих настроек:

- Команда — имя команды, по которому она будет вызываться в Discord;
- Действие команды — действие по умолчанию, которое будет выполнено для этой команды;
- Краткое описание — просто краткое описание данной команды, которое отображается в списке пользовательских команд, а также в справке самого бота в Discord;
- Права доступа и выполнение — описывает права доступа к команде по ролям, каналам, типу каналов и как часто можно вызывать команду (кулдаун);
- Контекстные меню — позволяет включить и настроить вызов этой команды по нажатию пункта в контекстном меню в Discord;
- Слэш-команда — позволяет включить и настроить эту команду как слэш-команду, более подробно описано в разделе Слэш-команда.
Контекстные меню#
Вызов действия пользовательской команды можно осуществить по нажатию пункта контекстного меню участника или сообщения:
- В случае контекстного меню сообщения, шаблон действия получает экземпляр этого сообщения в переменной message ;
- В случае контекстного меню участника, шаблон действия получает экземпляр этого участника в arguments.targetMember ;
Контекстные меню имеют некоторые ограничения:
- Максимум 5 пунктов контекстных меню сообщения;
- Максимум 5 пунктов контекстных меню участника.
Слэш-команда#
Пользовательская команда может быть включена как Слэш-команда с возможностью использования параметров и даже разделения на подкоманды. Интерфейс настроек слэш-команды интуитивно понятен и не требует пояснения.
Все указанные участником параметры слэш-команды передаются в действие пользовательской команды как часть переменной arguments .
Для получения нужного параметра следует использовать следующий синтаксис:
arguments.getOption('имя_параметра') >>
Кроме этого, можно получить список всех параметров определённого типа:
arguments.getOptionsByType('MEMBER') >>
Более подробно в описании типа данных Arguments.
Слэш-команды имеют некоторые ограничения:
- Все ограничения, описанные в общем разделе Слэш-команд;
- Корневая слэш-команда может содержать либо параметры, либо подкоманды, но не вместе;
- Максимум 25 параметров на корневую команду или подкоманду;
- Максимум 25 подкоманд;
- Максимум 25 вариантов выбора для параметров строк или чисел;
- Максимум 100 пользовательских команд с включенной слэш-командой.
Горячие клавиши#
В диалоге создания или редактирования пользовательской команды можно использовать горячие клавиши:
- Сtrl+S — быстрое сохранение команды;
- F11 — переход в полноэкранный режим активного поля шаблона сообщения.
Команды в Discord для бота, чата, игр

Одним из главных помощников для пользователей Discord являются команды для чатов и ботов, а также горячие клавиши для общения или игры. Ниже рассмотрим разные виды команд, приведем их расшифровку и особенности применения.
Команды для бота
Боты — специальные коды, созданные на базе API и используемые на серверах Дискорд. Они устанавливаются в программе и используются для расширения ее функционала. Сегодня существует много полезных Discord-ботов. Наиболее популярные — Mee6, Red, Dyno и другие. Все они отличаются по особенностям работы и функциональной начинке. При этом команды для ботов в Дискорде также отличаются. Эти данные необходимо изучать перед добавлением на официальной странице софта.
К примеру, Mee6 — универсальный бот, позволяющий создавать свои собственные команды и настраивать поздравление для участников.

Выделим несколько основных Дискорд-команд:
- !rank — отображение уровня участника;
- !levels — получение URL на страницу с участниками;
- !help — отображение основных и кастомных команд;
- !dashboard — ссылка на настройки бота;
- !ban — бан участника;
- !tempban — бан пользователя на определенный период;
- !clear — удаление сообщения в канале;
- !infractions — отображение числа нарушений участника и т. д.

Подробный список приказов для этого бота Дискорд можно посмотреть на сервисе discord.fandom.com/ru/wiki/MEE6.
Команды чата
Многие пользователи не знают, что существуют так называемые команды Дискорда для чата. Выделим основные варианты:
- +:(название эмодзи): — добавление реакции на прошлое сообщение в чате.
- s/text/replace — быстрое исправление опечатки (text — слово с ошибкой, а replace — исправленный вариант). Преимущество приказа в том, что его можно использовать для правки предыдущего сообщения без входа в настройки.
- @user — получение идентификатора юзера.
- @role — получение идентификатора роли.
- #channel — получение идентификатора канала.
- :smiley: — возврат версии смайла с юникодом.
- /tableflip: — добавление к тексту (╯°□°)╯︵ ┻━┻
- /unflip: — добавление к сообщению ┬─┬ ノ( ゜-゜ノ)
- /shrug: — добавление ¯_(ツ)_/¯
- /me: — вывод сообщения в виде курсива.
- /nick: — внесение изменений в ник на сервере.
- /tenor и /giphy : — поиск альтернативных картинок в Сети.
- /spoiler: — пометка сообщения в качестве спойлера.
- /tts: — озвучивание сообщения всем участникам на канале.

Как видно, Дискорд-команды чата больше направлены на оформление текста и исправление ошибок. Но их применение во многих случаях может оказаться полезным.
Горячие клавиши
Не менее полезная опция — горячие клавиши Discord, которые можно использовать в обычном режиме или во время игры. При желании их легко задать вручную Для этого сделайте следующие шаги:
- Войдите в программу Дискорд.
- Жмите на шестеренку внизу.
- Найдите слева пункт Горячие клавиши.
- Выберите необходимое действие в любом из полей.
- Введите в поле рядом нужную комбинацию.

При желании можно забить комбинацию на рацию (обычный и приоритетный) режим, обратную рацию, включение и отключение микрофона, режима стримера, звука в динамиках, оверлея и т. д.
При этом есть ряд клавиш, которые работают по умолчанию. К примеру, комбинация shift+` используется прямо в игре. В этом случае появляется список голосовых Дискорд-каналов и настройка оверлея. Комбинацию можно поменять в разделе настроек. После появления списка каналов жмите на левую кнопку мышки по участнику и поменяйте громкость.
Дополнительно можно использовать и другие комбинации:
- Control + Shift + N — создание или присоединение к серверу;
- Control + Enter — ответ на звонок;
- Control + K — поиск или начало общения;
- Escape — отклонение входящего звонка;
- Control + Shift + T — создание частной группы;
- Control + Left Square Bracket — звонок в личное сообщение или группу;
- Tab — текстовая область фокуса;
- ALT + Left Arrow Key — возврат к аудиоканалу;
- ALT + Right Arrow Key — возврат к текстовому каналу;
- Control + Shift + M — отключение аудио;
- Control + Shift + H — помощь и т. д.
Подробный перечень можно почитать на сайте поддержки — https://support.discord.com/hc/ru/articles/225977308.

Если вдруг не работают горячие клавиши Дискорд, попробуйте из заново запрограммировать через настройки или убедитесь в работоспособности клавиатуры.
Итоги
Теперь вы знаете, какие команды бывают в Discord, для чего их можно использовать, и чем они помогают пользователям. Главное — не упускать такую возможность и пользоваться ей во время общения или игры.