Sådan laver du din egen Discord Bot

Discord har en fremragende API til at skrive brugerdefinerede bots og et meget aktivt bot-community. I dag ser vi på, hvordan du kommer i gang med at lave dine egne.

Du skal bruge lidt programmeringskendskab til at kode en bot, så det er ikke for alle, men heldigvis er der nogle moduler til populære sprog, der gør det meget nemt at gøre. Vi bruger den mest populære, discord.js.

RELATERET: Sådan oprettes, opsættes og styres din Discord Server

Kom godt i gang

Gå over til Discords botportal, og opret en ny applikation.

Du vil gerne notere klient-id'et og hemmeligheden (som du selvfølgelig skal holde hemmelig). Dette er dog ikke boten, bare "applikationen". Du bliver nødt til at tilføje boten under fanen "Bot".

Noter også dette symbol, og hold det hemmeligt. Undlad under nogen omstændigheder at overdrage denne nøgle til Github. Din bot bliver hacket næsten med det samme.

Installer Node.js og få kodning

For at køre Javascript-kode uden for en webside skal du bruge Node. Download det, installer det, og sørg for, at det fungerer i en terminal (eller kommandoprompt, da alt dette skal fungere på Windows-systemer). Standardkommandoen er "node".

Vi anbefaler også at installere nodemon-værktøjet. Det er en kommandolinjeapp, der overvåger din bots kode og genstarter automatisk ved ændringer. Du kan installere det ved at køre følgende kommando:

npm i -g nodemon

Du skal bruge en teksteditor. Du kan bare bruge notesblok, men vi anbefaler enten Atom eller VSC.

Her er vores "Hello World":

const Discord = kræve ('discord.js'); const-klient = ny Discord.Client (); client.on ('ready', () => {console.log (`Logget ind som $ {client.user.tag}!`);}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('token');

Denne kode er taget fra eksemplet discord.js. Lad os nedbryde det.

  • De første to linjer er at konfigurere klienten. Linje en importerer modulet til et objekt kaldet "Discord", og linje to initialiserer klientobjektet.
  • Den client.on('ready')blok vil fyre når bot starter op. Her er det bare konfigureret til at logge sit navn til terminalen.
  • Den client.on('message')blok vil fyre hver gang en ny besked er udstationeret til hvilken som helst kanal. Selvfølgelig skal du kontrollere meddelelsesindholdet, og det er hvad ifblokken gør. Hvis meddelelsen bare siger "ping", svarer den med "Pong!"
  • Den sidste linje logger ind med tokenet fra botportalen. Det er klart, at symbolet i skærmbilledet her er falsk. Send aldrig dit token på internettet.

Kopier denne kode, indsæt dit token i bunden, og gem den som index.js i en dedikeret mappe.

Sådan køres bot

Gå over til din terminal, og kør følgende kommando:

nodemon --inspect index.js

Dette starter scriptet og fyrer også Chrome-fejlfindingsprogrammet op, som du kan få adgang til ved at skrive chrome://inspect/  i Chrome's Omnibar og derefter åbne "dedikerede devtools til Node."

Nu skal det bare sige "Logget ind som", men her har jeg tilføjet en linje, der logger alle beskedobjekter, der modtages til konsollen:

Så hvad udgør dette meddelelsesobjekt? En masse ting, faktisk:

Mest bemærkelsesværdigt har du forfatterinfo og kanalinfo, som du kan få adgang til med msg.author og msg.channel. Jeg anbefaler denne metode til at logge objekter til Chrome Node-devtools og bare kigge rundt for at se, hvad der får det til at fungere. Du kan finde noget interessant. Her logger for eksempel boten sine svar til konsollen, så botens svar udløses client.on('message'). Så jeg lavede en spambot:

Bemærk : Vær forsigtig med dette, da du ikke rigtig vil håndtere rekursion.

Sådan tilføjes Bot til din server

Denne del er sværere end den burde være. Du skal tage denne URL:

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

Og udskift CLIENTID med din bots klient-id, der findes på fanen Generel information på applikationssiden. Når dette først er gjort, kan du dog give linket til dine venner for at få dem til at tilføje boten til deres servere.

Okay, så hvad andet kan jeg gøre?

Ud over grundlæggende opsætning er alt andet helt op til dig. Men dette ville ikke være meget af en tutorial, hvis vi stoppede ved hej verden, så lad os gå igennem noget af dokumentationen, så du får en bedre idé om, hvad der er muligt. Jeg foreslår, at du læser igennem så meget som muligt, da det er meget veldokumenteret.

Jeg vil anbefale at tilføje console.log(client)til starten af ​​din kode og tage et kig på klientobjektet i konsollen:

Herfra kan du lære meget. Da du kan tilføje en bot til flere servere på én gang, er servere en del af Guilds kortobjektet. I dette objekt er de individuelle guilds (som er API'ets navn for "server"), og disse ordenobjekter har kanallister, der indeholder al info og lister over meddelelser. API'en er meget dyb og kan tage et stykke tid at lære, men i det mindste er det let at konfigurere og komme i gang med at lære.