Hjemmeside » hvordan » Sådan laver du din egen Discord Bot

    Sådan laver du din egen Discord Bot

    Discord har en fremragende API til at skrive brugerdefinerede robotter og et meget aktivt bot samfund. I dag tager vi et kig på, hvordan du kommer i gang med at lave din egen.

    Du skal bruge en smule programmerings viden 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.

    Kom i gang

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

    Du vil gerne notere klient-id og hemmelighed (som du bør holde en hemmelighed selvfølgelig). Dette er imidlertid ikke bot, bare "Application." Du skal tilføje bot under fanen "Bot".

    Noter også dette token og hold det hemmeligt. Under ingen omstændigheder begå denne nøgle til Github. Din bot bliver hacket næsten øjeblikkeligt.

    Installer Node.js og få kodning

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

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

    npm i-g nodemon

    Du skal bruge en teksteditor. Du kunne 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 (symbolsk);

    Denne kode er hentet fra discord.js eksemplet. Lad os bryde det ned.

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

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

    Sådan kører du botten

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

    nodemon --inspect index.js

    Dette starter scriptet og brænder også op i Chrome debugger, som du kan få adgang til ved at skrive chrome: // inspicere /  i Chrome's Omnibar og derefter åbne "dedikeret devtools for Node."

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

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

    Mest specielt har du forfatter info og kanal info, som du kan få adgang til med msg.author og msg.channel. Jeg anbefaler denne metode til at logge objekter på Chrome Node devtools, og bare kigger rundt for at se, hvad der gør det til at fungere. Du kan finde noget interessant. Her logger bot f.eks. Sine svar på konsollen, så botens svar udløser client.on ( 'besked'). Så jeg lavede en spambot:

    Bemærk: Vær forsigtig med dette, da du ikke virkelig vil beskæftige dig med rekursion.

    Sådan tilføjes bot til din server

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

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

    Og erstat CLIENTID med din bots klient-id, der findes på fanen generelle information på ansøgningssiden. Når dette er gjort, kan du give linket til dine venner for at få dem til at føje bot til deres servere også.

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

    Udover grundlæggende opsætning er alt andet helt op til dig. Men det ville ikke være meget af et selvstudium, hvis vi stoppede på hallo verden, så lad os gå over noget af dokumentationen, så du har en bedre ide om hvad der er muligt. Jeg foreslår, at du læser så meget som muligt, da det er meget dokumenteret.

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

    Herfra kan du lære meget. Da du kan tilføje en bot til flere servere på en gang, er servere en del af guilds kortobjekt. I det objekt er de individuelle guilder (som er API'ens navn for "server") og disse guildobjekter har kanallister, der indeholder alle informationer og lister over meddelelser. API'en er meget dyb, og det kan tage et stykke tid at lære, men i det mindste er det let at oprette og komme i gang med at lære.