Kaip susikurti savo nesantaikos botą

„Discord“ turi puikią API pritaikytiems robotams rašyti ir labai aktyvią robotų bendruomenę. Šiandien mes apžvelgsime, kaip pradėti kurti savo.

Norint užkoduoti robotą, jums reikės šiek tiek programavimo žinių, todėl tai tinka ne visiems, tačiau, laimei, yra keletas populiarių kalbų modulių, kuriuos labai lengva padaryti. Mes naudosime populiariausią, discord.js.

SUSIJEDS: Kaip sukurti, nustatyti ir valdyti savo nesantaikos serverį

Darbo pradžia

Eikite į „Discord“ robotų portalą ir sukurkite naują programą.

Jūs norite užsirašyti kliento ID ir paslaptį (kurią, žinoma, turėtumėte laikyti paslaptyje). Tačiau tai nėra robotas, tik „Programa“. „Bot“ skirtuke turėsite pridėti robotą.

Pažymėkite ir šį žetoną ir laikykite jį paslaptyje. Jokiu būdu neduokite šio rakto Githubui. Į jūsų robotą bus įsilaužta beveik iš karto.

Įdiekite „Node.js“ ir gaukite kodavimą

Jei norite paleisti „Javascript“ kodą ne tinklalapyje, jums reikia mazgo. Atsisiųskite, įdiekite ir įsitikinkite, kad jis veikia terminale (arba komandų eilutėje, nes visa tai turėtų veikti „Windows“ sistemose). Numatytoji komanda yra „mazgas“.

Taip pat rekomenduojame įdiegti mazgų įrankį. Tai yra komandinės eilutės programa, kuri stebi roboto kodą ir automatiškai paleidžiama iš naujo pasikeitus. Jį galite įdiegti vykdydami šią komandą:

npm i -g mazgas

Jums reikės teksto redaktoriaus. Galite tiesiog naudoti bloknotą, bet mes rekomenduojame „Atom“ arba „VSC“.

Štai mūsų „Labas pasaulis“:

const Nesantaika = reikalauti ('discord.js'); const klientas = nauja nesantaika. Klientas (); client.on ('ready', () => {console.log (`Prisijungta kaip $ {client.user.tag}!`);}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('žetonas');

Šis kodas paimtas iš „discord.js“ pavyzdžio. Sugrupuokime.

  • Pirmos dvi eilutės turi sukonfigūruoti klientą. Pirmoji eilutė importuoja modulį į objektą, vadinamą „Nesantaika“, o antroji eilutė inicijuoja kliento objektą.
  • client.on('ready')Blokas bus ugnies, kai botas pradeda. Čia jis tiesiog sukonfigūruotas prisijungti savo vardą prie terminalo.
  • client.on('message')Blokas bus ugnies kaskart naujas pranešimas yra paskelbtas bet kanalą. Be abejo, turėsite patikrinti pranešimo turinį, ir tai daro ifblokas. Jei pranešime tiesiog parašyta „ping“, jis atsakys „Pong!“
  • Paskutinė eilutė prisijungia prie prieigos rakto iš roboto portalo. Akivaizdu, kad ekrano kopijoje esantis raktas yra netikras. Niekada neskelbkite savo prieigos rakto internete.

Nukopijuokite šį kodą, įklijuokite į raktą apačioje ir išsaugokite jį kaip index.js tam skirtą aplanką.

Kaip paleisti botą

Eikite į savo terminalą ir vykdykite šią komandą:

mazgas - apžiūrėkite index.js

Tai paleidžia scenarijų ir suaktyvina „Chrome“ derintuvą, kurį galite pasiekti įvesdami „ chrome://inspect/  Chrome“ „Omnibar“ ir atidarydami „dedikuotus„ Node “įrankius mazgui“.

Dabar jis turėtų tiesiog pasakyti „Prisijungęs kaip“, bet čia aš pridėjau eilutę, kuri užregistruos visus pranešimų objektus, gautus į konsolę:

Taigi, kas sudaro šį pranešimo objektą? Iš tikrųjų daugybė dalykų:

Visų pirma turite informaciją apie autorių ir kanalą, kurią galite pasiekti naudodami msg.author ir msg.channel. Aš rekomenduoju šį objektų registravimo būdą prisijungti prie „Chrome Node“ devtools ir tiesiog apsižvalgyti, kas jį veikia. Galbūt rasite ką nors įdomaus. Pavyzdžiui, čia robotas užregistruoja savo atsakymus į konsolę, todėl roboto atsakymai suveikia client.on('message'). Taigi, aš padariau šlamštą:

Pastaba : būkite atsargūs, nes tikrai nenorite susidoroti su rekursija.

Kaip pridėti robotą prie savo serverio

Ši dalis yra sunkesnė, nei turėtų būti. Turite naudoti šį URL:

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

Ir pakeiskite „CLIENTID“ savo roboto kliento ID, pateiktą programos puslapio skirtuke „Bendra informacija“. Kai tai bus padaryta, jūs galite pateikti nuorodą savo draugams, kad jie taip pat pridėtų robotą prie savo serverių.

Gerai, tai ką dar galiu padaryti?

Be pagrindinės sąrankos, viskas priklauso tik nuo jūsų. Bet tai nebūtų didelė pamoka, jei sustotume į „labas pasaulį“, todėl apžvelkime kai kuriuos dokumentus, kad geriau suprastumėte, kas įmanoma. Siūlau perskaityti kuo daugiau, nes tai labai gerai dokumentuota.

Aš rekomenduočiau pridėti console.log(client)prie savo kodo pradžios ir pažvelgti į kliento objektą konsolėje:

Iš čia galite sužinoti daug. Kadangi robotą galite pridėti prie kelių serverių vienu metu, serveriai yra Guilds žemėlapio objekto dalis. Tame objekte yra atskiros gildijos (tai yra „serverio“ API pavadinimas), o šiuose gildijos objektuose yra kanalų sąrašai, kuriuose yra visa informacija ir pranešimų sąrašai. API yra labai gili ir gali užtrukti, kol išmoksi, bet bent jau lengva ją nustatyti ir pradėti mokytis.