Niezgoda ma doskonałe API do pisania niestandardowych botów i bardzo aktywny społeczność botów . Dziś przyjrzymy się, jak zacząć tworzyć własne.
Będziesz potrzebować trochę wiedzy programistycznej, aby zakodować bota, więc nie jest to rozwiązanie dla wszystkich, ale na szczęście istnieją moduły dla popularnych języków, które bardzo ułatwiają to zadanie. Będziemy używać najpopularniejszego, discord.js .
ZWIĄZANE Z: Jak stworzyć, skonfigurować i zarządzać swoim serwerem Discord
Pierwsze kroki
Udaj się do Discorda bot portal i utwórz nową aplikację.
Będziesz chciał zanotować identyfikator klienta i sekret (który oczywiście powinieneś zachować w tajemnicy). Jednak to nie jest bot, tylko „Aplikacja”. Musisz dodać bota na karcie „Bot”.
Zanotuj również ten żeton i zachowaj go w tajemnicy. Pod żadnym pozorem nie przekazuj tego klucza Githubowi. Twój bot zostanie zhakowany niemal natychmiast.
Zainstaluj Node.js i pobierz kodowanie
Aby uruchomić kod Javascript poza stroną internetową, potrzebujesz Węzeł . Pobierz, zainstaluj i upewnij się, że działa w terminalu (lub w wierszu polecenia, ponieważ wszystko to powinno działać w systemach Windows). Domyślnym poleceniem jest „węzeł”.
Zalecamy również zainstalowanie narzędzia nodemon. Jest to aplikacja wiersza poleceń, która monitoruje kod Twojego bota i automatycznie uruchamia się ponownie po wprowadzeniu zmian. Możesz go zainstalować, uruchamiając następujące polecenie:
npm i -g nodemon
Będziesz potrzebował edytora tekstu. Możesz po prostu użyć notatnika, ale zalecamy też Atom lub VSC .
Oto nasz „Hello World”:
const Discord = require ('discord.js');
klient const = nowy Discord.Client ();
client.on ('ready', () => {
console.log(`Logged in as ${client.user.tag}! `);
});
client.on ('wiadomość', msg => {
if (msg.content === 'ping') {
msg.reply('pong');
}
});
client.login ('token');
Ten kod jest pobierany z discord.js przykład. Rozbijmy to.
- Pierwsze dwie linie służą do konfiguracji klienta. Pierwsza linia importuje moduł do obiektu o nazwie „Discord”, a druga linia inicjuje obiekt klienta.
-
Plik
client.on ('gotowy')blok będzie strzelał, gdy bot się uruchomi. Tutaj jest po prostu skonfigurowany do rejestrowania swojej nazwy w terminalu. -
Plik
client.on ('wiadomość')blok będzie uruchamiany za każdym razem, gdy na dowolnym kanale zostanie wysłana nowa wiadomość. Oczywiście musisz sprawdzić treść wiadomości i to jest właśnie togdybyblok robi. Jeśli wiadomość zawiera tylko „ping”, odpowie „Pong!” - Ostatnia linia loguje się za pomocą tokena z portalu botów. Oczywiście token na zrzucie ekranu jest fałszywy. Nigdy nie publikuj swojego tokena w internecie.
Skopiuj ten kod, wklej swój token na dole i zapisz jako
index.js
w dedykowanym folderze.
Jak uruchomić bota
Udaj się do terminala i uruchom następujące polecenie:
nodemon --inspect index.js
Spowoduje to uruchomienie skryptu, a także uruchomienie debugera Chrome, do którego można uzyskać dostęp, wpisując
chrome: // inspect /
do Omnibara Chrome, a następnie otwierając „dedykowane narzędzia Devtools dla Node”.
Teraz powinien po prostu powiedzieć „Zalogowany jako <bot-name>”, ale tutaj dodałem wiersz, który będzie rejestrował wszystkie obiekty wiadomości odebrane na konsoli:
Więc co składa się na ten obiekt wiadomości? Właściwie wiele rzeczy:
Przede wszystkim masz informacje o autorze i informacje o kanale, do których możesz uzyskać dostęp za pomocą msg.author i msg.channel. Polecam tę metodę rejestrowania obiektów w devtools Chrome Node i po prostu rozglądając się, aby zobaczyć, co sprawia, że działa. Może znajdziesz coś interesującego. Na przykład bot rejestruje swoje odpowiedzi w konsoli, więc odpowiedzi bota są wyzwalane
client.on ('wiadomość')
. Więc zrobiłem spambota:
Uwaga : Uważaj na to, ponieważ tak naprawdę nie chcesz zajmować się rekurencją.
Jak dodać bota do swojego serwera
Ta część jest trudniejsza niż powinna. Musisz wziąć ten adres URL:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
Zastąp CLIENTID identyfikatorem klienta swojego bota, który znajduje się na karcie ogólnych informacji w strona aplikacji . Gdy to zrobisz, możesz podać link znajomym, aby dodali bota również do swoich serwerów.
W porządku, więc co jeszcze mogę zrobić?
Poza podstawową konfiguracją wszystko inne zależy wyłącznie od Ciebie. Nie byłby to jednak samouczek, gdybyśmy zatrzymali się w hello world, więc przejdźmy do kilku części dokumentacja , więc masz lepsze pojęcie o tym, co jest możliwe. Sugeruję, żebyś przeczytał jak najwięcej, ponieważ jest bardzo dobrze udokumentowany.
Polecam dodanie
console.log (klient)
na początek twojego kodu i przyjrzenie się obiektowi klienta w konsoli:
Stąd możesz się wiele nauczyć. Ponieważ możesz dodać bota do wielu serwerów jednocześnie, serwery są częścią
Gildie
obiekt mapy. W tym obiekcie jest jednostka
Gildie
(co jest nazwą API dla „serwera”), a te obiekty gildii mają listy kanałów, które zawierają wszystkie informacje i listy wiadomości. Interfejs API jest bardzo rozbudowany i może zająć trochę czasu, aby się go nauczyć, ale przynajmniej jest łatwy w konfiguracji i rozpoczęciu nauki.