Hemsida » hur » Hur man gör din egen Discord Bot

    Hur man gör din egen Discord Bot

    Discord har ett utmärkt API för att skriva anpassade robotar och en mycket aktiv botgemenskap. Idag tar vi en titt på hur du börjar göra din egen.

    Du behöver lite programmeringskunskap för att koda en bot, så det är inte för alla, men lyckligtvis finns det några moduler för populära språk som gör det väldigt lätt att göra. Vi använder den mest populära, discord.js.

    Komma igång

    Gå över till Discords botportal och skapa en ny applikation.

    Du vill notera klient-id och hemlighet (som du borde hålla hemligheten självklart). Men det här är inte botet, bara "Application." Du måste lägga till boten under fliken "Bot".

    Notera också detta tecken och håll det hemligt. Under inga omständigheter begå denna nyckel till Github. Din bot kommer att hackas nästan omedelbart.

    Installera Node.js och få kodning

    För att köra Javascript-kod utanför en webbsida behöver du nod. Ladda ner det, installera det och se till att det fungerar i en terminal (eller Command Prompt, eftersom allt detta ska fungera på Windows-system). Standardkommandot är "nod".

    Vi rekommenderar också att du installerar nodverktyget. Det är en kommandoradsapp som övervakar din bots kod och startar om automatiskt efter ändringar. Du kan installera det genom att köra följande kommando:

    npm i-g nodemon

    Du behöver en textredigerare. Du kan bara använda anteckningsblock, men vi rekommenderar antingen Atom eller VSC.

    Här är vår "Hello World":

    const Discord = kräver ('discord.js'); const klient = ny Discord.Client (); client.on ('ready', () => console.log ('Inloggad som $ client.user.tag!');); client.on ('message', msg => if (msg.content === 'ping') msg.reply ('pong');); client.login ( 'token');

    Den här koden är hämtad från exemplet discord.js. Låt oss bryta ner det.

    • De två första raderna är att konfigurera klienten. Linje 1 importerar modulen till ett objekt som heter "Discord" och linje två initierar klientobjektet.
    • De client.on ( 'klar') blocket kommer att elda när boten börjar. Här är det bara konfigurerat att logga in sitt namn till terminalen.
    • De client.on ( 'meddelande') block kommer att avfyra varje gång ett nytt meddelande skickas till någon kanal. Självklart måste du kontrollera meddelandets innehåll, och det är vad om block gör. Om meddelandet bara säger "ping" kommer det att svara med "Pong!"
    • Den sista raden loggar in med token från botportalen. Självklart är symbolen i skärmdumpen här falsk. Skicka aldrig ditt token på internet.

    Kopiera den här koden, klistra in i din token längst ner och spara den som index.js i en egen mapp.

    Hur man kör botten

    Gå över till din terminal och kör följande kommando:

    nodemon --inspect index.js

    Detta startar manuset och bränder också upp Chrome-debugger, som du kan komma åt genom att skriva krom: // inspektera /  in i Chrome's Omnibar och sedan öppna "dedikerade devtools for Node."

    Nu ska det bara säga "Inloggad som" men här har jag lagt till en rad som loggar alla meddelandobjekt som tas emot i konsolen:

    Så vad utgör detta meddelandeobjekt? Många saker, faktiskt:

    Mest speciellt har du författarinfo och kanalinfo, som du kan komma åt med msg.author och msg.channel. Jag rekommenderar den här metoden för att logga objekt till Chrome-noden devtools, och bara titta runt för att se vad som gör det fungerar. Du kan hitta något intressant. Här loggar bot till exempel sina svar på konsolen, så botens svar utlöser client.on ( 'meddelande'). Så jag gjorde en spambot:

    Notera: Var försiktig med detta, eftersom du inte verkligen vill hantera rekursion.

    Så här lägger du till Bot till din server

    Den här delen är svårare än den borde vara. Du måste ta denna URL:

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

    Och ersätt CLIENTID med din bots klient-ID, som finns på fliken Allmän information på applikationssidan. När det här är gjort kan du ge länken till dina vänner för att få dem att lägga till boten till sina servrar också.

    Okej, så vad annat kan jag göra?

    Utöver grundläggande inställningar är allt annat helt upp till dig. Men det här skulle inte vara mycket av en handledning om vi slutade på hej världen, så låt oss gå över en del av dokumentationen, så du har en bättre uppfattning om vad som är möjligt. Jag föreslår att du läser igenom så mycket du kan, eftersom det är väldokumenterat.

    Jag skulle rekommendera att lägga till console.log (klient) till början av din kod och titta på klientobjektet i konsolen:

    Härifrån kan du lära dig mycket. Eftersom du kan lägga till en bot på flera servrar samtidigt, är servrar en del av Guilds kartobjekt. I det objektet är de enskilda guildarna (som är API: s namn för "server") och dessa guildobjekt har kanallistor som innehåller all information och listor med meddelanden. API: n är mycket djupt, och det kan ta ett tag att lära sig, men det är lätt att installera och börja lära sig.