Jak stworzyć własną Bot Discord
Discord ma doskonały interfejs API do pisania niestandardowych botów i bardzo aktywną społeczność botów. Dzisiaj przyjrzymy się, jak zacząć tworzyć własne.
Będziesz potrzebował trochę wiedzy programistycznej, aby zakodować bota, więc nie dla wszystkich, ale na szczęście istnieje kilka modułów popularnych języków, które bardzo ułatwiają. Będziemy używać najpopularniejszego, discord.js.
Pierwsze kroki
Udaj się do portalu botów Discord i utwórz nową aplikację.
Będziesz chciał zanotować identyfikator klienta i sekret (oczywiście, że powinieneś zachować tajemnicę). Jednak to nie jest bot, tylko "Aplikacja". Musisz dodać bota pod zakładką "Bot".
Zanotuj również token i zachowaj go w tajemnicy. W żadnym wypadku nie należy przypisywać tego klucza do Github. Twój bot zostanie zhakowany prawie natychmiast.
Zainstaluj Node.js i pobierz kodowanie
Aby uruchomić kod Javascript poza stroną internetową, potrzebujesz węzła. Pobierz, zainstaluj i upewnij się, że działa w terminalu (lub w wierszu poleceń, ponieważ wszystko to powinno działać w systemach Windows). Domyślne polecenie to "węzeł".
Zalecamy również zainstalowanie narzędzia nodemon. Jest to aplikacja wiersza poleceń, która monitoruje kod twojego bota i automatycznie uruchamia się po zmianach. Możesz go zainstalować, uruchamiając następujące polecenie:
npm i -g nodemon
Potrzebujesz edytora tekstowego. Możesz po prostu użyć notatnika, ale zalecamy Atom lub VSC.
Oto nasz "Hello World":
const Discord = require ('discord.js'); const client = new Discord.Client (); client.on ("ready", () => console.log ("Zalogowano jako $ client.user.tag!");); client.on ('message', msg => if (msg.content === 'ping') msg.reply ('pong');); client.login ("token");
Ten kod pochodzi z przykładu discord.js. Złam to.
- Pierwsze dwie linie to konfiguracja klienta. Pierwszy wiersz importuje moduł do obiektu o nazwie "Discord", a wiersz 2 inicjuje obiekt klienta.
- The
client.on ("gotowe")
blok zostanie uruchomiony, gdy bot się uruchomi. Tutaj jest skonfigurowany tak, aby rejestrować jego nazwę na terminalu. - The
client.on ("wiadomość")
blok zostanie uruchomiony za każdym razem, gdy nowa wiadomość zostanie wysłana na dowolny kanał. Oczywiście musisz sprawdzić zawartość wiadomości i właśnie toJeśli
blokuje. Jeśli komunikat po prostu mówi "ping", to odpowie "Pong!" - Ostatni wiersz 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 token u dołu i zapisz go jako index.js
w dedykowanym folderze.
Jak uruchomić Bot
Udaj się do terminala i uruchom następujące polecenie:
nodemon --inspect index.js
Spowoduje to uruchomienie skryptu, a także uruchomi debuger Chrome, do którego można uzyskać dostęp, pisząc chrome: // inspect /
do Omnibara Chrome, a następnie otwierając "dedykowane devtools dla węzła".
Teraz powinien po prostu powiedzieć "Zalogowany jako", ale tutaj dodałem linię, która rejestruje wszystkie odebrane obiekty wiadomości do konsoli:
Co więc tworzy ten obiekt wiadomości? Rzeczywiście:
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ądam się, aby zobaczyć, co działa. Możesz znaleźć coś interesującego. Tutaj, na przykład, bot loguje swoje odpowiedzi do konsoli, więc odpowiedzi bota wywołują client.on ("wiadomość")
. Zrobiłem spambot:
Uwaga: Ostrożnie z tym, ponieważ tak naprawdę nie chcesz zajmować się rekurencją.
Jak dodać Bot do swojego serwera
Ta część jest trudniejsza, niż powinna być. Musisz wziąć ten URL:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
Zastąp CLIENTID swoim identyfikatorem klienta, znajdującym się na karcie informacji ogólnych na stronie aplikacji. Gdy to zrobisz, możesz podać link do znajomych, aby dodać ich do swoich serwerów.
W porządku, więc co mogę zrobić?
Poza podstawową konfiguracją wszystko inne zależy wyłącznie od Ciebie. Ale to nie byłby samouczek, gdybyśmy zatrzymali się na hello world, więc przejrzyjmy część dokumentacji, aby lepiej zrozumieć, co jest możliwe. Sugeruję, abyś przeczytał jak najwięcej, ponieważ jest bardzo dobrze udokumentowany.
Polecam dodanie console.log (klient)
na początek kodu i spojrzenie na obiekt klienta w konsoli:
Stąd możesz się wiele nauczyć. Ponieważ możesz dodawać bota do wielu serwerów jednocześnie, serwery są częścią Gildie
obiekt mapy. W tym obiekcie znajdują się poszczególne Gildie (która 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 głęboki i może trochę potrwać, zanim się go nauczy, ale przynajmniej jest łatwy do skonfigurowania i rozpoczęcia nauki.