/ / Jak zrobić własny bot Discord

Jak zrobić własny 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 programistycznejkodować bota, więc nie jest on przeznaczony dla wszystkich, ale na szczęście istnieją moduły dla popularnych języków, które sprawiają, że jest to bardzo łatwe. Użyjemy najpopularniejszego, discord.js.

ZWIĄZANE Z: Jak tworzyć, konfigurować i zarządzać serwerem Discord Server

Pierwsze kroki

Udaj się do portalu botów Discord i utwórz nową aplikację.

Musisz zanotować identyfikator klienta i klucz tajny (który oczywiście należy zachować w tajemnicy). Jednak to nie jest bot, tylko „Aplikacja”. Musisz dodać bota w zakładce „Bot”.

Zanotuj również ten token i zachowaj go w tajemnicy. W żadnym wypadku nie wysyłaj tego klucza do Github. Twój bot zostanie zhakowany prawie natychmiast.

Zainstaluj Node.js i pobierz kodowanie

Aby uruchomić kod JavaScript poza stroną internetową, musiszpotrzebuję Węzła. Pobierz, zainstaluj i upewnij się, że działa w terminalu (lub wierszu polecenia, 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 bota i automatycznie uruchamia się ponownie po zmianach. Możesz go zainstalować, uruchamiając następujące polecenie:

npm i -g nodemon

Potrzebujesz edytora tekstu. Możesz po prostu użyć notatnika, ale zalecamy albo Atom, albo VSC.

Oto nasz „Hello World”:

const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log(`Logged in as ${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. Rozbijmy to.

  • Pierwsze dwa wiersze dotyczą konfiguracji klienta. Pierwsza linia importuje moduł do obiektu o nazwie „Discord”, a druga linia inicjuje obiekt klienta.
  • The client.on('ready') blok uruchomi się, gdy bot się uruchomi. Tutaj właśnie skonfigurowano rejestrowanie jego nazwy w terminalu.
  • The client.on('message') blok będzie uruchamiany za każdym razem, gdy nowa wiadomość zostanie opublikowana na dowolnym kanale. Oczywiście musisz sprawdzić treść wiadomości i właśnie to if blok robi. Jeśli wiadomość mówi tylko „ping”, wówczas odpowie „Pong!”
  • Ostatnia linia loguje się przy użyciu 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 go jako index.js w dedykowanym folderze.

Jak uruchomić bota

Udaj się do swojego terminala i uruchom następującą komendę:

nodemon --inspect index.js

Spowoduje to uruchomienie skryptu, a także uruchomienie debugera Chrome, do którego można uzyskać dostęp, pisząc chrome://inspect/ w Omnibar Chrome, a następnie otwierając „dedykowane devtools dla Węzła”.

Teraz powinien po prostu powiedzieć „Zalogowany jako <nazwa_bota>”, ale tutaj dodałem wiersz, który będzie rejestrował wszystkie obiekty wiadomości otrzymane do konsoli:

Co składa się na ten obiekt wiadomości? Wiele rzeczy, właściwie:

Przede wszystkim masz informacje o autorze iinformacje o kanale, do których można uzyskać dostęp za pomocą msg.author i msg.channel. Polecam tę metodę rejestrowania obiektów w devtools Chrome Node i rozglądanie się, aby zobaczyć, co sprawia, że ​​działa. Możesz znaleźć coś interesującego. Tutaj, na przykład, bot rejestruje swoje odpowiedzi w konsoli, więc odpowiedzi bota uruchamiają się client.on('message'). Zrobiłem więc 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

I zamień CLIENTID na identyfikator klienta bota,znajduje się na karcie ogólnych informacji na stronie aplikacji. Gdy to zrobisz, możesz podać link swoim znajomym, aby mogli dodać bota również do swoich serwerów.

W porządku, co jeszcze mogę zrobić?

Poza podstawową konfiguracją wszystko inne jest całkowicie sprawnedo Ciebie. Ale nie byłby to samouczek, gdybyśmy zatrzymali się w hello world, więc przejrzyjmy trochę dokumentacji, abyś miał lepsze pojęcie o tym, co jest możliwe. Proponuję przeczytać jak najwięcej, ponieważ jest to bardzo dobrze udokumentowane.

Poleciłbym dodać console.log(client) na początku kodu i spójrz na obiekt 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ą Guilds obiekt mapy. W tym obiekcie znajdują się poszczególne gildie (które to nazwa API dla „serwera”), a te obiekty gildii mają listy kanałów zawierające wszystkie informacje i listy wiadomości. Interfejs API jest bardzo głęboki i jego nauka może trochę potrwać, ale przynajmniej łatwo go skonfigurować i rozpocząć naukę.