Golang Discord Bot

Golang Discord Bot
Dans ce tutoriel, nous apprendrons à créer un bot Discord en utilisant le langage de programmation Go.

Créer un serveur Discord

Pour que vous créiez un bot pour Discord, vous aurez besoin d'un serveur Discord où vous êtes l'administrateur. Vous pouvez faire en ouvrant votre navigateur et en naviguant vers le site Discord:

http: // discorde.com

Connectez-vous à votre compte Discord et créez un serveur pour tester. Dans notre exemple, nous créons un tutoriel appelé "Linuxhint_tuts Server"

Une fois que vous avez un serveur de test, vous pouvez procéder à la création d'une application pour votre bot Discord. Ouvrez le portail Discord Developer:

https: // discorde.com / développeurs / applications

Cliquez sur le bouton Nouveau de l'application pour ajouter une nouvelle application Discord. Définissez le nom de votre application et cliquez sur Créer.

Une fois l'application créée, cliquez pour l'ouvrir à partir de la liste de vos applications disponibles. Ensuite, sélectionnez l'option bot dans le menu de gauche.

Cliquez sur Ajouter un bot pour créer un nouveau bot pour votre application. Cela créera un nouveau bot avec un nouveau jeton de bot. Copiez et enregistrez le jeton de bot.

Ensuite, accédez au bas de la page et sélectionnez l'autorisation pour votre bot.

Une fois que vous avez les autorisations de l'ensemble de bot, ouvrez votre navigateur et accédez à la ressource suivante:

https: // discorde.com / oauth2 / autorise?client_id = [client_ide] & scope = bot où l'ID client est l'ID client pour votre application. Vous pouvez trouver cet identifiant dans la section OAuth de votre demande:

La ressource ci-dessus vous permet d'ajouter votre bot à votre serveur.

Sélectionnez votre serveur et cliquez sur Autoriser.

Construire un bot de discorde

Une fois que nous avons configuré l'application Discord et le bot, nous pouvons procéder pour créer un bot Discord. Pour ce guide, nous utiliserons le package Discordgo, qui offre des fonctionnalités de bas niveau pour travailler avec l'API Discord.

Commencez par créer un répertoire de travail pour stocker le code de votre bot Discord.

Mkdir Discord-bot

Naviguez dans le répertoire et initialisez le gestionnaire de mod pour votre projet:

CD Discord-bot
Go Mod Init Discord-bot
aller mod bien rangé

L'étape suivante consiste à créer la structure du projet. Commencez par créer des répertoires de configuration et de bot:

mkdir config bot

Le répertoire de configuration agira comme le package qui lit la configuration du serveur Discord. Le dossier bot détient le code du bot Discord.

Ensuite, créez un fichier principal que nous utiliserons pour démarrer le bot. En général.go fichier, ajoutez le code suivant:

package principal
importer (
"Discord-bot / bot"
"Discord-bot / config"
"enregistrer"
)
funcmain ()
err: = config.ReadConfig ()
Si err != nil
enregistrer.Fatal (euh)
retour

bot.Courir()
<-make(chanstruct)
retour

Dans l'exemple ci-dessus, nous commençons par importer le code exporté par les packages de configuration et de bot. Nous ajouterons le code de ces packages dans les sections à venir.

Nous appelons ensuite la méthode readConfig () à partir du package de configuration. Enfin, nous exécutons le bot en utilisant la méthode run () à partir du package de bot.

L'étape suivante consiste à définir la configuration de votre bot. Dans le répertoire racine, créez une configuration.Fichier JSON et ajouter les entrées suivantes:


"Token": "OTM3OTU0MDY1OTU3MTMWMJCW.Yfjpyw.GEBRCBQZJGRVCHTFBVCJ2YWUZL4 ",
"préfixe": "!"

Le fichier JSON contient le jeton de votre bot tel que copié dans les étapes précédentes. Le suivant est le préfixe qui définit le préfixe à suivre pour invoquer une commande bot. En savoir plus sur le préfixe de bot dans la ressource ci-dessous:

https: // discordpy.lecture.io / en / stable / ext / commandes / API.HTML # Discord.ext.commandes.Bot.Command_prefix

Ensuite, accédez au répertoire de configuration et créez une configuration.faire un dossier. Dans la configuration.go fichier, ajoutez le code comme indiqué ci-dessous:

configuration du package
importer (
"Encodage / JSON"
"io / ioutil"
"enregistrer"
)
var (
Chaîne de jeton
Préfixe String
config * configstruct
)
Type ConfigStruct Struct
Token String 'Json: "Token"'
Préfixe String 'json: "préfixe"'

FuncreadConfig () Erreur
fichier, err: = ioutil.ReadFile ("./ configuration.JSON ")
Si err != nil
enregistrer.Fatal (euh)
retourner err

err = json.Unmarshal (fichier et config)
Si err != nil
enregistrer.Fatal (euh)
retourner err

Token = config.Jeton
Prefix = config.Préfixe
retour nil

Dans le code ci-dessus, nous commençons par importer nos packages requis. Cela inclut le codage / json pour rassembler la configuration JSON, ioutil pour lire le fichier de configuration et journaliser pour enregistrer toutes les erreurs.

Ensuite, nous définissons la structure pour stocker les valeurs lues dans le fichier JSON. Nous procédons ensuite à la création de la fonction ReadConfig. Cette fonction utilise la méthode ioutil pour lire la configuration.fichier json. Nous utilisons ensuite les données JSON et le démarshal en utilisant le JSON.Méthode Unmarsal ().

Ensuite, naviguez dans le répertoire de bot et créez un bot.faire un dossier. Cela conservera le code source du bot.

Ajoutez le code source comme:

bot
importer (
"Discord-bot / config"
"enregistrer"
"Github.com / bwmarrin / discordgo "
)
varbotidString
Vargobot * Discordgo.Session
funcrun ()
// Créer une session de bot
gobot, err: = discordgo.Nouveau ("bot" + configuration.Jeton)
Si err != nil
enregistrer.Fatal (euh)
retour

// faire du bot un utilisateur
utilisateur, err: = gobot.Utilisateur ("@ me")
Si err != nil
enregistrer.Fatal (euh)
retour

Bodid = utilisateur.IDENTIFIANT
gobot.AddHandler (MessageHandler)
err = gobot.Ouvrir()
Si err != nil
retour


FuncMessageHandler (S * Discordgo.Session, m * Discordgo.MessageCreate)
// ignore tous les messages créés par le bot lui-même
Si m.Auteur.Id == bodid
retour

// Si le message est "salut" Répondre avec "salut en arrière!!"
ifm.Contenu == "hi"
_, _ = S.ChannelMessageSend (m.ChannelId, "Hi Back")



Le code ci-dessus utilise le package DiscordGo pour définir la fonctionnalité du bot. Vous pouvez en savoir plus dans la ressource ci-dessous:

https: // github.com / bwmarrin / discordgo

Une fois terminé, exécutez le fichier comme:

aller courir principal.aller

Cela devrait démarrer le bot Discord. Allez sur votre serveur Discord et tapez HI. Si le bot s'exécute correctement, il doit revenir en arrière.

Conclusion

Ce guide couvre comment créer un bot Discord à l'aide du package GO et Discordgo. Ce projet est inspiré par l'exemple de ping-pong dans le package Discordgo:

https: // github.com / bwmarrin / discordgo / arbre / maître / exemples / pingpong