Paano Gumawa ng Iyong Sariling Bot sa Discord

Ang Discord ay may mahusay na API para sa pagsusulat ng mga pasadyang bot, at isang napaka-aktibong komunidad ng bot. Ngayon ay titingnan natin kung paano magsisimulang gumawa ng sarili mo.

Kakailanganin mo ng kaunting kaalaman sa pag-programa upang ma-code ang isang bot, kaya't hindi para sa lahat, ngunit sa kabutihang palad mayroong ilang mga module para sa mga tanyag na wika na ginagawang napakadaling gawin. Gagamitin namin ang pinakatanyag, discord.js.

KAUGNAYAN:Paano Lumikha, Mag-set up, at Pamahalaan ang iyong Discord Server

Nagsisimula

Tumungo sa bot portal ng Discord, at lumikha ng isang bagong application.

Gusto mong gumawa ng isang tala ng Client ID at lihim (syempre dapat mong ilihim,). Gayunpaman, hindi ito ang bot, ang "Application" lamang. Kakailanganin mong idagdag ang bot sa ilalim ng tab na "Bot".

Gumawa rin ng tala ng token na ito, at ilihim ito. Huwag, sa ilalim ng anumang mga pangyayari, gawin ang susi na ito sa Github. Ang iyong bot ay mai-hack kaagad.

I-install ang Node.js at Kumuha ng Coding

Upang patakbuhin ang Javascript code sa labas ng isang webpage, kailangan mo ng Node. I-download ito, i-install ito, at tiyakin na gumagana ito sa isang terminal (o Command Prompt, dahil ang lahat ng ito ay dapat na gumana sa mga system ng Windows). Ang default na utos ay "node."

Inirerekumenda rin namin ang pag-install ng tool ng nodemon. Ito ay isang command line app na sinusubaybayan ang code ng iyong bot at awtomatikong restart sa mga pagbabago. Maaari mo itong mai-install sa pamamagitan ng pagpapatakbo ng sumusunod na utos:

npm i -g nodemon

Kakailanganin mo ang isang text editor. Maaari mo lamang gamitin ang notepad, ngunit inirerekumenda namin ang alinman sa Atom o VSC.

Narito ang aming "Hello World":

const Discord = nangangailangan ('discord.js'); const client = bagong Discord.Client (); client.on ('handa', () => {console.log (`Naka-log in bilang $ {client.user.tag}!`);}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('token');

Ang code na ito ay kinuha mula sa halimbawa ng discord.js. Basagin natin ito.

  • Ang unang dalawang linya ay upang i-configure ang client. Ang isang linya ay nag-i-import ng module sa isang bagay na tinatawag na "Discord," at linya ng dalawang pinapasimuno ang object ng client.
  • Ang client.on ('handa') magpaputok ang block kapag nagsimula ang bot. Dito, na-configure lamang upang mai-log ang pangalan nito sa terminal.
  • Ang client.on ('mensahe') magpaputok ang bloke tuwing may bagong mensahe na nai-post sa anumang channel. Siyempre, kakailanganin mong suriin ang nilalaman ng mensahe, at iyon ang kung ang block ay. Kung ang mensahe ay nagsabi lamang ng "ping," pagkatapos ito ay tutugon ng "Pong!"
  • Ang huling linya ay nag-log in gamit ang token mula sa bot portal. Malinaw na, ang token sa screenshot dito ay peke. Huwag kailanman i-post ang iyong token sa internet.

Kopyahin ang code na ito, i-paste sa iyong token sa ibaba, at i-save ito bilang index.js sa isang nakalaang folder.

Paano Patakbuhin ang Bot

Tumungo sa iyong terminal, at patakbuhin ang sumusunod na utos:

nodemon --inspect index.js

Sinisimulan nito ang script, at sinusunog din ang Chrome debugger, na maaari mong ma-access sa pamamagitan ng pagta-type chrome: // inspect / sa Omnibar ng Chrome at pagkatapos ay magbubukas ng "nakatuon na mga devtool para sa Node."

Ngayon, sasabihin lamang na "Naka-log in bilang," ngunit narito akong nagdagdag ng isang linya na mag-log sa lahat ng natanggap na mga object ng mensahe sa console:

Kaya't ano ang bumubuo sa object ng mensahe na ito? Maraming bagay, talaga:

Karamihan sa kapansin-pansin, mayroon kang impormasyon ng may-akda at impormasyon sa channel, na maaari mong ma-access gamit ang msg.author at msg.channel. Inirerekumenda ko ang pamamaraang ito ng pag-log ng mga bagay sa mga Chrome Node devtool, at pagtingin lamang sa paligid upang makita kung bakit ito gumagana. Maaari kang makahanap ng isang bagay na kawili-wili. Dito, halimbawa, na-log ng bot ang mga tugon nito sa console, kaya't nag-trigger ang mga tugon ng bot client.on ('mensahe'). Kaya, gumawa ako ng isang spambot:

Tandaan: Mag-ingat sa mga ito, dahil hindi mo talaga nais na makitungo sa recursion.

Paano Maidadagdag ang Bot sa Iyong Server

Ang bahaging ito ay mas mahirap kaysa sa dapat. Kailangan mong kunin ang URL na ito:

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

At palitan ang CLIENTID ng client ID ng iyong bot, na matatagpuan sa tab na pangkalahatang impormasyon ng pahina ng aplikasyon. Sa sandaling tapos na ito, maaari mong ibigay ang link sa iyong mga kaibigan upang maidagdag din nila ang bot sa kanilang mga server.

Okay, Kaya Ano Pa ang Magagawa Ko?

Higit pa sa pangunahing pag-set up, anupaman ay ganap na nasa iyo. Ngunit, hindi ito magiging isang tutorial kung huminto kami sa mundo ng hello, kaya't tingnan natin ang ilan sa mga dokumentasyon, kaya mayroon kang isang mas mahusay na ideya kung ano ang posible. Iminumungkahi kong basahin mo hangga't makakaya mo, dahil napakahusay na dokumentado.

Inirerekumenda ko ang pagdaragdag console.log (client) sa pagsisimula ng iyong code, at pagtingin sa object ng client sa console:

Mula dito, marami kang matutunan. Dahil maaari kang magdagdag ng isang bot sa maraming mga server nang sabay-sabay, ang mga server ay bahagi ng Mga Guild object ng mapa Sa object na iyon ay ang mga indibidwal na Guilds (na kung saan ay ang pangalan ng API para sa "server") at ang mga object ng guild ay may mga listahan ng channel na naglalaman ng lahat ng impormasyon at mga listahan ng mga mensahe. Napakalalim ng API, at maaaring magtagal bago malaman, ngunit kahit papaano madali itong mag-set up at magsimulang matuto.


$config[zx-auto] not found$config[zx-overlay] not found