Bu makalada, Riskordda aýdym-saz çalmak üçin bot döretmek bilen gürleşeris. Iberilen kody göçürip bilersiňiz we iberilen kody we Javascript endiklerini özüňiz düzüp bilersiňiz. BT biz tarapyndan döredildi, ýöne ulanyjy başga sebäpler dürli meseleler bilen ýüzbe-ýüz bolup biler, şonuň üçinem bar bolsa, eýsem ekrany kodlaň.
Bu materialy size gaty çylşyrymly ýa-da beýleki sebäplere laýyk däl bolsa, aýdym-saz oýnamak üçin taýýar boş botlary ulanyň. Aşakdaky meýdandaky makala Bu barada jikme-jik maglumaty tapyp bilersiňiz we meseläni durmuşa geçirip bilersiňiz.
Koprak oka:
Ritorddaky serwere aýdym-saz bot goşmak
Bot arkaly aýdym-saz bilen oýna
1-nji ädim: Täze programma döretmek
Töleg üçin her bot, döredijiler üçin resmi portalda hasaba alynmalydyr. Şeýlelik bilen Rugsatnamalar bilen baglanyşykly ähli zerur sazlamalar we sadakada umumy dartgynlygy ony ygtyýar bilen göçürip, buýruklary mundan beýläk-de ösdürmek üçin zerur bolan gurşaw belligini ulanyň.
Düşündiriş düzülendirijiniň resmi web sahypasyna giriň
- Portaliň döredijiligini ösdürmek üçin ýokardaky baglanyşygy açmak üçin ýokarda baglanyşyk ulanyň we täze programmany döretmek üçin "täze programma" -a basyň.
- Özi-de bir adyň adyny belläň, sebäbi şol ady bilen botlaryň köp bolsa, ony döretmek üçin mümkin däl - raminging habarnamasynyň habarnamasynda habar berilýär.
- Teriş bilen, sahypadaky menýuny açyň we "Bot" kategoriýasyny saýlaň.
- "Gurluş-A-Bot" setiriniň garşysynda "Bot goşmak" -e basyň.
- Saýlanan programma üçin botyň goşmaçasyny tassyklaň.
- Tiza menýusyndan geçiň «Oauth2».
- Bu bölüm botyň umumy parametrlerine we ygtyýarlygy üçin jogapkärdir. "Lampalaryň" blokynda Blokdaky "Bot" abzasyny belläň.
- Reversa-da seljermeler bilen baglanyşygy we gürlemegiň zerurdygy sebäpli, gürlemek ukyby barada birikdirany işjeňleşdiriň.
- Bot habarlary okap, ibermegi başarmaly, şonuň üçin bu opsiýalary Tekst Rugsatnamalary bolan bu opsiýalary ulanmagy ýatdan çykarmaň. Elbetde, ähli rugsatlary birbada berip bilersiňiz, ýöne bu çemeleşme ajaýyp, esasanam köpçülikleýin ulanyjy üçin bot ýasaýan ýagdaýlarda.
- Rugsat sazlamasy tamamlandan badyna, serwerde botyň ilkinji ygtyýarlygy baradaky $ Bir düwünçegiň ilkinji ygtyýarnamasy baradaky baglanyşygy göçüriň, sebäbi başgaça ekrýançä goşýar.
- Bu baglanyşygy yzarlaň we boty barlamak isleýän ýeriňizdäki synag serwerini saýlaň.
- Surata almak we üstünlikli ygtyýarnama barada maglumata garaşyň.
Indi siziň üýtgeşik nyşan bilen bot bar, bot eýýäm serwere goşuldy, ýöne offlineumental re modeimde. Oňa başlamak üçin ýerli kompýuterde awtonom işe girmezligimizi ýerli kompýuterde gadagan etmezligimizi adam üçin ýerli kompýuterde birnäçe köp hereket geçirmeli.
2-nji ädim: Taýýarlyk çäreleri
Taýýarlyk çäreleri zerur kataloglary we faýllary döretmek Gerekli kataloglaryň we faýllaryň döredilmegini öz içine alýar. Muňa bir gezek hiç zat hiç zanyň ýok, diňe her hereketi haýsydyr bir ugra öwürmeli, islendik hereketiň islendik basgançaklary seresaplylyk etmelidirsiňiz.
- Botyň ady bilen bukja dörediň. Islendik ýeri saýlap bilersiňiz, ýöne ulanyjyyň baş bukjasy iň amatlydyr.
- IT sazyny dörediň: "Sazlama" we "indeks.js". Ilkinjide botyň adaty konfigurasiýasyny gurnalan, birdyn token, ikinji ýerde ähli programma kody we bu guraldaky giriş kody.
- Botyň işi üçin node.js gerek bolar. Bu gural ýerli kompýuterde skriptleri başlamak üçin döredildi. Aşakdaky baglanyşyga eýeriň we Windows üçin gurnaýjyny göçürip alyň.
Resmi sahypadan düwün.js göçürip alyň
- Geçip bolýan ýerine ýetirip boljak faýly göçürip bolýan, işlediň we ekranda görkezilen görkezmelere laýyklykda ýönekeý gurmak prosedini alyň.
- Şondan soň, mysal üçin, "işleýiş derejesini" amatly ýagdaýda açyň (synag üçin + R Doctorlaryň birleşmegine başlaýar).
- "Düşündiriş" diýilýän gümürtik API bilen işlemek üçin modul guruň. derrew ähli zerur Bağımlılıklar goşmak şeýle - Bu etmek üçin açylýar, konsol penjiresini, NPM ENTER düwmesini YTDL-Core --Save opsscript discord.js ffmpeg-özara gurmak aýyr.
- Häzirki konsol penjiresini ýapman, ekranyň habarnamalaryna üns beriň. Rorsmalar peýda bolan bolsa, kodlaryny öwrenip, gözlegleriň ýa-da resmi web sahypasynda iş tertibini tapmak üçin gözleg motoryny ulanyň.
Netijede, ulanyjynyň öý bukjasy Bird.js komponenti bilen baglanyşykly faýl peýda bolup, moduldan soň goşulmaly. Botda kynçylyk çekmeýänligi üçin kompýuteriňizi täzeden açyň, soňra indiki ädime geçiň.
3-nji ädim: bot konfigurasiýa faýly redaktirlemek faýlyny redaktirlemek
Aýry döredilen Bot konfigurasiýa femurnalynda eýýäm ulanylýan koduň bir jübüt hatar (serweriň buýrugyna girizilmezden ozal Nyşordyň ýa-da programmany tassyklamazdan ozal koduň bir jübüt gygyr etjekdigini ýa-da API-de programmany kesgitleýän özboluşly holokly bolar. Goşmaça hereket ähli hereketleri ýerine ýetirmek üçin, öň edilmedik bolsa JS sintaksar goldawy ýa-da islendik ösen tekst redaktory bilen bir programma göçürip almak maslahat berýäris. Aşakdaky baglanyşygdaky makala, elýeterli amatly çözgütler bilen özüňizi tanyşdyryp bilersiňiz.
Dowamyny okamak: Programmirlemek üçin ösüş gurşawyny saýlamak
Kompýuterde gurlansoň we işlemäge taýyn bolansoň, ulanyjynyň maglumatyna giren konfigurasiýa faýyny redaktirläp bilersiňiz.
- Confit.js faýlyny tekst redaktorynyň ýa-da ösüş gurşawynyň üsti bilen işlediň, aşakdaky kody salyň.
{
"Prefiks": "!" "!",
"Token": "Y-poke"
}
Islän ýa-da seslenme belligine goşa sitata goýuň ýa-da gygyryş belligini goýuň. Bu alamaty ulanyp, buýrugyň şuňa meňzeş buýrugyň muňa mysal hökmünde:! Oýnamak.
- Ösüş portalyna Botyňyza geç, şol ýerdäki üýtgeşik token tapyň we göçürip alyň.
- Jübüt sitatalary pozmazdan, ýerine-aýlaw barlagyňyzy salyň.
- Üýtgeşmeleri ýazdyryň we bu faýly ýapyň. Theogkyda standart "depder" arkaly şol bir çäräni ýerine ýetirip bilersiňiz ".
Bu hereketlerde konfigurasiýa faýly tamamlandy, indi bir koduň bir setirini kesgitlemeli däl. Üýtgetmegi ýatdan çykarmazdan, ýatdan çykarman, aýdym oýlap tapmak üçin bot ýazyp hasam ýazga.
4-nji ädim: Synag başlangyç boty
Ilki bilen botyň serwerde işleýändigini we onlaýn re-peneliň esasy bölegine gidmelidigine göz ýetirmeli, kod indeksine-de.js-ny başlamak üçin hökman görmeli bolar.
- Ösüşiň daşky gurşawy ýa-da saýlanan tekst redaktorynyň üsti bilen görkezilen teksti açyň.
- Garaşsyzlyk gurnamagy üçin jogapkär koduňyzy salyň we ulanylýan modullary görkezýär:
Protord = talap ('diskord.js');
çäklendirmek
Prefiksi,
belgi
} = Talap edýär ('./ sahypa.'FIFT.json'););
YKTL = ('YTDL-Core') talap ediň;
- Öň görkezilen bellikleriniň kömegi bilen, diňe iki ýönekeý lageçirlik girizmek bilen amala aşyrylýan müşderi we giriş dörediň:
Fore Müşderi = Täze diskord.clit ();
Müşderi.login (bellik);
- Bot diňlemek üçin iň soňky esasy setirleri kesgitlemek üçin diňe bir esasy setirleri kesgitlemek.
Müşderi.once ('taýýar', () => {> {
Konsol.log ('taýyn!');
});
Müşderi.once ('gaýtadan işlemek', () => {> {
Konsol.log ('gaýtadan işlemek!');
});
Müşderi.once ('aýryň', () => {>>
Konsol.log ('aýyrmak!');
});
- "Faýl" menýusyny giňeldiň we düzülen üýtgeşmeleri ýazdyryň.
- Konsoly amatly görnüşde işlediň.
- Bot skriptini başlamak üçin düwün görkezijisini basyň.
- Faýllar ulanyjynyň öý katalogynda bolmadyk bolsa, düwünli bir zat doly beýan etsin, rugsat bermeli bolarlar.
- Botyň üstünlikli geçirilmegi "taýýar!" Bilen görkezilýär.
- Açyk düşünişiji açyň we botyň "onlaýn" ýagdaýyna gidendigine göz ýetiriň.
5-nji ädim: Saz botyň esasy eşigini ýazmak
Iň kyn prosesde galdy - aýdym-saz bot üçin esasy kod ýazmak. Ýerine ýetirmeli meseleleriň sanawy bar: okamak habarlary we gaýtadan işleýän serkerler, ses kanalyna we doluşyna birikýän aýdymyň adyny ýa-da salgysyny kesgitlemäň. Betiň hemmesinde rugsatlar, şeýle hem şol bir "indeks.sJs" faýlynda ýerine ýetirýän JavasScript funksiýalaryny ulanyp hereketleri ulanmaly.
Habarlary okamak üçin ýönekeý aýratynlyk goşuň:
Müşderi.on ('habary', Async habary => {{{{{{
}
Bu diňe iki setirden ybarat, ýöne botyň adaty talap almaga we dogry işleýşä rugsat berer. Bu görnüşler üçin iň möhüm toparlaryň biridigini aýdyp biler. Girip, beýleki botlardan habarlary äsgermezlik etmek üçin hökman
eger (habary.Athorh.bot) gaýdyp gelse;
Bu bir wagtyň özünde serwerde birnäçe botlary ulanýansoň gapma-garşylyklar. Indiki, boty toparyň tälimini kabul eden ýa-da yzyna gaýtarmak üçin prefikany barlamaly bolar ýaly gerek bolar.
eger (! habar !Bontent.tartsvent.startswith (prefiksi)) gaýdyp geliň;
Ulanylan iş tabşyrylan buýruklary barlamak, operatorlar, biziň işimizdäki dizaýn bolsa, oňa tarap:
Corever Serverquue = nobat.get.GE.GE.ID (habary.GOID);
eger (habary.ontontent.startswith (`$ {prefiks} play`)) {
Ýerine ýetiriň (habar, serwer);
Gaýdyp gel;
} Başga bolsa (habed.ontontent.startswit (`$ {prefiks} geçişi)))) {
Geçmek (habar, serwer);
Gaýdyp gel;
} Başga bolsa (habed.ontontent.startswith (`$ {prefiks} dur]))) {
Duruzyň (habar, serwer);
Gaýdyp gel;
} Başga {
Habar.Chanel.Sennel- Bar bolan buýrugy ulanmaly! ')
}
Ibermegiň ('') funksiýasynyň birden işlemeýän buýrugyna girýän bolsa, ulanyja habar ibermegi belläň. Bu habar Saýlawlary üýtgedip gurup bilersiňiz.
Indi bot buýruk almagy öwrendi, ýöne olar bilen baglanyşykly bolýança, sebäbi hereketler görkezilmezligi sebäpli. Ilki bilen oýnamak üçin jogapkär oýun buýrugyny goşuň. Çünki aşakdaky forma bilen zerurdyr:
Forrie nobat = täze karta ();
Soragdaky ähli buýruklary nobatdaky ähli buýruklary iberýär we aýdym-sazlary diňe öňki gutaranda oýnamaga mejbur edýär. Nobat, ulanyjy ses kanalyna birikdirendigini we bot degişli rugsat ýa-da boş rugsatlar bolsunmy ýa-da bot degişli rugsatlar bolsun diýip başga bir funksiýanyň bardygyny ýa-da ýokdugyny çekip biljek funksiýa zerur bolar.
Async funksiýasy ýerine ýetirýär (habar, serwere) {
özbaşdak frgs = habary.kontent.tent.plit ('');
Rels sessiýa ýa-da habary.member.eichannel;
Eger (! sesli ses) gaýtalanýan habary.Chanel habar iberiň. "Saz diňlemek üçin ses kanalymda bolmaly! ');
Rugsat berilýän rugsatlar = Ses tenhanel.Pissions.perfissiýa (habar.Cliv.us);
Eger (! Rugsatnamalar .Haýts.) ||! Rugsatlar.
Yza gaýtaryň habary.Channel.Shanel.Sinal sessizlige girmek we gürlemek üçin rugsat gerek! ');
}
}
Indiki hereket - "Ytl" kitaphanasyna birikmek, şu balt "Öz aýdymyndaky aýdymyň ady YouTube-da) oýnar. Kodyň kiçijik bir bölegini goýmagy talap eder.
Corever SongLo = YTDL.getinfo garaşyň (args [1]);
Hemişe aýdym = {
Ady: "Songinfo.Title",
URL: "Songinfo.video_url",
};
Indiki koduň indiki bloky, nobatdaky aýdymlar bar bolsa, signiýada ses kanala birikdiriň we derrew gabat çykyp bilersiňiz.
Eger (! Serwer: {
} Başga {
Serwer.gns.puş (aýdym);
Konsol.log (serwere);
Yza gaýtaryň habary.Chanel.Chanel.Sinel (`$ {aýdyma.
}
Indiki "Novee" programmistleri "Noveewe" programmisti "" "" "" "" "" "" "" "girýän" -ni şereketini goşýan "Action" programmirlän şertnamasy, şonça-da şony düzýär we şonça-da gireniňizde şol bir zady döredýän şertnama shemasy bilen biraz çylşyrymly gelýärler! Oýun, nobatlamagy we dogry hereketleri saýla. Subttedtieshli subtlitieshli subtlitleri çözmäge mümkinçilik berýän teswirlere üns beriň.
// nobat üçin şertnama döretmek
KONSEFO SORAGECTIONT = {
"Texthanhanel:" habary.Chanel,
Sesekenel: Sesekenel,
Baglanyşyk: Null,
Aýdymlar: []
Ses: 5,
Oýna: HAKYKAT,
};
// Şorty bilen şertnama baglaşyň
nobat.set (habary.Gude.id
// Kompozisiýa aýdym-sazlarymyza düzümiň içine salyň
Queuecont.pds.puş (aýdym);
{
// Şu ýerde, sesli söhbetdeşlige goşulmaga synanyşýarys we obýektdäki baglanyşygy ýazmaga synanyşýarys
var birikme = Seschnannel.join () garaşyň;
Soreueconting. baglanyşdyrmak = baglanyşyk;
// aýdymy başlamak üçin "Aýdym" funksiýasyny çagyryň
Oýna (haberli.gudacda, Queudecont.Song [0]);
} Tutmak (ýalňyş) {
// Bot sesli söhbetdeşlige girip bilse säwlik habary görkeziň
Konsol.log (ýalňyş);
nobat.delete (habary.guda.id);
Yza gaýtaryň habary.Channel.Sin (ýalňyş);
}
Joba bilen hemme zat aýdyň, ýöne ýekeje zat oýnamok, sebäbi oýun funksiýasy üçin bir tabşyryk ýok. Muny kesgitlemek üçin zerur bolanda etmek zerurdyr
Funksiýa oýny (gild, aýdym) {
Cormory Serverquue = nobat.get (gild.id);
Eger (! Aýdym) {
Serwer.vicehanhanel.leveve ();
nobat.delete (gild.id);
Gaýdyp gel;
}
}
Oýun oýnamak () funksiýany () funksiýasyny we trackol üçin görkezilen baglanyşygy ulanyp başlaýar.
Dispatçer
.ON ('soňy', () => {> {
Konsol.log ('aýdym-saz gutardy!');
// taýýar aýdymy nobatdan aýyrýar
serwer.gns.şthift ();
// ýene-de yzarlaýan funksiýany aşakdaky aýdym bilen sebäp bolýar
Oýna (Gold, "Sernquuououuf ".mgS [0]);
})
.ON ('roralňyşlyk', säwlik => {
Konsol.Error (ýalňyşlyk);
});
Dispetcher.setvolujitIctiitmika (serwereueueuage / 5);
Aýdym-saz arkaly geçmek isleseňiz, mysal üçin playerist oýnamak kararyna gelende, ilki degişli buýruk barada alada etmeli, soň bolsa şeýle bölekleýin goşuň:
Funksiýa geçiň (habar, serwere serwer) {
eger (! habar !MEMBERCHANCHECHONCHECHEC) GARAŞ habary.Channel. "Saz saklamak üçin ses kanalyda bolmaly! ');
Eger (! Serweriň) gaýtaryş habary.Chanel habary.Channel. "Geçip bilýän aýdymym ýok! ');
Serwer.com. Artisop.dispatCherher. ();
}
Takmynan hem çözgüt işlemegi bilen-de, kazyýet işiniň hem, ýöne kod bilen blok birneme üýtgeşik göz aýlaň:
Funksiýa duralgasy (Habar, serwer) {
eger (! habary.member.veber.viceChenhanel) habar habary.hanelnel.hanel. ('
Aýdym-sazy duruzmak üçin ses kanada! ');
Serwerk.gns = [];
Serwer.com. Artisop.dispatCherher. ();
}
Aboveokardanyň ýokardaky wekilçiligiň diňe ady bilen eýýäm tanyş bolan ýa-da diňe okamak bilen meşgullanýan ulanyjylar üçin amatlydyr öýdýän ýa-da aýdym-saz bot döretmek üçin meşgullanýan ulanyjylara laýykdyr. Umuman öz başarnyklaryny we kesgitli bloklary bar bolsa, hemmesinde bir zat aýt-bir zat aýtmasaňyz, diňe iň çeşme koduny faýla geçiriň, habarlary botyň üsti bilen alyp, ýatda saklaň Üýtgeşmeler. Areshli çeşme kody bar:
Protord = talap ('diskord.js');
çäklendirmek
Prefiksi,
belgi
} = Talap edýär ('./ sahypa.'FIFT.json'););
YKTL = ('YTDL-Core') talap ediň;
Fore Müşderi = Täze diskord.clit ();
Forrie nobat = täze karta ();
Müşderi.once ('taýýar', () => {> {
Konsol.log ('taýyn!');
});
Müşderi.once ('gaýtadan işlemek', () => {> {
Konsol.log ('gaýtadan işlemek!');
});
Müşderi.once ('aýryň', () => {>>
Konsol.log ('aýyrmak!');
});
Müşderi.on ('habary', Async habary => {{{{{{
eger (habary.Athorh.bot) gaýdyp gelse;
eger (! habar !Bontent.tartsvent.startswith (prefiksi)) gaýdyp geliň;
Corever Serverquue = nobat.get.GE.GE.ID (habary.GOID);
eger (habary.ontontent.startswith (`$ {prefiks} play`)) {
Ýerine ýetiriň (habar, serwer);
Gaýdyp gel;
} Başga bolsa (habed.ontontent.startswit (`$ {prefiks} geçişi)))) {
Geçmek (habar, serwer);
Gaýdyp gel;
} Başga bolsa (habed.ontontent.startswith (`$ {prefiks} dur]))) {
Duruzyň (habar, serwer);
Gaýdyp gel;
} Başga {
Habar.Chanel.Sennel.Men ('Dogry buýruk girizmeli!')
}
});
Async funksiýasy ýerine ýetirýär (habar, serwere) {
özbaşdak frgs = habary.kontent.tent.plit ('');
Rels sessiýa ýa-da habary.member.eichannel;
Eger (! Sesli sessiýa) habar iberiň.
Rugsat berilýän rugsatlar = Ses tenhanel.Pissions.perfissiýa (habar.Cliv.us);
Eger (! Rugsatnamalar .Haýts.) ||! Rugsatlar.
Gaýtarlyk habary.Shanelsiýa.Shanel.Min ("Maňa goşulmak we sesiňizde bolmak üçin rugsatlara mätäç! ');
}
Corever SongLo = YTDL.getinfo garaşyň (args [1]);
Hemişe aýdym = {
Ady: "Songinfo.Title",
URL: "Songinfo.video_url",
};
Eger (! Serwer: {
KONSEFO SORAGECTIONT = {
"Texthanhanel:" habary.Chanel,
Sesekenel: Sesekenel,
Baglanyşyk: Null,
Aýdymlar: []
Ses: 5,
Oýna: HAKYKAT,
};
nobat.set (habary.Gude.id
Queuecont.pds.puş (aýdym);
{
var birikme = Seschnannel.join () garaşyň;
Soreueconting. baglanyşdyrmak = baglanyşyk;
Oýna (haberli.gudacda, Queudecont.Song [0]);
} Tutmak (ýalňyş) {
Konsol.log (ýalňyş);
nobat.delete (habary.guda.id);
Yza gaýtaryň habary.Channel.Sin (ýalňyş);
}
} Başga {
Serwer.gns.puş (aýdym);
Konsol.log (serwere);
Yza gaýtaryň habary.Chanel.Chanel.Sinel (`$ {aýdyma.
}
}
Funksiýa geçiň (habar, serwere serwer) {
eger (! habar !MEMBER.WECHANCHECHEC) GARAŞ HABARY.CHEOND. SANATYN (Aýdym-sazy duruzmak üçin ses kanalyda bolmaly! ');
eger (! serweriň) gaýtarylyşy
Serwer.com. Artisop.dispatCherher. ();
}
Funksiýa duralgasy (Habar, serwer) {
eger (! habar !MEMBER.WECHANCHECHEC) GARAŞ HABARY.CHEOND. SANATYN (Aýdym-sazy duruzmak üçin ses kanalyda bolmaly! ');
Serwerk.gns = [];
Serwer.com. Artisop.dispatCherher. ();
}
Funksiýa oýny (gild, aýdym) {
Cormory Serverquue = nobat.get (gild.id);
Eger (! Aýdym) {
Serwer.vicehanhanel.leveve ();
nobat.delete (gild.id);
Gaýdyp gel;
}
Dispatçer
.ON ('soňy', () => {> {
Konsol.log ('aýdym-saz gutardy!');
serwer.gns.şthift ();
Oýna (Gold, "Sernquuououuf ".mgS [0]);
})
.ON ('roralňyşlyk', säwlik => {
Konsol.Error (ýalňyşlyk);
});
Dispetcher.setvolujitIctiitmika (serwereueueuage / 5);
}
Müşderi.login (bellik);
Gutarandan soň, SPOP-e täzeden girip bilmek has gowudyr, ses üçin bir ýa-da özara gatnaşyklaryň islendik kommunata birikdiriň, bota nädip reaksiýa alyň.
Botyň ýokardaky wariant size şol bir Gitura üçin çeşme kodlaryny tapyp, kompýuteriňize göçüriň. Hasaba alyş we işe başlanmagyň ýöreligi, zerur bolsa, zerur kody redaktirlän bolsa, soňra botyň synagyna geçiň.
Bu madda Moda, hümmetçi döredip, awatar we ygtyýarly bolan beýleki ulanyjylaryň arasynda olara täsir etmedi we has köp ulanyjylardan, ony ygtyýarly däl sahypalary ulanmak baradaky olaryň arasynda paýlamadyklar. Bularyň hemmesi, bot döretmek we torda taslamalary ýaýratmaga taýyn bolanda aýratyn proseslerdir.