Розбрат має чудовий API для написання власних ботів і дуже активний спільнота ботів . Сьогодні ми розглянемо, як почати робити власні.
Для кодування бота вам знадобиться трохи знань з програмування, тому це не для всіх, але, на щастя, є деякі модулі для популярних мов, які роблять це дуже простим. Ми будемо використовувати найпопулярніший, discord.js .
ПОВ'ЯЗАНІ: Як створити, налаштувати та керувати сервером Discord
Починаємо
Відправляйтеся до Discord's портал ботів та створіть нову програму.
Ви захочете записати ідентифікатор клієнта та секрет (що, звичайно, слід зберігати в таємниці). Однак це не бот, а лише "Додаток". Вам доведеться додати бота на вкладці "Бот".
Запишіть і цей маркер і тримайте його в таємниці. Ні в якому разі не передавайте цей ключ Github. Ваш бот буде зламаний майже відразу.
Встановіть Node.js та отримайте кодування
Вам потрібно запустити код Javascript за межами веб-сторінки Вузол . Завантажте його, встановіть і переконайтесь, що він працює в терміналі (або в командному рядку, оскільки все це повинно працювати в системах Windows). Команда за замовчуванням - “вузол”.
Ми також рекомендуємо встановити інструмент nodemon. Це програма командного рядка, яка контролює код вашого бота і автоматично перезапускається при внесенні змін. Ви можете встановити його, виконавши таку команду:
npm та -g nodemon
Вам знадобиться текстовий редактор. Ви можете просто використовувати блокнот, але ми рекомендуємо або Атом або VSC .
Ось наш "Привіт Світ":
const Discord = require ('discord.js');
const client = new Discord.Client ();
client.on ('готовий', () => {
console.log(`Logged in as ${client.user.tag}! `);
});
client.on ('повідомлення', msg => {
if (msg.content === 'ping') {
msg.reply('pong');
}
});
client.login ('маркер');
Цей код взято з discord.js приклад. Давайте розберемо це.
- Перші два рядки призначені для налаштування клієнта. Перший рядок імпортує модуль до об’єкта, який називається “Discord”, а другий рядок ініціалізує клієнтський об’єкт.
-
client.on ('готовий')блок почне спрацьовувати при запуску бота. Тут він просто налаштований для реєстрації його імені на терміналі. -
client.on ('повідомлення')block запускатиметься кожного разу, коли нове повідомлення буде розміщене на будь-якому каналі. Звичайно, вам потрібно буде перевірити вміст повідомлення, і ось щоякщоблок робить. Якщо в повідомленні просто написано "пінг", воно відповість "Понг!" - Останній рядок входить із маркером із порталу ботів. Очевидно, що маркер на скріншоті тут - підробка. Ніколи не публікуйте свій маркер в Інтернеті.
Скопіюйте цей код, вставте маркер унизу та збережіть як
index.js
у спеціальній папці.
Як запустити бота
Перейдіть до свого терміналу і виконайте таку команду:
nodemon --inspect index.js
Це запускає сценарій, а також запускає налагоджувач Chrome, до якого ви можете отримати доступ, ввівши текст
хром: // перевірити /
у Omnibar Chrome, а потім відкрийте "спеціальні інструменти розробки для Node".
Тепер слід просто сказати «Увійшов як <ім'я-робота>», але тут я додав рядок, який реєструватиме всі об'єкти повідомлень, отримані на консолі:
То що складає цей об’єкт повідомлення? Насправді багато речей:
Найголовніше, що у вас є інформація про автора та інформацію про канал, до якої ви можете отримати доступ за допомогою msg.author та msg.channel. Я рекомендую цей метод реєстрації об'єктів у засобах розробки Chrome Node і просто оглядаючись навколо, щоб зрозуміти, що змушує це працювати. Ви можете знайти щось цікаве. Наприклад, бот реєструє свої відповіді на консолі, тому відповіді бота запускаються
client.on ('повідомлення')
. Отже, я зробив спам-бота:
Примітка : Будьте обережні з цим, оскільки ви не дуже хочете мати справу з рекурсією.
Як додати бота на ваш сервер
Ця частина складніша, ніж повинна бути. Ви повинні взяти цю URL-адресу:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
І замініть CLIENTID на ідентифікатор клієнта вашого бота, який знаходиться на вкладці загальної інформації в сторінка програми . Як тільки це буде зроблено, ви можете передати посилання своїм друзям, щоб вони також додали бота на свої сервери.
Добре, так що ще я можу зробити?
Окрім базового налаштування, все інше повністю залежить від вас. Але, це не був би великий підручник, якби ми зупинились на привіт світ, так що давайте розглянемо деякі з них документація , тож ви краще уявляєте, що можливо. Я пропоную вам прочитати якомога більше, оскільки це дуже добре задокументовано.
Я б порекомендував додати
console.log (клієнт)
до початку коду та подивившись на об'єкт клієнта в консолі:
Звідси ви можете багато чому навчитися. Оскільки ви можете додати бота до кількох серверів одночасно, сервери є частиною
Гільдії
об'єкт карти. У цьому об'єкті знаходиться індивід
Гільдії
(що є назвою API для «сервера») і ці об’єкти гільдії мають списки каналів, які містять всю інформацію та списки повідомлень. API дуже глибокий, і його вивчення може зайняти деякий час, але принаймні його легко налаштувати та розпочати навчання.