Hogyan készítsünk saját diszkord botot

A Discord kiváló API-val rendelkezik az egyedi robotok írásához, és nagyon aktív bot közösséggel rendelkezik. Ma megvizsgáljuk, hogyan lehet elkezdeni a saját készítését.

Szüksége lesz egy kis programozási ismeretre a bot kódolásához, tehát nem mindenki számára való, de szerencsére vannak olyan modulok a népszerű nyelvek számára, amelyek megkönnyítik a végrehajtását. A legnépszerűbbet, a discord.js fájlt fogjuk használni.

KAPCSOLÓDÓ: A diszkordkiszolgáló létrehozása, beállítása és kezelése

Elkezdeni

Lépjen a Discord botportáljára, és hozzon létre egy új alkalmazást.

Fel kell jegyeznie az ügyfél-azonosítót és a titkot (amit természetesen titkolnia kell). Ez azonban nem a bot, csak az „Alkalmazás”. Hozzá kell adnia a botot a „Bot” fül alatt.

Jegyezze fel ezt a tokent is, és titkolja. Semmilyen körülmények között ne kötelezze el ezt a kulcsot Github előtt. A botját szinte azonnal feltörik.

Telepítse a Node.js fájlt, és töltse le a kódolást

A Javascript-kód futtatásához egy weboldalon kívül Node-ra van szükség. Töltse le, telepítse és ellenőrizze, hogy működik-e a terminálban (vagy a Parancssorban, mivel mindezeknek Windows rendszereken is működnie kell). Az alapértelmezett parancs a „csomópont”.

Javasoljuk továbbá a nodemon eszköz telepítését. Ez egy parancssori alkalmazás, amely figyeli a bot kódját, és automatikusan újraindul a változásokkal. A következő parancs futtatásával telepítheti:

npm i -g nodemon

Szüksége lesz egy szövegszerkesztőre. Csak használhatna jegyzettömböt, de javasoljuk az Atom vagy a VSC használatát.

Itt van a „Hello World”:

const Discord = igényel ('discord.js'); const kliens = new Discord.Client (); client.on ('ready', () => {console.log (`$ {client.user.tag} néven bejelentkezve!`);}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('token');

Ez a kód a discord.js példából származik. Bontjuk le.

  • Az első két sor az ügyfél konfigurálása. Az első sor a modult egy „Discord” nevű objektumba importálja, a második sor pedig inicializálja az ügyfélobjektumot.
  • A client.on('ready')blokk akkor fog lőni, amikor a bot elindul. Itt csak konfigurálva van, hogy naplózza a nevét a terminálra.
  • A client.on('message')blokk mindig elindul, ha új üzenetet küldünk bármely csatornára. Természetesen ellenőriznie kell az üzenet tartalmát, és ezt ifteszi a blokk. Ha az üzenet csak pinget ír, akkor a "Pong!"
  • Az utolsó sor a tokennel jelentkezik be a bot portálról. Nyilvánvaló, hogy az itt látható képernyőkép tokenje hamis. Soha ne tegye közzé a tokent az interneten.

Másolja ezt a kódot, illessze be a token aljára, és mentse el index.js egy dedikált mappába.

Hogyan kell futtatni a botot

Menjen át a terminálhoz, és futtassa a következő parancsot:

nodemon - az index.js megvizsgálása

Ez elindítja a szkriptet, és elindítja a Chrome hibakeresőt is, amelyhez úgy férhet hozzá, hogy beírja chrome://inspect/  a Chrome Omnibar-jába, majd megnyitja a „dedikált devtoolokat a Node-hoz”.

Most csak annyit kell mondania, hogy "Bejelentkezve másként", de itt felvettem egy sort, amely az összes beérkezett üzenetobjektumot naplózza a konzolra:

Tehát mi alkotja ezt az üzenetobjektumot? Nagyon sok dolog valójában:

Különösen a szerzői és a csatornainformációk vannak, amelyeket az msg.author és az msg.channel használatával érhet el. Ezt a módszert ajánlom az objektumok naplózására a Chrome Node devtoolok számára, és csak körülnézni, hogy mitől működik. Találhat valami érdekeset. Itt például a bot naplózza válaszait a konzolra, így a bot válaszai elindulnak client.on('message'). Tehát spamot készítettem:

Megjegyzés : Vigyázzon ezzel, mivel nem igazán akar rekurzióval foglalkozni.

Hogyan adjuk hozzá a botot a szerverhez

Ez a rész nehezebb, mint kellene. Ezt az URL-t kell megadnia:

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

És cserélje le a CLIENTID-et a robot kliens-azonosítójára, amely az alkalmazás oldal általános információ fülén található. Miután ez megtörtént, megadhatja a linket barátainak, hogy ők is hozzáadják a botot a szervereikhez.

Rendben, akkor mit tehetek még?

Az alapbeállításokon túl bármi más teljes mértékben rajtad múlik. De ez nem lenne sok oktatóanyag, ha a hello world-nél megállnánk, ezért nézzük át a dokumentáció egy részét, így jobban megismerheti a lehetséges lehetőségeket. Javaslom, olvassa el minél többet, mivel nagyon jól dokumentált.

Azt javaslom, hogy console.log(client)adja hozzá a kód elejéhez, és nézze meg az ügyfélobjektumot a konzolon:

Innen rengeteget tanulhat. Mivel botot egyszerre több kiszolgálóhoz is hozzáadhat, a szerverek a térképobjektum részét képezik Guilds . Ebben az objektumban találhatók az egyes Céhek (ez az API neve a „szerver” számára), és ezek a céh objektumok csatornalistákkal rendelkeznek, amelyek tartalmazzák az összes információt és üzenetlistát. Az API nagyon mély, és eltarthat egy ideig a tanulásig, de legalább könnyű beállítani és elkezdeni a tanulást.