If-Koubou

Kā padarīt savu diskdziņu bot

Kā padarīt savu diskdziņu bot (Kā)

Discord ir lieliska API, lai rakstītu pielāgotus robotus un ļoti aktīvo bot kopienu. Šodien mēs apskatīsim, kā sākt veidot savu.

Lai kodētu bot, jums būs vajadzīgas nedaudz programmēšanas zināšanas, tādēļ tas nav visiem, bet, par laimi, ir daži populāri valodu moduļi, kas padara to ļoti viegli izdarīt. Mēs izmantosim populārāko, discord.js.

Darba sākšana

Pārejiet pie Discord portāla un izveidojiet jaunu lietojumprogrammu.

Jūs vēlaties atzīmēt klienta ID un noslēpumu (kas, protams, jums būtu jāsaglabā noslēpums). Tomēr tas nav bot, tikai "Pieteikums". Jums būs jāpievieno bot zem "Bot" cilnes.

Uzrakstiet arī šo marķieri un saglabājiet to noslēpumā. Nekādā gadījumā nedrīkst izdarīt šo atslēgu Github. Jūsu robots tiks uzlauzts gandrīz nekavējoties.

Instalējiet Node.js un iegūstiet kodēšanu

Lai palaistu Javascript kodu ārpus tīmekļa lapas, jums nepieciešams Node. Lejupielādējiet to, instalējiet to un pārliecinieties, ka tas darbojas terminālā (vai komandrindas tekstā, jo tas viss darbosies ar Windows sistēmām). Noklusējuma komanda ir "mezgls".

Mēs iesakām arī instalēt nodemon rīku. Tā ir komandrindas lietotne, kas pārrauga jūsu bot kodu un automātiski restartējas pēc izmaiņām. Jūs varat to instalēt, izpildot šādu komandu:

npm i -g nodemon

Jums būs nepieciešams teksta redaktors. Jūs varētu vienkārši izmantot notepad, bet mēs iesakām vai nu Atom, vai VSC.

Lūk, mūsu "Hello World":

const Diskord = require ('discord.js'); const client = jauns Discord.Client (); client.on ('ready', () => console.log ('Pieteikts kā $ client.user.tag!');); client.on ('message', msg => (if (msg.content === 'ping') msg.reply ('pong');); client.login ("token");

Šis kods ir ņemts no disord.js piemēra. Let's sadalīt to uz leju.

  • Pirmās divas rindas ir konfigurēt klientu. Viena līnija importē moduli objektā ar nosaukumu "Diskord", un otra līnija inicializē klienta objektu.
  • The client.on ("gatavs") bloks tiks aktivizēts, kad bot startēs. Šeit tas ir tikai konfigurēts, lai pieteiktos tā nosaukumam uz termināli.
  • The client.on ("ziņojums") bloks tiks aizvērts katru reizi, kad jebkuram kanālam ir publicēta jauna ziņa. Protams, jums būs jāpārbauda ziņu saturs, un tas ir tas, ko ja bloķē. Ja ziņojums tikai saka "ping", tad tas atbildēs ar "Pong!"
  • Pēdējā rinda piesakās ar bot portāla pilnvaru. Acīmredzot, simbols ekrānuzņēmumā šeit ir viltota. Nekad neiesniedziet savu pilnvaru internetā.

Nokopējiet šo kodu, ielīmējiet to pilnvarā apakšā un saglabājiet to kā index.js mapē.

Kā palaist bot

Pārejiet pie sava termināļa un palaidiet šādu komandu:

nodemon --incpect index.js

Tas palaiž skriptu, kā arī aktivizē Chrome atkļūdotāju, kuru varat piekļūt, ierakstot chrome: // pārbaudīt / Chrome versijā Omnibar un pēc tam atverot "devtooles par nodalījumu".

Tagad tam vajadzētu tikai teikt "Pieteikties kā", bet šeit esmu pievienojis rindu, kurā tiks reģistrēti visi konsolē saņemtie ziņu objekti:

Tātad, kas veido šo ziņu objektu? Daudz stuff, faktiski:

Jo īpaši, jums ir informācija par autoru un kanāla informācija, kurai var piekļūt ar msg.author un msg.channel. Es iesaku šo metodi reģistrēt objektus Chrome Node devtools, un vienkārši apskati, lai redzētu, kas padara to darbu. Jūs varat atrast kaut ko interesantu. Piemēram, šeit, piemēram, bot reģistrē savas atbildes uz konsoli, tādēļ bot atbildes tiek aktivizētas client.on ("ziņojums"). Tātad es izveidoju spambots:

Piezīme: Esi uzmanīgs ar to, jo jūs patiešām nevēlaties risināt jautājumu par recursion.

Kā pievienot bot jūsu serverim

Šī daļa ir grūtāka nekā tā būtu. Jums ir jāņem šis URL:

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

Un aizvietojiet CLIENTID ar savu bot klienta ID, kas atrodams pieteikuma lapas cilnē Vispārīga informācija. Kad tas ir paveikts, tomēr jūs varat dot saiti saviem draugiem, lai viņi pievienotu bot saviem serveriem.

Labi, tātad, ko vēl es varu darīt?

Papildus pamata iestatījumiem kaut kas cits ir atkarīgs no jums. Bet tas nebūtu daudz apmācības, ja mēs apstājosies sveiki pasaulē, tāpēc apskatiet kādu dokumentāciju, lai jūs labāk izprastu, kas ir iespējams. Es iesaku jums izlasīt tik daudz, cik vien iespējams, jo tas ir ļoti labi dokumentēts.

Es ieteiktu pievienot console.log (klients) uz sava koda sākumu un konsole apskatot klienta objektu:

No šejienes jūs varat daudz iemācīties. Tā kā jūs varat pievienot bot vairākiem serveriem uzreiz, serveri ir daļa no Ģildes kartes objekts. Šajā objektā ir atsevišķas ģildes (kas ir API nosaukums "serverim"), un šiem ģildes objektiem ir kanālu saraksti, kuros ir visa informācija un ziņu saraksti. API ir ļoti dziļa, un, lai uzzinātu, tas var aizņemt laiku, bet vismaz to ir viegli iestatīt un sākt mācīties.