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 botportal, og opprett en ny applikasjon.
Installer Node.js og få koding
For å kjøre Javascript-kode utenfor en nettside, trenger du Node. Last ned den, installer den, og kontroller 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 = require('discord.js'); const client = new Discord.Client(); client.on('ready', () => { console.log(`Logged in as ${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('message')
blokk vil brenne hver gang en ny melding blir lagt ut på en hvilken som helst kanal. Selvfølgelig må du sjekke meldingsinnholdet, og det er hva
if
blokkere gjør. Hvis meldingen sier bare "ping", så vil det svare med "Pong!"
- Den siste linjen logger inn med token fra botportalen. Åpenbart er token i skjermbildet her falsk. Ikke post 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
nodemon --inspect index.js
Dette starter opp skriptet, og brenner også opp feilsøkeren, som du kan få tilgang ved å skrive
chrome://inspect/
inn i Chrome's Omnibar og deretter åpne "dedikerte devtools for Node."
Nå skal det bare si "Logget inn som
client.on('message')
. Så laget jeg en spambot:
Merk: Vær forsiktig med dette, siden du ikke virkelig vil håndtere rekursjon.
Slik legger du til bot til serveren din
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å applikasjonssiden. Når dette er gjort, kan du gi koblingen til vennene dine for å få dem til å legge boten til sine servere også.
OK, så hva annet kan jeg gjøre?
Jeg vil anbefale å legge til
console.log(client)
til starten av koden din, og ta en titt på klientobjektet i konsollen:
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.