Kuidas teha oma ebakõla bot

Discordil on suurepärane API kohandatud robotite kirjutamiseks ja väga aktiivne botikogukond. Täna vaatame, kuidas enda loomist alustada.

Boti kodeerimiseks vajate natuke programmeerimisteadmisi, nii et see pole mõeldud kõigile, kuid õnneks on populaarsete keelte jaoks mõned moodulid, mis muudavad selle väga lihtsaks. Kasutame kõige populaarsemat, discord.js.

SEOTUD:Kuidas luua, seadistada ja hallata oma ebakõlaserverit

Alustamine

Minge Discordi botiportaali ja looge uus rakendus.

Te soovite märkida kliendi ID ja saladuse (mida peaksite muidugi saladuses hoidma). See pole siiski robot, vaid ainult rakendus. Peate roboti lisama vahekaardi „Bot” alla.

Märkige ka see märk üles ja hoidke seda saladuses. Ärge mingil juhul siduge seda võtit Githubiga. Teie bot häkitakse peaaegu kohe.

Installige Node.js ja hankige kodeerimine

Javascripti koodi käitamiseks väljaspool veebilehte on teil vaja sõlme. Laadige see alla, installige see ja veenduge, et see töötaks terminalis (või käsuviibas, kuna see kõik peaks Windowsi süsteemides töötama). Vaikekäsk on „sõlm“.

Samuti soovitame installida nodemoni tööriista. See on käsurea rakendus, mis jälgib teie roboti koodi ja taaskäivitub muudatuste korral automaatselt. Selle saate installida, käivitades järgmise käsu:

npm i -g nodemon

Te vajate tekstiredaktorit. Võite kasutada lihtsalt märkmikku, kuid soovitame kas Atomi või VSC-d.

Siin on meie "Tere maailm":

const ebakõla = nõuda ('discord.js'); const klient = uus ebakõla.Klient (); klient.on ('valmis', () => {konsool.log (`Sisse logitud kasutajana $ {klient.kasutaja.märgend!!);}); klient.on ('sõnum', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); klient.login ('märgis');

See kood on võetud näiteks discord.js-st. Jagame selle laiali.

  • Esimesed kaks rida on kliendi konfigureerimine. Esimene rida impordib mooduli objekti nimega "Lahkarvamused" ja teine ​​rida lähtestab kliendi objekti.
  • The klient.on ('valmis') plokk käivitub, kui bot käivitub. Siin on see lihtsalt konfigureeritud oma nime terminali logima.
  • The klient.on ('sõnum') plokk käivitub alati, kui igale kanalile postitatakse uus sõnum. Muidugi peate kontrollima sõnumi sisu ja see on kui plokk teeb. Kui sõnum ütleb lihtsalt "ping", vastab see sõnaga "Pong!"
  • Viimane rida logib roboti portaalist koos märgiga sisse. Ilmselt on siin ekraanipildil olev märk võlts. Ärge kunagi oma märki internetti postitage.

Kopeerige see kood, kleepige selle allservas olev märk ja salvestage see kui index.js spetsiaalses kaustas.

Kuidas käivitada bot

Minge oma terminali ja käivitage järgmine käsk:

nodemon - vaadake index.js

See käivitab skripti ja käivitab ka Chrome'i siluri, millele pääsete juurde sisestades kroom: // kontroll / Chrome'i Omnibarile ja avades seejärel "spetsiaalsed sõlmede devtoolid".

Nüüd peaks see lihtsalt ütlema "Sisselogitud kui", kuid siin olen lisanud rea, mis logib kõik konsooli vastuvõetud sõnumi objektid:

Mis siis selle sõnumi objekti moodustab? Tegelikult palju asju:

Kõige olulisem on see, et teil on autoriteave ja kanaliteave, millele pääsete juurde msg.authori ja msg.channeli abil. Soovitan seda meetodit objektide logimiseks Chrome Node'i devtoolidele ja lihtsalt ringi vaadates, mis selle tööle paneb. Võite leida midagi huvitavat. Näiteks logib robot oma vastused konsooli, nii et roboti vastused käivitavad klient.on ('sõnum'). Niisiis, tegin spämmi:

Märge: Olge sellega ettevaatlik, kuna te ei soovi rekursiooniga tegeleda.

Kuidas lisada robot oma serverisse

See osa on raskem kui peaks. Peate võtma selle URL-i:

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

Ja asendage CLIENTID oma roboti kliendi ID-ga, mis asub rakenduse lehe vahekaardil Üldteave. Kui see on siiski tehtud, võite anda lingi oma sõpradele, et nad saaksid roboti ka oma serveritesse lisada.

Olgu, mida ma siis veel teha saan?

Peale põhiseadistuste on kõik muu täielikult teie otsustada. Kuid see poleks eriline õpetus, kui peatuksime tere maailmas, nii et lähme üle mõned dokumendid, nii et teil on parem ülevaade võimalikust. Soovitan teil lugeda läbi nii palju kui võimalik, kuna see on väga hästi dokumenteeritud.

Soovitaksin lisada console.log (klient) koodi algusesse ja pilk konsoolis olevale kliendiobjektile:

Siit saate palju õppida. Kuna saate roboti korraga lisada mitmesse serverisse, on serverid osa Gildid kaardiobjekt. Selles objektis on üksikud gildid (mis on API nimi serverile) ja neil gildi objektidel on kanaliloendid, mis sisaldavad kogu teavet ja sõnumite loendeid. API on väga sügav ja selle õppimine võib võtta natuke aega, kuid vähemalt on seda lihtne seadistada ja õppima asuda.