Как сделать бота в дискорде

Как создать нового бота в Дискорде

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

Новый бот для Discord

Создание бота

Далее мы подробно рассмотрим, как сделать бота в Discord не имея глубоких знаний в программировании. Для этого мы будем использовать JavaScript. Дополнительные материалы для работы загрузите по ссылке.

Этап 1: Подготовка

  1. Загрузите node.js на ПК через официальный сайт.
  2. Заранее создайте новую папку, где и будут храниться данные проекта.
  3. Установите модуль Дискорда в только что созданную директорию (у нас это bot). Запустите командную строку и введите «cd Desktop/bot» (актуально, если вы создали папку с названием bot на рабочем столе) и нажмите «Enter». После этого введите «npm install discord.js —save».
  4. Перейдите на официальный сайт Discord и найдите вкладку для разработчиков. Здесь выберите «My Apps» и нажмите «New App». Разработчикам Discord
  5. Укажите название, описание, выберите картинку и подтвердите действия с помощью кнопки «Создать».
  6. Перейдите в настройки и отметьте параметр «Общественный бот».
  7. Нажмите на кнопку «Создать бота». Если появится ошибка, то попробуйте написать имя латинскими буквами.
  8. Авторизуйте бота на сервере по ссылке. Для этого замените в адресной строке браузера «Client ID» на значение из параметров приложения.
  9. Выдайте все необходимые разрешение и подтвердите действия.Создать приложение для Discord

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

Этап 2: Добавление команд

После подготовительного этапа и создания «оболочки» необходимо прописать команды для бота. Для примера мы добавим самую простую — ответ на запрос. Для этого понадобится простой текстовый редактор (например, блокнот), но лучше использовать специальную программу notepad++ (доступна бесплатно). Выполните следующие действия:

  1. В первой строке введите «const Discord = require(‘discord.js’);».
  2. Во второй — «const client = new Discord.Client();».
  3. В третьей — «var prefix = ‘++’». Вместо «++» можете указать любой другой префикс. Именно с него будут начинаться все команды.

Внимание! Везде нужно вводить текст из кавычек, но самих кавычек («») быть не должно. Все остальные символы обязательны.

Теперь будем создавать команду для ответа на сообщение (здесь же, следующей строчкой). Выглядеть она будет следующим образом:

  1. on(‘message’, message =><
  1. if(message.author === client.user) return;
  2. if(message.content.startsWith(prefix + ‘start’)) <
  1. message.channel.sendMessage(‘Welcome to server);
  • >
  • >);
  • В данном примере, сообщение «Welcome to server» будет появляться в ответ на нашу ++start. По желанию вы можете заменить текст на любой другой, но вводите его латиницей.
  • В последней строке добавьте «client.login(‘токен’);», где вместо слова токен укажите его значение. Узнать его можно в параметрах.
  • На этом этап программирования можно считать оконченным.

    Этап 3: Тестирование

    Теперь необходимо сделать так, чтобы бот появился в списке онлайн участников. Для этого вновь открываем командную строку и вводим «cd Desktop/bot» (для перехода в созданную папку) и «node bot.js». Если вы все сделали правильно, то он появится онлайн.

    Введите «++start» в текстовом канале Дискорда. В ответ bot должен отправить сообщение «Welcome to server». Если этого не происходит, а в процессе вы меняли префикс и другие значения, то попробуйте перепроверить код. Особое внимание уделите наличию пробелов и скобок.

    Заключение

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

    Как сделать бота в Discord

    Пользователи часто спрашивают, как создать бота в Дискорде и тем самым получить программу с необходимыми функциями. Сразу отметим, что достижение такой цели — непростая задача, а реализовать ее можно несколькими способами, к примеру, на основе discord.js, на Python или с помощью программы Discord Bot Maker.

    Как создать Дискорд-бота на основе discord.js

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

    Выполните следующие шаги:

    1. Войдите на сайт discord.com/developers/applications/.

    1. Жмите на кнопку New Application.

    1. Введите название будущего бота Дискорд, к примеру, Music Bot.
    2. Перейдите на вкладку Bot, а после жмите на кнопку Add Bot.


    Этих действий достаточно, чтобы создать бота Дискорд, после чего нужно его добавить на сервер с помощью OAuth2 URL-генератора. Сделайте следующие шаги:

    1. Переместитесь в раздел OAuth2 и выберите Bot в панели Scopes.

    1. Укажите необходимые разрешения для проигрывания музыки и чтения.
    2. Копируйте созданный URL и вставьте его в веб-проводник.
    3. Выберите сервер, куда нужно добавить URL.
    4. Жмите на кнопку авторизации (Authorize).


    На следующем этапе нужно создать проект с применением терминала. Для этого создайте директорию и перейдите ее с помощью следующих команд — mkdir musicbot && cd musicbot. Далее сделайте следующее:

    1. Создайте модули проекта с применением nmp init.
    2. Ответьте на несколько вопросов, которые необходимы, чтобы создать бота в Дискорд.
    3. Сделайте два файла, где будет вестись работа — touch index.js && touch config.json.
    4. Откройте проект в редакторе, к примеру, с помощью VS Code с применением приказа code.
    5. Установите группу зависимостей, необходимых для дальнейшей работы — npm install discord.js ffmpeg-binaries opusscript ytdl-core –save.
    6. Продолжите создание файла на config.json. На этом этапе сохраните префикс и токен для бота.
    1. Войдите на портал создания Дискорд и копируйте токен из раздела Bot (жмите на кнопку Copy).

    Теперь нужно создать код javascript. Для этого копируйте следующие зависимости:

    const Discord = require(‘discord.js’);

    const ytdl = require(‘ytdl-core’);

    После этого нужно создать с применением токена клиент и логин.

    const client = new Discord.Client();

    Далее добавьте несколько listeners, которые выполняют console.log при пуске.

    После этого начните работать с ботом Дискорд с применением node. Важно, чтобы вновь созданный Discord-бот был онлайн. В консоли появится Ready!. Команда — node index.js.

    Задание команд для бота Дискорд

    Теперь остается задать необходимые команды.

    Для чтения сообщений

    Чтобы Дискорд-бот мог читать, напишите функцию.

    client.on(‘message’, async message => <

    Далее сделайте listener для massage-события, получите сообщение и сохраните его в massage. Если информация пришла от бота Дискорд, игнорируйте ее. Выполните проверку с помощью следующей команды.

    if (message.author.bot) return;

    Если сообщение вернулось, значит, его смог создать бот. Теперь проверьте, с какого префикса оно начинается.

    if (!message.content.startsWith(prefix)) return;

    Далее проверьте команду, которую нужно активировать. Используйте следующие команды.

    > else if (message.content.startsWith(skip)) <

    > else if (message.content.startsWith(stop)) <

    message.channel.send(‘You need to enter a valid command!’)

    После получения списка команд, которые можно запустить, переходите к их созданию.

    Добавление песен

    Здесь нужна гильдия, песня и библиотека ytdl (должна быть установлена заранее). Сделайте map с названием очереди, где будут храниться песни.

    const queue = new Map();

    Теперь создайте async0-функцию с названием execute и убедитесь, находится ли пользователь в чате, и имеется ли необходимое разрешение. При его отсутствии пишете сообщение об ошибке.

    async function execute(message, serverQueue) <

    const args = message.content.split(‘ ‘);

    const voiceChannel = message.member.voiceChannel;

    if (!voiceChannel) return message.channel.send(‘You need to be in a voice channel to play music!’);

    const permissions = voiceChannel.permissionsFor(message.client.user);

    if (!permissions.has(‘CONNECT’) || !permissions.has(‘SPEAK’)) <

    return message.channel.send(‘I need the permissions to join and speak in your voice channel!’);

    Перейдите к получению данных о песне и сохраните ее в song. Для этого потребуется ytdl-библиотека, получающая данные по ютуб-ссылке.

    const songInfo = await ytdl.getInfo(args[1]);

    Необходимые данные сохраняются в song. Теперь нужно создать контракт, обеспечивающий добавление в очередь. Проверьте факт определения serverQueue (проигрывание музыки), а после отправьте сообщение о достижении результата. Если это не удалось сделать, нужно его создать и соединиться с голосовым каналом и начать играть песню.

    return message.channel.send($ has been added to the queue!);

    В раздел serverQueue, если он пустой, добавьте трек. В случае, когда serverQueue имеет параметр null, сделайте контракт.

    // Creating the contract for our queue

    // Setting the queue using our contract

    // Pushing the song to our songs array

    // Here we try to join the voicechat and save our connection into our object.

    var connection = await voiceChannel.join();

    // Calling the play function to start a song

    // Printing the error message if the bot fails to join the voicechat

    Проигрывание трека

    Теперь нужно создать опцию play для бота Дискорд с параметрами гильдия и песня, а также проверкой объекта song.

    function play(guild, song) <

    const serverQueue = queue.get(guild.id);

    Если да, нужно уйти с голосового канала и удалить очередь.

    Далее трек играет с применением URL и playStream.

    const dispatcher = serverQueue.connection.playStream(ytdl(song.url))

    // Deletes the finished song from the queue

    // Calls the play function again with the next song

    Здесь создается stream, а его URL передается адресу песни.

    Пропуск трека

    Здесь оформите завершение диспетчера, который был сделан в опции play. Такое действие необходимо, чтобы начал играть очередной трек.

    function skip(message, serverQueue) <

    if (!message.member.voiceChannel) return message.channel.send(‘You have to be in a voice channel to stop the music!’);

    if (!serverQueue) return message.channel.send(‘There is no song that I could skip!’);

    Здесь проверяется, есть ли пользователь в голосовом канале, и имеется ли трек для пропуска.

    Остановка

    Опция stop подразумевает очистку массива song, удаления очереди и выхода из чата.

    function stop(message, serverQueue) <

    if (!message.member.voiceChannel) return message.channel.send(‘You have to be in a voice channel to stop the music!’);

    Полный код бота для Дискорд

    const Discord = require(‘discord.js’);

    const ytdl = require(‘ytdl-core’);

    const client = new Discord.Client();

    const queue = new Map();

    client.on(‘message’, async message => <

    if (message.author.bot) return;

    if (!message.content.startsWith(prefix)) return;

    const serverQueue = queue.get(message.guild.id);

    > else if (message.content.startsWith(skip)) <

    > else if (message.content.startsWith(stop)) <

    message.channel.send(‘You need to enter a valid command!’)

    async function execute(message, serverQueue) <

    Как создать Discord бота с помощью Python

    Из этого туториала Вы узнаете, как полностью создать собственного бота Discord в облаке.

    Вам не нужно ничего устанавливать на свой компьютер, и вам не нужно ничего платить за размещение своего бота.

    Мы будем использовать целый ряд инструментов, в том числе Discord API, библиотеки Python, и платформы облачных вычислений под названием Repl.it.

    Как создать учетную запись Discord Bot

    Чтобы работать с библиотекой Python и API Discord, мы должны сначала создать учетную запись Discord Bot.

    Вот шаг к созданию учетной записи Discord Bot.

    1. Убедитесь, что вы вошли на сайт Discord.

    3. Щелкните кнопку «Новое приложение».

    4. Дайте приложению имя и нажмите «Создать».

    5. Перейдите на вкладку «Бот» и нажмите «Добавить бота». Вам нужно будет подтвердить действие, нажав «Yes, do it!»

    Оставьте настройки по умолчанию для Public Bot и Require OAuth2 Code Grant.

    Ваш бот создан. Следующим шагом будет копирование токена.

    Этот токен является паролем вашего бота, поэтому не сообщайте его никому. Это может позволить кому-то войти в ваш бот и делать разные плохие вещи.

    Вы можете регенерировать токен, если он случайно станет доступен.

    Как пригласить вашего бота присоединиться к серверу

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

    Перейдите на вкладку «OAuth2». Затем выберите «бот» в разделе «scopes».

    Теперь выберите нужные разрешения для бота. Наш бот будет в основном использовать текстовые сообщения, поэтому нам не нужно много разрешений. Вам может потребоваться больше, в зависимости от того, что вы хотите, чтобы ваш бот делал. Будьте осторожны с разрешением «Администратор».

    После выбора соответствующих разрешений нажмите кнопку «Copy» над разрешениями. Это скопирует URL-адрес, который можно использовать для добавления бота на сервер.

    Вставьте URL-адрес в свой браузер, выберите сервер, на который будет приглашен бот, и нажмите «Авторизовать».

    Чтобы добавить бота, вашей учетной записи необходимы разрешения «Управление сервером».

    Теперь, когда вы создали пользователя-бота, мы начнем писать код Python для бота.

    Как написать код для базового бота Discord с помощью библиотеки discord.py

    Мы будем использовать библиотеку Python discord.py, чтобы написать код для бота. discord.py — это оболочка API для Discord, которая упрощает создание бота Discord на Python.

    Как создать реплику и установить disocrd.py

    Вы можете разработать бота на своем локальном компьютере с помощью любого редактора кода. Однако в этом уроке мы будем использовать Repl.it, потому что это упростит всем пользователям следовать его указаниям. Repl.it — ​​это онлайн-среда IDE, которую вы можете использовать в своем веб-браузере.

    Создайте новый Repl и выберите «Python» в качестве языка.

    Чтобы использовать библиотеку discord.py, просто напишите import discord вверху main.py . Repl.it автоматически установит эту зависимость, когда вы нажмете кнопку «Run».

    Если вы предпочитаете кодировать бота локально, вы можете использовать эту команду в MacOS для установки discord.py:

    Возможно, вам придется использовать pip3 вместо pip .

    Если вы используете Windows, вы должны вместо этого использовать следующую строку:

    Как настроить события Discord для вашего бота

    discord.py вращается вокруг концепции событий. Событие — это то, что вы слушаете, а затем реагируете. Например, когда происходит сообщение, вы получаете событие об этом, на которое можете ответить.

    Сделаем бота, который отвечает на конкретное сообщение. Этот простой код бота вместе с объяснением кода взят из документации discord.py. Позже мы добавим в бота дополнительные функции.

    Добавьте этот код в main.py. (Вы можете назвать файл как-нибудь иначе, только не discord.py.) Я вскоре объясню, что делает весь этот код.

    Когда вы создали своего пользователя-бота в Discord, вы скопировали токен. Теперь мы собираемся создать файл .env для хранения токена. Если вы запускаете свой код локально, вам не нужен файл .env . Просто замените os.getenv(‘TOKEN’) токеном.

    .env файлы используются для объявления переменных среды. На Repl.it большинство создаваемых вами файлов видны всем, но .env файлы видны только вам. Другие люди, просматривающие публичный ответ, не смогут увидеть содержимое файла .env .

    Поэтому, если вы разрабатываете на Repl.it, включайте в файл .env только личную информацию, такую ​​как токены или ключи.

    Нажмите кнопку «Добавить файл» и создайте файл с именем .env .

    Внутри файла добавьте следующую строку, включая ваш фактический токен, который вы скопировали ранее:

    Теперь давайте рассмотрим, что делает каждая строка в коде вашего бота Discord.

    1. Первая строка импортирует библиотеку discord.py.
    2. Вторая строка импортирует библиотеку os, но она используется только для получения переменной TOKEN из файла .env . Если вы не используете .env файл, эта строка вам не нужна.
    3. Затем мы создаем экземпляр Client . Это связь с Discord.
    4. Декоратор @client.event() используется для регистрации события. Это асинхронная библиотека, поэтому все делается с помощью обратных вызовов. Обратный вызов — это функция, которая вызывается, когда происходит что-то еще. В этом коде событие on_ready() вызывается, когда бот готов к использованию. Затем, когда бот получает сообщение, вызывается событие on_message() .
    5. Триггер событий каждый раз вызывает on_message() , когда принимается сообщение, но мы не хотим, что-то делать, если сообщение от самих себя. Поэтому, если Message.author это то же самое, что и Client.user , просто делаем return.
    6. Затем мы проверяем Message.content , начинается ли с ‘$hello’ . Если да, то бот отвечает ‘Hello!’ в канал, в котором он использовался.
    7. Теперь, когда бот настроен, последняя строка запускает бот с токеном входа. Он получает токен из файла .env .

    У нас есть код для бота, поэтому теперь нам просто нужно его запустить.

    Как запустить бота

    Теперь нажмите кнопку запуска вверху, чтобы запустить своего бота в repl.it.

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

    В других системах:

    Теперь перейдите в свою комнату в Discord и введите «$hello». Ваш бот должен ответить «Hello!».

    Как улучшить бота

    Теперь, когда у нас есть базовый бот, мы его улучшим. Не зря он называется «Encourage Bot».

    Этот бот будет отвечать сообщением ‘Hello!’ всякий раз, когда кто-то отправляет сообщение, содержащее грустное или удручающее слово.

    Любой желающий сможет добавить ободряющие сообщения для использования бота, а отправленные пользователем сообщения будут храниться в базе данных Repl.it.

    Бот также вернет случайную вдохновляющую цитату из API, когда кто-то наберет в чате сообщение «$inspire».

    Мы начнем с добавления функции «$inspire».

    Как добавить в бота вдохновляющие цитаты

    Мы будем получать вдохновляющие цитаты из API под названием zenquotes.io. Нам нужно импортировать еще пару модулей Python, добавить функцию get_quote() и обновить код нашего бота, чтобы вызвать функцию.

    Вот обновленный код. После кода я объясню новые части.

    Теперь нам нужно импортировать модуль requests . Этот модуль позволяет нашему коду делать HTTP-запрос для получения данных из API. API возвращает JSON, и модуль json упрощает работу с возвращенными данными.

    Функция get_quote() очень проста. Во-первых, она использует модуль запросов для запроса данных из URL-адреса API. API возвращает случайную вдохновляющую цитату. Эту функцию можно легко переписать для получения котировок из другого API, если текущий перестанет работать.

    Затем внутри функции мы используем json.loads() для преобразования ответа API в JSON. Методом проб и ошибок я понял, как перевести цитату из JSON в нужный строковый формат. Цитата возвращается из функции в виде строки.

    Последняя часть кода обновляется ближе к концу. Ранее он искал сообщение, которое начиналось с «$hello». Теперь он ищет "$inspire". Вместо того, чтобы возвращать «Hello!», Он получает цитату quote = get_quote() и возвращает цитату.

    На этом этапе вы можете запустить свой код и попробовать его.

    Как добавить в бота обнадеживающие сообщения

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

    Как добавить грустные слова в бота

    Для начала нам нужно создать список Python, содержащий грустные слова, на которые будет отвечать бот.

    Добавьте следующую строку после создания переменной client :

    Не стесняйтесь добавлять в список больше слов.

    Как добавить в бота обнадеживающие сообщения

    Теперь мы добавим список ободряющих сообщений, которыми бот ответит.

    Добавьте следующий список после созданного вами списка sad_words :

    Как и раньше, не стесняйтесь добавлять в список другие фразы по вашему выбору. Сейчас я использую всего три элемента, потому что позже мы добавим возможность пользователям добавлять больше ободряющих фраз для использования ботом.

    Как отвечать на сообщения

    Теперь нам нужно обновить нашего бота, чтобы он использовал два созданных нами списка. Во-первых, импортируйте модуль random , потому что бот будет случайным образом выбирать сообщения из списка. Добавьте следующую строку в операторы импорта в верхней части кода:

    Теперь мы обновим функцию on_message() , чтобы проверять все сообщения, чтобы увидеть, содержат ли они слово из списка sad_words . Если будет найдено грустное слово, бот отправит случайное сообщение из списка.

    Вот обновленный код:

    Это хорошее время для тестирования бота. Теперь вы знаете достаточно, чтобы создать собственного бота.

    Ссылка на основную публикацию