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

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

لمزيد من التفاصيل: كيفية تثبيت Discord

الخطوة 1: تحميل وتثبيت BetterDiscord

تتحمل برنامج BetterDiscord مسؤولية إمكانية تثبيت الحالة المتغيرة في Discord.إنها توسع الوظائف العامة للرسائل، مضيفة ميزات جديدة، جزء منها سنستخدمه لاحقًا.

انتقل إلى تحميل BetterDiscord من الموقع الرسمي

  1. استخدم الرابط أعلاه للانتقال إلى الموقع الرسمي وبدء تحميل البرنامج.
  2. الانتقال إلى تحميل برنامج BetterDiscord لتثبيت الحالة المتغيرة في ديسكورد
  3. ستفتح صفحة على GitHub، حيث نوصي باختيار ملف بصيغة EXE لتحميل المثبت مباشرة.
  4. اختيار إصدار برنامج BetterDiscord لتحميله عند تثبيت الحالة المتغيرة في ديسكورد
  5. بعد الانتهاء من التحميل، افتحه من مجلد التنزيلات أو مباشرة من المتصفح.
  6. تحميل برنامج BetterDiscord بنجاح لتغيير الحالة في ديسكورد
  7. أكد على قواعد اتفاقية الترخيص للمتابعة في التثبيت.
  8. تأكيد اتفاقية الترخيص لتثبيت BetterDiscord عند إعداد الحالة المتغيرة في ديسكورد
  9. في النافذة التالية، اختر الخيار الأول — «تثبيت BandagedBD».
  10. اختيار الزر لتثبيت برنامج BetterDiscord عند إعداد الحالة المتغيرة في ديسكورد
  11. حدد الخيار «تثبيت إلى النسخة المستقرة»، إذا كانت النسخة العادية المستقرة من Discord مثبتة. يتم تحديد مسار الملفات تلقائيًا، ولكن إذا لم يحدث ذلك، سيتعين عليك تحديد الموقع يدويًا حيث يوجد الملف التنفيذي لتشغيل البرنامج.
  12. اختيار موقع الملف لتثبيت برنامج BetterDiscord عند إعداد الحالة المتغيرة في ديسكورد
  13. انتظر حتى انتهاء التثبيت، ثم أغلق هذه النافذة وأعد تشغيل Discord.
  14. تثبيت برنامج BetterDiscord بنجاح لتخصيص الحالة المتغيرة في ديسكورد

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

الخطوة 2: إنشاء إضافة لحالة متغيرة

سنقوم بإنشاء إضافة سيتم تحميلها لاحقًا في BetterDiscord وستسمح بتكوين حالة متغيرة. لقد تم كتابتها بالفعل باستخدام لغة JavaScript — الكود متاح للجميع.سيتبقى فقط تشكيل ملف منه وتحميله للاستخدام في البرنامج.

  1. لهذا، افتح Discord واضغط على أيقونة الترس، مما سينقلك إلى الإعدادات العامة.
  2. انتقل إلى إعدادات ديسكورد للتحقق من الإضافة المثبتة BetterDiscord
  3. سترى وجود قسم جديد - «Bandaged BD»، حيث انقر على السطر «Plugins».
  4. فتح قسم الإضافات لتخصيص الحالة المتغيرة في Discord
  5. اضغط على زر «Open Plugin Folder» للانتقال إلى المجلد الذي يحتوي على جميع الإضافات ذات الصلة.
  6. الانتقال إلى المجلد الذي يحتوي على مكونات إضافية لتكوين الاسم المتغير في Discord
  7. حتى الآن هو فارغ، حيث لم يتم تثبيت أي ملحقات بعد، وهو ما سنقوم بإصلاحه الآن.
  8. مجلد فارغ مع الإضافات عند إعداد اسم متغير في Discord
  9. انقر بزر الماوس الأيمن على مكان فارغ في الدليل، مرر المؤشر إلى «إنشاء» واختر خيار «مستند نصي».
  10. إنشاء مستند نصي لاسم مستخدم متغير في ديسكورد
  11. يمكنك عدم تغيير اسمه والنقر مرتين لتحريره عبر «المفكرة».
  12. الانتقال إلى تحرير ملف النص لتكوين الاسم المتغير في Discord
  13. الصق هناك الكود التالي: //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;
    }
    };

  14. إدراج سكربت في ملف نصي لتكوين الحالة المتغيرة في Discord
  15. بعد ذلك، اضغط على قائمة «ملف» ومن القائمة المنبثقة، اختر «حفظ باسم».
  16. الانتقال إلى حفظ السكربت لإعداد الحالة المتغيرة في Discord
  17. في نافذة «حفظ»، سيفتح الموقع الصحيح، لذا لا حاجة لتغييره.في حقل «نوع الملف»، حدد «جميع الملفات *.*».
  18. اختيار نوع الملف لحفظ الإضافة التي تغير الحالة في Discord
  19. كاسم للملف، اكتب «animated-status.plugin.js» وأكد حفظه.
  20. إدخال اسم المكون الإضافي عند حفظه لحالة متغيرة في Discord
  21. ارجع إلى الدليل السابق، وتأكد من وجود ملف JavaScript هناك، ويمكنك حذف المستند النصي لأنه ظل فارغًا.
  22. حفظ ناجح للإضافة لحالة متغيرة في Discord
  23. افتح قائمة «Plugins» وتحقق من وجود الإضافة التي تم إنشاؤها للتو. حرك شريط التمرير لتفعيلها.
  24. الانتقال إلى المكون الإضافي لتغيير الحالة في Discord
  25. تتم جميع الإجراءات الأخرى من خلال «Settings»، وسنتحدث عن ذلك في الخطوة التالية.
  26. فتح الإعدادات للحالة المتغيرة في Discord

الخطوة 3: إعداد الحالة المتغيرة

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

الحصول على رمز التفويض

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

  1. انقر على صورتك الرمزية لفتح قائمة الإجراءات المتعلقة بالحالات.
  2. فتح الملف الشخصي لتعيين الحالة القياسية في Discord قبل إعداد الحالة المتغيرة
  3. اختر الخيار الأخير — «تعيين حالة مخصصة».
  4. فتح القائمة لتعيين الحالة الافتراضية في Discord قبل إعداد الحالة المتغيرة
  5. اكتب أي نص واحفظ التغييرات.
  6. إضافة الحالة القياسية في Discord قبل إعداد الحالة المتغيرة
  7. استدعِ قائمة الحالات مرة أخرى واضغط على Ctrl + Shift + I لعرض وحدة تحكم المطور.
  8. فتح كود العنصر لتكوين حالة Discord المتغيرة
  9. انتقل إلى علامة التبويب «Network».
  10. انتقل إلى علامة التبويب في وحدة التحكم للمطورين لضبط الاسم المتغير في Discord
  11. من قائمة الأسماء، حدد «science» وافتح علامة التبويب «Headers».
  12. اختيار القسم في وحدة التحكم للمطورين لتكوين الاسم المتغير في Discord
  13. انزل تقريبًا إلى نهاية قائمة المعلمات، حيث ابحث عن السطر «authorization» وانسخ قيمته.
  14. نسخ الرمز لتكوين اسم متغير في ديسكورد
  15. انتقل إلى «Plugins»، افتح إعدادات الإضافة المطلوبة والصق الرمز في الحقل المخصص لذلك.
  16. إدخال الرمز لتكوين اسم مستخدم متغير في Discord

إضافة حالات للتغيير

يتبقى فقط اختيار الوقت الذي ستتغير فيه الحالات، وكتابة العدد المطلوب منها، والذي يتم كما يلي:

  1. في قائمة إعدادات الإضافة، حدد التأخير بالمللي ثانية.أدخل تأخيرًا لا يقل عن 3000 لتجنب احتمال حظر الحساب.
  2. إدخال تأخير لاسم المستخدم المتغير عند إعداده في Discord
  3. إذا كنت ترغب في إضافة رموز تعبيرية إلى الحالة، ابحث أولاً عن أي موقع يعرض صورها، وانسخها.
  4. نسخ الرموز التعبيرية لحالة المتغيرة في ديسكورد
  5. استخدم علامات الاقتباس المزدوجة — ""، التي يمكنك إدراج الحالات بداخلها في أسطر منفصلة. تدعم كل من السيريلية واللاتينية، وأنت بالفعل تعرف عن الرموز التعبيرية. اضغط على «حفظ» لحفظ الحالة المتغيرة.
  6. إدخال الحالات المتغيرة في إعدادات ملحق Discord
  7. عد إلى صفحتك وتحقق من التغييرات.
  8. التحقق من الحالة الأولى المتغيرة بعد إعدادها في Discord
  9. يجب الانتظار للمدة المحددة من الثواني حتى تتغير الحالة تلقائيًا إلى أخرى.
  10. التحقق من الحالة الثانية المتغيرة بعد إعدادها في Discord