كيف تصنع روبوت الفتنة الخاص بك
يحتوي Discord على واجهة برمجة تطبيقات ممتازة لكتابة روبوتات مخصصة ومجتمع روبوت نشط للغاية. اليوم سنلقي نظرة على كيفية البدء في صنع ما تريد.
ستحتاج إلى القليل من المعرفة البرمجية لتشفير الروبوت ، لذا فهو ليس متاحًا للجميع ، ولكن لحسن الحظ ، هناك بعض الوحدات النمطية للغات الشائعة التي تجعل من السهل جدًا القيام بها. سنستخدم الأكثر شعبية ، discord.js.
ذات صلة: كيفية إنشاء وإعداد وإدارة خادم Discord الخاص بك
ابدء
توجه إلى بوابة الروبوت الخاصة بـ Discord ، وأنشئ تطبيقًا جديدًا.
ستحتاج إلى تدوين معرف العميل والسرية (والتي يجب عليك الاحتفاظ بها سراً بالطبع). ومع ذلك ، هذا ليس الروبوت ، فقط "التطبيق". سيتعين عليك إضافة الروبوت تحت علامة التبويب "Bot".
قم بتدوين هذا الرمز المميز أيضًا ، واحتفظ به سراً. لا تقم ، تحت أي ظرف من الظروف ، بربط هذا المفتاح بـ Github. سيتم اختراق الروبوت الخاص بك على الفور تقريبًا.
ثبّت Node.js واحصل على الترميز
لتشغيل كود Javascript خارج صفحة الويب ، تحتاج إلى Node. قم بتنزيله وتثبيته وتأكد من أنه يعمل في محطة طرفية (أو موجه الأوامر ، حيث يجب أن يعمل كل هذا على أنظمة Windows). الأمر الافتراضي هو "عقدة".
نوصي أيضًا بتثبيت أداة nodemon. إنه تطبيق سطر أوامر يراقب كود الروبوت الخاص بك ويعيد التشغيل تلقائيًا عند التغييرات. يمكنك تثبيته عن طريق تشغيل الأمر التالي:
npm i -g nodemon
ستحتاج إلى محرر نصوص. يمكنك فقط استخدام المفكرة ، لكننا نوصي باستخدام Atom أو VSC.
إليك "Hello World":
const Discord = تتطلب ('discord.js') ؛ عميل const = جديد Discord.Client () ؛ client.on ('ready'، () => {console.log (`تم تسجيل الدخول كـ $ {client.user.tag}!`)؛})؛ client.on ('message'، msg => {if (msg.content === 'ping') {msg.reply ('pong')؛}}) ؛ client.login ("رمز مميز") ؛
هذا الرمز مأخوذ من مثال discord.js. دعونا نكسرها.
- أول سطرين هما تكوين العميل. يستورد السطر الأول الوحدة النمطية إلى كائن يسمى "Discord" ، ويقوم السطر الثاني بتهيئة كائن العميل.
- و
client.on('ready')
سوف كتلة النار عندما يبدأ بوت يصل. هنا ، تم تكوينه للتو لتسجيل اسمه في الجهاز. - و
client.on('message')
سوف كتلة النار في كل مرة يتم نشر رسالة جديدة إلى أي قناة. بالطبع ، ستحتاج إلى التحقق من محتوى الرسالة ، وهذا ما يفعلهif
الحظر. إذا كانت الرسالة تقول "ping" فقط ، فسيتم الرد بـ "Pong!" - يسجل السطر الأخير الدخول باستخدام الرمز المميز من بوابة الروبوت. من الواضح أن الرمز المميز في لقطة الشاشة هنا مزيف. لا تقم أبدًا بنشر رمزك المميز على الإنترنت.
انسخ هذا الرمز ، والصقه في الرمز المميز الخاص بك في الأسفل ، واحفظه index.js
في مجلد مخصص.
كيفية تشغيل البوت
توجه إلى جهازك ، وقم بتشغيل الأمر التالي:
nodemon --inspect index.js
يؤدي هذا إلى تشغيل البرنامج النصي ، وكذلك تشغيل مصحح أخطاء Chrome ، والذي يمكنك الوصول إليه عن طريق الكتابة chrome://inspect/
في Omnibar في Chrome ثم فتح "أدوات التطوير المخصصة لـ Node".
الآن ، يجب أن تقول فقط "تم تسجيل الدخول كـ" ، ولكن هنا أضفت سطرًا سيسجل جميع كائنات الرسائل المستلمة إلى وحدة التحكم:
إذن ما الذي يتكون منه كائن هذه الرسالة؟ الكثير من الأشياء ، في الواقع:
وعلى الأخص ، لديك معلومات المؤلف ومعلومات القناة ، والتي يمكنك الوصول إليها من خلال msg.author و msg.channel. أوصي بهذه الطريقة لتسجيل الكائنات في Chrome Node devtools ، والنظر فقط لمعرفة ما الذي يجعلها تعمل. قد تجد شيئًا مثيرًا للاهتمام. هنا ، على سبيل المثال ، يسجل الروبوت ردوده على وحدة التحكم ، وبالتالي يتم تشغيل ردود الروبوت client.on('message')
. لذلك ، قمت بعمل spambot:
ملاحظة : كن حذرًا مع هذا ، لأنك لا تريد حقًا التعامل مع العودية.
كيفية إضافة الروبوت إلى الخادم الخاص بك
هذا الجزء أصعب مما ينبغي. يجب أن تأخذ عنوان URL هذا:
//discordapp.com/oauth2/authorize؟client_id=CLIENTID&scope=bot
واستبدل CLIENTID بمعرف عميل الروبوت الخاص بك ، الموجود في علامة تبويب المعلومات العامة بصفحة التطبيق. بمجرد الانتهاء من ذلك ، يمكنك إعطاء الرابط لأصدقائك لجعلهم يضيفون الروبوت إلى خوادمهم أيضًا.
حسنًا ، ما الذي يمكنني فعله أيضًا؟
بخلاف الإعداد الأساسي ، فإن أي شيء آخر متروك لك تمامًا. ولكن ، لن يكون هذا درسًا تعليميًا كبيرًا إذا توقفنا عند hello world ، لذلك دعنا نراجع بعض الوثائق ، حتى يكون لديك فكرة أفضل عما هو ممكن. أقترح أن تقرأ بقدر ما تستطيع ، لأنها موثقة جيدًا.
أوصي بالإضافة console.log(client)
إلى بداية التعليمات البرمجية الخاصة بك ، وإلقاء نظرة على كائن العميل في وحدة التحكم:
From here, you can learn a lot. Since you can add a bot to multiple servers at once, servers are part of the Guilds
map object. In that object are the individual Guilds (which is the API’s name for “server”) and those guild objects have channel lists that contain all the info and lists of messages. The API is very deep, and may take a while to learn, but at least it’s easy to set up and get started learning.