Viszály kiváló API-val rendelkezik az egyedi robotok írásához, és nagyon aktív bot közösség . 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 nagyon egyszerűen elvégzik. A legnépszerűbbet fogjuk használni, discord.js .
ÖSSZEFÜGGŐ: A diszkordkiszolgáló létrehozása, beállítása és kezelése
Elkezdeni
Irány a Discord's bot portál , é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 szerezze be a kódolást
Ahhoz, hogy a Javascript kódot egy weboldalon kívül futtassa, szüksége van Csomópont . Töltse le, telepítse és ellenőrizze, hogy működik-e egy 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ások esetén. A következő parancs futtatásával telepítheti:
npm és -g nodemon
Szüksége lesz egy szövegszerkesztőre. Használhatná a Jegyzettömböt, de javasoljuk azt is Atom vagy VSC .
Itt van a „Hello World”:
const Discord = igényel ('discord.js');
const kliens = new Discord.Client ();
client.on ('kész', () => {
console.log(`Logged in as ${client.user.tag}! `);
});
client.on ('üzenet', msg => {
if (msg.content === 'ping') {
msg.reply('pong');
}
});
client.login ('token');
Ezt a kódot a discord.js példa. 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 ('kész')blokk akkor fog elindulni, amikor a bot elindul. Itt csak konfigurálva van, hogy naplózza a nevét a terminálra. -
A
client.on ('üzenet')A blokk minden alkalommal elindul, ha új üzenetet küldünk bármely csatornára. Természetesen ellenőriznie kell az üzenet tartalmát, és ez azhablokk nem. 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 másként
index.js
egy dedikált mappában.
Hogyan kell futtatni a botot
Menjen át a termináljához, é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 gépeléssel férhet hozzá
króm: // ellenőrzés /
a Chrome Omnibar-jába, majd megnyitja a „dedikált devtoolokat a Node-hoz”.
Most csak azt kell mondania, hogy „Bejelentkezés <bot-name> néven”, de itt hozzáadtam 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 programmal érhet el. Ajánlom ezt a módszert, amikor az objektumokat naplózza a Chrome Node devtoolokhoz, é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 ('üzenet')
. So, I made a spambot:
jegyzet : 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:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
És cserélje le a CLIENTID parancsot botjának ügyfél-azonosítójára, amely megtalálható a alkalmazás oldal . 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 megállnánk a hello worldnél, ezért nézzük át a dokumentáció , így jobban tudja, mi lehetséges. Javaslom, olvassa el minél többet, mivel nagyon jól dokumentált.
Javasolnám hozzá
console.log (kliens)
a kód elejére, és egy pillantást vet a kliens objektumra a konzolon:
Innen sokat tanulhat. Mivel botot egyszerre több kiszolgálóhoz is hozzáadhat, a szerverek a
Céhek
térkép objektum. Abban a tárgyban vannak az egyén
Céhek
(amely az API neve a „szervernek”), és ezeknek a céh objektumoknak vannak csatornalistái, 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.