Как да си направите собствен бот за раздори

Discord има отличен API за писане на персонализирани ботове и много активна бот общност. Днес ще разгледаме как да започнете да правите свои собствени.

Ще ви трябват малко познания по програмиране, за да кодирате бот, така че не е за всеки, но за щастие има някои модули за популярни езици, които го правят много лесно. Ще използваме най-популярния, discord.js.

СВЪРЗАНИ: Как да създадете, настроите и управлявате вашия Discord сървър

Приготвяме се да започнем

Насочете се към портала за ботове на Discord и създайте ново приложение.

Ще искате да си направите бележка за идентификатора на клиента и тайната (която трябва да запазите в тайна, разбира се). Това обаче не е ботът, а само „Приложението“. Ще трябва да добавите бота в раздела „Бот“.

Запишете и този символ и го запазете в тайна. При никакви обстоятелства не предавайте този ключ на Github. Вашият бот ще бъде хакнат почти веднага.

Инсталирайте Node.js и получете кодиране

За да стартирате код на Javascript извън уеб страница, имате нужда от Node. Изтеглете го, инсталирайте го и се уверете, че работи в терминал (или в командния ред, тъй като всичко това трябва да работи на системи с Windows). Командата по подразбиране е „възел“.

Препоръчваме също да инсталирате инструмента nodemon. Това е приложение от командния ред, което следи кода на вашия бот и се рестартира автоматично при промени. Можете да го инсталирате, като изпълните следната команда:

npm i -g nodemon

Ще ви трябва текстов редактор. Можете просто да използвате бележник, но препоръчваме или Atom, или VSC.

Ето нашия „Hello World“:

const Discord = изискване ('discord.js'); const client = нов Discord.Client (); client.on ('готов', () => {console.log (`Влезли като $ {client.user.tag}!`);}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('токен');

Този код е взет от примера на discord.js. Нека да го разделим.

  • Първите два реда са за конфигуриране на клиента. Линия първа импортира модула в обект, наречен „Discord“, а втори ред инициализира клиентския обект.
  • В client.on('ready')блока ще се задейства, когато ботът стартира. Тук той просто е конфигуриран да регистрира името му в терминала.
  • В client.on('message')блока ще се задейства всеки път на ново съобщение се публикува на всеки канал. Разбира се, ще трябва да проверите съдържанието на съобщението и това прави ifблока. Ако съобщението просто казва „пинг“, то ще отговори с „Понг!“
  • Последният ред влиза в системата с маркера от портала за ботове. Очевидно символът на екранната снимка тук е фалшив. Никога не публикувайте своя токен в интернет.

Копирайте този код, поставете токена си отдолу и го запазете като index.js в специална папка.

Как да стартирате бота

Преминете към вашия терминал и изпълнете следната команда:

nodemon --inspect index.js

Това стартира скрипта и също така задейства дебъгера на Chrome, до който имате достъп, като въведете chrome://inspect/  в Omnibar на Chrome и след това отворите „специални devtools за Node“.

Сега трябва просто да пише „Влезли като“, но тук съм добавил ред, който ще регистрира всички получени обекти на съобщения в конзолата:

И така, от какво се състои този обект на съобщението? Всъщност много неща:

Най-забележителното е, че имате информацията за автора и информацията за канала, до която имате достъп с msg.author и msg.channel. Препоръчвам този метод за регистриране на обекти в инструментите за разработка на Chrome Node и просто оглеждане наоколо, за да видя какво го прави. Може да намерите нещо интересно. Тук например ботът регистрира отговорите си в конзолата, така че отговорите на бота се задействат client.on('message'). И така, направих спам бот:

Забележка : Внимавайте с това, тъй като всъщност не искате да се справяте с рекурсия.

Как да добавите бота към вашия сървър

Тази част е по-трудна, отколкото би трябвало да бъде. Трябва да вземете този URL:

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

И заменете CLIENTID с идентификатора на клиента на вашия бот, намерен в раздела с обща информация на страницата на приложението. След като направите това обаче, можете да дадете връзката на приятелите си, за да ги накарат да добавят бота и към сървърите си.

Добре, какво друго мога да направя?

Освен основната настройка, всичко друго зависи изцяло от вас. Но това не би било много урок, ако се спрем на здравей, така че нека да разгледаме част от документацията, за да имате по-добра представа за това, което е възможно. Предлагам ви да прочетете колкото можете, тъй като това е много добре документирано.

Бих препоръчал да добавите console.log(client)към началото на кода си и да разгледате обекта на клиента в конзолата:

От тук можете да научите много. Тъй като можете да добавите бот към няколко сървъра наведнъж, сървърите са част от Guilds обекта на картата. В този обект са отделните Гилдии (което е името на API за „сървър“) и тези гилдийни обекти имат списъци с канали, които съдържат цялата информация и списъци със съобщения. API е много задълбочен и може да отнеме известно време, за да се научи, но поне е лесно да се настрои и да започне да се учи.