If-Koubou

Kako napraviti svoj vlastiti Discord Bot

Kako napraviti svoj vlastiti Discord Bot (Kako da)

Discord ima izvrstan API za pisanje vlastitih botova i vrlo aktivnu botnu zajednicu. Danas ćemo pogledati kako započeti izradu vlastite.

Trebat će vam malo programiranja znanja za kodiranje bot, tako da nije za svakoga, ali srećom postoje neki moduli za popularne jezike koji ga čine vrlo lako za napraviti. Koristit ćemo najpopularniji, discord.js.

Početak rada

Prijeđite na Discordov bot portal i izradite novu aplikaciju.

Vi ćete htjeti zabilježiti ID klijenta i tajnu (naravno, čuvati tajnu). Međutim, ovo nije bot, samo "Aplikacija". Morat ćete dodati bot pod karticom "Bot".

Zabilježite i taj znak i držite ga tajnom. Nemojte, ni pod kojim okolnostima, obvezati taj ključ Githubu. Vaš će bot biti gotovo istovremeno sjeckan.

Instalirajte Node.js i preuzmite kodiranje

Za pokretanje Javascript koda izvan web stranice trebate čvor. Preuzmite ga, instalirajte i provjerite radi li se na terminalu (ili naredbenom retku jer sve to treba raditi na sustavima Windows). Zadana je naredba "čvor".

Također preporučujemo instalaciju alata za nodemon. To je aplikacija naredbenog retka koja prati kôd vašeg botova i automatski se pokreće na promjenama. Možete je instalirati tako da pokrenete sljedeću naredbu:

npm i -g nodemon

Trebat će vam uređivač teksta. Možete samo koristiti notepad, ali preporučujemo Atom ili VSC.

Evo našeg "Hello World":

const Discord = zahtijevaju ('discord.js'); const client = novo Discord.Client (); client.on ('ready', () => console.log ('Prijavljeni kao $ client.user.tag!);); client.on ('message', msg => if (msg.content === 'ping') msg.reply ('pong');); client.login ( 'token');

Taj je kôd preuzet iz primjera discord.js. Prekinimo je.

  • Prva dva retka su za konfiguriranje klijenta. Linija 1 uvodi modul u objekt pod nazivom "Discord", a druga linija inicira klijentski objekt.
  • client.on ( 'spreman') blok će zapaliti kad se bot pokrene. Ovdje je konfiguriran da prijavi svoje ime na terminal.
  • client.on ( 'poruke') blok će se ugasiti svaki put kad se nova poruka šalje na bilo koji kanal. Naravno, morat ćete provjeriti sadržaj poruke, a to je ono što ako blok čini. Ako poruka samo kaže "ping", onda će odgovoriti s "Pong!"
  • Posljednji redak se prijavljuje s oznakom iz bot portala. Očito je token na slici ovdje lažan. Nikad nemojte postavljati svoj token na internetu.

Kopirajte ovaj kôd, zalijepite svoj token pri dnu i spremite ga kao index.js u posebnoj mapi.

Kako pokrenuti Bot

Preusmjerite se na svoj terminal i pokrenite sljedeću naredbu:

nodemon - inspect index.js

Time se pokreće skripta, a također aktivira Chromeov program za ispravljanje pogrešaka, kojem možete pristupiti upisom chrome: // pregledati / u Omnibar Chromea, a zatim otvarajući "namjenski devtools za čvor".

Sada bi trebao reći samo "prijavljen kao", ali ovdje sam dodao liniju koja će prijaviti sve poruke objekte primljene na konzolu:

Pa što čini ovaj objekt poruke? Puno stvari, zapravo:

Najvažnije, imate informacije o autoru i informacije o kanalu, koje možete pristupiti pomoću msg.author i msg.channel. Preporučujem ovu metodu bilježenja objekata u devtools Chrome čvoru i samo se gledam uokolo kako bismo vidjeli kako to funkcionira. Možda ćete naći nešto zanimljivo. Ovdje, na primjer, bot upisuje svoje odgovore na konzolu, tako da odgovori botova pokreću client.on ( 'poruke'), Stoga sam napravio spambot:

Bilješka: Budite oprezni s tim, jer se zapravo ne želite baviti recursijom.

Kako dodati Bot na vaš poslužitelj

Taj je dio teže nego što bi trebao biti. Morate preuzeti ovaj URL:

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

Zamijenite CLIENTID klijentovim ID-om botova koji se nalazi na kartici općih informacija na stranici aplikacije. Jednom kada se to učini, možete dodijeliti vezu svojim prijateljima kako bi im dodali bot svojim poslužiteljima.

U redu, pa što mogu učiniti?

Osim osnovnih postavki, sve je drugo u potpunosti na vama. Ali, to ne bi bilo puno od vodiča ako smo se zaustavili na hello svijetu, pa pređemo preko neke dokumentacije, pa imate bolju predodžbu o tome što je moguće. Predlažem vam da pročitate što je više moguće, kao što je vrlo dobro dokumentirano.

Preporučujem dodavanje console.log (klijent) na početak vašeg koda i pregled klijentskog objekta na konzoli:

Odavde možete naučiti puno. Budući da možete dodati bot na više poslužitelja odjednom, poslužitelji su dio cehovi objekt karte. U tom su objektu pojedinačni Cehovi (što je naziv API-ja za "poslužitelj"), a ti cehski objekti imaju popise kanala koji sadrže sve informacije i popise poruka. API je vrlo dubok, i može potrajati neko vrijeme za učenje, ali barem je jednostavno postaviti i početi učiti.