Hvordan lage din egen discord bot
Discord har en utmerket API for å skrive tilpassede bots, og et veldig aktivt bot samfunn. I dag tar vi en titt på hvordan du skal begynne å lage din egen.
Du trenger litt programmeringskunnskap for å kode en bot, så det er ikke for alle, men heldigvis er det noen moduler for populære språk som gjør det veldig enkelt å gjøre. Vi bruker den mest populære, discord.js.
Starter
Gå over til Discords bot portal, og opprett en ny applikasjon.
Du vil legge merke til kundens ID og hemmelig (som du bør holde en hemmelighet selvfølgelig). Dette er imidlertid ikke bot, bare "Application." Du må legge botten under "Bot" -fanen.
Legg også merke til dette tokenet, og hold det hemmelig. Ikke under noen omstendigheter begå denne nøkkelen til Github. Din bot blir hacket nesten umiddelbart.
Installer Node.js og få koding
For å kjøre Javascript-kode utenfor en nettside, trenger du Node. Last ned den, installer den, og sørg for at den fungerer i en terminal (eller Kommandoprompt, da alt dette skal fungere på Windows-systemer). Standardkommandoen er "node".
Vi anbefaler også å installere nodemonverktøyet. Det er en kommandolinjeprogram som overvåker botens kode og starter automatisk på endringer. Du kan installere den ved å kjøre følgende kommando:
npm i-g nodemon
Du trenger en tekstredigerer. Du kan bare bruke notisblokk, men vi anbefaler enten Atom eller VSC.
Her er vår "Hello World":
const Discord = krever ('discord.js'); const klient = ny Discord.Client (); client.on ('ready', () => console.log ('Logget inn som $ client.user.tag!');); client.on ('message', msg => if (msg.content === 'ping') msg.reply ('pong');); client.login ( 'token');
Denne koden er hentet fra discord.js eksempelet. La oss slå det ned.
- De to første linjene er å konfigurere klienten. Linje 1 importerer modulen til et objekt som heter "Discord", og linje 2 initialiserer klientobjektet.
- De
client.on ( 'ready')
Blokken vil brenne når boten starter. Her er det bare konfigurert til å logge navnet sitt til terminalen. - De
client.on ( '-melding')
blokk vil brann hver gang en ny melding blir lagt ut på en hvilken som helst kanal. Selvfølgelig må du sjekke meldingsinnholdet, og det er det somhvis
blokkere gjør. Hvis meldingen bare sier "ping", så vil det svare med "Pong!" - Den siste linjen logger inn med token fra botportalen. Åpenbart er token i skjermbildet her falsk. Ikke skriv innlegget ditt på internett.
Kopier denne koden, lim inn din token nederst, og lagre den som index.js
i en dedikert mappe.
Hvordan kjøre botten
Gå over til terminalen din, og kjør følgende kommando:
nodemon --inspect index.js
Dette starter opp skriptet, og brenner også opp feilsøkeren, som du kan få tilgang til ved å skrive krom: // inspisere /
inn i Chrome's Omnibar og deretter åpne "dedikerte devtools for Node."
Nå skal det bare si "Logget inn som", men her har jeg lagt til en linje som vil logge alle meldingsobjekter mottatt til konsollen:
Så hva utgjør dette meldingsobjektet? Mange ting, faktisk:
Mest spesielt, du har forfatterinfo og kanalinfo, som du kan få tilgang til med msg.author og msg.channel. Jeg anbefaler denne metoden for å logge objekter til Chrome Node Devtools, og bare ser rundt for å se hva som gjør det til å fungere. Du kan finne noe interessant. Her logger bot for eksempel sine svar på konsollen, slik at botens svar utløser client.on ( '-melding')
. Så laget jeg en spambot:
Merk: Vær forsiktig med dette, da du ikke virkelig vil håndtere rekursjon.
Hvordan legge til bot til serveren din
Denne delen er vanskeligere enn den burde være. Du må ta denne nettadressen:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
Og erstatt CLIENTID med botens klient-ID, som du finner på den generelle informasjonsfanen på søknadssiden. Når dette er gjort skjønt, kan du gi linken til vennene dine for å få dem til å legge boten til sine servere også.
OK, så hva annet kan jeg gjøre?
Utover grunnleggende oppsett, er alt annet helt opp til deg. Men dette ville ikke være mye av en opplæring hvis vi stoppet på hei verden, så la oss gå over noen av dokumentasjonen, så du får en bedre ide om hva som er mulig. Jeg foreslår at du leser så mye du kan, da det er veldig godt dokumentert.
Jeg vil anbefale å legge til console.log (klient)
til starten av koden din, og ta en titt på klientobjektet i konsollen:
Herfra kan du lære mye. Siden du kan legge til en bot på flere servere samtidig, er servere en del av guilds
kartobjekt. I det objektet er de enkelte guildene (som er API-navnet for "server") og de guildobjektene har kanallister som inneholder all informasjon og lister over meldinger. API-en er veldig dyp, og det kan ta litt tid å lære, men i det minste er det lett å sette opp og komme i gang med å lære.