كيفية إنشاء روبوت موسيقى باستخدام Discord.js

الصورة ديريك ترونينجر على Unsplash

يوفر لك discord API أداة سهلة لإنشاء واستخدام الروبوتات والأدوات الخاصة بك. سنقوم اليوم بإلقاء نظرة على كيفية إنشاء روبوت موسيقي أساسي وإضافته إلى خادمنا. سيكون الروبوت قادرًا على تشغيل الموسيقى وتخطيها وإيقافها وأيضًا يدعم وظائف الانتظار.

انشاء بوت الشقاق

أولاً ، نحتاج إلى إنشاء تطبيق جديد على بوابة تطوير الفتنة.

يمكننا القيام بذلك عن طريق زيارة البوابة والنقر على تطبيق جديد.

بعد ذلك ، نحتاج إلى إعطاء اسم التطبيق الخاص بنا والنقر فوق زر إنشاء.

بعد ذلك ، نحتاج إلى تحديد علامة تبويب bot والنقر فوق add bot.

الآن تم إنشاء روبوتنا ويمكننا الاستمرار في دعوته إلى خادمنا.

إضافة الروبوت إلى الخادم الخاص بك

بعد إنشاء روبوتنا ، يمكننا أن ندعوه باستخدام OAuth2 URL Generator.

لذلك ، نحتاج إلى الانتقال إلى صفحة OAuth2 وتحديد bot في نقرة النطاق.

بعد ذلك ، نحتاج إلى تحديد الأذونات اللازمة لتشغيل الموسيقى وقراءة الرسائل.

ثم يمكننا نسخ عنوان URL الذي تم إنشاؤه ولصقه في متصفحنا.

بعد لصقها ، نضيفها إلى خادمنا عن طريق تحديد الخادم والنقر على زر التفويض.

إنشاء مشروعنا

الآن يمكننا البدء في إنشاء مشروعنا باستخدام محطة لدينا.

أولاً ، نقوم بإنشاء دليل والانتقال إليه. يمكننا القيام بذلك باستخدام هذين الأمرين.

mkdir musicbot && cd musicbot

بعد ذلك ، يمكننا إنشاء وحدات مشروعنا باستخدام الأمر npm init. بعد دخولك إلى الأمر ، سيُطلب منك بعض الأسئلة ، ما عليك سوى الإجابة عليها والمتابعة.

ثم نحتاج فقط إلى إنشاء الملفين اللذين سنعمل فيهما.

touch index.js && touch config.json

الآن نحتاج فقط إلى فتح مشروعنا في محرر النصوص الخاص بنا. أنا شخصياً أستخدم VS Code وأستطيع فتحه باستخدام الأمر التالي.

الشفرة .

أساسيات الشقاق

الآن نحتاج فقط إلى تثبيت بعض التبعيات قبل البدء.

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

بعد انتهاء التثبيت ، يمكننا متابعة كتابة ملف config.json الخاص بنا. هنا نحفظ الرمز المميز للبوت لدينا والبادئة التي يجب أن يستمع إليها.

للحصول على الرمز المميز ، تحتاج إلى زيارة مدخل مطور discord مرة أخرى ونسخه من قسم الروبوت.

تلك هي الأشياء الوحيدة التي يتعين علينا القيام بها في ملف config.json الخاص بنا. لذلك دعونا نبدأ كتابة شفرة جافا سكريبت.

أولاً ، نحن بحاجة إلى استيراد جميع تبعياتنا.

بعد ذلك ، يمكننا إنشاء عملائنا وتسجيل الدخول باستخدام الرمز المميز لدينا.

الآن دعونا نضيف بعض المستمعين الأساسيين الذين console.log عندما يتم تنفيذها.

بعد ذلك ، يمكننا أن نبدأ روبوتنا باستخدام أمر العقدة ويجب أن يكون على الإنترنت على خلاف وطباعة "جاهز!" في وحدة التحكم.

index.js العقدة

قراءة الرسائل

الآن وقد أصبح برنامج الروبوت الخاص بنا موجودًا على الخادم الخاص بنا وقادر على الاتصال بالإنترنت ، يمكننا البدء في قراءة رسائل الدردشة والرد عليها.

لقراءة الرسائل ، نحن بحاجة فقط لكتابة وظيفة واحدة بسيطة.

نحن هنا ننشئ مستمعًا لحدث الرسالة ونحصل على الرسالة ونحفظها في كائن رسالة إذا تم تشغيلها.

نحن الآن بحاجة إلى التحقق مما إذا كانت الرسالة من روبوتنا وتجاهلها إذا كانت كذلك.

إذا عاد (message.author.bot) ؛

في هذا السطر ، نتحقق مما إذا كان مؤلف الرسالة هو روبوتنا ونعود إذا كان كذلك.

بعد ذلك ، نتحقق مما إذا كانت الرسالة تبدأ بالبادئة التي حددناها مسبقًا ونعود إذا لم تكن كذلك.

إذا كانت (! message.content.startsWith (البادئة)) ترجع ؛

بعد ذلك ، يمكننا التحقق من الأمر الذي نحتاج إلى تنفيذه. يمكننا القيام بذلك باستخدام بعض البيانات البسيطة إذا.

في كتلة التعليمات البرمجية هذه ، نتحقق من الأمر المطلوب تنفيذه واستدعاء الأمر. إذا كان أمر الإدخال غير صحيح ، فسنكتب رسالة خطأ في الدردشة باستخدام وظيفة send ().

الآن بعد أن عرفنا الأمر الذي نحتاج إلى تنفيذه ، يمكننا البدء في تنفيذ هذه الأوامر.

إضافة الأغاني

لنبدأ بإضافة أمر التشغيل. لذلك ، نحتاج إلى أغنية ونقابة (تمثل النقابة مجموعة معزولة من المستخدمين والقنوات وغالبًا ما يشار إليها كخادم). نحتاج أيضًا إلى مكتبة ytdl التي قمنا بتثبيتها مسبقًا.

أولاً ، نحتاج إلى إنشاء خريطة باسم قائمة الانتظار حيث نقوم بحفظ جميع الأغاني التي نكتبها في الدردشة.

قائمة انتظار const = خريطة جديدة () ؛

بعد ذلك ، نقوم بإنشاء وظيفة غير متزامنة تسمى execute وتحقق مما إذا كان المستخدم في محادثة صوتية وإذا كان لدى bot الإذن الصحيح. إن لم يكن نكتب رسالة خطأ والعودة.

الآن يمكننا متابعة الحصول على معلومات الأغنية وحفظها في كائن أغنية. لذلك ، نستخدم مكتبة ytdl التي تحصل على معلومات الأغنية من رابط youtube.

سيحصل هذا على معلومات الأغنية باستخدام مكتبة ytdl التي قمنا بتثبيتها مسبقًا. ثم نحفظ المعلومات التي نحتاجها في كائن أغنية.

بعد حفظ معلومات الأغنية ، نحتاج فقط إلى إنشاء عقد يمكننا إضافته إلى قائمة الانتظار الخاصة بنا. للقيام بذلك ، نحتاج أولاً إلى التحقق مما إذا كان serverQueue محددًا بالفعل مما يعني أن الموسيقى قيد التشغيل بالفعل. إذا كان الأمر كذلك ، فنحن نحتاج فقط إلى إضافة الأغنية إلى serverQueue الحالي وإرسال رسالة نجاح. إذا لم يكن الأمر كذلك ، فنحن بحاجة إلى إنشائها ومحاولة الانضمام إلى القناة الصوتية وبدء تشغيل الموسيقى.

هنا نتحقق مما إذا كان serverQueue فارغًا وأضف الأغنية إليه إذا لم يكن كذلك. الآن نحتاج فقط إلى إنشاء عقدنا إذا كان serverQueue فارغًا.

في مقطع الكود هذا ، نقوم بإنشاء عقد وإضافة أغنيتنا إلى مجموعة الأغاني. بعد ذلك ، نحاول الانضمام إلى الدردشة الصوتية للمستخدم والاتصال بوظيفة play () التي سننفذها بعد ذلك.

لعب الأغاني

والآن بعد أن أصبح بإمكاننا إضافة أغانينا إلى قائمة الانتظار الخاصة بنا وإنشاء عقد إذا لم يكن هناك واحد حتى الآن يمكننا البدء في تنفيذ وظائف التشغيل لدينا.

أولاً ، سننشئ وظيفة تسمى play والتي تتطلب معلمتين (النقابة والأغنية التي نريد تشغيلها) ونتحقق مما إذا كانت الأغنية فارغة. إذا كان الأمر كذلك ، فسنغادر القناة الصوتية وحذف قائمة الانتظار.

بعد ذلك ، سنبدأ تشغيل أغنيتنا باستخدام وظيفة playStream () وعنوان URL لأغنيتنا.

هنا نقوم بإنشاء دفق وتمريره عنوان URL لأغنيتنا. نضيف أيضًا مستمعين يتعاملان مع حدث النهاية والخطأ.

ملاحظة: هذه وظيفة متكررة مما يعني أنها تستدعي نفسها مرارًا وتكرارًا. نستخدم العودية حتى يتم تشغيل الأغنية التالية عند انتهاء الأغنية.

نحن الآن على استعداد لتشغيل أغنية بمجرد كتابة عنوان URL للتشغيل في الدردشة.

تخطي الأغاني

الآن يمكننا البدء في تنفيذ وظيفة التخطي. لذلك ، نحتاج فقط إلى إنهاء المرسل الذي أنشأناه في وظيفة play () حتى تبدأ الأغنية التالية.

هنا نتحقق مما إذا كان المستخدم الذي كتب الأمر موجودًا في قناة صوتية وإذا كان هناك أغنية للتخطي.

وقف الأغاني

وظيفة stop () هي نفسها تقريبا skip () باستثناء أننا نقوم بمسح صفيف الأغاني الذي سيجعل الروبوت يحذف قائمة الانتظار ويترك الدردشة الصوتية.

أكمل شفرة المصدر لـ index.js:

هنا يمكنك الحصول على شفرة المصدر الكاملة لبوت الموسيقى لدينا:

اقتراحات للقراءة:

خاتمة

قمت بها على طول الطريق حتى النهاية! نأمل أن تساعدك هذه المقالة على فهم واجهة برمجة تطبيقات Discord وكيف يمكنك استخدامها لإنشاء برنامج روبوت بسيط. إذا كنت تريد أن ترى مثالًا على bot discord أكثر تقدماً ، يمكنك زيارة مستودع Github الخاص بي.

إذا وجدت هذا مفيدًا ، فالرجاء التفكير في التوصية ومشاركته مع زملائه من المطورين.

إذا كانت لديك أي أسئلة أو تعليقات ، فأعلمني في التعليقات الموضحة أدناه.

إذا كنت ترغب في الحصول على تحديثات مستمرة حول مدونتي ، فتأكد من متابعتي على "متوسط" والانضمام إلى رسالتي الإخبارية.

نشرت أصلا في gabrieltanner.org.