Как сделать упоминание discord py
Всем привет.
В интернете очень мало качественных гайдов на тему разработки Discord-бота . Поэтому я решил написать полный подробный курс на эту тему.
В этом курсе мы будем учиться созданию Discord-бота на языке программирования Python (библиотека Discord.py) с нуля.
Создание приложения
Нажимаем на нее. В открывшемся окне нам будет предложено ввести название нового приложения.
Вводим и нажимаем Create. Теперь нам нужно выбрать вкладку "Bot" в меню слева.
В правой верхней части экрана нажимаем "Add Bot" . В открывшемся окне нажимаем "Yes, do it!" .
Строка "USERNAME" - будущее имя бота.
Token - это и есть наш код доступа к API, ради которого мы все это делали.
Добавление бота в канал
После перехода по ссылке, в открывшемся выбираем наш сервер, куда мы хотим добавить бота.
Теперь нажимаем кнопку "Продолжить" , а затем "Авторизовать" , проходим проверку на робота. Готово! Наш бот добавлен в наш сервер.
Теперь перейдем непосредственно к разработке самого бота.
Установка Discord.py
Я буду показывать пример работы в Командной Строке Windows . В целом, ход действий мало отличается от Linux , так что, если у вас линукс, - пишите то же самое.
Для удобства работы лучше будет создать виртуальное окружение (Virtual Env) . В консоли переходим в папку нашего проекта. В ней выполняем следующие команды:
// Устанавливаем VirtualEnv, если он у вас еще не установлен
> pip install virtualenv
// Создаем нашу виртуальную среду
> python -m venv [название]
// Активируем виртуальную среду
[Windows] > [название]\Scripts\activate.bat
[Linux] > source [название]/bin/activate
// Активацию нужно будет повторять при каждом запуске консоли
Теперь нам нужно установить библиотеку Discord.py . Пишем в консоли:
Готово. Библиотека успешно установлено в наше виртуальное пространство. Теперь можно перейти непосредственно к коду.
Написание основы для бота
В папке нашего проекта создаем Python-файл с любым названием и открываем его в любом редакторе. В моем случае это будет bot.py .
В этот файл вы должны написать такой код:
import discord
from discord.ext import commands
Создание первой команды
Как использовать markdown в Discord'e, чтобы сделать текст более красивым?
Последнее обновление: 17.10.20
Всё это можно комбинировать друг с другом:
Наклонённый, Жирный и Зачёркнутый :
_**Наклонённый, Жирный и Зачёркнутый**_
Чтобы спрятать какой-то текст перед нажатием на него, следует записать нужную фразу между ||
Можно писать блоки кода прямо в Discord'e.
Однострочный Блок Кода
Нужно записать текст между "`":
Однострочные блоки кода можно комбинировать со шрифтами:
Многострочный Блок Кода
Чтобы сделать многострочный блок кода, нужно поставить "```" в начале и конце:
Многострочные блоки кода также можно комбинировать со шрифтами:
"Цветной" Многострочный Блок Кода
Используя синтаксис различных языков программирования, можно делать разноцветный текст:
Существует намного больше примеров, но, как мне кажется, никто не будет их использовать, т. к. они выглядят не очень красиво.
Если нужно убрать markdown, следует поставить \ перед символами:
- \*Не наклонённый\*
- \> Не цитата
- \|\|Не спойлер\|\| и т. д.
Существуют способы, как принудительно упомянуть канал/роль/пользователя. И не важно, что юзер не присутствует на сервере или канал находится на другом.
Для всех методов следует включить Режим разработчика в настройках Внешнего вида.
Чтобы упомянуть роль, не имея на это прав, следует:
- Копировать её ID. Как это сделать?
- Вставить его в конструкцию <@&Role ID> . Как это выглядит в Discord'e Участники с этой ролью не получат уведомление!Можно упомянуть только на том сервере, где эта роль есть.
Чтобы упомянуть пользователя, которого нет на сервере/у которого нет прав перебывать в канале, следует:
Чтобы вставить эмодзи где-угодно (например, в заголовок канала), следует:
Чтобы указать какую-то дату и время (это может быть полезно для ботов), следует:
- Узнать количество секунд, пройденных с 01.01.1970 до нужной даты (так званое, эпохальное время).
- Вставить его в конструкцию <t:Seconds> или <t:Seconds:R> . Как это выглядит в Discord'e
API discord предоставляет инструмент для создания и использования ботов. Рассмотрим пример создания базового музыкального бота и добавления его на сервер. Бот сможет проигрывать, пропускать и останавливать музыку, а также будет поддерживать функцию очереди воспроизведения.
Создаем новое приложение на портале разработки discord.
Переходим на портал и нажимаем на “new application”.
Затем вводим название приложения и нажимаем на кнопку “create”.
Затем переходим на вкладку бот и нажимаем на “add bot”.
Бот создан! Теперь можно перейти к добавлению его на сервер.
Добавляем созданный бот с помощью генератора OAuth2 URL.
Для этого переходим на страницу OAuth2 и выбираем бота в панели scope.
Теперь копируем сгенерированный URL и вставляем его в браузер.
Затем выбираем сервер, на который хотим добавить URL и нажимаем на кнопку “authorize”.
Переходим к созданию проекта с использованием терминала.
Для начала создаем директорию и переходим в нее, используя две следующие команды:
Затем создаем модули проекта с помощью команды npm init. После введения команды будут заданы несколько вопросов. Ответьте на них и продолжайте.
Создаем два файла, в которых мы будем работать.
Теперь откройте проект в текстовом редакторе. Я использую VS Code и открываю его с помощью следующей команды:
Прежде чем начать, нужно установить несколько зависимостей.
После завершения установки продолжаем написание файла config.json. Сохраните для бота токен и префикс, который он должен слушать.
Для получения токена снова зайдите на портал разработки discord и скопируйте его из раздела bot.
Это все, что нужно выполнить в файле config.json. Приступим к написанию кода javascript.
Сначала импортируем все зависимости.
Затем с помощью токена создаем клиента и логин.
Добавляем несколько базовых listeners, выполняющих метод console.log при запуске.
Теперь можно начать работу с ботом с помощью команды node. Бот должен быть online в discord и в консоль выведется“Ready!”
После этого проверяем, какую команду нужно запустить. Это можно выполнить с помощью простых операторов if.
Узнав, какие команды нужно запустить, можно перейти к их реализации.
Начнем с добавления команды play. Для этого понадобится песня и гильдия (гильдия представляет собой изолированную коллекцию пользователей и каналов и часто упоминается в качестве сервера). Также понадобится ранее установленная библиотека ytdl.
Для начала создаем map с названием очереди, в котором будут сохранены все песни, введенные в чат.
Переходим к получению информации о песне и сохранении ее в объект song. Для этого используем библиотеку ytdl, которая получает информацию о песне по ссылке на youtube.
Необходимая информация сохраняется в объект song.
В этом фрагменте мы проверяем, является ли serverQueue пустым. Если нет добавляем туда песню.
Если serverQueue имеет значение null, создаем контракт.
В этом блоке кода создается контракт, а песня добавляется в массив songs.
Затем присоединяемся к голосовому чату пользователя и вызываем функцию play(), которую затем реализуем.
Поскольку теперь можно добавлять песни в очередь и создавать контракт при его отсутствии, можно приступить к реализации функцию проигрывания.
Сначала создаем функцию play, которая обладает двумя параметрами (гильдия и песня, которую нужно проиграть) и проверяет, является ли объект song пустым. Если да, то покидаем голосовой канал и удаляем очередь.
Затем начинаем проигрывать песню с помощью функции playStream() и URL-адреса песни.
В этом фрагменте мы создаем stream и передаем его URL-адресу песни. Также добавляем два listeners, которые обрабатывают события end и error.
Примечание: это рекурсивная функция, которая повторяет вызов самой себя. Рекурсия используется для проигрывания следующей песни, когда другая заканчивается.
Теперь можно проиграть песню, введя !play URL в чат.
Переходим к реализации функции пропуска. Для этого нужно выполнить завершения диспетчера, созданного в функции play() для начала проигрывания следующей песни.
В этом фрагменте мы проверяем, находится ли пользователь, который ввел команду, в голосовом канале, а также есть ли песни для пропуска.
Функция stop() похожа на skip(), за исключением того, что массив songs очищается, из-за чего бот удаляет очередь и покидает голосовой чат.
Полный исходный код для музыкального бота:
У вас все получилось! Надеюсь, эта статья помогла вам разобраться в API Discord и создании с его помощью простого бота.
Discord одна из самых популярных коммуникационных платформ у геймеров и даже в профессиональной сфере , потому что он предлагает простой в использовании интерфейс, а также ряд очень интересных функций.
Например, вы можете поделиться экраном со всеми участниками видеоконференции , создать серверы с разными каналы использовать ботов , упоминания и т. д. В случае упоминаний они иногда могут повлиять на восприятие пользователем.
Часто пользователи злоупотребляют упоминаниями, которые могут раздражать. Чтобы решить эту проблему, их можно отключить. Здесь вы узнаете Как быстро и легко отключить упоминания @ всех в Discord? .
Что все упоминают в Discord и для чего они используются?
Пошаговая инструкция по отключению упоминания @Everyone в Discord.
Упоминание @каждый в Discord очень полезно, когда вам нужно сообщить что-то всем участникам цепочки на вашем сервере . Таким образом, пользователи будут получать уведомление независимо от того, вошли они в систему или нет. Однако это может что вы больше не хотели получать эти типы уведомлений . Но этого недостаточно, чтобы заглушить весь канал или сервер, потому что упоминания появляются всегда, пока @каждый используется .
Итак, если вы действительно хотите отключить эти упоминания, вам необходимо выполнить следующую процедуру:
- Щелкните имя сервера , чтобы открыть раскрывающееся меню.
- входить в настройки уведомлений .
- поиск вариант для Отключить звук @everyone .
«ОБНОВЛЕНИЕ ✅ Вы хотите отключить упоминания в Discord для всех?» RA ВОЙДИТЕ ЗДЕСЬ ⭐ и узнайте все о SCRATCH! »
После сделав эту модификацию , эти типы уведомлений больше не будут вас беспокоить. Важно отметить, что эта конфигурация применима только к этому серверу , поэтому, если вы хотите удалить все это, вам придется делать это в каждом из них вручную.
Какие еще уведомления можно отключить в Discord?
В дополнение к этому, в Раздор это возможно отключите другие типы уведомлений, чтобы не отвлекаться . Например, если вы выполняете работу или деятельность, требующую концентрации, вы можете перейти к настройкам для вырезать канал или даже сервер .
Темный:
Отключить канал
Чтобы применить этот параметр к одному каналу Вам нужно выберите значок колокольчика расположен вверху справа. Как только это будет сделано, вы оцените, что значок обновится. Имейте в виду, что это не означает, что все каналы будут отключены, поскольку это относится только к этому.
Если вы хотите сделать это с несколькими каналами в то же время на сервере вы должны перейти к стрелке рядом с именем сервера, чтобы открыть меню. Наконец идти в настройках уведомлений и оттуда вы можете управлять определенными каналами, о которых вы ничего не хотите знать.
Отключить сервер
С другой стороны, если вы хотите сохранить себе весь процесс и предпочитаете отключить сервер, вам следует сделать следующее:
- Щелкните имя сервера .
- Cliquez из Настройки уведомлений в прокручиваемое меню.
- Активируйте опцию соответствующий Muet (Имя сервера).
Однако, когда этот процесс применяется, он не мешает получать персональные уведомления, такие как @name, @rol, @everyone или @here . Так что, если вы хотите избавиться от него, вам придется сделать это вручную .
Если у вас есть какие-либо вопросы, оставляйте их в комментариях, мы свяжемся с вами как можно скорее, и это будет большим подспорьем для большего числа участников сообщества. Je Vous remercie!
Читайте также: