Heim >Web-Frontend >js-Tutorial >So bauen Sie Ihren ersten Discord Bot mit node.js auf
Heutzutage werden Bots zur Automatisierung verschiedener Aufgaben verwendet. Seit der Veröffentlichung von Amazon's Alexa Devices hat der Hype um Automatisierungsbots erst zu wachsen. Neben Alexa bieten andere Kommunikationstools wie Discord und Telegram APIs, um benutzerdefinierte Bots zu entwickeln.
Dieser Artikel konzentriert sich ausschließlich auf die Erstellung Ihres ersten Bots mit der exponierten Discord -API. Vielleicht ist der bekannteste Discord Bot der Musikbot. Mit dem Music Bot können Sie einen Songnamen eingeben, und der Bot wird einen neuen Benutzer an Ihren Kanal anhängen, der das angeforderte Lied spielt. Es ist ein häufig verwendeter Bot unter jüngeren Leuten auf Spielen oder Streaming -Servern.
Beginnen wir mit dem Erstellen eines benutzerdefinierten Discord Bot.
Dieser Artikel wurde für 2020 aktualisiert. Um mehr Knoten zu erfahren, lesen Sie die Webentwicklung von Node.js.Erstens benötigen wir einen Testserver, auf dem wir unseren Discord Bot später testen können. Wir können einen neuen Server erstellen, indem wir links auf dem Bildschirm auf das Plus -Symbol klicken.
Ein Popup wird angezeigt, in dem Sie gefragt werden, ob Sie einem Server beitreten oder einen neuen erstellen möchten. Natürlich möchten wir einen neuen Server erstellen.
Als nächstes müssen wir den Namen für unseren Server eingeben. Um die Dinge einfach zu halten, habe ich den Server discord_playground benannt. Wenn Sie möchten, können Sie den Serverstandort ändern, je nachdem, wo Sie sich befinden, um einen besseren Ping zu erhalten.
Wenn alles gut lief, sollten Sie Ihren neu erstellten Server sehen.
Wenn wir unseren Bot über Code steuern möchten, müssen wir den Bot zuerst unter unserem Discord -Konto registrieren.
Um den Bot zu registrieren, gehen Sie zum Portal des Discord -Entwicklers und melden Sie sich mit Ihrem Konto an.
Nach dem Anmeldung sollten Sie das Dashboard sehen können. Erstellen wir eine neue Anwendung, indem Sie auf die Schaltfläche neue Anwendung
klicken.
Als nächstes sehen Sie ein Popup, in dem Sie aufgefordert werden, einen Namen für Ihre Anwendung einzugeben. Nennen wir unseren Bot My-Greeter-Bot. Durch Klicken auf die Schaltfläche erstellen
erstellt Discord eine API -Anwendung.
Wenn die Anwendung erstellt wurde, sehen Sie den Überblick über die neu erstellte My-Greeter-Bot-Anwendung. Sie sehen Informationen wie eine Client -ID und ein Client -Geheimnis. Dieses Geheimnis wird später als Autorisierungs -Token verwendet.
Klicken Sie jetzt auf die Menüoption bot im Menü Einstellungen
. Discord erstellt unsere My-Greeter-Bot-Anwendung und fügt einen Bot-Benutzer hinzu.
Wenn der Bot erstellt wurde, erhalten Sie einen Überblick über Ihren benutzerdefinierten Bot. Schauen Sie sich den Abschnitt Token
an. Kopieren Sie dieses Autorisierungs -Token und schreiben Sie sie irgendwo auf, da wir sie später benötigen, um eine Verbindung zu unserem Bot -Benutzer herzustellen.
Drittens möchten wir die Berechtigungen für den Bot definieren und zu unserem Discord -Server hinzufügen.
Navigieren Sie zum Abschnitt oAuth2 im Menü Einstellungen . Hier können wir den Umfang für unseren Bot definieren. Da wir nur einen einfachen Bot aktivieren möchten, wählen wir die Option bot
.Sie können feststellen, dass sich die unten stehende Autorisierungs -URL jetzt geändert hat. Der Abschnitt der Berechtigungen = 0 zeigt jedoch an, dass wir noch keine Berechtigungen festgelegt haben.
Wenn wir weiter nach unten scrollen, finden Sie den Abschnitt Bot -Berechtigungen
. Wir möchten, dass der Bot Nachrichten senden und den Nachrichtenverlauf lesen kann. Wir brauchen die Erlaubnis, den Nachrichtenverlauf zu lesen, damit wir die Anfragen der Benutzer erkennen können.Wenn Sie beide Optionen auswählen, beachten Sie, dass sich die Nummer für den Parameter des Berechtigten in der Autorisierungs -URL geändert hat.
Zuletzt kopieren Sie diese URL und fügen Sie sie in Ihren bevorzugten Webbrowser ein. Sie finden einen Überblick, in dem Sie aufgefragt werden, zu welchem Server Sie den Bot hinzufügen möchten. Wählen wir unseren neu erstellten Discord_playground.
klicken
Wenn Sie den Bot erfolgreich zu Ihrem Server hinzufügen können, sollten Sie den folgenden Erfolgsbildschirm sehen.
Wenn Sie den Hinzufügen Ihres Bots überprüfen möchten, gehen Sie zum allgemeinen Kanal. Sie sollten eine ähnliche Nachricht sehen, die angibt, dass der Bot dem Kanal beigetreten ist.
Erfolg!
Lassen Sie uns schließlich das Projekt einrichten. Sie finden das Basisprojekt auf GitHub. Bitte klonen Sie das Repository lokal auf Ihrem Computer mit Git Clone https://github.com/sitepoint-editors/discord-bot-Sitepoint.
Das Projekt hängt von zwei Abhängigkeiten ab, Dotenv und Discord.js. Die erste Abhängigkeit ermöglicht es uns, eine .Env -Datei zu verwenden, in der das von uns geschriebene Bot -Token enthält. Es ist offensichtlich, dass wir die zweite Abhängigkeit, Discord.js, für die Entwicklung des Discord Bot.
brauchenUm beide Abhängigkeiten zu installieren, führen Sie bitte die NPM -Installation im Projektordner aus.
Erstellen Sie zum Abschluss der Installation eine .env -Datei im Stamm des Projekts. Fügen Sie der Datei wie folgt eine Umgebungsvariable hinzu, die als Token bezeichnet wird:
<span>TOKEN=my-unique-bot-token </span>
Schauen wir uns die im Stamm des Projekts befindliche Index.js -Datei an:
<span>require('dotenv').config(); </span><span>const Discord = require('discord.js'); </span><span>const bot = new Discord<span>.Client</span>(); </span> <span>const TOKEN = process.env.TOKEN; </span> bot<span>.login(TOKEN); </span>
Wir laden zuerst die Umgebungsvariablen, die wir definiert haben, indem wir die Konfiguration aus der Umgebung. Dies ermöglicht es uns, die Token -Variable zu verwenden, die wir durch Process.Env.Token definiert haben. Die letzte Zeile des oben genannten Snippets zeigt, wie wir das Token an die Anmeldefunktion übergeben, um Zugriff auf den von uns erstellten Bot zu erhalten.
Die Bot -Variable ist tatsächlich unser Discord -Client, über den wir interagieren.
Als nächstes können wir auf Ereignisse hören. Zunächst hören wir uns ein fertiges Ereignis an. Das fertige Ereignis wird abgefeuert, sobald wir mit dem Bot verbunden sind:
bot<span>.on('ready', () => { </span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>); </span><span>}); </span>
Wenn Sie das Rechts -Token verwendet haben, sich beim Bot anzumelden, sollte Ihr Terminal den Namen Ihres Bots.Users.tags.
Sie können den Bot starten, indem Sie einfach Node Index.js in Ihrem Terminal ausführen. Stellen Sie sicher, dass Sie diesen Befehl in der Stammwurzel Ihres Projekts ausführen.Wenn der Bot erfolgreich angeschlossen ist, sollten Sie sehen, dass der Name Ihres Bots im Terminal gedruckt wird.
Ready können Sie mit dem Discord -Client ein -Stwegungsereignis anhören. Dies bedeutet, dass der Bot jede Nachricht lesen kann, die an einen Kanal gesendet wird. Um an den Abschnitt "Berechtigungen" zu binden, ist dies der genaue Grund, warum wir dem Bot die Erlaubnis geben müssen, den Nachrichtenhistorie zu lesen. Wenn wir den Code etwas weiter untersuchen, sehen Sie, dass wir nach einer Nachricht mit Inhaltsping suchen. Wenn wir eine Nachricht erhalten, die nur Ping enthält, antwortet der Bot mit Pong. Danach verwenden wir msg.channel.send, um erneut Pong an den Kanal zu senden. Beachten Sie den Unterschied zwischen beiden Befehlen: Versuchen Sie, den Bot mit Node Index.js auszuführen und einen Nachrichten -Ping an den allgemeinen Kanal zu senden. Überprüfen Sie, ob Sie dasselbe Ergebnis sehen. Um einen neuen Befehl hinzuzufügen, müssen wir die IF -Klausel mit einem anderen erweitern… wenn: Nehmen wir an, wir möchten jemanden treten, indem wir eine Nachricht wie! Kick @USERNAME senden. Also, zuerst suchen wir nach! Kick in den Inhalt der Nachricht. Wenn wir eine Nachricht finden, die mit! Kick beginnt, können wir überprüfen, ob Benutzer in der Nachricht mit der Eigenschaft msg.mentions.users markiert wurden. Wenn Benutzer markiert sind, können wir den ersten erwähnten Benutzer mit msg.mentions.users.first () auswählen. Als nächstes antworten wir mit dem Benutzernamen des Benutzers in der Nachricht auf den Kanal. Als nächstes diskutieren wir das Problem mit all diesen anderen… wenn Aussagen. Wenn Sie nur wenige Befehle definiert haben, die Sie im Nachrichtenereignis anhören können, ist der Code ziemlich lesbar. Wenn wir uns jedoch entscheiden, ein umfangreiches Projekt auf diese Weise zu erstellen, haben wir eine andere Kette ... wenn Aussagen. Hier ist eine kleine Liste von Gründen, warum Sie sonst nichts verwenden sollten ... wenn Ketten für etwas, das kein kleines Projekt ist: Schauen wir uns also das Befehlsmuster an, das wir verwenden können. Ein Befehlshandler ist ein Ansatz, der vom Discord.js -Paket unterstützt wird. Bevor wir fortfahren, lesen Sie die fortgeschrittene Filiale mit Git Checkout Advanced. Dieser Zweig enthält die Implementierung des Befehlshandlers. Erforschen wir zuerst den Befehlsordner. Dieser Ordner enthält eine Index.js -Datei, in der alle Befehle exportiert werden, die wir definieren. Um die Dinge einfach zu halten, definieren wir nur einen Befehl, Ping: Schauen wir uns als nächstes die Implementierung des Ping -Befehls an, das im Grunde genommen ein Objekt exportiert, das Folgendes enthält: Fortsetzung, importieren wir die Befehle in die Index.js -Datei. Beachten Sie, dass wir eine Befehlssammlung auf dem Discord Bot definieren. Wir schleifen alle Befehle über und fügen sie einzeln zur Befehlssammlung hinzu. Die Funktion bot.commands.set akzeptiert den Namen des Befehls und das gesamte Befehlsobjekt: Danach müssen wir unsere sonst entfernen… wenn Kette durch einen dynamischen Code ersetzen, um den richtigen Befehl zu finden, den wir aufrufen möchten: Wir versuchen zunächst, den Inhalt der Nachricht durch Whitespaces mit .Split ( / /) zu teilen. Wir gehen davon aus, dass das erste Element in diesem Args -Array unser Befehl ist. Um zu überprüfen, ob der Befehl in unserer Sammlung vorhanden ist, enthält die Sammlung eine Funktion von (), die einfach wahr oder falsch zurückgibt. Wenn der Befehl nicht vorhanden ist, geben wir eine leere Antwort zurück. Wenn der Befehl vorhanden ist, verwenden wir jedoch die Funktion Get (), um den richtigen Befehl abzurufen und mit den Eingabeparametern MSG und den Argumenten auszuführen. Es handelt sich um eine leicht zu lesende, dynamische Art, Befehle zu rufen, ohne Spaghetti-Code zu schreiben. Auf diese Weise können Sie Ihr Projekt bei Bedarf auf viele hundert Befehle skalieren. Wenn Sie die neue Version unseres Codes testen möchten, sollten Sie sich die erweiterte Filiale mit Git Checkout Advanced ansehen. Installieren Sie als Nächst
Übrigens können Sie mit diesem Link die Discord -Community von SitePoint anschließen. Komm tech mit uns.
Wie kann ich meinen Discord Bot mit anderen APIs interagieren? Wie kann ich meinen Discord Bot reagieren lassen zu Nachrichten? Sie können ein Emoji an diese Methode übergeben, und der Bot reagiert mit diesem Emoji auf die Nachricht. Sie können benutzerdefinierte Emojis verwenden, indem Sie ihre ID übergeben oder Standard -Emojis verwenden, indem Sie ihr Unicode -Zeichen übergeben. Wie kann ich meinen Discord Bot eine Datenbank verwenden? Verwenden einer Datenbankbibliothek wie "Mongoose" für MongoDB oder "Folgen" für SQL -Datenbanken. Sie können diese Bibliotheken verwenden, um eine Verbindung zu einer Datenbank herzustellen, Modelle zu definieren und dann Daten zu erstellen, zu lesen, zu aktualisieren und zu löschen. <span>TOKEN=my-unique-bot-token
</span>
Suchen Sie nach markierten Benutzern
<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
Schritt 6: Das Problem mit dem sonst… wenn Kette
Implementieren eines Befehlshandlers
Befehlsbefehl
bot<span>.on('ready', () => {
</span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>
<span>TOKEN=my-unique-bot-token
</span>
importieren Befehle
<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
bot<span>.on('ready', () => {
</span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>
einpacken
installieren und einrichten eines neuen Discord Bot könnte sich zunächst überwältigend anfühlen. Die vom Discord.js -Paket angebotene API ist jedoch unkompliziert, und die Discord -Website bietet großartige Beispiele.
Wie kann ich meinem Discord Bot mehr Funktionen hinzufügen? Sie können Funktionen wie das Senden von Nachrichten, das Beantworten von Nachrichten, das Verbinden eines Sprachkanals, das Abspielen von Audio und vieles mehr hinzufügen. Um diese hinzuzufügen, müssen Sie sich Ereignisse anhören und dann Aktionen basierend auf diesen Ereignissen ausführen. Um Ihren Bot beispielsweise eine Nachricht zu senden, können Sie das Ereignis "Nachrichten" und die Methode "message.channel.send" verwenden.
Wie kann ich meinen Discord Bot debuggen? Sie können auch Node.JS-Debugging-Tools wie den integrierten Debugger oder externe Tools wie Debugger von Visual Studio Code verwenden. Darüber hinaus bietet die Discord.js -Bibliothek Veranstaltungen wie 'Debug' und 'warnen', die Sie anhören können, um weitere Informationen darüber zu erhalten, was der Bot tut.
Wenn Sie Ihren Discord -Bot mit anderen APIs interagieren, werden die Bibliotheken "Fetch" oder "Axios" verwendet, um HTTP -Anforderungen zu senden. Sie können diese Bibliotheken verwenden, um Daten von anderen APIs zu erhalten und diese Daten dann in Ihrem Bot zu verwenden. Zum Beispiel könnten Sie einen Bot erstellen, der Wetterdaten abreibt und sie als Nachricht in einem Discord -Kanal sendet. auf einem Server anstelle Ihrer lokalen Maschine. Dafür können Sie Cloud -Hosting -Anbieter wie Heroku, AWS oder Google Cloud verwenden. Diese Anbieter ermöglichen es Ihnen, Ihren Bot rund um die Uhr auszuführen, und sie bieten häufig Datenbanken und andere Dienste an, die Sie mit Ihrem Bot verwenden können. 🎜> Wenn Sie Ihren Discord Bot auf bestimmte Befehle beantworten lassen, werden Sie das Ereignis "Nachricht" anhören und dann überprüfen, ob der Nachrichteninhalt mit einem bestimmten Befehl startet. Dafür können Sie die Methode "Startswith" verwenden. Wenn die Nachricht mit einem Befehl beginnt, können Sie eine bestimmte Aktion ausführen. Der Sprachkanal beinhaltet die Verwendung des "Voice" -Teils der Discord.js -Bibliothek. Sie können die Methode "JoinVoicechannel" verwenden, um den Bot zu einem Sprachkanal zu machen, und dann die "Play" -Methode zum Abspielen von Audio verwenden. Das Audio kann eine lokale Datei, ein Stream oder eine URL sein. 'MessageMbed' -Klasse in der Discord.js -Bibliothek. Sie können eine neue Einbettung erstellen, seinen Titel, seine Beschreibung, Farbe, Bild und andere Eigenschaften festlegen und dann mit der Methode 'message.channel.send' senden.
Wie kann ich meinen Discord -Bot zu Fehlern umgehen lassen? Wenn ein Fehler in einem Try -Block auftritt, wird der Fangblock ausgeführt. Das 'Fehler' Ereignis wird emittiert, wenn in der Discord.js -Bibliothek ein Fehler auftritt.
Das obige ist der detaillierte Inhalt vonSo bauen Sie Ihren ersten Discord Bot mit node.js auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!