Як зробити свій власний розкол Бот
Discord має чудовий API для написання користувальницьких роботів, а також дуже активне спільнота ботів. Сьогодні ми подивимося, як почати робити свій власний.
Вам знадобиться трохи знань із програмування для кодування бота, так що це не для всіх, але, на щастя, є деякі модулі для популярних мов, які роблять його дуже легким. Ми будемо використовувати найпопулярніший, discord.js.
Починаємо
Перейдіть до порталу бота Disord і створіть нову програму.
Ви хочете записати ідентифікатор клієнта та секрет (звичайно ж, ви повинні зберігати таємницю). Тим не менш, це не бот, просто "Додаток". Ви повинні будете додати бота під вкладку "Bot".
Занотуйте також цей знак і зберігайте його в таємниці. Ні в якому разі не вкладайте цей ключ у Github. Ваш бот буде зламаний майже відразу.
Встановіть Node.js і Get Coding
Щоб запустити код Javascript за межами веб-сторінки, вам потрібен Node. Завантажте його, встановіть і переконайтеся, що він працює в терміналі (або Command Prompt, оскільки все це має працювати на системах Windows). Команда за замовчуванням - "вузол".
Ми також рекомендуємо встановити інструмент nodemon. Це додаток командного рядка, який відстежує код вашого бота і автоматично перезапускається після змін. Його можна встановити, виконавши таку команду:
npm i -g nodemon
Вам знадобиться текстовий редактор. Ви можете просто використовувати блокнот, але ми рекомендуємо або Atom, або VSC.
Ось наш "Hello World":
const Discord = require ('discord.js'); const client = new Discord.Client (); client.on ('ready', () => console.log ('Увійшов у систему як $ client.user.tag!');); client.on ('message', msg => if (msg.content === 'ping') msg.reply ('pong');); client.login ('маркер');
Цей код взято з прикладу discord.js. Давайте розіб'ємо його.
- Перші два рядки призначені для налаштування клієнта. Перший рядок імпортує модуль в об'єкт, який називається “Discord”, а другий рядок ініціалізує об'єкт клієнта.
- The
client.on ('ready')
Блок буде стріляти, коли бот запускається. Тут він просто налаштований для запису свого імені в термінал. - The
client.on ("повідомлення")
Блок буде запускати кожен раз, коли нове повідомлення буде розміщено на будь-якому каналі. Звичайно, потрібно перевірити вміст повідомлення, і це те, щоякщо
блок. Якщо повідомлення просто говорить "пінг", то він відповість "Понг!" - Останній рядок реєструється з токеном з порталу бота. Очевидно, токен на скріншоті тут є підробкою. Ніколи не розміщуйте свій маркер в Інтернеті.
Скопіюйте цей код, вставте свій маркер внизу і збережіть його як index.js
у спеціальній папці.
Як запустити бот
Перейдіть до терміналу та виконайте таку команду:
nodemon --inspect index.js
Це запускає скрипт, а також запускає відладчик Chrome, до якого можна отримати доступ, ввівши його chrome: // інспектувати /
в Omnibar Chrome, а потім відкриття "виділених devtools для Node".
Тепер він повинен просто сказати: "Зареєстрований як", але тут я додав рядок, який буде реєструвати всі об'єкти повідомлення, отримані в консолі:
Так що ж утворює цей об'єкт повідомлення? Багато речей, насправді:
Зокрема, у вас є інформація про автора і інформацію про канал, до якої ви можете отримати доступ за допомогою msg.author і msg.channel. Я рекомендую цей метод реєстрації об'єктів у devtools вузла Chrome і просто дивитися навколо, щоб побачити, що змушує його працювати. Ви можете знайти щось цікаве. Тут, наприклад, бот реєструє свої відповіді на консоль, тому відповіді бота ініціюють client.on ("повідомлення")
. Отже, я зробив спам-бот:
ПриміткаБудьте обережні з цим, оскільки ви не хочете займатися рекурсією.
Як додати бота на ваш сервер
Ця частина важче, ніж повинна бути. Ви повинні взяти цю URL-адресу:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
І замінити CLIENTID ідентифікатором клієнта вашого бота, який можна знайти на вкладці загальної інформації сторінки програми. Як тільки це буде зроблено, ви можете дати посилання своїм друзям, щоб вони також додавали бота до своїх серверів.
Добре, так що ще я можу зробити?
Крім базової установки, все інше повністю залежить від вас. Але, якщо ми зупинилися на привіт, то це не буде великою частиною навчального посібника, так що давайте розглянемо деякі з документів, щоб ви могли краще уявити, що можливо. Я пропоную вам прочитати як можна більше, оскільки це дуже добре задокументоване.
Я б рекомендував додати console.log (клієнт)
до початку вашого коду і перегляду об'єкта клієнта в консолі:
Звідси ви можете багато чому навчитися. Оскільки ви можете додати бота на декілька серверів одночасно, сервери є частиною Гільдії
об'єкт карти. У цьому об'єкті є окремі гільдії (це ім'я API для “сервера”), і ці об'єкти гільдії мають списки каналів, які містять всю інформацію та списки повідомлень. API дуже глибокий і може знадобитися деякий час, щоб навчитися, але принаймні легко налаштувати та розпочати навчання.