Kuidas luua muusikafotot kasutades Discord.js

Foto Derek Truninger saidil Unsplash

Discord API pakub teile lihtsat tööriista oma robotite ja tööriistade loomiseks ja kasutamiseks. Täna vaatleme, kuidas saaksime luua tavalise muusikaboti ja lisada see oma serverisse. Bot saab muusikat mängida, vahele jätta ja peatada ning toetab ka järjekordade funktsionaalsust.

Diskoroboti seadistamine

Esiteks peame ebakõlade arendamise portaalis looma uue rakenduse.

Saame seda teha, külastades portaali ja klõpsates uut rakendust.

Pärast seda peame oma rakendusele nime andma ja klõpsama nuppu Loo.

Pärast seda peame valima boti vahekaardi ja klõpsama lisa boti.

Nüüd on meie bot loodud ja võime jätkata selle kutsumist oma serverisse.

Boti lisamine serverisse

Pärast roboti loomist võime selle kutsuda OAuth2 URL-i generaatori abil.

Selleks peame navigeerima OAuth2 lehele ja valima ulatuse kraanist bot.

Pärast seda peame valima vajalikud õigused muusika esitamiseks ja sõnumite lugemiseks.

Siis saame kopeerida meie loodud URL-i ja kleepida selle oma brauserisse.

Pärast kleepimist lisame selle oma serverisse, valides serveri ja klõpsates nuppu Luba.

Meie projekti loomine

Nüüd saame oma projekti luua oma terminali abil.

Esiteks loome kataloogi ja liigume sellesse. Neid kahte käsku kasutades saame seda teha.

mkdir musicbot && cd musicbot

Pärast seda saame käsu npm init abil luua oma projektimoodulid. Pärast käsu sisestamist küsitakse teilt mõned küsimused, vastake neile ja jätkake.

Siis peame lihtsalt looma kaks faili, milles töötame.

puudutage index.js && puudutage config.json

Nüüd peame lihtsalt oma projekti oma tekstiredaktoris avama. Kasutan isiklikult VS-koodi ja saan selle avada järgmise käsuga.

kood.

Discord js põhitõed

Nüüd peame enne alustamist installima mõned sõltuvused.

npm install discord.js ffmpeg-binaries opusscript ytdl-core --save

Pärast installimise lõppu võime jätkata faili config.json kirjutamist. Salvestame siin oma roboti märgi ja eesliite, mida ta peaks kuulama.

Märgi saamiseks peate uuesti külastama diskordiarendajate portaali ja kopeerima selle roboti osast.

See on ainsad asjad, mida peame oma failis config.json tegema. Alustame siis meie javascripti koodi kirjutamist.

Esiteks peame importima kõik oma sõltuvused.

Pärast seda saame luua oma kliendi ja logida sisse oma tokeni abil.

Lisagem nüüd mõned põhilised kuulajad, kes console.logivad, kui nad käivitatakse.

Pärast seda saame oma robotit käivitada, kasutades käsku node ja ta peaks olema võrgus ebakõlas ning printima konsooli “Valmis!”.

sõlm index.js

Sõnumite lugemine

Nüüd, kui robot on meie serveris ja suudab võrku minna, saame hakata lugema vestlussõnumeid ja neile vastama.

Sõnumite lugemiseks peame kirjutama ainult ühe lihtsa funktsiooni.

Siin loome sõnumsündmuse kuulaja ja saame sõnumi ning salvestame selle sõnumiobjekti, kui see käivitatakse.

Nüüd peame kontrollima, kas kiri on meie enda robotist, ja ignoreerima seda, kui see on.

if (message.author.bot) naaseb;

Sellel real kontrollime, kas sõnumi autor on meie robot ja naaseme, kui see on olemas.

Pärast seda kontrollime, kas kiri algab varem määratletud prefiksiga ja naaseme, kui seda pole.

if (! message.content.startsWith (prefix)) return;

Pärast seda saame kontrollida, millist käsku peame täitma. Saame seda teha mõne lihtsa avalduse abil.

Selles koodiplokis kontrollime, millist käsku täita ja kutsume käsu. Kui sisestuskäsk pole õige, kirjutame vestlusesse tõrketeate, kasutades funktsiooni send ().

Nüüd, kui me teame, millist käsku peame täitma, võime hakata neid käske rakendama.

Laulude lisamine

Alustame esituskäsu lisamisega. Selleks vajame laulu ja gildi (gild esindab eraldatud kasutajate ja kanalite kogumit ning seda nimetatakse sageli serveriks). Vajame ka ytdl-teeki, mille varem installisime.

Esiteks peame looma järjekorra nimega kaardi, kuhu salvestame kõik vestlusesse sisestatud lood.

const järjekord = uus kaart ();

Pärast seda loome asünkroonifunktsiooni nimega execute ja kontrollime, kas kasutaja on häälvestluses ja kas robotil on õige luba. Kui ei, kirjutame veateate ja naaseme.

Nüüd võime jätkata lauludeabe hankimisega ja nende salvestamisega lauluobjekti. Selleks kasutame oma ytdl teeki, mis saab laulu kohta teavet youtube'i lingi alt.

Selle kohta saate laulu kohta teavet ytdl-teegi abil, mille me varem installisime. Seejärel salvestame vajaliku teabe lauluobjekti.

Pärast lauluteabe salvestamist peame lihtsalt looma lepingu, mille saame oma järjekorda lisada. Selleks peame esmalt kontrollima, kas serveri järjekord on juba määratletud, mis tähendab, et muusika juba mängib. Sel juhul peame lihtsalt lisama loo oma olemasolevasse serverijärjekorda ja saatma eduteate. Kui ei, peame selle looma ja proovima liituda häälekanaliga ning hakata muusikat mängima.

Siin kontrollime, kas serverijärjestus on tühi, ja lisage see lugu, kui seda pole. Kui serverQueue on kehtetu, peame lihtsalt oma lepingu looma.

Selles koodiplokis loome lepingu ja lisame oma loo lugude massiivi. Pärast seda proovime liituda kasutaja häälvestlusega ja helistada oma funktsioonile play (), mida pärast seda rakendame.

Laulude mängimine

Nüüd, kui saame oma laule oma järjekorda lisada ja lepingu luua, kui seda veel pole, saame hakata oma esitusfunktsioone rakendama.

Esiteks loome funktsiooni nimega play, mis võtab kaks parameetrit (gild ja lugu, mida tahame esitada) ja kontrollib, kas lugu on tühi. Kui jah, siis jätame lihtsalt häälekanali ja kustutame järjekorra.

Pärast seda hakkame oma laulu esitama, kasutades funktsiooni playStream () ja oma laulu URL-i.

Siin loome voo ja edastame sellele oma laulu URL-i. Lisame ka kaks kuulajat, kes käsitlevad lõpp- ja veasündmust.

Märkus. See on rekursiivne funktsioon, mis tähendab, et see kutsub ennast ikka ja jälle tagasi. Kasutame rekursiooni, nii et see esitab järgmise loo, kui see on valmis.

Nüüd oleme valmis laulu esitama, lihtsalt kirjutades vestlusesse URL-i!

Laulude vahelejätmine

Nüüd saame hakata vahelejätmise funktsionaalsust rakendama. Selleks peame lihtsalt lõpetama dispetšeri, mille lõime funktsioonis play (), nii et see käivitab järgmise loo.

Siin kontrollime, kas käsu trükkinud kasutaja on häälekanalis ja kas on mõni lugu, mille vahele jätta.

Laulude peatumine

Funktsioon stopp () on peaaegu sama kui skip (), välja arvatud see, et kustutame lugude massiivi, mis muudab meie boti järjekorra kustutamiseks ja häälevestluseks.

Index.js täielik lähtekood:

Siit saate meie muusikaboti täieliku lähtekoodi:

Soovituslik lugemine:

Järeldus

Sa tegid selle lõpuni! Loodan, et see artikkel aitas teil mõista Discord API-d ja kuidas saate seda kasutada lihtsa boti loomiseks. Kui soovite näha täpsema discord-boti näidet, võite külastada minu Githubi hoidlat.

Kui olete leidnud selle kasuliku, kaaluge selle soovitamist ja jagamist teistele arendajatele.

Kui teil on küsimusi või tagasisidet, andke mulle sellest allpool kommentaarides teada.

Kui soovite saada minu ajaveebi kohta pidevat värskendust, jälgige mind kindlasti keskkonnas ja liituge minu uudiskirjaga.

Algselt avaldati saidil gabrieltanner.org.