المحتوى:
في هذه المقالة، سنتحدث عن كيفية إنشاء تطبيق للبوت، وتنفيذ التفويض الأول على الخادم، وكتابة كود عام لتطبيع العمل. مع وجود "هيكل"، يمكنك بالفعل إضافة أوامر مخصصة والتحقق على الفور من كيفية عملها.
إنشاء تطبيق وتفويض البوت
بعد ذلك، سنتحدث عن طريقتين مختلفتين لإنشاء البوت - باستخدام جافا سكريبت وبايثون. لكل منهما ميزاته وخصائصه، لكن طريقة إنشاء التطبيق وتفويض البوت على الخادم تظل متشابهة، لأنها لا تعتمد على لغة البرمجة المختارة.بعد ذلك، يمكنك الانتقال إلى اختيار المكتبة والعمل مع الكود.
- انتقل إلى الرابط أعلاه لتصل إلى الصفحة الرئيسية لبوابة المطورين في Discord. استخدم بيانات الاعتماد الشخصية الخاصة بك لتسجيل الدخول إلى الحساب.
- أنشئ تطبيقًا جديدًا بالنقر على الزر "تطبيق جديد".
- أدخل اسم التطبيق ووافق على إنشائه.
- قم بتوسيع قائمة الموقع بالنقر على الزر الذي يحتوي على ثلاثة خطوط أفقية.
- من القائمة المنبثقة، اختر قسم الإعدادات "بوت".
- ابدأ بإضافة بوت جديد لهذا التطبيق.
- أكد الإشعار الذي يظهر بالنقر على "نعم، قم بذلك".
- عند الانتهاء، سيتم تحديث الموقع وفتح صفحة البوت، حيث يمكنك تغيير اسمه، نسخ الرمز المميز، أو إضافة أيقونة ستظهر أيضًا في Discord.
- ومع ذلك، فإن البوت لم يتم تعيينه بعد كذا، ولم يتم تعيين الأذونات له، لذا انتقل عبر نفس القائمة إلى قسم "OAuth2".
- في قائمة "Scopes"، ضع علامة بجوار "بوت"، لتحديد نوع التطبيق الذي تم إنشاؤه.
- ابحث عن القسم التالي — "أذونات البوت" وضع علامات بجوار جميع الأذونات التي ترغب في منحها للبوت الذي تم إنشاؤه.
- قم بنفس الشيء مع الأنواع الأخرى من الأذونات، فهي تتوافق مع الأذونات المتاحة مباشرة في Discord للأدوار.
- الآن البوت جاهز للتفويض. في نفس الصفحة، ابحث عن السطر الذي يحتوي على الرابط وانسخه.
- الصق في شريط العنوان وانتقل إليه. في النموذج الذي يظهر، اختر الخادم للتفويض. إذا لم يكن لديك خادم خاص بك بعد، أنشئ واحدًا ثم عد إلى عملية توصيل البوت.
لمزيد من التفاصيل: إنشاء خادم في Discord
- اطلع على قائمة جميع الأذونات واضغط على "تفويض".
- تبقى فقط تأكيد الكابتشا التي ظهرت على الشاشة.
- افتح الخادم المناسب في Discord وتأكد من أن البوت موجود في قائمة الأعضاء. حتى الآن هو غير متصل، وسيكون التشغيل متاحًا بعد كتابة "جسم" البوت باستخدام Python أو JS، وهو ما سنتناوله لاحقًا.

















اختيار بيئة التطوير
قبل البدء في العمل مع الكود في اللغات البرمجية المذكورة، دعنا نوضح أنك ستحتاج إلى تثبيت محرر نصوص أو بيئة تطوير خاصة تدعم بناء جملة Python أو JavaScript (حسب ما تختاره). بالطبع، يمكنك استخدام "المفكرة" فقط، لكن من حيث الراحة، فهي أقل كفاءة من البرامج المتخصصة.
لمزيد من التفاصيل:
اختيار بيئة التطوير للبرمجة

الخيار 1: Python ومكتبة discord
إذا لم تكن قد واجهت لغات البرمجة من قبل أو كنت تعرفها فقط بشكل سطحي، فإن إنشاء بوت لـ Discord باستخدام Python هو الخيار الأفضل. هذه اللغة البرمجية أسهل في التعلم، مدمجة ولها بناء جملة منطقي واضح، مما يجعلها مثالية للمبتدئين. بالإضافة إلى ذلك، هناك عدد هائل من المصادر على الإنترنت مع أوامر مختلفة أو بوتات جاهزة، والتي يمكنك نسخها واستخدامها لأغراضك.في الخطوات التالية، ستتعلم كيفية إنشاء "هيكل" بوت باستخدام بايثون وتشغيله للتحقق من عمله.
الخطوة 1: تثبيت بايثون ومكتبة ديسكورد
بشكل افتراضي، لا تحتوي ويندوز على وظائف وأدوات مدمجة للعمل مع بايثون، لذا سيتعين عليك تثبيتها بشكل منفصل، مع عدم نسيان المكتبة الموصلة ديسكورد، التي ستسمح بالتفاعل مع الوظائف والأوامر المفيدة المتعلقة بديسكورد فقط.
انتقل إلى الموقع الرسمي لبايثون
- استخدم الرابط أعلاه للانتقال إلى الموقع الرسمي لبايثون واضغط على الزر لتحميل أحدث إصدار له.
- في الصفحة الجديدة، ابحث عن المثبت لويندوز وابدأ تحميله.
- انتظر حتى يكتمل التحميل ثم قم بتشغيل المثبت.
- يمكنك بدء التثبيت دون تغييرات، لكن تأكد من وضع علامة على "إضافة بايثون X.X إلى PATH"، حتى تتم إضافة جميع متغيرات البيئة تلقائيًا ولا تحدث مشاكل عند إدخال الأوامر لاحقًا.
- انتظر حتى يكتمل التثبيت، ومن باب الاحتياط، أعد تشغيل الكمبيوتر لتفعيل جميع التغييرات.
- افتح "موجه الأوامر" بالطريقة التي تناسبك، على سبيل المثال، من خلال البحث عن التطبيق في قائمة "ابدأ".
- اكتب الأمر
pip install discord
واضغط على مفتاح Enter لتأكيده. - ستبدأ تحميل الملفات وستظهر سطور في وحدة التحكم. لا تغلق هذه النافذة حتى يكتمل التحميل.
- بمجرد ظهور المعلومات "تم التثبيت بنجاح"، أغلق "موجه الأوامر" وانتقل إلى الخطوة التالية.









إذا كان بايثون مثبتًا لديك، ولكن الأمر لإضافة المكتبة الموصلة لا يعمل، قم بتحديث مكون PIP، كما هو موضح في مقال آخر على موقعنا.ستجد هناك تعليمات حول كيفية تغيير متغيرات البيئة، إذا لم يحدث ذلك أثناء التثبيت.
لمزيد من التفاصيل: تحديث PIP لـ Python
الخطوة 2: إنشاء قاموس البوت
في هذه النسخة، سنستخدم قاموسًا للبوت، أي ملف تكوين يحتفظ بقيم مختلفة لاسم الرمز، والبادئة، واسم البوت. هذا يبسط بشكل كبير عملية كتابة الكود ولا يجعلك تتذكر بيانات التطبيق في كل مرة لإدخالها في سطر واحد.
- ابدأ بتشغيل IDLE، وابحث عن التطبيق المضاف من خلال قائمة "ابدأ". إذا قمت بتنزيل بيئة تطوير أخرى، افتحها وأنشئ مشروعًا جديدًا يعتمد على Python.
- بعد فتح نافذة جديدة، استدعِ قائمة "ملف" واختر الخيار "ملف جديد". يمكنك القيام بذلك أيضًا باستخدام مجموعة المفاتيح Ctrl + N.
- في النافذة الجديدة، المخصصة لكتابة الكود، ألصق الكتلة
settings = {
'token': 'رمزك',
'bot': 'اسم البوت',
'id': Client ID للبوت، بدون علامات اقتباس،
'prefix': 'بادئة البوت'
} - الآن ستحتاج إلى العثور على المعلومات لاستبدالها في القاموس. أولاً، ابحث عن Client ID للتطبيق على موقع المطورين. انسخه واستبدله في السطر المناسب.
- استدعِ القائمة وانتقل إلى قسم "بوت".
- انسخ رمزه الفريد، بالنقر على الزر المخصص لذلك.
- ألصق الرمز بدلاً من النص، وافعل الشيء نفسه مع اسم البوت والبادئة المستخدمة (البادئة مطلوبة لاستدعاء الأوامر وتأتي دائمًا قبلها، على سبيل المثال
!play
، ويمكنك استبدال علامة التعجب بأي رموز أخرى). - بمجرد استبدال جميع المعلومات، استدعِ القائمة مرة أخرى "ملف" واختر الخيار "حفظ باسم".
- أنشئ مجلدًا منفصلًا لملفات البوت، وسمِّه
config
ووافق على الحفظ.









الخطوة 3: إنشاء جسم البوت
لتوفير الوظيفة الأساسية للبوت، يجب إنشاء "جسم" - الكود الرئيسي للتشغيل والعمل على الخادم.ستحتاج إلى ملف منفصل يمكن تسميته بأي اسم، ولكن يجب حفظه في نفس المكان الذي يوجد فيه القاموس الذي تم إنشاؤه سابقًا.
- في بيئة التطوير، افتح قائمة "File" وأنشئ ملفًا جديدًا.
- قم بلصق ثلاث أوامر هناك، والتي تهدف إلى استيراد المكتبات المثبتة والملف الذي تم إنشاؤه سابقًا:
import discord
from discord.ext import commands
from config import settings - أضف السطر
bot = commands.Bot(command_prefix = settings['prefix']) # نظرًا لأننا حددنا البادئة في settings، نتوجه إلى القاموس باستخدام المفتاح prefix
. - الكود الرئيسي هو كما يلي:
@bot.command() # لا نمرر الوسيطة pass_context، لأنها كانت مطلوبة في الإصدارات القديمة.
async def hello(ctx): # نقوم بإنشاء دالة ونعبر عن الوسيطة ctx.
author = ctx.message.author # نعلن عن المتغير author ونخزن فيه معلومات المؤلف.await ctx.send(f'Hello, {author.mention}!') # نعرض رسالة مع ذكر المؤلف، متوجهين إلى المتغير author.
- انتبه إلى التعليقات التي تأتي بعد علامة "#" — ستساعدك في فهم الغرض من كل سطر.
- الأمر لتشغيل البوت يبدو كالتالي:
bot.run(settings['token']) # نتوجه إلى القاموس settings باستخدام المفتاح token، للحصول على التوكن
. - عند الانتهاء، افتح القائمة المعروفة مرة أخرى وانتقل إلى حفظ الملف.
- اختر له أي اسم وضعه في مجلد الإعدادات.







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

import discord
from discord.ext import commands
from config import settings
bot = commands.Bot(command_prefix = settings['prefix'])
@bot.command() # لا نمرر الوسيطة pass_context، لأنها كانت مطلوبة في الإصدارات القديمة.
async def hello(ctx): # نقوم بإنشاء دالة ونعبر عن الوسيطة ctx.
author = ctx.message.author # نعلن عن المتغير author ونخزن فيه معلومات المؤلف.
await ctx.send(f'Hello, {author.mention}!') # نعرض رسالة مع ذكر المؤلف، متوجهين إلى المتغير author.
bot.run(settings['token']) # نتوجه إلى القاموس settings باستخدام المفتاح token، للحصول على التوكن
لنوضح أيضًا أنه يمكنك استخدام مخطط بديل، متخلصًا من ملف القاموس والحصول على "جسم" مختلف قليلاً للبوت.قم بتحديد ما إذا كان هذا الرمز يناسبك أكثر. يجب تعديل الأسطر المحددة مع الرمز وفقًا لاحتياجاتك.
import discord
from discord.ext import commands
TOKEN = 'رمزك'
bot = commands.Bot(command_prefix='!')
@bot.command(pass_context=True) # نسمح بتمرير المعاملات
async def test(ctx, arg): # ننشئ دالة غير متزامنة للبوت
await ctx.send(arg) # نعيد إرسال المعامل
bot.run(TOKEN)
الخطوة 4: تشغيل البوت
الآن يمكنك تشغيل البوت للتحقق، وستحتاج إلى الملف الرئيسي الذي تم إنشاؤه في الخطوة 3. قم بتجميعه مباشرة من خلال بيئة التطوير أو استدعِ "سطر الأوامر" وأدخل هناك python bot.py
، حيث bot.py هو اسم الملف الذي تم إنشاؤه. إذا لم تتمكن من العثور على الملف، يرجى تحديد المسار الكامل له، مثل python C:UsersUSER_NAMEbot.py
.

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

استخدم المصادر المفتوحة أو معرفتك الخاصة لكتابة الأوامر للبوت أو تنفيذ مهام أخرى يجب عليه القيام بها. للقيام بذلك، قم بتحرير ملفه الرئيسي أو إنشاء ملفات أخرى، وربط كل شيء في مشروع واحد.
الخيار 2: JavaScript و discord.js
الخيار التالي لإنشاء بوت لديسكورد هو استخدام JS ومكتبة discord.js الموصلة، التي تضيف جميع المكونات اللازمة للعمل مع البوتات. مبدأ العمل يختلف عن الخيار السابق فقط من حيث الأدوات واختلافات في بناء الجملة للغات البرمجة، لكنه يبقى تقريبًا كما هو.
الخطوة 1: تثبيت Node.js و discord.js
توسيع وظائف JS وتحويله إلى لغة برمجة عامة الاستخدام سيساعد على منصة Node.js، التي نوصي بتثبيتها أولاً.لذلك، قم بتنفيذ أبسط خوارزمية من الإجراءات:
انتقل إلى الموقع الرسمي لـ Node.js
- افتح صفحة Node.js على الإنترنت واختر أحدث إصدار موصى به للتنزيل.
- انتظر حتى تحصل على ملف التنفيذ وقم بتشغيله.
- اتبع التعليمات التي تظهر على الشاشة، وأكمل التثبيت وأعد تشغيل الكمبيوتر.
- افتح "ابدأ" ومن خلال البحث، ابحث عن التطبيق الكلاسيكي "سطر الأوامر".
- اكتب في سطر الأوامر الأمر
npm init
وقم بتفعيله بالضغط على Enter. - قم بإنشاء حزمة قياسية بمعلومات المستخدم، بالضغط على Enter بعد إدخال كل معلمة، أو اترك كل شيء كما هو.
- عندما يتم تعيين جميع معلمات الحزمة، ستتلقى تحذيرًا يجب تأكيده بالضغط مرة أخرى على Enter.
- أدخل الأمر
npm install
لتثبيت المكونات القياسية المفقودة. - انتظر حتى تكتمل عملية التحميل وتظهر سطر الإدخال.
- اكتب
npm install discord.js
. - بمجرد تنفيذ هذا الأمر أيضًا، افتح مجلد المستخدم الخاص بك وتأكد من وجود الملفات التي تم إنشاؤها بصيغة JSON.











الخطوة 2: العمل مع ملفات البوت
سننظر في جميع الإجراءات المتعلقة بملفات البوت والشيفرة البرمجية في إطار مرحلة واحدة، حيث إنه ليس من المنطقي تقسيمها إلى عدة مراحل.ستحتاج إلى ثلاثة ملفات أساسية، حيث يتم إدخال جميع الوظائف الضرورية: واحد مسؤول عن تكوين البوت، والثاني عن "الجسم"، والثالث يحتفظ بقائمة الأوامر المضافة.
- في البداية، أنشئ الملفات "bot.js" و "config.json" في نفس الدليل.
- افتح ملف "config.json" باستخدام محرر نصوص أو بيئة تطوير وأضف إليه الأسطر التالية:
{
"token" : "رمز_التوكن_الخاص_بك"،
"prefix" : "البادئة_التي_تفضلها"
}وبالتالي، استبدل التعبيرات بين علامات الاقتباس المزدوجة برمز توكن فريد للبوت والبادئة المفضلة لديك.
- افتح لتعديل ملف "bot.js" (بالمناسبة، يمكن أن يكون اسمه أي شيء). ألصق هناك كتلة الكود هذه.
const Discord = require('discord.js'); // نقوم بربط مكتبة discord.js
const robot = new Discord.Client(); // نعلن أن robot هو البوت
const comms = require("./comms.js"); // نقوم بربط ملف الأوامر للبوت
const fs = require('fs'); // نقوم بربط وحدة نظام الملفات الأصلية node.js
let config = require('./config.json'); // نقوم بربط ملف الإعدادات والمعلومات
let token = config.token; // "نستخرج" منه التوكن
let prefix = config.prefix; // "نستخرج" منه البريفكسrobot.on("ready", function() {
/* عند التشغيل الناجح، ستظهر رسالة في الكونسول "[اسم البوت] بدأ العمل!" */
console.log(robot.user.username + " بدأ العمل!");
});robot.on('message', (msg) => { // رد على الرسائل
if (msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator) {
var comm = msg.content.trim() + " ";
var comm_name = comm.slice(0, comm.indexOf(" "));
var messArr = comm.split(" ");
for (comm_count in comms.comms) {
var comm2 = prefix + comms.comms[comm_count].name;
if (comm2 == comm_name) {
comms.comms[comm_count].out(robot, msg, messArr);
}
}
}
});robot.login(token); // تسجيل دخول البوت
اقرأ التعليقات على الأسطر التي تلي الشرط المائل ("//") لتفهم الغرض من كل منها.
- أنشئ ملفًا ثالثًا — "comms.js"، الذي ستخزن فيه جميع الأوامر اللازمة في المستقبل.
- أدخل فيه الكتلة الأساسية، التي ستتوسع في المستقبل:
const config = require('./config.json'); // نقوم بربط ملف الإعدادات والمعلومات
const Discord = require('discord.js'); // نقوم بربط مكتبة discord.js
const prefix = config.prefix; // "نستخرج" البريفكس// الأوامر //
function test(robot, mess, args) {
mess.channel.send('اختبار!')
}// قائمة الأوامر //
var comms_list = [{
name: "test",
out: test,
about: "أمر اختبار"
}];// Name - اسم الأمر الذي سيتفاعل معه البوت
// Out - اسم الدالة الخاصة بالأمر
// About - وصف الأمرmodule.exports.comms = comms_list;





للمتابعة في العمل مع الأوامر، يكفي أن تعلن عن وظائفها وتضيف إلى القائمة الكتل البرمجية المناسبة.على سبيل المثال، الملف الجاهز "comms.js" يبدو كالتالي:
const config = require('./config.json');
const Discord = require('discord.js');
const prefix = config.prefix;
const versions = config.versions;
// الأوامر //
function test(robot, mess, args) {
mess.channel.send("اختبار!")
}
function hello(robot, mess, args) {
mess.reply("مرحبا!")
}
// قائمة الأوامر //
var comms_list = [{
name: "test",
out: test,
about: "أمر اختبار"
},
{
name: "hello",
out: hello,
about: "أمر للتحية!"
}
}
module.exports.comms = comms_list;
الخطوة 3: تشغيل البوت
تم الانتهاء من الخطوات الأولى مع البوت بلغة JavaScript، مما يعني أنه يمكن تشغيله والتحقق من عمله. للقيام بذلك، ستحتاج إلى تنفيذ ما يلي:
- افتح قائمة "ابدأ" وابحث عن "موجه الأوامر" وقم بتشغيله.
- أدخل
node bot.js
، حيث bot.js هو اسم الملف الرئيسي الذي يحتوي على كود البوت. إذا لم يكن في مجلدك الرئيسي، يجب عليك تحديد المسار الكامل إلى الملف أو الانتقال أولاً إلى الموقع باستخدام الأمرcd
.


أمثلة على الأوامر المفيدة
في ختام هذا الخيار، سنستعرض بإيجاز أمرين مفيدين قد يكونان مفيدين عند إعداد البوت. يمكن استخدامهما كأوامر اختبارية عندما لا يزال العمل على المشروع في مرحلة التطوير. الأمر الأول هو !clear
— يقوم بحذف عدد محدد من الرسائل في الدردشة.كودها يبدو كالتالي:
const arggs = mess.content.split(' ').slice(1); // جميع المعاملات بعد اسم الأمر مع البادئة
const amount = arggs.join(' '); // عدد الرسائل التي يجب حذفها
if (!amount) return mess.channel.send('لم تحدد عدد الرسائل التي يجب حذفها!'); // التحقق مما إذا تم تحديد معلمة العدد
if (isNaN(amount)) return mess.channel.send('هذا ليس رقمًا!'); // التحقق مما إذا كانت إدخال المستخدم رقمًا
if (amount > 100) return mess.channel.send('لا يمكنك حذف 100 رسالة دفعة واحدة'); // التحقق مما إذا كان إدخال المستخدم رقمًا أكبر من 100
if (amount {
mess.channel.bulkDelete(messages)
mess.channel.send(`تم حذف ${amount} رسالة!`)
})
};
delete_messages(); // استدعاء الدالة غير المتزامنة
الأمر الثاني مخصص لرمي العملة ويبدأ بإدخال !heads_or_tails
في الدردشة. هنا الكود ليس معقدًا جدًا، حيث أن الإجراءات قليلة ويجب على البوت الرد على طلب واحد فقط دون عدد كبير من المتغيرات.
mess.channel.send('يتم رمي العملة...')
var random = Math.floor(Math.random() * 4) + 1; // إعلان المتغير random - يحسب عددًا عشوائيًا من 1 إلى 3
if (random === 1) { // إذا تم حساب الرقم 1، فإن النتيجة هي النسر.
mess.channel.send(':full_moon: نسر!')
} else if (random === 2) { // إذا تم حساب الرقم 2، فإن النتيجة هي الكتابة.
mess.channel.send(':new_moon: كتابة!')
} else if (random === 3) { // إذا تم حساب الرقم 3، فإن العملة تسقط على الحافة.
mess.channel.send(':last_quarter_moon: العملة سقطت على الحافة!')
}
يمكنك العثور على أوامر مفيدة أخرى على الإنترنت ترغب في تضمينها في بوتك، ولكن للعمل معها ستحتاج إلى معرفة متقدمة في JavaScript أو Python لتصحيح الأخطاء أو تعديل الكود بنفسك.