Golang Discord Bot

Golang Discord Bot
In diesem Tutorial lernen wir, wie man einen Discord -Bot mit der Go -Programmiersprache erstellt.

Discord Server erstellen

Damit Sie einen Bot für Discord erstellen können, benötigen Sie einen Discord -Server, auf dem Sie der Administrator sind. Sie können dies tun, indem Sie Ihren Browser öffnen und zur Discord -Site navigieren:

http: // diskord.com

Melden Sie sich in Ihrem Discord -Konto an und erstellen Sie einen Server zum Testen. In unserem Beispiel erstellen wir ein Tutorial namens "LinuxHint_Tuts Server"

Sobald Sie einen Testserver haben, können Sie eine Anwendung für Ihren Discord Bot erstellen. Öffnen Sie das Discord -Entwicklerportal:

https: // diskord.COM/Entwickler/Anwendungen

Klicken Sie auf die Schaltfläche Neue Anwendung, um eine neue Discord -Anwendung hinzuzufügen. Legen Sie den Namen für Ihre Anwendung ein und klicken Sie auf Erstellen.

Sobald die Anwendung erstellt wurde, klicken Sie, um sie aus der Liste Ihrer verfügbaren Anwendungen zu öffnen. Wählen Sie anschließend die Option Bot im linken Menü aus.

Klicken Sie auf Bot hinzufügen, um einen neuen Bot für Ihre Anwendung zu erstellen. Dies erzeugt einen neuen Bot mit einem neuen Bot -Token. Kopieren Sie das Bot -Token und speichern Sie das Bot -Token.

Navigieren Sie als Nächstes zum Ende der Seite und wählen Sie die Erlaubnis für Ihren Bot aus.

Sobald Sie die Berechtigungen des Bot -Sets haben, öffnen Sie Ihren Browser und navigieren Sie zu den folgenden Ressourcen:

https: // diskord.com/oAuth2/autorisieren?client_id = [client_ide] & scope = bot wobei die Client -ID die Client -ID für Ihre Anwendung ist. Sie finden diese ID im Abschnitt OAuth Ihrer Bewerbung:

Mit der obigen Ressource können Sie Ihren Bot zu Ihrem Server hinzufügen.

Wählen Sie Ihren Server aus und klicken Sie auf Autorisieren.

Aufbau eines Discord Bot

Sobald wir die Discord -Anwendung und den Bot konfiguriert haben, können wir einen Discord -Bot erstellen. Für diesen Leitfaden verwenden wir das Discordgo-Paket, das Funktionen auf niedrigem Niveau für die Arbeit mit Discord API bietet.

Erstellen Sie zunächst ein Arbeitsverzeichnis, um den Code für Ihren Discord Bot zu speichern.

Mkdir Discord-Bot

Navigieren Sie in das Verzeichnis und initialisieren Sie den Mod -Manager für Ihr Projekt:

CD Discord-Bot
Go mod init diskord-bot
MOD MOD TIDY

Der nächste Schritt besteht darin, die Projektstruktur zu erstellen. Beginnen Sie mit Erstellen von Konfigurations- und Bot -Verzeichnissen:

Mkdir Config Bot

Das Konfigurationsverzeichnis wirkt wie das Paket, das die Konfiguration für den Discord -Server liest. Der Bot -Ordner enthält den Code für den Discord Bot.

Erstellen Sie als nächstes die Hauptdatei, mit der wir den Bot starten werden. Im Wesentlichen.GO -Datei, den folgenden Code hinzufügen:

Paket Main
importieren (
"Discord-Bot/Bot"
"Discord-Bot/Konfiguration"
"Protokoll"
)
funcmain ()
ERR: = config.ReadConfig ()
Wenn er irrt != nil
Protokoll.Tödlich (arr)
zurückkehren

Bot.Laufen()
<-make(chanstruct)
zurückkehren

Im obigen Beispiel beginnen wir zunächst den von den Konfigurations- und Bot -Paketen exportierten Code importieren. Wir werden den Code für diese Pakete in den kommenden Abschnitten hinzufügen.

Anschließend rufen wir die ReadConfig () -Methode aus dem Konfigurationspaket auf. Schließlich führen wir den Bot mit der Run () -Methode aus dem Bot -Paket aus.

Der nächste Schritt besteht darin, die Konfiguration für Ihren Bot festzulegen. Erstellen Sie im Root -Verzeichnis eine Konfiguration.JSON -Datei und fügen Sie die folgenden Einträge hinzu:


"Token": "OTM3OTU0MDY1OTU3MTMWMJCW.Yfjpyw.GEBRCBQZJGRVCHTFBVCJ2YWUZL4 ",
"Präfix": "!"

Die JSON -Datei enthält das Token für Ihren Bot, wie in den vorherigen Schritten kopiert. Das nächste ist das Präfix, das das Präfix definiert, um einen Bot -Befehl aufzurufen. Erfahren Sie in der folgenden Ressource mehr über das Präfix von Bot:

https: // discordpy.Readthedocs.IO/EN/STABLE/EXT/BEFEHREN/API.html#diskord.ext.Befehle.Bot.command_prefix

Navigieren Sie als Nächstes in das Konfigurationsverzeichnis und erstellen Sie eine Konfiguration.GO -Datei. In der Konfiguration.GO -Datei, fügen Sie den Code wie unten gezeigt hinzu:

Paketkonfiguration
importieren (
"Codierung/JSON"
"io/ioutil"
"Protokoll"
)
var (
Token String
Präfix -Zeichenfolge
config *configstruct
)
Geben Sie ConfigSruct Struct ein
Token String 'JSON: "Token"'
Präfix String 'JSON: "Präfix"'

FuncreadConfig () Fehler
Datei, ähm: = ioutil.ReadFile ("./config.json ")
Wenn er irrt != nil
Protokoll.Tödlich (arr)
Return err zurück

err = json.Unmarshal (Datei & config)
Wenn er irrt != nil
Protokoll.Tödlich (arr)
Return err zurück

Token = config.Zeichen
Präfix = config.Präfix
Null zurückkehren

Im obigen Code importieren wir zunächst unsere erforderlichen Pakete. Dies beinhaltet die Codierung/JSON, um die JSON -Konfiguration zu marschieren, IOUTIL, um die Konfigurationsdatei zu lesen, und protokolliert, um alle Fehler zu protokollieren.

Als nächstes definieren wir die Struktur, um die aus der JSON -Datei gelesenen Werte zu speichern. Wir erstellen dann die ReadConfig -Funktion. Diese Funktion verwendet die Ioutil -Methode, um die Konfiguration zu lesen.JSON -Datei. Wir verwenden dann die JSON -Daten und verwenden sie mit dem JSON.Unmarsal () Methode.

Navigieren Sie als nächstes in das Bot -Verzeichnis und erstellen Sie einen Bot.GO -Datei. Dadurch wird der Quellcode für den Bot enthalten.

Fügen Sie den Quellcode als:

Packungsbot
importieren (
"Discord-Bot/Konfiguration"
"Protokoll"
"Github.com/bwmarrin/discordgo "
)
varbotidstring
vargobot *discordgo.Sitzung
funcrun ()
// Bot -Sitzung erstellen
Gobot, ERR: = Discordgo.Neu ("Bot" + config.Zeichen)
Wenn er irrt != nil
Protokoll.Tödlich (arr)
zurückkehren

// Machen Sie den Bot zum Benutzer
Benutzer, ERR: = GOBOT.Benutzer ("@me")
Wenn er irrt != nil
Protokoll.Tödlich (arr)
zurückkehren

Botid = Benutzer.AUSWEIS
Gobot.AddHandler (MessageHandler)
Err = Gobot.Offen()
Wenn er irrt != nil
zurückkehren


funcMessageHandler (s *discordgo.Sitzung, m *discordgo.Messagecreate)
// Ignorieren Sie alle vom Bot selbst erstellten Nachrichten
Wenn m.Autor.Id == botid
zurückkehren

// Wenn die Nachricht "Hallo" mit "Hallo zurück ist!!"
IFM.Content == "hi"
_, _ = s.ChannelMessagesend (m.ChannelId, "Hallo zurück")



Der obige Code verwendet das Discordgo -Paket, um die Funktionalität des Bots zu definieren. Sie können mehr in der folgenden Ressource erfahren:

https: // github.com/bwmarrin/discordgo

Führen Sie die Datei nach Abschluss als:

Gehen Sie auf Main.gehen

Dies sollte den Discord Bot starten. Gehen Sie zu Ihrem Discord -Server und geben Sie Hi ein. Wenn der Bot korrekt ausgeführt wird, sollte er Hallo zurückgeben.

Abschluss

Diese Anleitung befasst sich mit dem Erstellen eines Discord -Bots mit dem GO- und Discordgo. Dieses Projekt ist vom Ping -Pong -Beispiel im Discordgo -Paket inspiriert:

https: // github.com/bwmarrin/discordgo/baum/master/Beispiele/pingpong