Содержание:
Корпоративный мессенджер Discord пользуется огромной популярностью во всём мире. Но в чистом виде его возможности существенно ограничены. Востребованность программы основана на возможности использования ботов – дополнений, расширяющих функционал приложения. Количество чатов для Discord исчисляется тысячами, при этом их направленность – самая разнообразная. Существуют боты, специализирующиеся на проигрывании музыки, есть и те, которые позволяют пользоваться радио. Популярны расширения для публикации фото и картинок, множество ботов предлагают мини-игры. Есть и те, которые устанавливаются непосредственно на функциях чата, позволяя модерировать его. Словом, возможности для расширения возможностей мессенджера – огромные. Сегодня мы попробуем разобраться, как добавлять бота в Discord, как его настраивать, удалять и даже создавать свой вариант.
Если вы обладаете навыками программирования, создание собственного бота может оказаться довольно увлекательным занятием. Но поскольку большинство пользователей весьма далеки от программирования, этот путь не для них. Тем более, что вряд ли имеет смысл создавать то, что уже имеется в готовом виде, причём в избытке.
Главное условие для добавления бота на сервер Discord – найти сайт с хорошей коллекцией ботов. Таких сегодня существует немало, в качестве примера можно привести достаточно популярный ресурс – https://top.gg/
Сама процедура установки не отличается повышенной сложностью:
Как видим, подключение бота – дело нехитрое. Не сложнее, чем инсталляция программ. Напоследок отметим, что самой востребованной категорией на сегодня считаются надстройки, позволяющие проигрывать музыку. Мы рекомендуем поставить музыкального бота Rhythm, который в сообществе Discord пользуется заслуженной репутацией одного из лучших. В числе достоинств дополнения к чату – потоковое проигрывание аудиотреков, причем из разных источников. Поддерживаются сервисы Soundcloud, Twitch, можно слушать музыку непосредственно из YouTube.
Фишкой бота Rhythm является уникальная способность извлекать отдельные треки из плейлистов и самостоятельно в автоматическом режиме формировать новый список, как только старый окажется пустым. Добавление песен осуществляется разными способами. Например, указанием прямой ссылки на источник воспроизведения. А можно воспользоваться поиском, и тогда вам нужно будет выбрать нужную песню из списка, составленного из наиболее полно коррелирующих с вашим запросом.
Список команд для работы с ботом небольшой, а их синтаксис несложен, так что вы вряд ли испытаете затруднения при использовании этих директив даже на начальном этапе эксплуатации бота.
Ещё одной «фишкой» Rhythm можно назвать способность показывать пользователю текст воспроизводимой в данный момент песни, что оценят любители подпевать. При желании можно попытаться отыскать текст любой песни, лишь бы вы знали полное правильное название и исполнителя.
Напоследок отметим, что бот предлагает администраторам серверов обширный перечень настроек, оптимизирующих его работу. Все они доступны на модульной панели. Ознакомиться со списком основных команд, предназначенных для управления приложением, можно на официальном сайте Rhythm.
Установка бота, описанная в предыдущем разделе, уже является достаточной процедурой, чтобы начать им пользоваться тут же, немедленно. То есть включать его или каким-то образом активировать не нужно. Однако без знания команд, необходимых для полноценного использования возможностей расширения, не обойтись. Потребуется также выполнение первоначальных настроек.
Что касается настройки, то правильно написанный бот после установки на сервер Discord должен выслать сообщение, в котором и будут присутствовать подробные инструкции, как выполнить настройки и как управлять ботом с помощью команд. Чаще всего в сообщении просто приводится синтаксис команды, введя которую, вы получите список всех других доступных команд.
Инструкция дублируется также на сайте discordbots.org, если вы устанавливали бот именно оттуда.
API чата Discord имеет достаточно развитый инструмент, позволяющий создавать ботов. Разумеется, для этого нужно быть программистом. Но при желании в сети можно найти уже готовые и даже задокументированные боты, которые можно использовать в зависимости от условий, предоставленных разработчиком.
Выбрав этот путь, нам всё равно нужно знать, как его установить на сервер так, чтобы им можно было пользоваться.
Рассмотрим пример музыкального бота, написанного на js и обладающего базовыми возможностями (проигрывание с поддержкой очереди воспроизведение, остановка, пропуск треков).
Приводим текст готового скрипта:
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);
А теперь рассмотрим, как установить этот бот:
Впрочем, то же самое можно сделать, не имея программы и собственного сервера (запуск будет производиться с внешнего сервера dynobot.net). Последовательность действий:
Как видим, установка бота потребует от вас максимальной концентрации, но ничего запредельно сложного в этом нет.
Если по каким-то причинам установленный бот вам уже не нужен (надоел, вы нашли новый, с лучшим функционалом), его можно удалить с сервера Discord в любой момент времени. Для этого открываем перечень участников канала, кликаем ПКМ по боту и в появившемся контекстном меню выбираем опцию «Удалить».
Вернуть тоже можно в любой момент, но придётся выполнить процедуру установки заново.
Удаление самого бота не приведёт к исчезновению всех опубликованных дополнением материалов. Если возникнет необходимость избавиться и от них, придётся это делать вручную или использовать специальный бот, специализирующийся на очистке чата.
Процедуру перемещения бота на другой сервер можно реализовать простым, но неудобным способом, удалением на первом сервере и установкой с нуля на втором.
Теперь вы в курсе, как создать свой бот в Discord, как выполнить его первичную настройку. Если возникли вопросы, задавайте их в комментариях, обычно они не остаются без ответа.
Намарно превет мне ни очень памагло ну как только своим собственным ботам упровлять?