Golang Discord Bot

Golang Discord Bot
In questo tutorial, impareremo come creare un bot discord usando il linguaggio di programmazione Go.

Crea Discord Server

Per creare un bot per discordia, avrai bisogno di un server discord in cui sei l'amministratore. Puoi fare aprendo il browser e navigando sul sito Discord:

http: // discord.com

Accedi al tuo account Discord e crea un server per il test. Nel nostro esempio, creiamo un tutorial chiamato "Linuxhint_Tuts Server"

Una volta che hai un server di test, puoi procedere a creare un'applicazione per il tuo bot discord. Apri il portale degli sviluppatori Discord:

https: // discord.com/sviluppatori/applicazioni

Fare clic sul pulsante Nuovo applicazione per aggiungere una nuova applicazione Discord. Imposta il nome per l'applicazione e fai clic su Crea.

Una volta creata l'applicazione, fare clic per aprirla dall'elenco delle applicazioni disponibili. Quindi, selezionare l'opzione Bot nel menu a sinistra.

Fai clic su Aggiungi bot per creare un nuovo bot per la tua applicazione. Questo creerà un nuovo bot con un nuovo token bot. Copia e salva il token bot.

Quindi, vai in fondo alla pagina e seleziona l'autorizzazione per il tuo bot.

Una volta che hai le autorizzazioni del set di bot, apri il browser e vai alla seguente risorsa:

https: // discord.com/oauth2/autorizza?client_id = [client_ide] & scope = bot dove l'ID client è l'ID client per l'applicazione. Puoi trovare questo ID nella sezione OAuth della tua applicazione:

La risorsa sopra ti consente di aggiungere il tuo bot al tuo server.

Seleziona il tuo server e fai clic su Autorizza.

Costruire un bot discord

Una volta configurate l'applicazione Discord e il bot, possiamo procedere a creare un bot discord. Per questa guida, utilizzeremo il pacchetto DiscordGo, che fornisce funzionalità di basso livello per lavorare con API Discord.

Inizia creando una directory di lavoro per archiviare il codice per il tuo bot discord.

Mkdir Discord-Bot

Passa nella directory e inizializza il Mod Manager per il tuo progetto:

CD Discord-Bot
go mod init discord-bot
vai a moder ordinato

Il prossimo passo è creare la struttura del progetto. Inizia creando directory di configurazione e bot:

MKDIR Configt Bot

La directory di configurazione si comporterà come il pacchetto che legge la configurazione per il server discord. La cartella Bot contiene il codice per il bot discord.

Successivamente, crea un file principale che useremo per avviare il bot. Nel principale.GO FILE, Aggiungi il seguente codice:

Pacchetto principale
importazione (
"Discord-Bot/Bot"
"Discord-Bot/Config"
"tronco d'albero"
)
funcmain ()
err: = config.ReadConfig ()
Se err != nil
tronco d'albero.Fatale (err)
ritorno

bot.Correre()
<-make(chanstruct)
ritorno

Nell'esempio sopra, iniziamo importando il codice esportato dai pacchetti di configurazione e bot. Aggiungeremo il codice per questi pacchetti nelle prossime sezioni.

Chiamiamo quindi il metodo ReadConfig () dal pacchetto di configurazione. Infine, eseguiamo il bot usando il metodo run () dal pacchetto bot.

Il prossimo passo è impostare la configurazione per il tuo bot. Nella directory principale, crea una configurazione.file json e aggiungere le seguenti voci:


"token": "otm3otu0mdy1oTU3Mtmwmjcw.Yfjpyw.GEBRCBQZJGRVCHTFBVCJ2YWUzl4 ",
"Prefisso": "!"

Il file JSON contiene il token per il tuo bot come copiato nei passaggi precedenti. Il prossimo è il prefisso che definisce il prefisso da seguire per invocare un comando bot. Ulteriori informazioni sul prefisso del bot nella risorsa di seguito:

https: // discordpy.PRIEDTHOCS.IO/EN/STABLE/EXT/Comandi/API.HTML#Discord.ext.comandi.Bot.Command_prefix

Quindi, naviga nella directory di configurazione e crea una configurazione.Vai file. Nella configurazione.GO FILE, Aggiungi il codice come mostrato di seguito:

configurazione del pacchetto
importazione (
"codifica/json"
"Io/IoUtil"
"tronco d'albero"
)
var (
Stringa di token
Stringa prefisso
config *configTruct
)
digitare configTruct struct
Token string 'json: "token"'
Prefisso string 'json: "prefisso"'

ERRORE FUNCREADCONFIG ()
File, err: = Ioutil.ReadFile ("./config.json ")
Se err != nil
tronco d'albero.Fatale (err)
restituire err

err = json.Unmarshal (file e config)
Se err != nil
tronco d'albero.Fatale (err)
restituire err

Token = config.Gettone
Prefisso = config.Prefisso
Restituisci zero

Nel codice sopra, iniziamo importando i nostri pacchetti richiesti. Ciò include la codifica/JSON a marshal la configurazione JSON, IoUtil per leggere il file di configurazione e registrare per registrare eventuali errori.

Successivamente, definiamo la struttura per archiviare i valori letti dal file JSON. Procediamo quindi per creare la funzione ReadConfig. Questa funzione utilizza il metodo IoUtil per leggere la configurazione.file json. Quindi utilizziamo i dati JSON e lo sbalciamo usando il JSON.Metodo UnMarsal ().

Quindi, naviga nella directory del bot e crea un bot.Vai file. Ciò manterrà il codice sorgente per il bot.

Aggiungi il codice sorgente come:

PACCHETTO BOT
importazione (
"Discord-Bot/Config"
"tronco d'albero"
"Github.com/bwmarrin/discordgo "
)
VarbotidString
Vargobot *Discordgo.Sessione
funcrun ()
// Crea bot session
gobot, err: = discordgo.New ("bot" + config.Gettone)
Se err != nil
tronco d'albero.Fatale (err)
ritorno

// Rendi il bot un utente
utente, err: = gobot.Utente ("@me")
Se err != nil
tronco d'albero.Fatale (err)
ritorno

Botid = utente.ID
gobot.AddHandler (MessageHandler)
err = gobot.Aprire()
Se err != nil
ritorno


funcmessagendler (s *discordgo.Sessione, m *discordgo.MessageCreate)
// ignora tutti i messaggi creati dal bot stesso
Se m.Autore.Id == Botid
ritorno

// Se il messaggio è "ciao" rispondi con "ciao!!"
ifm.Content == "hi"
_, _ = s.ChannelMessagesEnd (m.Channelid, "ciao back")



Il codice sopra utilizza il pacchetto DiscordGo per definire la funzionalità del bot. Puoi saperne di più nella risorsa qui sotto:

https: // github.com/bwmarin/discordgo

Una volta completato, eseguire il file come:

Vai a correre principale.andare

Questo dovrebbe iniziare il bot discord. Vai al tuo server discord e digita ciao. Se il bot funziona correttamente, dovrebbe tornare indietro.

Conclusione

Questa guida copre come creare un bot discord usando il pacchetto GO e DiscordGo. Questo progetto è ispirato all'esempio di Ping Pong nel pacchetto Discordgo:

https: // github.com/bwmarrin/discordgo/albero/master/esempi/pingpon