-
1
Откройте любой мобильный браузер (Chrome, Firefox, Opera или другой).
-
2
Найдите нужный бот. Существуют различные боты, которые выполняют разные задачи. В интернете полно ботов для Discord с удобными и интересными функциями.
- Обязательно просмотрите сайты Carbonitex и Discord Bots. На них множество ботов для Discord, среди которых можно найти подходящий.
-
3
Установите бот на устройство. Процесс установки зависит от сайта и бота. Но в большинстве случаев на сайте нужно нажать «Invite» (Пригласить), «Install» (Установить) или «Add Bot to Server» (Добавить бот на сервер); вы перейдете в Discord.
- Если вы еще не авторизовались в Discord, сделайте это с помощью своих учетных данных.
-
4
Коснитесь Выбрать сервер в Discord. Отобразится список всех ваших серверов.
-
5
Выберите сервер, на котором будет установлен бот. Бот можно добавить в текстовые и голосовые чаты в качестве участника.
- Чтобы добавить бот, необходимо быть администратором сервера.
-
6
Коснитесь Авторизация. Вы найдете эту синюю кнопку в нижнем правом углу. Бот будет авторизован и добавлен на выбранный сервер.
Реклама
-
1
Запустите Discord на устройстве. Нажмите на значок в виде белого игрового контроллера на синем фоне; этот значок находится на панели приложений.
- Если вы еще не авторизовались в Discord, сделайте это с помощью своих учетных данных.
-
2
Нажмите на значок в виде трех горизонтальных линий. Он находится в верхнем левом углу. Откроется панель навигации.
-
3
Коснитесь сервера, на который добавили бот. На правой панели отобразится список всех текстовых и голосовых каналов сервера.
-
4
Нажмите на значок в виде трех точек, расположенных по вертикали. Он находится у имени сервера в правом верхнем углу. Откроется меню.
-
5
Выберите Настройки сервера. Эта опция помечена значком в виде шестеренки. На новой странице откроются настройки сервера.
-
6
Прокрутите вниз и нажмите Участники. Это первая опция раздела «Управление пользователями». Отобразится список всех пользователей сервера — в этом списке будет значиться и бот.
-
7
Коснитесь бота в списке.
-
8
Выберите роль для бота. В разделе «Роли» коснитесь роли сервера, чтобы активировать ее и назначить боту.
- Некоторые боты получают роль автоматически во время установки.
- Если роли сервера еще нет, создайте ее.
-
9
Коснитесь
. Настройки будут сохранены, а вы вернетесь к панели навигации.
Реклама
-
1
Выберите существующий канал на панели навигации. Канал чата развернется на весь экран.
-
2
Нажмите на значок в виде трех точек, расположенных по вертикали. Он находится в верхнем правом углу. Откроется меню.
-
3
Выберите Настройки канала в меню.
-
4
Прокрутите страницу вниз и нажмите Разрешения.
-
5
Коснитесь Добавить роль. Откроется список всех назначенных ролей на сервере.
-
6
Нажмите на роль, которую назначили боту. Откроется меню «Разрешения» для роли бота на сервере.
-
7
Прокрутите страницу вниз и коснитесь зеленой галочки у Читать сообщения. Это первая опция раздела «Текстовые разрешения». Теперь бот сможет читать все сообщения чата на канале.
- Просмотрите и настройте другие разрешения на странице — они служат для управления ботом.
-
8
Нажмите «Сохранить». Этот значок в виде дискеты находится в нижнем правом углу. Настройки разрешений бота будут сохранены.
-
9
Закройте боту доступ к другим каналам. Скорее всего, бот попадет в список участников всех каналов на сервере. Чтобы бот имел доступ только к одному каналу, настройте разрешения для канала. Для этого повторите описанные выше шаги для канала на сервере, а затем выберите красный значок «X» у опции «Читать сообщения».
Реклама
-
1
Нажмите + у «Текстовые каналы» или «Голосовые каналы». Откройте сервер с установленным ботом и нажмите на значок «+», чтобы создать новый канал. Вы перейдете на страницу «Создание канала».
-
2
Введите или вставьте имя канала. Сделайте это в разделе «Имя канала».
-
3
Выберите роль бота в разделе «Кто получит доступ к каналу». Бот будет добавлен в новый канал.
- Если выбрать опцию «@все» (@everyone), бот также получит доступ к каналу.
-
4
Нажмите «Сохранить». Этот значок в виде дискеты находится в нижнем правом углу. Будет создан новый канал.
Реклама
Об этой статье
Эту страницу просматривали 16 764 раза.
Была ли эта статья полезной?
Чтобы подключить бота Discord в ваше приложение, вам понадобятся токен бота (для настройки модуля) и ID канала, в который вы будете отправлять сообщения (для формы отправки).
Расскажем, как создать сервер, канал и бота Discord, а после добавить созданного бота на ваш сервер. О том, как настроить отправку сообщений на платформе AppMaster.io, можно прочитать в этой статье.
Создать сервер и канал, скопировать ID канала
Для начала вам нужно создать новый сервер в Discord (или получить права администратора на уже существующем). Откройте страницу вашей учетной записи Discord в браузере — так будет удобнее перемещаться между страницами настроек.
1. Нажмите на «+» на левой панели.
2. Выберите шаблон сервера в зависимости от вашей сферы или создайте собственный.
3. Укажите, для каких целей хотите его использовать.
4. Выберите изображение будущего сервера и укажите его название (1), затем нажмите Create. (2).
5. Сервер создан. По умолчанию в него уже добавлены два канала — текстовый и голосовой (1). Чтобы изменить настройки канала, нажмите значок шестеренки (2). Добавить новый канал можно, нажав на «+» рядом с названием раздела. Мы не будем создавать новый канал и для подключения нашего бота используем уже существующий канал general.
6. Теперь нужно получить ID выбранного канала. Для этого нужно сначала включить режим разработчика в настройках вашего профиля. Нажмите на значок шестеренки рядом с вашим никнеймом и фотографией.
7. Перейдите в раздел APP SETTINGS, на вкладку Advanced (1) и переместите селектор Developer mode — режим разработчика активируется (2).
8. Вернитесь из меню настроек и кликните по нужному каналу правой клавишей мыши (1), во всплывающем меню выберите Copy ID — идентификатор вашего канала будет скопирован (2). Сохраните его в любом текстовом документе, чтобы не возвращаться к этому шагу.
Создать бота и добавить его на сервер, скопировать токен бота
Чтобы создать бота, перейдите на специальную страницу Discord для разработчиков: https://discord.com/developers/. Откройте ее в соседней вкладке браузера, не выходя из вашей учетной записи Discord.
Сначала вам нужно создать приложение, затем в этом приложении создать бота и настроить для него разрешения, и только после этого — добавлять бота на сервер.
1. На вкладке Applications выберите New Application.
2. Введите название будущего приложения (1) и нажмите Create (2).
3. Приложение создано. Перейдите не вкладку Bot (1) и нажмите Add Bot, чтобы добавить нового бота.
4. Согласитесь добавить бота в ваше приложение.
5. Бот создан. На вкладке Bot отобразится вся информация о нем. Тут можно изменить его имя, добавить изображение и скопировать токен бота (1). Этот токен понадобится вам для настройки модуля Discord на платформе Appmaster.i. Каждый раз при внесении изменений портал разработчика будет предлагать вам сохранить их (2).
Сохраните токен бота, чтобы при последующей настройке не возвращаться к этому шагу.
6. Теперь перейдите на вкладку OAuth2 (1) — тут можно настроить разрешения и получить ссылку на вашего бота. В разделе SCOPES выберите bot(2), в BOT PERMISSIONS отметьте разрешения, которые хотите ему предоставить, в нашем случае — только отправка сообщений, поэтому выберите Send Message(3). После скопируйте автоматически сгенерированную Discord ссылку(4).
7. Вставьте скопированную ссылку в адресную строку браузера и перейдите по ней — откроется окошко вашего приложения. Выберите ваш сервер в раскрывающемся списке (1) и нажмите Continue (2).
8. Убедитесь, что приложению (а значит, и созданному в нем боту) даны только необходимые разрешения, после чего добавьте его на ваш сервер.
9. Теперь вернитесь на ваш сервер. Бот оставил приветственное сообщение — значит, что он успешно добавлен и функционирует.
Через AppMaster.io Studio подключить бота в приложение
Итак, все готово. Вы получили токен бота для модуля Discord и ID канала для формы отправки сообщения. Теперь перейдите в AppMaster.io Studio и настройте отправку сообщений из вашего приложения, следуя инструкции Модуль Discord: подключение бота и отправка сообщений.
Следите за нашим блогом и присоединяйтесь к чату комьюнити, чтобы узнавать о новостях платформы и новых статьях.
Пользователи часто спрашивают, как создать бота в Дискорде и тем самым получить программу с необходимыми функциями. Сразу отметим, что достижение такой цели — непростая задача, а реализовать ее можно несколькими способами, к примеру, на основе discord.js, на Python или с помощью программы Discord Bot Maker.
Как создать Дискорд-бота на основе discord.js
На практике API Discord представляет собой удобный инструмент, позволяющий создать, а впоследствии использовать бота. С его помощью легко разработать помощника для решения разных задач, а далее задать необходимый набор команд. Для примера рассмотрим общий алгоритм создания бота для музыки. При правильном подходе он сможет проигрывать, пропускать и останавливать музыкальные файлы. Кроме того, в его функции будет входить поддержка очереди на проигрывание мелодии.
Выполните следующие шаги:
- Войдите на сайт discord.com/developers/applications/.
- Жмите на кнопку New Application.
- Введите название будущего бота Дискорд, к примеру, Music Bot.
- Перейдите на вкладку Bot, а после жмите на кнопку Add Bot.
Этих действий достаточно, чтобы создать бота Дискорд, после чего нужно его добавить на сервер с помощью OAuth2 URL-генератора. Сделайте следующие шаги:
- Переместитесь в раздел OAuth2 и выберите Bot в панели Scopes.
- Укажите необходимые разрешения для проигрывания музыки и чтения.
- Копируйте созданный URL и вставьте его в веб-проводник.
- Выберите сервер, куда нужно добавить URL.
- Жмите на кнопку авторизации (Authorize).
На следующем этапе нужно создать проект с применением терминала. Для этого создайте директорию и перейдите ее с помощью следующих команд — mkdir musicbot && cd musicbot. Далее сделайте следующее:
- Создайте модули проекта с применением nmp init.
- Ответьте на несколько вопросов, которые необходимы, чтобы создать бота в Дискорд.
- Сделайте два файла, где будет вестись работа — touch index.js && touch config.json.
- Откройте проект в редакторе, к примеру, с помощью VS Code с применением приказа code.
- Установите группу зависимостей, необходимых для дальнейшей работы — npm install discord.js ffmpeg-binaries opusscript ytdl-core –save.
- Продолжите создание файла на config.json. На этом этапе сохраните префикс и токен для бота.
{
«prefix»: «!»,
«token»: «your-toke»
}
- Войдите на портал создания Дискорд и копируйте токен из раздела Bot (жмите на кнопку Copy).
Теперь нужно создать код javascript. Для этого копируйте следующие зависимости:
const Discord = require(‘discord.js’);
const {
prefix,
token,
} = require(‘./config.json’);
const ytdl = require(‘ytdl-core’);
После этого нужно создать с применением токена клиент и логин.
const client = new Discord.Client();
client.login(token);
Далее добавьте несколько listeners, которые выполняют console.log при пуске.
client.once(‘ready’, () => {
console.log(‘Ready!’);
});
client.once(‘reconnecting’, () => {
console.log(‘Reconnecting!’);
});
client.once(‘disconnect’, () => {
console.log(‘Disconnect!’);
});
После этого начните работать с ботом Дискорд с применением 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;
Далее проверьте команду, которую нужно активировать. Используйте следующие команды.
if (message.content.startsWith(`${prefix}play`)) {
execute(message, serverQueue);
return;
} else if (message.content.startsWith(`${prefix}skip`)) {
skip(message, serverQueue);
return;
} else if (message.content.startsWith(`${prefix}stop`)) {
stop(message, serverQueue);
return;
} else {
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]);
const song = {
title: songInfo.title,
url: songInfo.video_url,
};
Необходимые данные сохраняются в song. Теперь нужно создать контракт, обеспечивающий добавление в очередь. Проверьте факт определения serverQueue (проигрывание музыки), а после отправьте сообщение о достижении результата. Если это не удалось сделать, нужно его создать и соединиться с голосовым каналом и начать играть песню.
if (!serverQueue) {
}else {
serverQueue.songs.push(song);
console.log(serverQueue.songs);
return message.channel.send(`${song.title} has been added to the queue!`);
}
В раздел serverQueue, если он пустой, добавьте трек. В случае, когда serverQueue имеет параметр null, сделайте контракт.
// Creating the contract for our queue
const queueContruct = {
textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 5,
playing: true,
};
// Setting the queue using our contract
queue.set(message.guild.id, queueContruct);
// Pushing the song to our songs array
queueContruct.songs.push(song);
try {
// Here we try to join the voicechat and save our connection into our object.
var connection = await voiceChannel.join();
queueContruct.connection = connection;
// Calling the play function to start a song
play(message.guild, queueContruct.songs[0]);
} catch (err) {
// Printing the error message if the bot fails to join the voicechat
console.log(err);
queue.delete(message.guild.id);
return message.channel.send(err);
}
Проигрывание трека
Теперь нужно создать опцию play для бота Дискорд с параметрами гильдия и песня, а также проверкой объекта song.
function play(guild, song) {
const serverQueue = queue.get(guild.id);
if (!song) {
serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
}
}
Если да, нужно уйти с голосового канала и удалить очередь.
Далее трек играет с применением URL и playStream.
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on(‘end’, () => {
console.log(‘Music ended!’);
// Deletes the finished song from the queue
serverQueue.songs.shift();
// Calls the play function again with the next song
play(guild, serverQueue.songs[0]);
})
.on(‘error’, error => {
console.error(error);
});
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
Здесь создается 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!’);
serverQueue.connection.dispatcher.end();
}
Здесь проверяется, есть ли пользователь в голосовом канале, и имеется ли трек для пропуска.
Остановка
Опция 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!’);
serverQueue.songs = [];
serverQueue.connection.dispatcher.end();
}
Полный код бота для Дискорд
const Discord = require(‘discord.js’);
const {
prefix,
token,
} = require(‘./config.json’);
const ytdl = require(‘ytdl-core’);
const client = new Discord.Client();
const queue = new Map();
client.once(‘ready’, () => {
console.log(‘Ready!’);
});
client.once(‘reconnecting’, () => {
console.log(‘Reconnecting!’);
});
client.once(‘disconnect’, () => {
console.log(‘Disconnect!’);
});
client.on(‘message’, async message => {
if (message.author.bot) return;
if (!message.content.startsWith(prefix)) return;
const serverQueue = queue.get(message.guild.id);
if (message.content.startsWith(`${prefix}play`)) {
execute(message, serverQueue);
return;
} else if (message.content.startsWith(`${prefix}skip`)) {
skip(message, serverQueue);
return;
} else if (message.content.startsWith(`${prefix}stop`)) {
stop(message, serverQueue);
return;
} else {
message.channel.send(‘You need to enter a valid command!’)
}
});
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!’);
}
const songInfo = await ytdl.getInfo(args[1]);
const song = {
title: songInfo.title,
url: songInfo.video_url,
};
if (!serverQueue) {
const queueContruct = {
textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 5,
playing: true,
};
queue.set(message.guild.id, queueContruct);
queueContruct.songs.push(song);
try {
var connection = await voiceChannel.join();
queueContruct.connection = connection;
play(message.guild, queueContruct.songs[0]);
} catch (err) {
console.log(err);
queue.delete(message.guild.id);
return message.channel.send(err);
}
} else {
serverQueue.songs.push(song);
console.log(serverQueue.songs);
return message.channel.send(`${song.title} has been added to the queue!`);
}
}
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!’);
serverQueue.connection.dispatcher.end();
}
function stop(message, serverQueue) {
if (!message.member.voiceChannel) return message.channel.send(‘You have to be in a voice channel to stop the music!’);
serverQueue.songs = [];
serverQueue.connection.dispatcher.end();
}
function play(guild, song) {
const serverQueue = queue.get(guild.id);
if (!song) {
serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
}
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on(‘end’, () => {
console.log(‘Music ended!’);
serverQueue.songs.shift();
play(guild, serverQueue.songs[0]);
})
.on(‘error’, error => {
console.error(error);
});
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
}
client.login(token);
Как создать бота в Дискорд на Python
Еще один способ — сделать Дискорд бота на Python. Общий алгоритм действий следующий:
- Установите текстовый редактор.
- Подготовьте Python 3.4.2+ и Pip3 (менеджер пакетов, необходимый для установки библиотек).
- Создайте пустой файл с названием, к примеру, chatbot.py.
- Откройте его с помощью текстового редактора и вставьте код. Для его написания необходимо владеть языком Python.
- Пример кода — gist.github.com/Tetraquark/911eb07052be10f0bb1323adb4056f86.
- Поменяйте значение переменной DISCORD_BOT_TOKEN, где нужно сохранить токен бота. Для получения информации перейдите по ссылке discord.com/developers/applications, выберите нужный бот Дискорд или создайте новый, а после жмите на clich to reveal, где откроется токен приложения. Занести его в переменную DISCORD_BOT_TOKEN.
- Сохраните файл и запустите бот Дискорд.
Для выполнения указанной выше работы необходимо обладать определенным набором знаний.
Применение Discord Bot Maker
Как вариант, можно создать бота с помощью Discord Bot Maker. Это мощный инструмент, позволяющий сделать помощника, умеющего отправлять файлы, генерировать и отправлять сообщения, манипулировать эмодзи, редактировать изображения и т. д.
Чтобы создать Дискорд-бота, сделайте следующее:
- Скачайте и установите утилиту.
- Жмите на кнопку создания бота.
- Установите необходимые команды.
- Сохраните и запустите bot для Дискорд
Процесс создания интуитивно понятен, поэтому не будем останавливаться на нем подробнее.
Итоги
Теперь вы знаете, как сделать своего бота Discord, и что потребуется для решения задачи. Для этого нужно иметь определенные навыки программирования или, как вариант, использовать Discord Bot Maker. Если у вас нет лишнего времени, лучше скачать готового помощника и пользоваться его возможностями.
Содержание
- Создание приложения и авторизация бота
- Выбор среды разработки
- Вариант 1: Python и библиотека discord
- Шаг 1: Установка Python и библиотеки discord
- Шаг 2: Создание словаря бота
- Шаг 3: Создание тела бота
- Шаг 4: Запуск бота
- Вариант 2: JavaScript и discord.js
- Шаг 1: Установка Node.js и discord.js
- Шаг 2: Работа с файлами бота
- Шаг 3: Запуск бота
- Примеры полезных команд
- Вопросы и ответы
В статье мы расскажем о том, как создается приложение для бота, выполняется первая авторизация на сервере и пишется общий код для нормализации работы. Имея «каркас», вы уже можете добавлять пользовательские команды и сразу проверять, как они работают.
Создание приложения и авторизация бота
Далее речь пойдет о двух разных методах создания бота — при помощи JavaScript и Python. Каждый из них имеет свои особенности и нюансы, но вот метод создания приложения и авторизации бота на сервере остается одинаков, поскольку не зависит от выбранного языка программирования. После этого вы сможете перейти к подбору библиотеки и работе с кодом.
Перейти на Discord Developer Portal
- Перейдите по ссылке выше, чтобы оказаться на главной странице портала для разработчиков в Discord. Используйте личные авторизационные данные для входа в аккаунт.
- Создайте новое приложение, нажав кнопку «New Application».
- Введите имя приложения и подтвердите его создание.
- Разверните меню сайта, щелкнув по кнопке с тремя горизонтальными линиями.
- Из появившегося списка выберите раздел настроек «Bot».
- Приступите к добавлению нового бота для данного приложения.
- Подтвердите отобразившееся уведомление, нажав «Yes, do it».
- По завершении сайт обновится и откроется страница бота, где вы можете изменить его название, скопировать токен или добавить иконку, которая будет отображаться и в Дискорде.
- Однако сейчас бот еще не отмечен таковым и для него не установлены разрешения, поэтому через то же самое меню перейдите в раздел «OAuth2».
- В списке «Scopes» отметьте галочкой «bot», обозначив тип созданного приложения.
- Найдите следующий блок — «Bot Permissions» и установите галочки напротив всех разрешений, которые вы хотите предоставить создаваемому боту.
- То же самое сделайте и с остальными типами разрешений, они соответствуют доступным непосредственно в Discord для ролей.
- Теперь бот готов для авторизации. На этой же странице найдите строку со ссылкой и скопируйте ее.
- Вставьте в адресную строку и перейдите по ней. В появившейся форме выберите сервер для авторизации. Если у вас еще нет собственного сервера, создайте его, а затем вернитесь к процессу подключения бота.
Подробнее: Создание сервера в Discord
- Ознакомьтесь со списком всех разрешений и нажмите на «Авторизовать».
- Осталось только подтвердить появившуюся на экране капчу.
- Откройте соответствующий сервер в Discord и убедитесь в том, что бот находится в списке участников. Пока что он еще офлайн, а запуск станет доступен после написания «тела» бота при помощи Python или JS, чем мы и займемся далее.
Выбор среды разработки
Перед началом работы с кодом в упомянутых языках программирования уточним, что вам понадобится установить текстовый редактор или специальную среду разработки, поддерживающую синтаксис Python или JavaScript (в зависимости от выбранного). Конечно, можно использовать просто «Блокнот», но по удобству он уступает специализированным программам. Просмотрите их списки в обзорах по следующим ссылкам и выберите для себя подходящий софт.
Подробнее:
Выбор среды разработки для программирования
Текстовые редакторы для Windows
Вариант 1: Python и библиотека discord
Если ранее вы не сталкивались с языками программирования или знакомы с ними только поверхностно, создание бота для Discord на Python — лучший выбор. Этот ЯП проще учится, компактный и имеет логически понятный синтаксис, поэтому идеально подходит новичкам. К тому же в сети есть огромное количество исходников с различными командами или уже готовыми ботами, которые ничего не мешает скопировать и использовать в своих целях. В следующих шагах вы узнаете, как создать «каркас» бота на Python и запустить его, чтобы проверить работу.
Шаг 1: Установка Python и библиотеки discord
По умолчанию в Windows нет встроенных функций и утилит, предназначенных для работы с Питоном, поэтому их придется установить отдельно, не забыв про подключаемую библиотеку discord, которая позволит взаимодействовать с полезными функциями и командами, связанными исключительно с Дискордом.
Перейти на официальный сайт Python
- Воспользуйтесь ссылкой выше, чтобы перейти на официальный сайт Python и нажмите кнопку для загрузки его последней версии.
- На новой странице отыщите инсталлятор для Windows и начните его загрузку.
- Дождитесь завершения скачивания и запустите установщик.
- Можно запустить установку без изменений, но обязательно отметьте галочкой «Add Python X.X to PATH», чтобы все переменные среды добавились автоматически и не возникло проблем при дальнейшем вводе команд.
- Ожидайте завершения установки и на всякий случай перезагрузите компьютер, чтобы все изменения вступили в силу.
- Откройте «Командную строку» удобным для вас способом, например, отыскав приложение в меню «Пуск».
- Напишите команду
pip install discord
и подтвердите ее нажатием клавиши Enter. - Начнется загрузка файлов и в консоли «побегут» строки. Не закрывайте данное окно до завершения скачивания.
- Как только появилась информация «Successfully installed», закрывайте «Командную строку» и переходите далее.
Если Python у вас установлен, но команда для добавления подключаемой библиотеки не работает, выполните обновление компонента PIP, о чем рассказывается в другой статье на нашем сайте. Там же вы найдете инструкцию и по изменению переменных среды, если этого не произошло во время установки.
Подробнее: Обновление PIP для Python
Шаг 2: Создание словаря бота
В этом варианте мы будем использовать словарь для бота, то есть конфигурационный файл, хранящий в разных именах значения токена, префикса и имени бота. Это существенно упрощает весь процесс написания кода и не заставляет каждый раз вспоминать данные приложения, чтобы ввести их в одной строке.
- Начните с запуска IDLE, отыскав добавленное приложение через меню «Пуск». Если вы скачали другую среду разработки, откройте ее и создайте новый проект на базе Python.
- После открытия нового окна вызовите меню «File» и выберите пункт «New File». Сделать это можно и при помощи комбинации клавиш Ctrl + N.
- В новом окне, которое и предназначено для написания кода, вставьте блок
settings = {
'token': 'Ваш токен',
'bot': 'Имя бота',
'id': Client ID бота, без кавычек,
'prefix': 'Префикс бота'
} - Теперь понадобится отыскать информацию для ее замены в словаре. Сначала найдите Client ID приложения на сайте разработчиков. Скопируйте его и замените в соответствующую строку.
- Вызовите меню и перейдите в раздел «Bot».
- Скопируйте его уникальный токен, щелкнув по специально отведенной для этого кнопке.
- Вставьте токен вместо надписи, сделайте то же самое с именем бота и используемым префиксом (префикс нужен для вызова команд и всегда идет перед ними, например
!play
, а вы можете заменить восклицательный знак на любые другие символы). - Как только вся информация была заменена, снова вызовите меню «File» и выберите вариант «Save As».
- Создайте отдельную папку для файлов бота, назовите этот как
config
и подтвердите сохранение.
Шаг 3: Создание тела бота
Для обеспечения базового функционирования бота ему нужно создать «тело» — основной код для запуска и работы на сервере. Понадобится отдельный файл, который можно назвать как угодно, но обязательно сохранить его в том же месте, где находится созданный ранее словарь.
- В среде разработки откройте меню «File» и создайте новый файл.
- Вставьте туда три команды, которые предназначены для импорта установленных библиотек и созданного ранее файла:
import discord
from discord.ext import commands
from config import settings - Добавьте строку
bot = commands.Bot(command_prefix = settings['prefix']) # Так как мы указали префикс в settings, обращаемся к словарю с ключом prefix
. - Основной код таков:
@bot.command() # Не передаём аргумент pass_context, так как он был нужен в старых версиях.
async def hello(ctx): # Создаём функцию и передаём аргумент ctx.
author = ctx.message.author # Объявляем переменную author и записываем туда информацию об авторе.
await ctx.send(f'Hello, {author.mention}!') # Выводим сообщение с упоминанием автора, обращаясь к переменной author
. - Обращайте внимание на комментарии, идущие после знака «#» — они позволят разобраться с предназначением каждой строки.
- Команда для запуска выглядит так:
bot.run(settings['token']) # Обращаемся к словарю settings с ключом token, для получения токена
. - По завершении снова откройте уже знакомое меню и перейдите к сохранению файла.
- Задайте для него любое название и поместите в папку с конфигом.
Далее вы видите полный код, о котором шла речь выше, поэтому при надобности просто можете скопировать его.
import discord
from discord.ext import commands
from config import settings
bot = commands.Bot(command_prefix = settings['prefix'])
@bot.command() # Не передаём аргумент pass_context, так как он был нужен в старых версиях.
async def hello(ctx): # Создаём функцию и передаём аргумент ctx.
author = ctx.message.author # Объявляем переменную author и записываем туда информацию об авторе.
await ctx.send(f'Hello, {author.mention}!') # Выводим сообщение с упоминанием автора, обращаясь к переменной author.
bot.run(settings['token']) # Обращаемся к словарю settings с ключом token, для получения токена
Дополнительно уточним, что вы можете использовать альтернативную схему, избавившись от файла со словарем и получив немного другое «тело» для бота. Решите, подходит ли вам этот код больше. Указанные строки с токеном нужно будет отредактировать под себя.
import discord
from discord.ext import commands
TOKEN = 'Ваш токен'
bot = commands.Bot(command_prefix='!')
@bot.command(pass_context=True) # разрешаем передавать аргументы
async def test(ctx, arg): # создаем асинхронную функцию бота
await ctx.send(arg) # отправляем обратно аргумент
bot.run(TOKEN)
Шаг 4: Запуск бота
Теперь можно запустить бота для проверки, для чего понадобится созданный в Шаге 3 основной файл. Скомпилируйте его прямо через среду разработки или вызовите «Командную строку» и введите там python bot.py
, где bot.py — название созданного файла. Если файл найти не удалось, укажите его полный путь, например python C:UsersUSER_NAMEbot.py
.
Перейдите в Дискорд и проверьте текущее состояние бота. Он должен отображаться в списке участников в разделе «В сети» вместе с зеленой точкой.
Воспользуйтесь открытыми источниками или собственными знаниями, чтобы написать команды для бота или реализовать другие задачи, которые он должен выполнять. Для этого редактируйте его основной файл или создавайте другие, связывая все в единый проект.
Вариант 2: JavaScript и discord.js
Следующий вариант создания бота для Discord — использование JS и подключаемой библиотеки discord.js, которая добавляет все необходимые компоненты для работы с ботами. Принцип действий отличается от предыдущего варианта лишь инструментами и разницей в синтаксисах языков программирования, но остается примерно таким же.
Шаг 1: Установка Node.js и discord.js
Расширить функциональность JS и превратить его в язык программирования общего назначения поможет платформа Node.js, установкой которой и рекомендуем заняться в первую очередь. Для этого выполните простейший алгоритм действий:
Перейти на официальный сайт Node.js
- Откройте страницу Node.js в интернете и выберите последнюю рекомендованную версию для скачивания.
- Дождитесь получения исполняемого файла и запустите его.
- Следуйте появившимся на экране инструкциям, завершите установку и перезагрузите компьютер.
- Раскройте «Пуск» и через поиск отыщите классическое приложение «Командная строка».
- В ней напишите команду
npm init
и активируйте ее нажатием Enter. - Создайте стандартный пакет с пользовательской информацией, нажимая Enter после ввода каждого параметра, или оставьте все по умолчанию.
- Когда все параметры пакета окажутся заданы, вы получите предупреждение, которое нужно подтвердить, снова нажав Enter.
- Введите команду
npm install
для установки недостающих стандартных компонентов. - Дождитесь завершения их загрузки и появления строки ввода.
- Напишите
npm install discord.js
. - Как только и эта команда выполнена, откройте папку своего пользователя и убедитесь в наличии созданных файлов пакета формата JSON.
Шаг 2: Работа с файлами бота
Все действия, связанные с файлами бота и программным кодом, рассмотрим в рамках одного этапа, поскольку делить их на несколько просто не имеет смысла. Вам понадобятся три основных файла, куда и вписываются все необходимые функции: один отвечает за конфигурацию бота, второй — за «тело», а третий хранит список добавленных команд.
- Для начала создайте файлы «bot.js» и «config.json» в одном каталоге.
- Откройте через текстовый редактор или среду разработки «config.json» и добавьте туда такие строки:
{
"token" : "Ваш_токен",
"prefix" : "Ваш_префикс"
}Соответственно, выражения в двойных кавычках замените на уникальный токен бота и предпочитаемый префикс.
- Откройте для редактирования файл «bot.js» (кстати, его название может быть любым). Вставьте туда данный блок кода.
const Discord = require('discord.js'); // Подключаем библиотеку discord.js
const robot = new Discord.Client(); // Объявляем, что robot - бот
const comms = require("./comms.js"); // Подключаем файл с командами для бота
const fs = require('fs'); // Подключаем родной модуль файловой системы node.js
let config = require('./config.json'); // Подключаем файл с параметрами и информацией
let token = config.token; // «Вытаскиваем» из него токен
let prefix = config.prefix; // «Вытаскиваем» из него префиксrobot.on("ready", function() {
/* При успешном запуске, в консоли появится сообщение «[Имя бота] запустился!» */
console.log(robot.user.username + " запустился!");
});robot.on('message', (msg) => { // Реагирование на сообщения
if (msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator) {
var comm = msg.content.trim() + " ";
var comm_name = comm.slice(0, comm.indexOf(" "));
var messArr = comm.split(" ");
for (comm_count in comms.comms) {
var comm2 = prefix + comms.comms[comm_count].name;
if (comm2 == comm_name) {
comms.comms[comm_count].out(robot, msg, messArr);
}
}
}
});robot.login(token); // Авторизация бота
Читайте комментарии к строчкам, идущие после слэшей («//»), чтобы самостоятельно разобраться с предназначением каждой.
- Создайте третий файл — «comms.js», в котором в будущем будут храниться все необходимые команды.
- В него вставьте основной блок, который в будущем будет расширяться:
const config = require('./config.json'); // Подключаем файл с параметрами и информацией
const Discord = require('discord.js'); // Подключаем библиотеку discord.js
const prefix = config.prefix; // «Вытаскиваем» префикс// Команды //
function test(robot, mess, args) {
mess.channel.send('Test!')
}// Список команд //
var comms_list = [{
name: "test",
out: test,
about: "Тестовая команда"
}];// Name - название команды, на которую будет реагировать бот
// Out - название функции с командой
// About - описание командыmodule.exports.comms = comms_list;
Для дальнейшей работы с командами достаточно будет объявить их функции и пополнить список соответствующими блоками кода. На примере готовый файл «comms.js» выглядит так:
const config = require('./config.json');
const Discord = require('discord.js');
const prefix = config.prefix;
const versions = config.versions;
// Команды //
function test(robot, mess, args) {
mess.channel.send("Тест!")
}
function hello(robot, mess, args) {
mess.reply("Привет!")
}
// Список команд //
var comms_list = [{
name: "test",
out: test,
about: "Тестовая команда"
},
{
name: "hello",
out: hello,
about: "Команда для приветствия!"
}
}
module.exports.comms = comms_list;
Шаг 3: Запуск бота
Первые действия с ботом на JavaScript завершены, а значит, можно запустить его и проверить работу. Для этого вам понадобится выполнить следующее:
- Откройте меню «Пуск» через поиск отыщите «Командную строку» и запустите ее.
- Введите
node bot.js
, где bot.js — название основного файла с кодом для бота. Если он находится не в вашей домашней папке, указывайте полный путь к файлу или сначала перейдите к расположению, используя командуcd
.
Примеры полезных команд
В завершение этого варианта вкратце расскажем о двух полезных командах, которые могут пригодиться при настройке бота. Их можно использовать в качестве тестовых, когда работа над проектом еще находится на стадии развития. Первая команда — !clear
— удаляет указанное количество сообщений в чате. Ее код выглядит следующим образом:
const arggs = mess.content.split(' ').slice(1); // Все аргументы за именем команды с префиксом
const amount = arggs.join(' '); // Количество сообщений, которые должны быть удалены
if (!amount) return mess.channel.send('Вы не указали, сколько сообщений нужно удалить!'); // Проверка, задан ли параметр количества
if (isNaN(amount)) return mess.channel.send('Это не число!'); // Проверка, является ли числом ввод пользователя
if (amount > 100) return mess.channel.send('Вы не можете удалить 100 сообщений за раз'); // Проверка, является ли ввод пользователя числом больше 100
if (amount {
mess.channel.bulkDelete(messages)
mess.channel.send(`Удалено ${amount} сообщений!`)
})
};
delete_messages(); // Вызов асинхронной функции
Вторая команда предназначена для подбрасывания монетки и запускается путем ввода !heads_or_tails
в чате. Здесь код не такой сложный, поскольку действий мало и бот должен откликнуться всего на один запрос без огромного количества переменных.
mess.channel.send('Монета подбрасывается...')
var random = Math.floor(Math.random() * 4) + 1; // Объявление переменной random - она вычисляет случайное число от 1 до 3
if (random === 1) { // Если вычислено число 1, то выпадает орёл.
mess.channel.send(':full_moon: Орёл!')
} else if (random === 2) { // Если вычислено число 2, то выпадает решка.
mess.channel.send(':new_moon: Решка!')
} else if (random === 3) { // Если вычислено число 3, то монета падает ребром.
mess.channel.send(':last_quarter_moon: Монета упала ребром!')
}
В интернете вы можете найти другие полезные команды, которые хотите включить в своего бота, однако для работы с ними все же понадобятся продвинутые знания в JavaScript или Python, чтобы самостоятельно исправлять ошибки или редактировать код под себя.
Простая инструкция.
Создание собственно бота Discord – не такой сложный и долгий процесс, как можно предположить. Для этого необязательно быть программистом, достаточно базового логического мышления и желания вникнуть в процесс – особенно если вас интересует написание базового бота.
Для создания бота в Дискорде не придется устанавливать дополнительные программы или платить деньги – бот будет полностью существовать в облаке. В процессе мы воспользуемся несколькими инструментами: библиотеками Python, Discord API и Repl.it – так называется платформа для проведения облачных вычислений.
В этом гайде мы расскажем, как сделать бота в Дискорде.
Как зарегистрировать учетную запись Discord Bot
Первый шаг в создании бота Discord – создание собственного аккаунта Discord Bot. Он понадобится, чтобы получить доступ к API Discord и библиотекам Python.
Для регистрации учетной записи Discord Bot:
- Залогиньтесь на сайте Discord в свой обычный аккаунт.
- Откройте веб-версию интерфейса для разработчиков.
- Нажмите кнопку New Application («Новое приложение») в правом верхнем углу страницы.
- Придумайте имя для своего приложения (бота) и нажмите Create («Создать»).
- Выберите вкладку Bot («Бот») в меню слева и нажмите Add Bot («Добавить бота»). Подтвердите действие, нажав кнопку Yes, do it! («Да, давайте!»).
- Настройки Public Bot и Require OAuth2 Code Grant менять не нужно.
Теперь у вас есть собственный бот – правда, пока бесполезный.
После этого нажмите Click to Reveal Token и скопируйте куда-нибудь токен бота Discord – это уникальный ключ доступа к нему. Комбинацию стоит передавать только другим разработчикам, которым вы доверяете, а иначе лучше держать при себе.
В случае, если кто-то все-таки узнает токен, можно нажать Regenerate – это действие сгенерирует новый токен.
Как добавить бота на сервер в Дискорде
Чтобы бот мог взаимодействовать с чатами сервера, его, что логично, нужно туда добавить, практически как обычного пользователя.
Для добавления бота создайте URL-инвайт:
- Откройте вкладку OAuth2. Поставьте галочку рядом с пунктом bot в секции scopes.
- Далее необходимо предоставить боту разрешения, нужные для работы. Мы создаем простого текстового бота, так что ему потребуется всего несколько прав – в зависимости от задуманных функций их набор будет меняться. Главное, трижды подумайте, чем давать боту разрешение Administrator – оно может поставить под угрозу безопасность сервера.
- Как только укажите необходимые разрешения, можете нажать Copy выше этого меню. Так вы скопируете приглашение, которое понадобится для добавления бота на сервер.
- Вставьте скопированную ссылку в адресную строку бразуера, выберете сервер для бота и нажмите Authorize. Разумеется, приглашать бота на сервер могут только пользователи, имеющие право «Управление сервером» на конкретном сервере Discord.
Теперь бот создан и «заселен». Приступаем к самому интересному: написанию кода на Python для работы бота. Не переживайте: сейчас расскажем обо всем пошагово.
Как написать код для чат-бота в Дискорде
В процессе программирования бота мы воспользуемся библиотекой Python discord.py. Так называется API, созданный специально для упрощения написания кода ботов Discord.
Как установить discord.py
Можно писать код для бота в любом редакторе кода на своем компьютере или даже в блокноте – последний вариант, мягко говоря, не слишком удобен. В этом гайде мы воспользуемся онлайн-средой IDE Repl.it, доступ к которой можно получить прямо в браузере. Так работать с кодом будет намного проще.
В запущенной среде создайте новый Repl и укажите язык программирования Python.
Для подключения библиотеки discord.py просто введите команду import discord в начале main.py. Repl.it автоматически выполнит необходимые действия при нажатии Run.
В случае, если вы создаете бота локально на компьютере под управлением Windows, используйте эту строку кода для установки discord.py:
py -3 -m pip install -U discord.py
На MacOS команда выглядит несколько иначе – если этот вариант не сработает, попробуйте заменить pip на pip3:
python3 -m pip install -U discord.py
Как задать события для бота Discord
События – это набор правил, которые позволяют боту в Дискорде выполнять различные функции, реагируя на происходящее в чатах: например, ответить на чье-то сообщение определенным образом. Библиотека discord.py основана на концепте событий, так что с ними стоит разобраться.
Для примера научим нашего бота отвечать на заданное сообщение – прописать такую функцию просто, она поможет вам понять принципы программирования бота. Позже мы научим его делать и другие вещи.
Для начала добавьте в файл main.py (его можно переименовать, только избегайте названия discord.py) следующий код:
import discordimport os
client = discord.Client()
@client.eventasync def on_ready(): print(‘We have logged in as {0.user}’.format(client))
@client.eventasync def on_message(message): if message.author == client.user: return
if message.content.startswith(‘$hello’): await message.channel.send(‘Hello!’)
client.run(os.getenv(‘TOKEN’))
Далее мы создадим файл с расширением .env для хранения токена бота, который вы скопировали ранее. Тем, кто создает бота локально, этот пункт можно пропустить: достаточно заменить код os.getenv(‘TOKEN’) самим токеном.
К слову, .env файлы используются для объявления переменных и, в отличие от других файлов проекта, видны только его создателю. По этой причине разработчикам на Repl.it можно хранить в .env конфиденциальную информацию вроде ключей и токенов.
Для создания .env-файла нажмите «Добавить файл» и укажите расширение .env в конце названия документа.
Внутрь скопируйте строчку кода, указанную ниже, а также вставьте туда токен своего бота:
TOKEN=[вставьте токен сюда]
Настало время разобраться, как именно работает код бота для Дискорда, который вы скопировали ранее:
- Сперва код импортирует библиотеку discord.py;
- Вторая строка используется для подключения библиотеки os – она нужна исключительно для получения переменной TOKEN из файла .env. В локальных проектах эту строку можно удалить.
- Далее создается экземпляр Client, то есть устанавливается связь с самим Discord.
- @client.event() – декоратором для регистрации события. Он относится к асинхронным библиотекам, работающим через обратные вызовы – то есть с использованием функций, которые вызываются в результате какого-то события. В данном случае функция on_ready() срабатывает, когда бот включается, а on_message() вызывается, когда бот получает сообщение.
- Без дополнительных условий on_message() будет срабатывать каждый раз, когда кто-то пишет в чат. Только мы не хотим, чтобы бот отвечал самому себя, поэтому прописываем правило: если Message.author совпадает с Client.user, то функция просто возвращает return (бездействует).
- Далее бот проверяет Message.content (содержимое сообщения). Если оно начинается с ’$hello’, то бот отвечает приветствием ‘Hello!’.
- Последняя строка подсоединяет бота с помощью токена входа, который вызывается из файла .env.
Теперь, когда базовый код для бота написан (ну или скопирован), остается главное – запустить его в Discord.
Как запустить бота в Дискорде
В Repl.it нажмите специальную кнопку запуска вверху.
В локальном редакторе кода для запуска бота можно использовать специальные команды для терминала.
Для ПК с Windows:
py -3 main.py
Для MacOS и других ОС:
python3 main.py
Чтобы проверить работоспособность бота, перейдите в свою комнату Discord и отправьте сообщение с текстом $hello. Бот должен ответить: Hello!
Делаем бота умнее
Бот, умеющий здороваться – это мило, но мы сделаем его лучше. В инструкции описаны конкретные фразы, но по ним вы поймете принцип действия и сможете настроить все под свои нужды.
Для примера научим бота отвечать сообщением Hello! всем, кто напишет грустное сообщение с одним из ключевых слов.
Пользователи смогут самостоятельно пополнять запас подбадривающих фраз бота, а полученные сообщения с триггерными словами будут сохраняться в базу данных.
Кроме того, научим бота отправлять случайную вдохновляющую фразу каждый раз, когда кто-то напишет команду $inspire.
С этого и начнем.
Как добавлять в бота новые фразы
Можно прописывать все реплики вручную, но в случае с вдохновляющими цитатами мы воспользуемся готовой англоязычной API zenquotes.io. Также импортируем два дополнительных модуля Python, добавим функцию get_quote() и научим бота ее вызывать.
После всех манипуляций код выглядит так:
import discordimport osimport requestsimport json
client = discord.Client()
def get_quote(): response = requests.get(«https://zenquotes.io/api/random») json_data = json.loads(response.text) quote = json_data[0][‘q’] + » –» + json_data[0][‘a’] return(quote)
@client.eventasync def on_ready(): print(‘We have logged in as {0.user}’.format(client))
@client.eventasync def on_message(message): if message.author == client.user: return
if message.content.startswith(‘$inspire’): quote = get_quote() await message.channel.send(quote)
client.run(os.getenv(‘TOKEN’))
Вот, что мы добавили:
- Модуль requests – с его помощью бот делает HTTP-запрос для получения данных из API. API возвращает модуль JSON, упрощает работу с возвращенными данными.
- Функция get_quote() – она использует модуль запросов для запроса данных из URL-адреса API. API возвращает случайную вдохновляющую цитату.
- Внутри предыдущей функции мы используем json.loads(), чтобы преобразовать ответа API в JSON. Цитата выводится в виде строки.
- В конце кода мы поменяли логику бота. Раньше он реагировал на сообщения, начинавшиеся с $hello, а теперь триггером служит $inspire. Вместо строго определенного ответа Hello! он запрашивает случайную цитату quote = get_quote() и отправляет ее в чат.
Теперь вы можете запустить бота и протестировать его самостоятельно.
Как научить бота в Дискорде подбадривать пользователей
Напишем функцию, благодаря которой бот будет отвечать позитивными постами пользователям, которые пишут сообщения с грустными ключевыми словами.
В первую очередь пропишек список Python, содержащий слова-триггеры.
После создания переменной client добавляем код:
sad_words = [«sad», «depressed», «unhappy», «angry», «miserable»]
Слова можно менять, в том числе на русскоязычные.
Следом добавляем набор реплик, которыми бот будет отвечать загрустившим пользователям.
После списка sad_words добавляем еще один:
starter_encouragements = [ «Cheer up!», «Hang in there.», «You are a great person / bot!»]
Опять-таки, можно менять фразы на свое усмотрение – это всего лишь пример.
Как научить бота Discord отвечать на сообщения
Осталось научить бота использовать два новых списка. Поскольку по задумке бот будет выбирать случайную фразу из всего набора, для начала импортируем random. Добавляем строку в начало кода:
import random
Далее модифицируем функцию on_message() – нам нужно, чтобы она проверяла все сообщения пользователей на наличие триггеров из списка sad_words. Если оно обнаружится, то бот ответит.
Получился такой код:
async def on_message(message): if message.author == client.user: return
msg = message.content
if msg.startswith(‘$inspire’): quote = get_quote() await message.channel.send(quote) if any(word in msg for word in sad_words): await message.channel.send(random.choice(starter_encouragements))
Теперь вы можете снова протестировать бота. Если все хорошо, то можете поэтапно кастомизировать его, задавая уникальные реплики и триггеры. Стримеры, например, могут научить бота выдавать расписание трансляции или ссылку на свой канал – можно придумать огромное количество применений.
* * *
Теперь вы знаете, как создать и настроить бота в Дискорде.
Как почистить Windows от хлама и ненужных файлов – гайд по очистке памяти Виндовс
Как играть в «Герои 3» по сети бесплатно
Чтобы подключить бота Discord в ваше приложение, вам понадобятся токен бота (для настройки модуля) и ID канала, в который вы будете отправлять сообщения (для формы отправки).
Расскажем, как создать сервер, канал и бота Discord, а после добавить созданного бота на ваш сервер. О том, как настроить отправку сообщений на платформе AppMaster.io, можно прочитать в этой статье.
Создать сервер и канал, скопировать ID канала
Для начала вам нужно создать новый сервер в Discord (или получить права администратора на уже существующем). Откройте страницу вашей учетной записи Discord в браузере — так будет удобнее перемещаться между страницами настроек.
1.Нажмите на «+» на левой панели.
2.Выберите шаблон сервера в зависимости от вашей сферы или создайте собственный.
3.Укажите, для каких целей хотите его использовать.
4.Выберите изображение будущего сервера и укажите его название (1), затем нажмите Create. (2).
5.Сервер создан. По умолчанию в него уже добавлены два канала — текстовый и голосовой (1). Чтобы изменить настройки канала, нажмите значок шестеренки (2). Добавить новый канал можно, нажав на «+» рядом с названием раздела. Мы не будем создавать новый канал и для подключения нашего бота используем уже существующий канал general.
6.Теперь нужно получить ID выбранного канала. Для этого нужно сначала включить режим разработчика в настройках вашего профиля. Нажмите на значок шестеренки рядом с вашим никнеймом и фотографией.
7.Перейдите в раздел APP SETTINGS, на вкладку Advanced (1) и переместите селектор Developer mode — режим разработчика активируется (2).
8.Вернитесь из меню настроек и кликните по нужному каналу правой клавишей мыши (1), во всплывающем меню выберите Copy ID — идентификатор вашего канала будет скопирован (2). Сохраните его в любом текстовом документе, чтобы не возвращаться к этому шагу.
Создать бота и добавить его на сервер, скопировать токен бота
Чтобы создать бота, перейдите на специальную страницу Discord для разработчиков: https://discord.com/developers/. Откройте ее в соседней вкладке браузера, не выходя из вашей учетной записи Discord.
Сначала вам нужно создать приложение, затем в этом приложении создать бота и настроить для него разрешения, и только после этого — добавлять бота на сервер.
1.На вкладке Applications выберите New Application.
2.Введите название будущего приложения (1) и нажмите Create (2).
3.Приложение создано. Перейдите не вкладку Bot (1) и нажмите Add Bot, чтобы добавить нового бота.
4.Согласитесь добавить бота в ваше приложение.
5.Бот создан. На вкладке Bot отобразится вся информация о нем. Тут можно изменить его имя, добавить изображение и скопировать токен бота (1). Этот токен понадобится вам для настройки модуля Discord на платформе Appmaster.i. Каждый раз при внесении изменений портал разработчика будет предлагать вам сохранить их (2).
Сохраните токен бота, чтобы при последующей настройке не возвращаться к этому шагу.
6.Теперь перейдите на вкладку OAuth2 (1) — тут можно настроить разрешения и получить ссылку на вашего бота. В разделе SCOPES выберите bot(2), в BOT PERMISSIONS отметьте разрешения, которые хотите ему предоставить, в нашем случае — только отправка сообщений, поэтому выберите Send Message(3). После скопируйте автоматически сгенерированную Discord ссылку(4).
7.Вставьте скопированную ссылку в адресную строку браузера и перейдите по ней — откроется окошко вашего приложения. Выберите ваш сервер в раскрывающемся списке (1) и нажмите Continue (2).
8.Убедитесь, что приложению (а значит, и созданному в нем боту) даны только необходимые разрешения, после чего добавьте его на ваш сервер.
9.Теперь вернитесь на ваш сервер. Бот оставил приветственное сообщение — значит, что он успешно добавлен и функционирует.
Через AppMaster.io Studio подключить бота в приложение
Итак, все готово. Вы получили токен бота для модуля Discord и ID канала для формы отправки сообщения. Теперь перейдите в AppMaster.io Studio и настройте отправку сообщений из вашего приложения, следуя инструкции Модуль Discord: подключение бота и отправка сообщений.
Следите за нашим блогом и присоединяйтесь к чату комьюнити, чтобы узнавать о новостях платформы и новых статьях.
Подробнее о том, что такое модули и как их настраивать — в обучающем видеокурсе AppMaster.io 101.