या लेखातील, आम्ही स्वतः मतभेद मध्ये संगीत प्ले करण्यासाठी सांगकाम्या तयार चर्चा होईल. आपण फक्त आपण JavaScript कौशल्य मालकीचे असल्यास स्वत: साठी सादर कोड संपूर्ण, आणि तो संपादन कॉपी करू शकता. सांगकाम्या आम्हाला निर्माण केले, पण काही टप्प्यात वापरकर्ता अद्याप त्यामुळे आपण काळजीपूर्वक नाही फक्त आमच्या सूचना, पण अशा असतील तर स्क्रीन त्रुटी कोड दिसणार्या वाचा सल्ला, विविध समस्या तोंड करू शकता.
हे साहित्य खूप किंवा आपण गुंतागुतीचे इतर कारणांसाठी योग्य नाही आढळून आले, तर, संगीत प्ले करण्यासाठी तयार मुक्त सांगकामे वापरा. आपण खालील दुव्यावर लेख या बद्दल सविस्तर माहिती मिळेल आणि आपण कार्य अंमलबजावणी करू शकता.
पुढे वाचा:
मतभेद मध्ये सर्व्हरसह एक वाद्य सांगकाम्या जमा करणे
मतभेद मध्ये सांगकाम्या माध्यमातून संगीत प्ले करा
चरण 1: एक नवीन अनुप्रयोग तयार करणे
टाकून द्या प्रत्येक सांगकाम्या विकसकांसाठी अधिकृत पोर्टलवर नोंदणी करणे आवश्यक आहे. आपण सर्व परवानग्या आणि सांगकाम्या सामान्य वर्तन संबंधित आवश्यक सेटिंग्ज प्रवेश प्राप्त त्यामुळे, आपण वैयक्तिक सर्व्हर त्याच्या अधिकृतता दुवा कॉपी आणि आज्ञा पुढील विकासासाठी आवश्यक आहे, अद्वितीय टोकन वापरू शकतात.
मतभेद विकसक पोर्टल अधिकृत वेबसाइट वर जा
- वरील विकसकांसाठी पोर्टल मुख्य पृष्ठ उघडा मतभेद वैयक्तिक खात्यात लॉग इन करा आणि एक नवीन अर्ज तयार करण्यासाठी "नवीन अर्ज" वर क्लिक करा दुवा वापरा.
- त्याचे नाव कारण याच नावाचा अनेक सांगकामे आहेत तर, तो तयार करणे शक्य होणार नाही, वेगळेपण दिले, प्रविष्ट करा - पुनर्नामित सूचना सूचित आहे.
- पूर्ण झाल्यावर, साइटवर मेनू उघडा आणि "Bot" श्रेणी निवडा.
- उलट "बॉट जोडा" "बिल्ड-ए-Bot" स्ट्रिंग क्लिक करा.
- निवडलेल्या अनुप्रयोगाचे साठी बॉट व्यतिरिक्त पुष्टी करा.
- एक परिचित मेनू मधून «OAuth2» जा.
- हा विभाग सांगकाम्या आणि त्याच्या अधिकृतता सामान्य घटक जबाबदार आहे. "स्कोप" ब्लॉक मध्ये, "Bot" परिच्छेद चिन्हांकित.
- परवानग्यांच्या यादीत, अधिक ब्रॉडकास्टिंग संगीत आवश्यक असल्याने आवाज चॅनेल आणि बोलण्याची क्षमता सक्रिय करणे सुनिश्चित करा.
- बॉट संदेश वाचण्यास आणि पाठवू शकतील, म्हणून मजकूर चॅट परवानग्या असलेल्या विभागात या पर्यायांना सक्षम करण्यास विसरू नका. नक्कीच, आपण एकाच वेळी सर्व परवानग्या प्रदान करू शकता, परंतु हा दृष्टिकोण अविश्वसनीय आहे, विशेषत: प्रकरणात आपण मोठ्या प्रमाणावर वापरकर्त्यासाठी बॉट बनवता.
- परवानगीची परवानगी पूर्ण झाल्यानंतर, सर्व्हरवरील बॉटच्या पहिल्या अधिकृततेसाठी दुवा कॉपी करा, कारण अन्यथा ते चालू होईपर्यंत ते जोडा.
- या दुव्याचे अनुसरण करा आणि आपण जेथे बॉट तपासू इच्छिता तेथे चाचणी सर्व्हर निवडा.
- कॅप्चरची पुष्टी करा आणि यशस्वी अधिकृततेबद्दल माहितीची प्रतीक्षा करा.
आता आपल्याकडे एक अद्वितीय टोकन असलेली बॉट आहे आणि बॉट आधीच सर्व्हरवर जोडला गेला आहे, परंतु ऑफलाइन मोडमध्ये असताना. तो सुरू करण्यासाठी, आम्ही अतिथीमध्ये सोडणे नाही, तर ऑफलाइन ऑपरेशन boting boting, स्थानिक संगणकावर काही अधिक क्रिया लागेल.
चरण 2: प्रारंभिक क्रिया
प्रारंभिक कृतींमध्ये आवश्यक निर्देशिक आणि फायली तयार करणे, त्यांच्यासाठी साधने आणि अवलंबित्वांची स्थापना समाविष्ट आहे. यामध्ये काहीही जटिल नाही, आपल्याला केवळ कोणत्याही चरणात त्रुटींचे काळजीपूर्वक पालन करणे आवश्यक आहे.
- बॉटच्या नावासह एक फोल्डर तयार करा. आपण कोणतीही जागा निवडू शकता परंतु वापरकर्त्याचे होम फोल्डर यासाठी सर्वोत्तम अनुकूल आहे.
- त्यात दोन फायली तयार करा: "config.json" आणि "incint.js". प्रथम बॉटचे संपूर्ण संरचना स्थापित करा - त्याचे उपसर्ग आणि अनन्य टोकन, आणि दुसरे - संपूर्ण प्रोग्राम कोड या साधनाच्या कमांड आणि सामान्य कार्यांसह.
- बॉटच्या कामासाठी node.j.s. आवश्यक आहे हे साधन स्थानिक संगणकावर स्क्रिप्ट सुरू करण्यात आली आहे. खालील दुव्यावर अनुसरण करा आणि Windows साठी त्याच्या इंस्टॉलर डाउनलोड करा.
अधिकृत साइटवरून node.js डाउनलोड करा
- एक्झिक्युटेबल फाईल एक्झिक्युटेबल डाउनलोड करण्यासाठी, चालवा आणि पास सोपे प्रतिष्ठापन प्रक्रिया, सूचना पडद्यावर दाखवले खालील अपेक्षा.
- त्यानंतर, "कमांड लाइन" आपल्यासाठी सोयीस्कर, उदाहरणार्थ, "चालवा" उपयुक्तता (तो सुरू Win आर कळा संयोजन) मध्ये अध्यक्ष व व्यवस्थापकीय संचालक प्रवेश उघडा.
- जे "discord.js" असे म्हटले जाते मतभेद API, काम करण्यासाठी विभाग स्थापित करा. त्यामुळे आपण ताबडतोब सर्व आवश्यक अवलंबन जोडा - हे करण्यासाठी, उघडते कन्सोल विंडो मध्ये एनपीएम YTDL-कोर --Save opsscript discord.js ffmpeg-बायनरी स्थापित करा आणि ENTER दाबा.
- , एक यशस्वी प्रतिष्ठापन स्क्रीन सूचना प्रतीक्षा चालू कन्सोल खिडकी बंद न करता. त्रुटी दिसून येत असल्यास, त्यांच्या कोड जाणून घेण्यासाठी आणि मंच किंवा अधिकृत वेबसाईट वर एक काम निर्णय शोधण्यासाठी शोध इंजिन वापरू.
एक परिणाम म्हणून, वापरकर्त्याच्या होम फोल्डर Node.js घटक संबंधित आणि विभाग नंतर जोडले फाइल दिसेल. जेणेकरून सांगकाम्या अडचण प्रारंभ नाही संगणक रीस्टार्ट करा, त्यानंतर पुढील चरण जा.
पायरी 3: संपादन बॉट संरचना फाइल
आपण आधीपासूनच त्या तयार सांगकाम्या संरचना फाइल मध्ये वापरले उपसर्ग जबाबदार आहे, कोड ओळी सर्व एक जोडी (सर्व्हरवर आदेश प्रविष्ट आधी प्रतीक) आणि एक अद्वितीय टोकन होईल माहीत आहे की, निश्चित API मध्ये अर्ज. सर्व पुढील क्रिया पूर्ण करण्यासाठी, आम्ही JS वाक्यरचना समर्थन किंवा कोणत्याही प्रगत टेक्स्ट एडिटर या पूर्वी पूर्ण केले जाणार नाही तर एक कार्यक्रम डाउनलोड करण्याची शिफारस. आपण खालील दुव्यावर लेख उपलब्ध योग्य उपाय स्वत: ची ओळख सक्षम असेल.
अधिक वाचा: प्रोग्रामिंग विकास वातावरण पसंत
तितक्या लवकर ते आणि काम करण्यास तयार संगणकावर स्थापित आहे म्हणून, आपण सुरक्षितपणे संपादन संरचना फाइल, तेथे वापरकर्ता डेटा प्रविष्ट सुरू करू शकता.
- एक मजकूर संपादक किंवा विकास वातावरणात config.js फाइल चालवा, खालील कोड समाविष्ट करा.
{
"उपसर्ग": "!"
"टोकन": "आपल्या-toke"
}
इच्छा दुहेरी अवतरण मध्ये उपसर्ग बदला किंवा उद्गार चिन्ह सोडा. या :! प्ले अशा चिन्ह दिसते वापरून आदेश उदाहरण.
- विकास पोर्टल आपल्या सांगकाम्या जा शोधण्यासाठी एक अद्वितीय टोकन तेथे आणि तो कॉपी करा.
- त्याऐवजी दुहेरी अवतरण न हटविता आपल्याला आपला-toke तपासणी घाला.
- बदल जतन करा आणि ही फाइल बंद करा. तसे, आपण मानक "नोटबुक" द्वारे समान क्रिया करू शकता.
कॉन्फिगरेशन फाइलसह या क्रियांवर पूर्ण झाले आहे, यापुढे आपण कोडची एक ओळ लिहून ठेवण्याची आवश्यकता नाही. संपादन जतन करुन विसरल्याशिवाय, आणि संगीत प्ले करण्यासाठी बॉट लिहिण्यासाठी पुढे जा.
चरण 4: चाचणी सुरू करणे बॉट
प्रथम, आम्हाला खात्री आहे की बीओटी सामान्यत: सर्व्हरवर चालत आहे आणि ऑनलाइन मोडमध्ये जाते, ते कोडचे मुख्य भाग index.js वर लिहिणे आवश्यक आहे आणि नंतर node.js वापरणे आवश्यक आहे.
- विकास पर्यावरण किंवा निवडलेल्या मजकूर संपादकाद्वारे, संपादनासाठी नमूद केलेली फाइल उघडा.
- अवलंबित्व स्थापनेसाठी जबाबदार असलेल्या कोडचे ब्लॉक घाला आणि वापरलेले मॉड्यूल दर्शविते:
कॉन्स्ट डिस्कॉर्ड = आवश्यक ('discord.js');
कॉन्स्टर {
उपसर्ग,
टोकन
} = ('किंवा config.json' आवश्यक आहे);
कॉन्स YTDL = आवश्यक ('YTDL-re');
- पूर्वी निर्दिष्ट टोकनच्या मदतीने, क्लायंट आणि लॉगिन तयार करा, जे केवळ दोन साधे रेषा प्रविष्ट करुन केले जाते:
कॉन्ड क्लायंट = नवीन विवाद. क्लिष्ट ();
क्लायंट.login (टोकन);
- बॉट ऐकण्यासाठी अंतिम मूलभूत रेषा निर्दिष्ट करणेच आहे.
Cliark.once ('रेडी', () => {) =>
कन्सोल.लोक ('तयार!');
});
Cliark.once ('reconnecting', () => {) =>
कन्सोल.लोक ('रिकनेक्टिंग!');
});
क्लाएंट.ऑन ('डिस्कनेक्ट', () => {
कन्सोल.लोक ('डिस्कनेक्ट!');
});
- "फाइल" मेनू विस्तृत करा आणि केलेले बदल जतन करा.
- सोयीस्कर प्रकारे पुन्हा कन्सोल चालवा.
- बीओटी स्क्रिप्ट सुरू करण्यासाठी नोड incind.js कमांड प्रविष्ट करा.
- जर त्याची फाइल्स वापरकर्त्याच्या होम डिरेक्टरीमध्ये स्थित नसेल तर नोड नंतर त्यांना पूर्ण द्या.
- "तयार" दर्शविलेल्या शिलालेखाने बॉटचा यशस्वी लॉन्च दर्शविला आहे.
- उघडा डिस्कॉर्ड आणि "ऑनलाइन" स्थितीवर बॉट गेला याची खात्री करा.
चरण 5: वाद्य बॉटचे मुख्य कोडर लिहिणे
सर्वात जटिल प्रक्रिया कायम राहिली - वाद्य बॉटसाठी मूलभूत कोड लिहिणे. कार्यक्षेत्रांची यादी आहे जी पूर्ण करणे आवश्यक आहे: संदेश आणि प्रक्रिया आदेश वाचणे, गाणे नाव किंवा त्याचे पत्त्याची परिभाषा, व्हॉइस चॅनेल आणि प्लेबॅकशी कनेक्ट करणे. या सर्व बॉटवरील परवानग्या आहेत, म्हणून आपल्याला जावास्क्रिप्ट फंक्शन्सचा वापर करुन फक्त क्रिया निर्दिष्ट करण्याची आवश्यकता आहे, जी त्याच "indent.js" फाइलमध्ये केली जाते.
संदेश वाचण्यासाठी एक साधे वैशिष्ट्य जोडा:
क्लायंट.ऑन ('संदेश', अस्हीएनसी संदेश => {
}
यात फक्त दोन ओळी असतात, परंतु बॉटला सानुकूल क्वेरी घेण्यास आणि योग्यरित्या प्रक्रिया करण्याची परवानगी मिळेल. असे म्हटले जाऊ शकते की कोणत्याही प्रकारच्या बॉट्ससाठी ही सर्वात महत्वाची टीम आहे. प्रवेश करून इतर बॉटवरून संदेश दुर्लक्ष करणे सुनिश्चित करा
जर (message.author.bot) परतावा;
हे एकाच वेळी सर्व्हरवर एकाधिक बॉट वापरताना विवाद टाळते. पुढे, प्रत्यय तपासणे आवश्यक आहे जेणेकरून बीओटीने संघ स्वीकारला किंवा परत केला.
जर (! Messongent.startswit) परत (प्रत्यय)) परत;
ऑपरेटर साधक वापरून लॉन्च केलेले आदेश तयार केले जातात आणि आमच्या बाबतीत डिझाइन यासारखे दिसते:
कॉन्स्ट सर्व्हर = queue.get (message.guild.id);
जर (MASSOR.Content.Startswith ($ {Prefix} Play`)
कार्यान्वित करा (संदेश, सर्व्हर);
परत;
} अन्यथा (संदेश. कॉन्टेंट. स्टार्त्स ('$ {Prefix} वगळता)) {
वगळा (संदेश, सर्व्हर);
परत;
} अन्यथा (संदेश.कॉन्टेंट. स्टार्त्ससह ('$ {Prefix} स्टॉप')) {
थांबवा (संदेश, सर्व्हर);
परत;
} अन्य {
Message.channel.send ('आपण विद्यमान आदेश वापरणे आवश्यक आहे!')
}
कृपया लक्षात ठेवा की पाठवा ('' ') फंक्शन वापरकर्त्यास मेजरला अचानक नॉन-वर्किंग कमांडमध्ये प्रवेश करते. हा संदेश आपण कोट्समध्ये शिलालेख बदलू शकता.
आता बॉट आज्ञा घेणे शिकले, परंतु क्रिया निर्दिष्ट केल्याशिवाय, त्यांच्याशी संवाद साधू शकता. प्रथम प्ले आदेश जोडा, प्लेबॅकसाठी जबाबदार आहे. त्यासाठी खालील फॉर्मसह एक अॅरे आवश्यक आहे:
कॉन्स रांग = नवीन नकाशा ();
तो रांगेत सर्व आज्ञा पाठवतो आणि जेव्हा गाणी केवळ तेव्हाच खेळतो तेव्हाच खेळतो. पुढे, एक फंक्शन तयार करणे आवश्यक आहे जे वापरकर्त्याने व्हॉइस चॅनेलशी कनेक्ट केलेले आहे आणि बीओटी संबंधित परवानग्या असल्यास तपासले जाईल.
Async फंक्शन कार्यान्वित (संदेश, सर्व्हर) {
cond args = messon.content.split ('');
कॉन्स voicechannel = messor.mber.vicechannel;
जर (! Voicechannel) परत trank.channel.send ('संगीत ऐकण्यासाठी', आपल्याला व्हॉइस चॅनेलमध्ये असणे आवश्यक आहे ');
कॉन्स्ट परवानगी = Voicechannel.permissionfor (message.client.user);
जर (! AppiSions.has ('कनेक्ट') || prisions.has ('बोलणे') {
परत trank.channel.send ('मला सामील होण्यासाठी आणि आपला व्हॉइस चॅनेल बोलणे आवश्यक आहे!');
}
}
पुढील कृती - YTDL लायब्ररी कनेक्ट करणे, कारण हे बॉट YouTube वरुन दुव्यावर गाणे वाचेल, त्यानंतर ते सर्व्हरवर प्ले केले जाईल. कोड अंतर्भूत एक लहान तुकडा समाविष्ट करण्यासाठी लागेल.
Consinfo = प्रतीक्षा ytdl.getinfo (urgs [1]);
कॉन्स गाणे = {
शीर्षक: songinfo.title,
URL: Songinfo.vide_url,
};
कोडचा पुढील ब्लॉक आपल्याला रांगेत गाणी असल्यास समजू शकेल किंवा आपण व्हॉइस चॅनेलशी त्वरित कनेक्ट करू शकता आणि प्लेबॅक सुरू करू शकता.
जर (! सर्व्हर) {
} अन्य {
Serveque.songs.push (गाणे);
कन्सोल.लोक (सर्व्हर. सॉन्ग);
परतफेड संदेश .Channel.send (`$ {$ {Songitle} queue मध्ये जोडले गेले आहे!";
}
पुढील नव्या प्रोग्रामरांना एक करार योजना आहे जो अॅरेमध्ये गाणे जोडतो आणि आपण प्रविष्ट करता तेव्हा समान बनवते! प्ले करा, रांगेची तपासणी आणि योग्य कृती निवडणे. सादर केलेल्या टिप्पण्यांकडे लक्ष द्या, जे आपल्याला सर्व सूक्ष्मतेशी सामोरे जाण्याची परवानगी देतात.
// रांग साठी करार तयार करणे
कॉन्स queuecontruct = {
टेक्स्टचॅनेल: संदेश.चेलन,
व्हॉइसेकॅनल: व्हॉइसेकॅनल,
कनेक्शन: शून्य,
गाणी: [],
खंड: 5,
खेळणे: सत्य,
};
// आमच्या करारासह सेट रांग
queue.set (messaguild.id, queuecontruct);
// गाण्यांच्या आमच्या array मध्ये रचना घाला
queuecontruct.songs.push (गाणे);
प्रयत्न {
// येथे आम्ही व्हॉइस चॅटमध्ये सामील होण्याचा आणि ऑब्जेक्टमध्ये कनेक्शन जतन करण्याचा प्रयत्न करीत आहोत
var कनेक्शन = प्रतीक्षा voicechannel.join ();
queuecontruct.connection = कनेक्शन;
// गाणे सुरू करण्यासाठी प्लेबॅक कार्य कॉल करणे
खेळा (MASSER.GULD, queuecontruct.songs [0]);
} कॅच (त्रुटी) {
// जर बॉट व्हॉइस चॅटमध्ये सामील होऊ शकत नाही तर त्रुटी संदेश प्रदर्शित करा
कन्सोल.लोक (चक्र);
queue.delete (messag.guild.id);
परत trank.channel.send.send (चक्र);
}
रांगेत, सर्वकाही स्पष्ट आहे, परंतु अद्याप गाणी खेळत नाही, कारण नाटक फंक्शनसाठी कोणतीही कामगिरी नाही. हे कोडमध्ये हे करण्यासाठी ते संरचना जोडण्यासाठी आवश्यक आहे
फंक्शन प्ले (गिल्ड, गाणे) {
कॉन्स्ट सर्व्हर = रांग (gildd.id);
जर (! गाणे) {
Serveque.vicechannel.leave ();
queue.delete (Guild.id);
परत;
}
}
प्लेस्ट्रीम () फंक्शन आणि ट्रॅकवर निर्दिष्ट दुवा वापरणे सुरू होते.
कॉन्स डिस्पॅचर = serveue.connection.plstream (YTDL (SAG.URL))
.on ('समाप्त', () => {) =>
कन्सोल.लोक ('संगीत संपले आहे!));
// रांग पासून समाप्त गाणे काढून टाकते
serveque.songs.shift ();
// पुन्हा खालील गाण्याचे प्लेबॅक कार्य करते
प्ले (गिल्ड, serveque.songs [0]);
})
.on ('त्रुटी', त्रुटी => {
कन्सोल. त्रुटी (त्रुटी);
});
डिस्पॅचर.सेटवोल्यूमेलोग्रिथमिक (सर्व्हर. व्हॉल्यूम / 5);
आपण एखादे गाणे वगळण्याचे कार्य जोडू इच्छित असल्यास, उदाहरणार्थ, जेव्हा आपण प्लेलिस्ट प्ले करण्याचा निर्णय घेतला तेव्हा प्रथम योग्य कमांडची काळजी घ्या आणि नंतर अशा खंड जोडा:
फंक्शन वगळा (संदेश, सर्व्हर) {
जर (! Message.member.voicechannel) परत trank.channel.send ('आपण संगीत थांबविण्यासाठी व्हॉइस चॅनेलमध्ये असावे!');
जर (! SYSQUEUUE) परतावा Trave.Channel.End.Ed ('मी वगळू शकणारी कोणतीही गाणे नाही ");
Serveque.connection.dispatcher.end ();
}
अंदाजे समान योजना स्टॉप फंक्शन देखील कार्य करते परंतु कोडसह ब्लॉक थोडी वेगळी देखावा प्राप्त करतो:
फंक्शन स्टॉप (संदेश, सर्व्हर) {
जर (! Message.memberme.vicechannel) परत message.channannel.send ('
संगीत थांबविण्यासाठी आपण व्हॉईस चॅनेलमध्ये असणे आवश्यक आहे!);
Serveque.songs = [];
Serveque.connection.dispatcher.end ();
}
वरील सादर केलेली माहिती आधीच JavaScript भाषा परिचित आहेत किंवा फक्त आणि अभ्यास गुंतलेली आहे एक वाद्य सांगकाम्या तयार करण्याचा निर्णय घेतला ज्यांना वापरकर्त्यांसाठी केवळ योग्य आहे, हे लक्षात घ्या. आपण सर्वसाधारणपणे नाही स्वत: च्या कौशल्य आणि कोड सह निर्देशीत अवरोध करू आपण सर्व येथे काहीही बोलू नका, फक्त फाइल मध्ये संपूर्ण स्रोत कोड समाविष्ट, रशियन मध्ये सांगकाम्या संदेश पुनर्स्थित (ते कोट आहेत) आणि जतन बदलते. सर्व स्त्रोत कोड या प्रकारची आहे:
कॉन्स्ट डिस्कॉर्ड = आवश्यक ('discord.js');
const {
उपसर्ग,
टोकन
} = आवश्यक ( './ config.json');
const YTDL = आवश्यक ( 'YTDL-कोर');
Const क्लायंट नवीन discord.client () =;
Const रांग = नवीन नकाशा ();
Client.ONCE ( 'रेडी', () => {
Console.log ( 'तयार!');
});
Client.Once ( 'पुन्हा कनेक्ट करत आहे', () => {
Console.log ( 'पुन्हा कनेक्ट करत आहे!');
});
Client.ONCE ( 'डिस्कनेक्ट करा', () => {
Console.log ( 'डिस्कनेक्ट करा!');
});
Client.on ( 'संदेश', असंकालिक संदेश => {
तर (message.author.bot) परत;
तर (Message.content.startSwith (उपसर्ग)!) परत;
Const ServerQueue = Queue.Get (Message.Guild.ID);
तर (Message.Content.startSwith ( `$ {उपसर्ग} play`)) {
कार्यवाही करा (संदेश, ServerQueue);
परत;
} कुठेही तर (message.content.startswith ( `$ {उपसर्ग} Skip`)) {
टाळा (संदेश, ServerQueue);
परत;
} अन्य असल्यास (message.content.startSwith ( `$ {उपसर्ग} stop`)) {
थांबवा (संदेश, Serverqueue);
परत;
} अन्य {
Message.Channel.send ( 'आपण एक वैध आदेश प्रविष्ट करणे आवश्यक आहे!')
}
});
ASYNC कार्य अंमलात (संदेश, SERVERQUEUE) {
const बाबी = message.content.split ( '');
Const VoiceChannel = Message.Member.VoiceChannel;
तर परत Message.Channel.send ( 'आपण प्ले करण्यासाठी संगीत आवाज चॅनल करणे आवश्यक!') (VoiceChannel!);
const परवानग्या = VoiceChannel.permissionSFOR (Message.Client.user);
जर (! Permissions.has ( 'कनेक्ट करा') ||! Permissions.has ( 'बोला')) {
परत Message.Channel.send ( 'मी परवानग्या आपला आवाज चॅनल मध्ये सामील व्हा आणि बोलायचे आहे!');
}
Const Songinfo = वाट पाहत ytdl.getinfo (बाबी [1]);
Const गीत = {
शीर्षक: Songinfo.title,
URL: Songinfo.Video_URL,
};
जर (! Serverqueue) {
Const QueueContruct = {
TextChannel: Message.Channel,
VoiceChannel: VoiceChannel,
कनेक्शन: शून्य,
गाणी: [],
व्हॉल्युम: 5,
प्ले करत आहे: खरे,
};
queue.set (Message.Guild.ID, QueueContruct);
queuecontruct.songs.push (गाणे);
प्रयत्न {
var कनेक्शन = वाट पाहत voicechannel.join ();
queuecontruct.connection = कनेक्शन;
प्ले करा (Message.Guild, Queuecontruct.songs [0]);
} कॅच (ERR) {
Console.log (ERR);
queue.delete (Message.Guild.ID);
परत Message.Channel.send (ERR);
}
} अन्य {
ServerQueue.Songs.push (गीत);
Console.log (Serverqueue.songs);
परत Message.Channel.send ( `$ {Song.title} रांगेमध्ये जोडले गेले आहे`!);
}
}
FUNCTION टाळा (संदेश, Serverqueue) {
तर (message.member.voiceChannel!) परत Message.Channel.send ( 'आपण व्हॉइस चॅनेल थांबवा द संगीत असणे आवश्यक आहे!');
तर (ServerQueue!) परत Message.Channel.send ( 'नाही गीत मी जा नाही आहे!');
ServerQueue.connection.dispatcher.end ();
}
FUNCTION थांबवा (संदेश, Serverqueue) {
तर (message.member.voiceChannel!) परत Message.Channel.send ( 'आपण व्हॉइस चॅनेल थांबवा द संगीत असणे आवश्यक आहे!');
ServerQueue.Songs = [];
ServerQueue.connection.dispatcher.end ();
}
फंक्शन प्ले (व्यापारी, गाणे) {
Const ServerQueue = queue.get (guild.id);
जर (! गीत) {
ServerQueue.VoiceChannel.Leave ();
queue.delete (guild.id);
परत;
}
Const प्रोफाइलमध्ये = ServerQueue.Connection.PlayStream (YTDL (Song.url))
.त्यातील ( 'समाप्त', () => {
Console.log ( 'संगीत समाप्त झाले!');
serverqueue.songs.shift ();
Play (व्यापारी, Serverqueue.songs [0]);
})
.त्यातील ( 'त्रुटी', त्रुटी => {
Console.error (त्रुटी);
});
dispatcher.setvolumelogarithmic (serverqueue.volume / 5);
}
Client.login (टोकन);
पूर्ण झाल्यावर, नंतर आपण, आपल्या सर्व्हर जाऊ शकता आवाज चॅनेल कनेक्ट आणि सांगकाम्या कसे प्रतिक्रिया तपासणी संवाद कोणत्याही आदेश प्रविष्ट करा, सांगकाम्या, पुन्हा सुरू चांगले आहे.
जर बीओटीचे उपरोक्त प्रकार आपल्यासाठी योग्य नसेल तर आपण त्याच Gitub वर स्त्रोत कोड शोधू शकता आणि आपल्या संगणकावर कॉपी करू शकता. नोंदणी आणि प्रक्षेपणाचे सिद्धांत समान राहिले आहे, म्हणून आवश्यक असल्यास, पूर्ण कोड संपादित करा आणि नंतर बॉटची चाचणी घ्या.
या लेखात, आम्ही होस्टिंगवरील बॉटच्या विपर्यास प्रभावित केले नाही, इतर वापरकर्त्यांमध्ये वितरित केले, अवतार तयार करणे आणि ओपन साइट्सचा वापर, ते अधिकृत केले जाऊ शकते. ही सर्व वेगळी प्रक्रिया आहे जी केवळ आपल्या कौशल्याची बॉट तयार करण्यासाठी आणि नेटवर्कवरील प्रकल्प वितरीत करण्यास तयार असाल तेव्हाच व्यस्त असणे आवश्यक आहे.