Í þessari grein munum við tala um handvirkt að búa til láni til að spila tónlist í Discord. Þú getur einfaldlega afritað allt sent inn kóða og breytt því fyrir þig ef þú átt JavaScript færni. Botið var stofnað af okkur, en á sumum stigum getur notandinn enn frammi fyrir mismunandi vandamálum, þannig að við ráðleggjum þér að lesa vandlega ekki aðeins leiðbeiningar okkar, heldur einnig að birtast á skjávarnarkóðunum ef það er svo.
Ef það kemur í ljós að þetta efni er of flókið fyrir þig eða ekki hentugur af öðrum ástæðum skaltu nota tilbúnar ókeypis bots til að spila tónlist. Greinin um tengilinn hér að neðan finnur þú nákvæmar upplýsingar um þetta og þú getur gert verkefni.
Lestu meira:
Bætir tónlistarmáli við miðlara í discord
Spila tónlist í gegnum láni í discord
Skref 1: Búa til nýtt forrit
Hvert lán fyrir fleygja verður að vera skráð á opinberu vefsíðunni fyrir forritara. Þannig að þú færð aðgang að öllum nauðsynlegum stillingum sem tengjast heimildum og almennri hegðun BOT, þú getur afritað tengilinn við heimild sína í persónuþjóninum og notað einstaka táknið, sem þarf til frekari þróunar á skipunum.
Farðu á opinbera vefsíðu Discord Developer Portal
- Notaðu tengilinn hér að ofan til að opna aðal síðu Portal fyrir forritara, skráðu þig inn á Discord persónulega reikninginn og smelltu á "nýja forritið" til að búa til nýtt forrit.
- Sláðu inn nafn hans, gefið sérstöðu, því að ef það eru margir bots með sama nafni, verður það ekki hægt að búa til það - tilkynning um endurnefningu er tilkynnt.
- Opnaðu valmyndina á síðunni og veldu "Bot" flokk.
- Öfugt við "Build-A-Bot" String Smelltu á "Add Bot".
- Staðfestu að bæta við láninu fyrir valið forrit.
- Með kunnuglegu valmyndinni skaltu fara í «Oauth2».
- Þessi hluti ber ábyrgð á almennum þáttum BOT og heimild þess. Í "Scopes" blokk, merkið "Bot" málsgreinina.
- Í lista yfir heimildir, vertu viss um að virkja tengingu við raddrásir og getu til að tala, eins og það er nauðsynlegt fyrir frekari útsendingar tónlist.
- The láni ætti að vera fær um að lesa og senda skilaboð, svo ekki gleyma að virkja þessar valkosti í kaflanum með texta spjall heimildum. Auðvitað er hægt að veita öllum heimildum í einu, en þessi nálgun er ótrúleg, sérstaklega í þeim tilvikum þar sem þú gerir láni fyrir notanda.
- Um leið og leyfisstillingin er lokið skaltu afrita tengilinn fyrir fyrstu heimildina á láni á þjóninum, því að það er annars að bæta því við þar til það kemur í ljós.
- Fylgdu þessum tengil og veldu prófþjóninn þar sem þú vilt athuga botninn.
- Staðfestu handtaka og bíddu eftir upplýsingum um árangursríka heimild.
Nú hefur þú lán með einstakt tákn, og botninn hefur þegar verið bætt við þjóninn, en á meðan í offline ham. Til að hefja það verður það að framkvæma nokkrar aðgerðir á staðbundnum tölvunni, þar sem við tökum ekki afgreiðslumiðlunina fyrir offline.
Skref 2: Undirbúningur aðgerðir
Undirbúningsaðgerðir fela í sér að búa til nauðsynlegar möppur og skrár, uppsetningu verkfæri og ósjálfstæði fyrir þá. Það er ekkert flókið í þessu, þú þarft aðeins að gera hverja aðgerð aftur, vandlega að fylgja villum á hvaða stigi sem er.
- Búðu til möppu með nafni botnsins. Þú getur valið hvaða stað, en heima möppan notandans er best fyrir þetta.
- Búðu til tvær skrár í það: "Config.json" og "index.js". Í fyrstu uppsetningu heildarstillingar lána - forskeyti þess og einstakt tákn, og í sekúndu - allt forritkóðinn með skipunum og sameiginlegum verkefnum þessa tóls.
- Fyrir verk lánsins mun þurfa node.js. Þetta tól er hannað til að hefja forskriftir á staðbundinni tölvu. Fylgdu tengilinn hér að neðan og hlaða niður uppsetningaraðilanum fyrir Windows.
Hlaða niður node.js frá opinberu síðunni
- Búast við að hlaða niður executable skrá executable, keyra það og standast einfalda uppsetningu aðferð, eftir að leiðbeiningarnar birtast á skjánum.
- Eftir það skaltu opna "stjórn línuna" þægilegt fyrir þig, til dæmis, slá inn CMD í "Run" gagnsemi (það byrjar að vinna + R takkana samsetningu).
- Settu upp eininguna til að vinna með Discord API, sem heitir "Discord.js". Til að gera þetta, í hugga glugganum sem opnast, sláðu inn NPM setja upp discord.js FFMPEG-binaries OpsScript YTDL-Core -Save og ýttu á Enter - svo þú bætir strax öllum nauðsynlegum ósjálfstæði.
- Bíddu eftir tilkynningum á skjánum á árangursríkri uppsetningu, án þess að loka núverandi hugga glugga. Ef villur birtast skaltu læra kóðann og nota leitarvélina til að finna vinnuákvörðun á vettvangi eða opinberu vefsíðu.
Þar af leiðandi ætti heima möppan notandans að birtast skrár sem tengjast hnútinum. JS hluti og bætt við eftir eininguna. Endurræstu tölvuna þannig að lániin hafi ekki erfitt með að byrja, farðu síðan í næsta skref.
Skref 3: Breyti Bot Stillingarskrá
Þú veist nú þegar að í búnaðinum sem er búið til það verður allt par af raðir kóðans sem ber ábyrgð á notuðum forskeyti (tákn áður en þú slærð inn stjórn á þjóninum) og einstakt tákn sem skilgreinir forritið í API. Til að uppfylla allar frekari aðgerðir mælum við með því að hlaða niður forriti með JS setningafræði eða hvaða háþróaðri texta ritstjóra ef þetta hefur ekki verið gert áður. Greinin á tengilinn hér að neðan geturðu kynnt þér tiltækar viðeigandi lausnir.
Lesa meira: Val á þróunarmálinu fyrir forritun
Um leið og það er sett upp á tölvunni og tilbúinn til að vinna geturðu örugglega byrjað að breyta stillingarskránni, slá inn notandagögn þar.
- Hlaupa Config.js skrána í gegnum texta ritstjóri eða þróunarumhverfi, settu kóðann hér að neðan.
{
"Forskeyti": "!",
"Token": "Your-Toke"
}
Breyttu forskeyti í tvöföldum tilvitnunum til viðkomandi eða skildu eftir upphrópunarmerki. Dæmi um stjórn með því að nota þetta tákn lítur svona út: leikrit.
- Farðu í láni þína á þróunargáttinni, finndu einstakt tákn þar og afritaðu það.
- Settu innstreymisskoðunina þína í staðinn án þess að eyða tvöföldum tilvitnunum.
- Vista breytingarnar og lokaðu þessari skrá. Við the vegur, þú getur framkvæmt sömu aðgerð með venjulegu "minnisbók".
Á þessum aðgerðum með stillingarskránni er lokið, það er ekki lengur þú þarft að ávísa einum línu af kóða. Lokaðu því, án þess að gleyma að vista breytingarnar sem gerðar eru og haltu áfram að skrifa lánið til að spila tónlist.
Skref 4: Trial Byrjun Bot
Í fyrsta lagi þurfum við að ganga úr skugga um að lánið sé almennt í gangi á þjóninum og fer í netstillinguna, það verður nauðsynlegt að skrifa aðalhluta kóðans til index.js og síðan nota node.js til að byrja.
- Með þróunarmálinu eða völdum textaritlinum skaltu opna nefnda skrá til að breyta.
- Setjið blokkina af kóða sem er ábyrgur fyrir áreiðanleika uppsetningu og gefur til kynna að einingar sem notaðar eru:
Const discord = krefjast ('discord.js');
const {
Forskeyti,
tákn
} = Krefjast ('./ config.json');
CONST YTDL = Krefjast ('YTDL-Core');
- Með hjálp fyrri tilgreindra táknanna skaltu búa til viðskiptavin og innskráningu, sem er framkvæmt með því að slá aðeins inn tvær einfaldar línur:
CONST Client = New Discord.Client ();
Client.login (tákn);
- Það er aðeins til að tilgreina síðustu grunnatriði til að hlusta á botninn.
Client.Once ('tilbúinn', () => {
Console.log ('tilbúinn!');
});
Client.Once ('tengdu', () => {
Console.log ('tengdu!');
});
Client.Once ('aftengja', () => {
Console.log ('aftengja!');
});
- Stækkaðu "File" valmyndina og vista breytingarnar sem gerðar eru.
- Hlaupa vélinni aftur á þægilegan hátt.
- Sláðu inn hnútinn index.js stjórn til að hefja botn handritið.
- Ef skrárnar eru ekki staðsettar í heimasíðunni notanda, eftir hnút verður að tilgreina lokið láttu þá.
- Árangursríkasta hleypt af stokkunum BOT er auðkenndur með því að birta áletrunina "Tilbúinn!".
- Opnaðu discord og vertu viss um að láni fór til stöðu "á netinu".
Skref 5: Ritun helstu kóða í tónlistartækinu
Flókið ferlið var - að skrifa grunnkóðann fyrir söngleikinn. Það er listi yfir verkefni sem það verður að framkvæma: Lesa skilaboð og vinnsluskipanir, skilgreining á söngheiti eða heimilisfangi þess, sem tengist raddrás og spilun. Heimildir á öllum þessum láni er, svo þú þarft bara að tilgreina aðgerðir með JavaScript aðgerðum, sem er framkvæmt í sama "index.js" skrá.
Bættu einföldum eiginleikum til að lesa skilaboð:
Client.on ('skilaboð', async skilaboð => {
}
Það samanstendur af aðeins tveimur línum, en mun leyfa Bot að taka sérsniðna fyrirspurn og unnin rétt. Það má segja að þetta sé eitt mikilvægasta liðið fyrir vélmenni af tegundum. Vertu viss um að bæta við að hunsa skilaboð frá öðrum botsum með því að slá inn
ef (message.author.bot) aftur;
Þetta forðast átök meðan á mörgum vélum er notaður á þjóninum samtímis. Næst verður nauðsynlegt að athuga forskeyti þannig að lánið samþykkti liðið eða skilaði því aftur.
Ef (! Message.Content.startswith (forskeyti)) aftur;
Athugaðu að skipuleggja skipanir eru gerðar með einföldum ef rekstraraðilar og hönnunin í okkar tilviki lítur svona út:
Const serverqueue = queue.get (message.guild.id);
ef (message.content.startswith (`$ {prefix} play`)) {
Framkvæma (skilaboð, serverqueue);
Aftur;
} Annað ef (message.content.startswith (`$ {forskeyti} sleppa`)) {
Skip (skilaboð, Serverqueue);
Aftur;
} Annað ef (message.content.startswith (`$ {forskeyti} stöðva`)) {
Stöðva (skilaboð, serverqueue);
Aftur;
} ANNAR {
Message.Channel.Send ('Þú verður að nota núverandi stjórn!')
}
Vinsamlegast athugaðu að sendingin ('') sendir skilaboðin til notandans ef það kemur skyndilega inn í vinnuna. Þessi skilaboð sem þú getur breytt, breytt áletruninni í tilvitnunum.
Nú lærði lánið að taka skipanir, en þar til það getur haft samskipti við þá, þar sem aðgerðirnar eru ekki tilgreindar. Bættu fyrst Play Command, sem er ábyrgur fyrir spilun. Fyrir það er þörf á fylki með eftirfarandi formi:
CONST QUEUE = Nýtt kort ();
Hann sendir allar skipanir í biðröðinni og gerir lögin aðeins að spila þegar fyrri endar. Næst verður nauðsynlegt að búa til aðgerð sem mun athuga hvort notandinn tengist raddrásinni og hvort botninn sé samsvarandi heimildir.
Async virka framkvæma (skilaboð, serverqueue) {
const args = message.content.split ('');
Const voicechannel = skilaboð.Member.Voicechannel;
Ef (! voicechannel) aftur skilaboð.Channel.Send ('Til að hlusta á tónlist þarftu að vera í raddrás!');
const permissions = voicechannel.permissionsfor (message.client.User);
Ef (! Permissions.has ('Connect') ||! Permissions.has ('tala')) {
Aftur skilaboð.Channel.Send ('Ég þarf leyfi til að taka þátt í og tala rödd rásina þína!');
}
}
Næsta aðgerð - Tengir YTDL bókasafnið, þar sem þessi láni mun lesa nafn lagsins á tengilinn frá YouTube, eftir það er það spilað á þjóninum. Það mun taka til að setja inn lítið stykki af kóða.
Const songinfo = bíða ytdl.getinfo (args [1]);
Const song = {
Titill: SongInfo.Title,
URL: SongInfo.Video_URL,
};
Næsta kóða blokk mun leyfa þér að skilja hvort það eru lög í biðröðinni eða þú getur strax tengst við raddrásina og byrjaðu að spila.
Ef (! Serverqueue) {
} ANNAR {
ServerQuee.songs.push (lag);
Console.log (ServerQueue.Songs);
Aftur skilaboð.Channel.Send (`$ {Song.Title} hefur verið bætt við biðröðina!`);
}
Næst kemur svolítið flókið fyrir nýliði forritara samningakerfi sem bætir laginu í fylki og gerir það sama í hvert skipti sem þú slærð inn! Spila, stöðva biðröðina og velja rétt aðgerð. Gefðu gaum að athugasemdum sem fram koma, sem gerir þér kleift að takast á við öll næmi.
// Búa til samning um biðröðina
Const queueconruct = {
TextChannel: Message.Channel,
Voicechannel: Voicechannel,
Tenging: null,
Lög: [],
Volume: 5,
Leika: satt,
};
// Stilltu biðröð með samningnum okkar
Queue.Set (Message.guild.ID, QueueConruct);
// Setjið samsetningu í úrval af lögum okkar
queueconruct.songs.push (lag);
reyna {
// Hér erum við að reyna að taka þátt í raddspjallinu og vista tenginguna í hlutnum
var tenging = bíða eftir voicechannel.join ();
queueconruct.Connection = tenging;
// hringdu í spilunaraðgerðina til að hefja lagið
Spila (message.guild, queueconruct.songs [0]);
} Grípa (err) {
// Sýna villuboð Ef botninn getur ekki tekið þátt í raddspjalli
Console.log (ERR);
queue.delete (message.guild.id);
Skila skilaboðum.Channel.Send (ERR);
}
Með biðröðinni er allt ljóst, en samt ekki spila lög, því það er engin verkefni fyrir leikaðgerðina. Til að gera þetta í kóðanum er nauðsynlegt að bæta uppbyggingu
Virka leika (guild, söng) {
Const serverqueue = queue.get (guild.id);
Ef (! Song) {
ServerQueue.Voicechannel.Leave ();
queue.delete (guild.id);
Aftur;
}
}
Að spila byrjar að nota PlayStream () virka og tilgreindan tengil á lagið.
CONST DISPATCHER = ServerQueue.Connection.PlayReam (YTDL (Song.url))
.on ('endir', () => {
Console.log ('Tónlist er lokið!');
// fjarlægir lokið lagið úr biðröðinni
ServerQueue.Songs.shift ();
// Aftur veldur spilunaraðgerð með eftirfarandi lagi
Spila (Guild, ServerQueue.Songs [0]);
})
.on ('villa', villa => {
Console.Error (villa);
});
sendanda.setvolumelogarithmic (ServerQueue.Volume / 5);
Ef þú vilt bæta við lagaskipti, til dæmis þegar þú ákveður að spila lagalista skaltu fyrst sjá um viðeigandi stjórn, og þá bæta við slíkum broti:
Virka Skip (skilaboð, ServerQueue) {
Ef (! Message.member.Voicechannel) Return Message.Channel.Send ('Þú ættir að vera í raddrás til að stöðva tónlist!');
Ef (! Serverqueue) aftur skilaboð.Channel.Send ('Það er ekkert lag sem ég gæti sleppt!');
ServerQueue.Connection.disptcher.END ();
}
U.þ.b. sama kerfið virkar einnig stöðvunaraðgerðina, en blokkin með kóðanum fær aðeins mismunandi útlit:
Virka stöðva (skilaboð, serverqueue) {
Ef (! Message.Member.Voicechannel) Return Message.Channel.Send ('
Þú verður að vera í raddrásinni til að stöðva tónlist! ");
ServerQueue.Songs = [];
ServerQueue.Connection.disptcher.END ();
}
Íhugaðu að upplýsingarnar sem fram koma hér að framan eru hentugar eingöngu fyrir þá notendur sem þegar eru kunnugir JavaScript-tungumálinu eða aðeins þátt í að læra og ákváðu að búa til tónlistarlán. Ef þú átt ekki hæfileika almennt og tilgreindar blokkir með kóðanum sem þú segir ekki neitt yfirleitt skaltu einfaldlega setja inn alla kóðann í skrána, skipta um skilaboðin frá botninum í rússneska (þau eru í tilvitnunum) og vista breytingar. Öll uppspretta kóða hefur þessa tegund:
Const discord = krefjast ('discord.js');
const {
Forskeyti,
tákn
} = Krefjast ('./ config.json');
CONST YTDL = Krefjast ('YTDL-Core');
CONST Client = New Discord.Client ();
CONST QUEUE = Nýtt kort ();
Client.Once ('tilbúinn', () => {
Console.log ('tilbúinn!');
});
Client.Once ('tengdu', () => {
Console.log ('tengdu!');
});
Client.Once ('aftengja', () => {
Console.log ('aftengja!');
});
Client.on ('skilaboð', async skilaboð => {
ef (message.author.bot) aftur;
Ef (! Message.Content.startswith (forskeyti)) aftur;
Const serverqueue = queue.get (message.guild.id);
ef (message.content.startswith (`$ {prefix} play`)) {
Framkvæma (skilaboð, serverqueue);
Aftur;
} Annað ef (message.content.startswith (`$ {forskeyti} sleppa`)) {
Skip (skilaboð, Serverqueue);
Aftur;
} Annað ef (message.content.startswith (`$ {forskeyti} stöðva`)) {
Stöðva (skilaboð, serverqueue);
Aftur;
} ANNAR {
Message.Channel.Send ('Þú þarft að slá inn gilt stjórn!')
}
});
Async virka framkvæma (skilaboð, serverqueue) {
const args = message.content.split ('');
Const voicechannel = skilaboð.Member.Voicechannel;
ef (! voicechannel) aftur skilaboð.Channel.Send ('Þú þarft að vera í raddrás til að spila tónlist!');
const permissions = voicechannel.permissionsfor (message.client.User);
Ef (! Permissions.has ('Connect') ||! Permissions.has ('tala')) {
Aftur skilaboð.Channel.Send ('Ég þarf heimildir til að taka þátt og tala í rödd rásinni þinni!');
}
Const songinfo = bíða ytdl.getinfo (args [1]);
Const song = {
Titill: SongInfo.Title,
URL: SongInfo.Video_URL,
};
Ef (! Serverqueue) {
Const queueconruct = {
TextChannel: Message.Channel,
Voicechannel: Voicechannel,
Tenging: null,
Lög: [],
Volume: 5,
Leika: satt,
};
Queue.Set (Message.guild.ID, QueueConruct);
queueconruct.songs.push (lag);
reyna {
var tenging = bíða eftir voicechannel.join ();
queueconruct.Connection = tenging;
Spila (message.guild, queueconruct.songs [0]);
} Grípa (err) {
Console.log (ERR);
queue.delete (message.guild.id);
Skila skilaboðum.Channel.Send (ERR);
}
} ANNAR {
ServerQuee.songs.push (lag);
Console.log (ServerQueue.Songs);
Aftur skilaboð.Channel.Send (`$ {Song.Title} hefur verið bætt við biðröðina!`);
}
}
Virka Skip (skilaboð, ServerQueue) {
ef (! message.member.voicechannel) skilar skilaboð.Channel.Send ('Þú verður að vera í raddrás til að stöðva tónlistina!');
ef (! serverqueue) aftur skilaboð.Channel.Send ('Það er ekkert lag sem ég gæti sleppt!');
ServerQueue.Connection.disptcher.END ();
}
Virka stöðva (skilaboð, serverqueue) {
ef (! message.member.voicechannel) skilar skilaboð.Channel.Send ('Þú verður að vera í raddrás til að stöðva tónlistina!');
ServerQueue.Songs = [];
ServerQueue.Connection.disptcher.END ();
}
Virka leika (guild, söng) {
Const serverqueue = queue.get (guild.id);
Ef (! Song) {
ServerQueue.Voicechannel.Leave ();
queue.delete (guild.id);
Aftur;
}
CONST DISPATCHER = ServerQueue.Connection.PlayReam (YTDL (Song.url))
.on ('endir', () => {
Console.log ('tónlist lauk!');
ServerQueue.Songs.shift ();
Spila (Guild, ServerQueue.Songs [0]);
})
.on ('villa', villa => {
Console.Error (villa);
});
sendanda.setvolumelogarithmic (ServerQueue.Volume / 5);
}
Client.login (tákn);
Að lokinni er betra að endurræsa botninn, eftir það sem þú getur farið á netþjóninn þinn, tengst við raddrásina og sláðu inn hvaða stjórn á milliverkunum, athugaðu hvernig á að bregðast við láni.
Ef ofangreind afbrigði af botninum er ekki hentugur fyrir þig, getur þú fundið uppspretta kóða á sama GitHub og afritað þau á tölvuna þína. Meginreglan um skráningu og sjósetja er sú sama, þannig að ef nauðsyn krefur skaltu einfaldlega breyta lokið kóðanum og síðan halda áfram að prófa botninn.
Í þessari grein höfum við ekki áhrif á losun lána á hýsingu, dreifa því meðal annars notenda, búa til avatar og notkun opna vefsvæða, þar sem hægt er að leyfa það. Allt þetta er aðskilið ferli sem ætti aðeins að taka þátt þegar þú hefur honed kunnáttu þína til að búa til vélmenni og eru tilbúnir til að dreifa verkefnum á netinu.