Wie man seinen eigenen Discord Bot macht

Discord verfügt über eine hervorragende API zum Schreiben von benutzerdefinierten Bots und eine sehr aktive Bot-Community. Heute schauen wir uns an, wie Sie anfangen können, Ihre eigenen zu machen.

Sie benötigen ein wenig Programmierkenntnisse, um einen Bot zu codieren, daher ist dies nicht jedermanns Sache, aber zum Glück gibt es einige Module für beliebte Sprachen, die dies sehr einfach machen. Wir werden die beliebteste verwenden, discord.js.

VERBINDUNG: Erstellen, Einrichten und Verwalten Ihres Discord-Servers

Anfangen

Gehen Sie zum Bot-Portal von Discord und erstellen Sie eine neue Anwendung.

Sie sollten die Client-ID und das Geheimnis notieren (die Sie natürlich geheim halten sollten). Dies ist jedoch nicht der Bot, sondern nur die "Anwendung". Sie müssen den Bot unter der Registerkarte "Bot" hinzufügen.

Notieren Sie sich auch diesen Token und halten Sie ihn geheim. Übergeben Sie diesen Schlüssel unter keinen Umständen an Github. Ihr Bot wird fast sofort gehackt.

Installieren Sie Node.js und holen Sie sich die Codierung

Um Javascript-Code außerhalb einer Webseite auszuführen, benötigen Sie Node. Laden Sie es herunter, installieren Sie es und stellen Sie sicher, dass es in einem Terminal (oder einer Eingabeaufforderung, da dies alles auf Windows-Systemen funktionieren sollte) funktioniert. Der Standardbefehl lautet "Knoten".

Wir empfehlen außerdem, das nodemon-Tool zu installieren. Es ist eine Befehlszeilen-App, die den Code Ihres Bots überwacht und bei Änderungen automatisch neu startet. Sie können es installieren, indem Sie den folgenden Befehl ausführen:

npm i -g nodemon

Sie benötigen einen Texteditor. Sie können auch nur den Editor verwenden, wir empfehlen jedoch entweder Atom oder VSC.

Hier ist unsere "Hallo Welt":

const Discord = require ('discord.js'); const client = new Discord.Client (); client.on ('ready', () => {console.log (`Eingeloggt als $ {client.user.tag}!`);}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('Token');

Dieser Code stammt aus dem Beispiel discord.js. Lassen Sie es uns zusammenfassen.

  • Die ersten beiden Zeilen dienen zur Konfiguration des Clients. Zeile eins importiert das Modul in ein Objekt namens "Discord" und Zeile zwei initialisiert das Client-Objekt.
  • Der client.on('ready')Block wird ausgelöst, wenn der Bot startet. Hier ist es nur so konfiguriert, dass sein Name im Terminal protokolliert wird.
  • Der client.on('message')Block wird jedes Mal ausgelöst, wenn eine neue Nachricht auf einem Kanal veröffentlicht wird. Natürlich müssen Sie den Nachrichteninhalt überprüfen, und genau das ifmacht der Block. Wenn in der Nachricht nur "Ping" steht, wird mit "Pong!"
  • Die letzte Zeile meldet sich mit dem Token vom Bot-Portal an. Offensichtlich ist das Token im Screenshot hier falsch. Veröffentlichen Sie Ihren Token niemals im Internet.

Kopieren Sie diesen Code, fügen Sie unten Ihr Token ein und speichern Sie es index.js in einem dedizierten Ordner.

So führen Sie den Bot aus

Gehen Sie zu Ihrem Terminal und führen Sie den folgenden Befehl aus:

nodemon --inspect index.js

Dadurch wird das Skript chrome://inspect/  gestartet und der Chrome-Debugger gestartet , auf den Sie zugreifen können, indem Sie in die Omnibar von Chrome eingeben und dann "dedizierte Devtools für Node" öffnen.

Jetzt sollte nur "Angemeldet als" angezeigt werden, aber hier habe ich eine Zeile hinzugefügt, in der alle an der Konsole empfangenen Nachrichtenobjekte protokolliert werden:

Was macht dieses Nachrichtenobjekt aus? Eigentlich eine Menge Sachen:

Vor allem haben Sie die Autoren- und Kanalinformationen, auf die Sie mit msg.author und msg.channel zugreifen können. Ich empfehle diese Methode, um Objekte in den Chrome Node-Devtools zu protokollieren und mich nur umzuschauen, um zu sehen, wie es funktioniert. Vielleicht finden Sie etwas Interessantes. Hier protokolliert der Bot beispielsweise seine Antworten in der Konsole, sodass die Antworten des Bots ausgelöst werden client.on('message'). Also habe ich einen Spambot gemacht:

Hinweis : Seien Sie vorsichtig damit, da Sie sich nicht wirklich mit Rekursion befassen möchten.

So fügen Sie den Bot Ihrem Server hinzu

Dieser Teil ist schwieriger als es sein sollte. Sie müssen diese URL verwenden:

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

Ersetzen Sie CLIENTID durch die Client-ID Ihres Bots, die Sie auf der Registerkarte "Allgemeine Informationen" der Anwendungsseite finden. Sobald dies erledigt ist, können Sie Ihren Freunden den Link geben, damit sie den Bot auch zu ihren Servern hinzufügen.

Okay, was kann ich sonst noch tun?

Über die Grundeinstellung hinaus liegt alles andere ganz bei Ihnen. Aber dies wäre kein großes Tutorial, wenn wir bei Hallo Welt anhalten würden. Lassen Sie uns also einen Teil der Dokumentation durchgehen, damit Sie eine bessere Vorstellung davon haben, was möglich ist. Ich schlage vor, Sie lesen so viel wie möglich durch, da es sehr gut dokumentiert ist.

Ich würde empfehlen console.log(client), am Anfang Ihres Codes etwas hinzuzufügen und das Client-Objekt in der Konsole zu betrachten:

Von hier aus können Sie viel lernen. Da Sie mehreren Servern gleichzeitig einen Bot hinzufügen können, sind Server Teil des Guilds Kartenobjekts. In diesem Objekt befinden sich die einzelnen Gilden (dies ist der API-Name für "Server"), und diese Gildenobjekte verfügen über Kanallisten, die alle Informationen und Nachrichtenlisten enthalten. Die API ist sehr tiefgreifend und es kann eine Weile dauern, bis sie gelernt ist, aber zumindest ist es einfach einzurichten und mit dem Lernen zu beginnen.