المحتوى:
نلاحظ أن موقف Discord بشأن تثبيت الإضافات والملحقات الإضافية لا يزال غير واضح تمامًا. بعض المستخدمين يتعرضون للحظر التلقائي من قبل الذكاء الاصطناعي إذا اختاروا إعدادات خاطئة للإضافات، والتي تُعتبر محاولة لتعطيل عمل البرنامج، لذا استخدم التعليمات التالية على مسؤوليتك الخاصة.
جميع الإجراءات التالية تتطلب التفاعل مع برنامج Discord، حيث سيكون من الضروري تثبيت ملحق له وإجراء الإعدادات، وهو ما يمكن تحقيقه فقط على الكمبيوتر (الإصدار المتصفح غير مناسب لذلك). في هذه الحالة، ستظهر الحالة المتغيرة في كل مكان. إذا لم تقم بعد بتثبيت Discord على جهاز الكمبيوتر الخاص بك، يرجى القيام بذلك باستخدام التعليمات الموجودة في الرابط أدناه.
لمزيد من التفاصيل: كيفية تثبيت Discord
الخطوة 1: تحميل وتثبيت BetterDiscord
تتحمل برنامج BetterDiscord مسؤولية إمكانية تثبيت الحالة المتغيرة في Discord.إنها توسع الوظائف العامة للرسائل، مضيفة ميزات جديدة، جزء منها سنستخدمه لاحقًا.
انتقل إلى تحميل BetterDiscord من الموقع الرسمي
- استخدم الرابط أعلاه للانتقال إلى الموقع الرسمي وبدء تحميل البرنامج.
- ستفتح صفحة على GitHub، حيث نوصي باختيار ملف بصيغة EXE لتحميل المثبت مباشرة.
- بعد الانتهاء من التحميل، افتحه من مجلد التنزيلات أو مباشرة من المتصفح.
- أكد على قواعد اتفاقية الترخيص للمتابعة في التثبيت.
- في النافذة التالية، اختر الخيار الأول — «تثبيت BandagedBD».
- حدد الخيار «تثبيت إلى النسخة المستقرة»، إذا كانت النسخة العادية المستقرة من Discord مثبتة. يتم تحديد مسار الملفات تلقائيًا، ولكن إذا لم يحدث ذلك، سيتعين عليك تحديد الموقع يدويًا حيث يوجد الملف التنفيذي لتشغيل البرنامج.
- انتظر حتى انتهاء التثبيت، ثم أغلق هذه النافذة وأعد تشغيل Discord.







بهذا، تم الانتهاء من إضافة الوظائف الموسعة إلى البرنامج. في هذه المقالة، سنتحدث فقط عن الإضافات المتاحة، وإذا كنت ترغب في معرفة المزيد عن ما يقدمه BetterDiscord، يرجى مراجعة الوصف على الموقع الرسمي أو تحقق من كل نقطة بنفسك في Discord.
الخطوة 2: إنشاء إضافة لحالة متغيرة
سنقوم بإنشاء إضافة سيتم تحميلها لاحقًا في BetterDiscord وستسمح بتكوين حالة متغيرة. لقد تم كتابتها بالفعل باستخدام لغة JavaScript — الكود متاح للجميع.سيتبقى فقط تشكيل ملف منه وتحميله للاستخدام في البرنامج.
- لهذا، افتح Discord واضغط على أيقونة الترس، مما سينقلك إلى الإعدادات العامة.
- سترى وجود قسم جديد - «Bandaged BD»، حيث انقر على السطر «Plugins».
- اضغط على زر «Open Plugin Folder» للانتقال إلى المجلد الذي يحتوي على جميع الإضافات ذات الصلة.
- حتى الآن هو فارغ، حيث لم يتم تثبيت أي ملحقات بعد، وهو ما سنقوم بإصلاحه الآن.
- انقر بزر الماوس الأيمن على مكان فارغ في الدليل، مرر المؤشر إلى «إنشاء» واختر خيار «مستند نصي».
- يمكنك عدم تغيير اسمه والنقر مرتين لتحريره عبر «المفكرة».
- الصق هناك الكود التالي:
//META{"name":"AnimatedStatus"}*//
class AnimatedStatus {
/* وظائف BD */
getName () {
return "AnimatedStatus";
}getVersion () {
return "0.8.4";
}getAuthor () {
return "toluschr";
}getDescription () {
return "قم بتحريك حالة Discord الخاصة بك";
}setData (key, value) {
BdApi.setData(this.getName(), key, value);
}getData (key) {
return BdApi.getData(this.getName(), key);
}/* الكود المتعلق بالرسوم المتحركة */
load () {
this.animation = this.getData("animation");
this.timeout = this.getData("timeout");
Status.authToken = this.getData("token");
}start () {
if (this.animation == undefined || this.timeout == undefined || Status.authToken == undefined) return;
this.Status_Animate();
}stop () {
clearTimeout(this.loop);
Status.unset();
}Status_Animate (index = 0) {
if (index >= this.animation.length) index = 0;Status.set(this.animation[index]);
this.loop = setTimeout(() => { this.Status_Animate(index + 1); }, this.timeout);
}/* وظائف متعلقة بالإعدادات */
strToAnimation (str) {
let lines = str.split("n");
let out = [];
for (let i = 0; i < lines.length; i++) {
if (lines[i].length == 0) continue;out.push(JSON.parse("[" + lines[i] + "]"));
}
return out;
}animationToStr (animation) {
if (animation == undefined) return ""let out = "";
for (let i = 0; i < animation.length; i++) {
out += JSON.stringify(animation[i]).substr(1).slice(0, -1) + "n";
}
return out;
}getSettingsPanel () {
let settings = document.createElement("div");
settings.style.padding = "10px";// رمز المصادقة
settings.appendChild(GUI.newLabel("AuthToken (https://discordhelp.net/discord-token)"));
let token = GUI.newInput();
token.value = this.getData("token");
settings.appendChild(token);settings.appendChild(GUI.newDivider());
// المهلة
settings.appendChild(GUI.newLabel("الوقت لكل إطار"));
let timeout = GUI.newInput();
timeout.value = this.getData("timeout");
settings.appendChild(timeout);settings.appendChild(GUI.newDivider());
// الرسوم المتحركة
settings.appendChild(GUI.newLabel('الرسوم المتحركة ("" لعدم وجود رموز تعبيرية)'));
let animation = GUI.newTextarea();
animation.style.fontFamily = "SourceCodePro,Consolas,Liberation Mono,Menlo,Courier,monospace";
animation.placeholder = '"رسالة 1"، "رمز تعبيري 1"n"رسالة 2"، ""n...';
animation.value = this.animationToStr(this.getData("animation"));
settings.appendChild(animation);// زر الحفظ
settings.appendChild(GUI.newDivider());
let save = GUI.newButton("حفظ");
save.onclick = () => {
// تعيين رمز المصادقة
this.setData("token", token.value);// تعيين المهلة
this.setData("timeout", timeout.value);// تعيين الرسوم المتحركة
this.setData("animation", this.strToAnimation(animation.value));this.stop();
this.load();
this.start();
};
settings.appendChild(save);// النهاية
return settings;
}
}/* واجهة برمجة تطبيقات الحالة */
const Status = {
authToken: "",request: () => {
let req = new XMLHttpRequest();
req.open("PATCH", "/api/v6/users/@me/settings", true);
req.setRequestHeader("authorization", Status.authToken);
req.setRequestHeader("content-type", "application/json");
return req;
},set: (status) => {
Status.request().send('{"custom_status":{"text":"' + status[0] + '", "emoji_name": "' + status[1] + '"}}');
},unset: () => {
Status.request().send('{"custom_status":null}');
}
};/* واجهة المستخدم */
const GUI = {
newInput: () => {
let input = document.createElement("input");
input.className = "inputDefault-_djjkz input-cIJ7To";
return input;
},newLabel: (text) => {
let label = document.createElement("h5");
label.className = "h5-18_1nd";
label.innerText = text;
return label;
},newDivider: () => {
let divider = document.createElement("div");
divider.style.paddingTop = "15px";
return divider;
},newTextarea: () => {
let textarea = document.createElement("textarea");
textarea.className = "input-cIJ7To scrollbarGhostHairline-1mSOM1";
textarea.style.resize = "vertical";
textarea.rows = 4;
return textarea;
},newButton: (text) => {
let button = document.createElement("button");
button.className = "button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeSmall-2cSMqn";
button.innerText = text;
return button;
}
};
- بعد ذلك، اضغط على قائمة «ملف» ومن القائمة المنبثقة، اختر «حفظ باسم».
- في نافذة «حفظ»، سيفتح الموقع الصحيح، لذا لا حاجة لتغييره.في حقل «نوع الملف»، حدد «جميع الملفات *.*».
- كاسم للملف، اكتب «animated-status.plugin.js» وأكد حفظه.
- ارجع إلى الدليل السابق، وتأكد من وجود ملف JavaScript هناك، ويمكنك حذف المستند النصي لأنه ظل فارغًا.
- افتح قائمة «Plugins» وتحقق من وجود الإضافة التي تم إنشاؤها للتو. حرك شريط التمرير لتفعيلها.
- تتم جميع الإجراءات الأخرى من خلال «Settings»، وسنتحدث عن ذلك في الخطوة التالية.













الخطوة 3: إعداد الحالة المتغيرة
المرحلة الأخيرة هي إعداد الحالة المتغيرة باستخدام الإضافة المضافة. الآن يجب إعداد الإضافة نفسها، مع تحديد معلمة واحدة فقط. يتم الحصول عليها من خلال عدة خطوات، لذا سنقوم بشرحها بشكل منفصل.
الحصول على رمز التفويض
رمز التفويض ضروري للإضافة لتنفيذ الإجراءات التلقائية لتغيير الحالة. للحصول عليه، ستحتاج إلى وحدة تحكم المطور وحالة عادية تم تعيينها مسبقًا.
- انقر على صورتك الرمزية لفتح قائمة الإجراءات المتعلقة بالحالات.
- اختر الخيار الأخير — «تعيين حالة مخصصة».
- اكتب أي نص واحفظ التغييرات.
- استدعِ قائمة الحالات مرة أخرى واضغط على Ctrl + Shift + I لعرض وحدة تحكم المطور.
- انتقل إلى علامة التبويب «Network».
- من قائمة الأسماء، حدد «science» وافتح علامة التبويب «Headers».
- انزل تقريبًا إلى نهاية قائمة المعلمات، حيث ابحث عن السطر «authorization» وانسخ قيمته.
- انتقل إلى «Plugins»، افتح إعدادات الإضافة المطلوبة والصق الرمز في الحقل المخصص لذلك.








إضافة حالات للتغيير
يتبقى فقط اختيار الوقت الذي ستتغير فيه الحالات، وكتابة العدد المطلوب منها، والذي يتم كما يلي:
- في قائمة إعدادات الإضافة، حدد التأخير بالمللي ثانية.أدخل تأخيرًا لا يقل عن 3000 لتجنب احتمال حظر الحساب.
- إذا كنت ترغب في إضافة رموز تعبيرية إلى الحالة، ابحث أولاً عن أي موقع يعرض صورها، وانسخها.
- استخدم علامات الاقتباس المزدوجة —
""
، التي يمكنك إدراج الحالات بداخلها في أسطر منفصلة. تدعم كل من السيريلية واللاتينية، وأنت بالفعل تعرف عن الرموز التعبيرية. اضغط على «حفظ» لحفظ الحالة المتغيرة. - عد إلى صفحتك وتحقق من التغييرات.
- يجب الانتظار للمدة المحددة من الثواني حتى تتغير الحالة تلقائيًا إلى أخرى.




