Golang Discord Bot

Golang Discord Bot
I denne opplæringen lærer vi hvordan du lager en uenighetsbot ved hjelp av Go -programmeringsspråket.

Opprett uenighetsserver

For at du skal lage en bot for uenighet, trenger du en uenighetsserver der du er administratoren. Du kan gjøre ved å åpne nettleseren og navigere til Discord -nettstedet:

http: // uenighet.com

Logg inn på Discord -kontoen din og opprett en server for testing. I vårt eksempel lager vi en opplæring som heter “Linuxhint_tuts Server”

Når du har en testserver, kan du fortsette å opprette en applikasjon for Discord Bot. Åpne Discord Developer Portal:

https: // uenighet.com/utviklere/applikasjoner

Klikk på den nye applikasjonsknappen for å legge til en ny Discord -applikasjon. Angi navnet for applikasjonen din og klikk Opprett.

Når applikasjonen er opprettet, klikker du for å åpne den fra listen over tilgjengelige applikasjoner. Deretter velger du BOT -alternativet på venstre meny.

Klikk på Legg til Bot for å opprette en ny bot for søknaden din. Dette vil skape en ny bot med en ny bot -token. Kopier og lagre bot -tokenet.

Naviger deretter til bunnen av siden og velg tillatelsen for din bot.

Når du har tillatelsene til BOT -settet, åpner du nettleseren og navigerer til følgende ressurs:

https: // uenighet.com/oauth2/autorisere?client_id = [client_ide] & scope = bot hvor klient -IDen er klient -ID for søknaden din. Du kan finne denne IDen i OAuth -delen av søknaden din:

Ovennevnte ressurs lar deg legge til bot på serveren din.

Velg serveren din og klikk autoriser.

Å bygge en uenige bot

Når vi har fått Discord -applikasjonen og Bot konfigurert, kan vi fortsette å opprette en Discord Bot. For denne guiden vil vi bruke Discordgo-pakken, som gir funksjonalitet på lavt nivå for å jobbe med Discord API.

Begynn med å opprette en fungerende katalog for å lagre koden for Discord Bot.

Mkdir Discord-Bot

Naviger inn i katalogen og initialiser MOD Manager for prosjektet ditt:

CD Discord-Bot
GO MOD INT DISCORD-BOT
gå mod ryddig

Neste trinn er å lage prosjektstrukturen. Begynn med å lage konfigurasjons- og botkataloger:

MKDIR Config Bot

Konfigurasjonskatalogen vil fungere som pakken som leser konfigurasjonen for Discord -serveren. Bot -mappen har koden for Discord Bot.

Neste, lag hovedfil som vi vil bruke for å starte bot. I hoved.Gå fil, legg til følgende kode:

pakkehoved
import (
"Discord-Bot/Bot"
"Discord-Bot/Config"
"Logg"
)
FUNCMAIN ()
feil: = konfigurasjon.ReadConfig ()
Hvis feil != nil
Logg.Fatal (feil)
komme tilbake

Bot.Løpe()
<-make(chanstruct)
komme tilbake

I eksemplet over starter vi med å importere koden som eksporteres av konfigurasjons- og botpakkene. Vi vil legge til koden for disse pakkene i de kommende seksjonene.

Vi kaller deretter ReadConfig () -metoden fra konfigurasjonspakken. Til slutt kjører vi bot ved hjelp av Run () -metoden fra botpakken.

Neste trinn er å angi konfigurasjonen for din bot. Lag en konfigurasjon i rotkatalogen.JSON -fil og legg til følgende oppføringer:


"Token": "Otm3otu0mdy1otu3mtmwmjcw.Yfjpyw.gebrcbqzjGrvchtfbvcj2ywuzl4 ",
"Prefiks": "!""

JSON -filen inneholder symbolet for din bot som kopiert i de foregående trinnene. Det neste er prefikset som definerer prefikset som skal følges for å påkalle en bot -kommando. Lær mer om botprefiks i ressursen nedenfor:

https: // diskordpy.LEDTHEDOCS.io/en/stabil/ext/kommandoer/API.HTML#Discord.ext.kommandoer.Bot.Command_prefix

Naviger deretter inn i konfigurasjonskatalogen og lag en konfigurasjon.gå fil. I konfigurasjonen.Gå fil, legg til koden som vist nedenfor:

Pakkekonfigurasjon
import (
"koding/json"
"io/ioutil"
"Logg"
)
var (
Tokenstreng
Prefiksstreng
Config *ConfigStruct
)
Skriv inn konfigurasjonsstruktur
Token String 'Json: "Token"'
Prefiksstreng 'JSON: "Prefiks"'

FuncreadConfig () Feil
fil, feil: = ioutil.ReadFile ("./konfigurasjon.json ")
Hvis feil != nil
Logg.Fatal (feil)
Returner feil

err = json.Unmarshal (File, & Config)
Hvis feil != nil
Logg.Fatal (feil)
Returner feil

Token = konfigurasjon.Token
Prefiks = konfigurasjon.Prefiks
Returner null

I koden over begynner vi med å importere de nødvendige pakkene våre. Dette inkluderer koding/json for å marskalere JSON -konfigurasjonen, ioutil for å lese konfigurasjonsfilen og logge for å logge eventuelle feil.

Deretter definerer vi strukturen for å lagre verdiene som er lest fra JSON -filen. Vi fortsetter deretter med å lage ReadConfig -funksjonen. Denne funksjonen bruker Ioutil -metoden for å lese konfigurasjonen.JSON -fil. Vi bruker deretter JSON -data og unmarshal IT ved hjelp av JSON.Umarsal () -metode.

Naviger deretter inn i botkatalogen og lag en bot.gå fil. Dette vil inneholde kildekoden for bot.

Legg til kildekoden som:

Pakkebot
import (
"Discord-Bot/Config"
"Logg"
"Github.com/bwmarrin/discordgo "
)
VarbotidString
Vargobot *Discordgo.Økt
Funcrun ()
// Lag botøkt
Gobot, feil: = Discordgo.Ny ("Bot" + konfigurasjon.Token)
Hvis feil != nil
Logg.Fatal (feil)
komme tilbake

// gjøre bot til en bruker
Bruker, feil: = gobot.Bruker ("@meg")
Hvis feil != nil
Logg.Fatal (feil)
komme tilbake

Botid = bruker.Id
Gobot.AddHandler (MessageHandler)
err = gobot.Åpen()
Hvis feil != nil
komme tilbake


FuncMessageHandler (S *DiscordGo.Økt, M *Discordgo.Messagecreate)
// ignorere alle meldinger opprettet av selve bot
Hvis m.Forfatter.Id == botid
komme tilbake

// Hvis meldingen er "hei" svar med "hei tilbake!!""
ifm.Innhold == "Hei"
_, _ = S.ChannelMessagesEnd (m.ChannelId, "Hei tilbake")



Koden over bruker Discordgo -pakken for å definere BOT -funksjonaliteten. Du kan lære mer i ressursen nedenfor:

https: // github.com/bwmarrin/discordgo

Når den er fullført, kjør filen som:

Gå løp Main.gå

Dette skal starte Discord Bot. Gå til Discord -serveren din og skriv hei. Hvis boten kjører riktig, bør den returnere hei tilbake.

Konklusjon

Denne guiden dekker hvordan du oppretter en Discord Bot ved hjelp av Go og Discordgo -pakken. Dette prosjektet er inspirert av Ping Pong -eksempel i Discordgo -pakken:

https: // github.com/bwmarrin/diskordo/tre/master/eksempler/pingpong