Создание меняющегося статуса в Discord

Содержание

  • Шаг 1: Скачивание и установка BetterDiscord
  • Шаг 2: Создание плагина для меняющегося статуса
  • Шаг 3: Настройка меняющегося статуса
    • Получение авторизационного токена
    • Добавление статусов для изменения
  • Вопросы и ответы

Отметим, что позиция Discord по поводу установки расширений и дополнительных плагинов пока до конца не ясна. Некоторые юзеры попадают под автоматический бан со стороны ИИ, если выбирают неправильные настройки расширений, которые воспринимаются как попытка нарушить работоспособность софта, поэтому используйте приведенную далее инструкцию только на свой страх и риск.

Все дальнейшие действия подразумевают взаимодействие с компьютерной программой Discord, поскольку понадобится установить для нее плагин и выполнить настройку, что возможно реализовать только на ПК (браузерная версия для этого не подойдет). При этом уже меняющийся статус будет виден везде. Если вы еще не инсталлировали Дискорд на свой компьютер, сделайте это, воспользовавшись инструкцией по ссылке ниже.

Подробнее: Как установить Discord

Шаг 1: Скачивание и установка BetterDiscord

За возможность установки меняющегося статуса в Дискорде отвечает программа BetterDiscord. Она расширяет общую функциональность мессенджера, добавляя новые функции, часть из которых мы и будем использовать в дальнейшем.

Перейти к скачиванию BetterDiscord с официального сайта

  • Воспользуйтесь ссылкой выше, чтобы перейти на официальный сайт и начать скачивание программы.
  • Создание меняющегося статуса в Discord

  • Произойдет открытие страницы на GitHub, где рекомендуем сразу выбрать файл формата EXE для загрузки установщика.
  • Создание меняющегося статуса в Discord

  • По завершении скачивания откройте его из папки с загрузками или прямо через браузер.
  • Создание меняющегося статуса в Discord

  • Подтвердите правила лицензионного соглашения для продолжения установки.
  • Создание меняющегося статуса в Discord

  • В следующем окне выберите первый вариант — «Install BandagedBD».
  • Создание меняющегося статуса в Discord

  • Отметьте галочкой «Install To Stable», если установлена обычная стабильная версия Дискорда. Путь к файлам определяется автоматически, но если этого не произошло, придется вручную указать расположение, где находится исполняемый файл для запуска софта.
  • Создание меняющегося статуса в Discord

  • Ожидайте окончания инсталляции, после чего закройте данное окно и перезагрузите Дискорд.
  • Создание меняющегося статуса в Discord

    На этом добавление расширенной функциональности в программу завершено. В этой статье мы поговорим только о доступных плагинах, а если вы желаете узнать, что еще предоставляет BetterDiscord, ознакомьтесь с описанием на официальном сайте или самостоятельно проверьте каждый пункт в самом Дискорде.

    Шаг 2: Создание плагина для меняющегося статуса

    Создадим плагин, который далее будет загружен в BetterDiscord и позволит настроить меняющийся статус. Он уже написан при помощи языка JavaScript — код находится в открытом доступе. Останется только сформировать из него файл и загрузить для использования в программе.

  • Для этого откройте Discord и нажмите по значку с шестеренкой, перейдя тем самым в общие настройки.
  • Создание меняющегося статуса в Discord

  • Вы увидите наличие нового раздела — «Bandaged BD», где щелкните по строке «Plugins».
  • Создание меняющегося статуса в Discord

  • Нажмите кнопку «Open Plugin Folder», чтобы перейти в ту папку, где хранятся все связанные плагины.
  • Создание меняющегося статуса в Discord

  • Пока что она пустая, поскольку ни одно расширение еще не установлено, что мы сейчас и исправим.
  • Создание меняющегося статуса в Discord

  • Нажмите по пустому месту в директории правой кнопкой мыши, наведите курсор на «Создать» и выберите вариант «Текстовый документ».
  • Создание меняющегося статуса в Discord

  • Можно не менять ему название и дважды кликнуть для редактирования через «Блокнот».
  • Создание меняющегося статуса в Discord

  • Вставьте туда следующий код:

    //META{«name»:»AnimatedStatus»}*//

    class AnimatedStatus {
    /* BD functions */
    getName () {
    return «AnimatedStatus»;
    }

    getVersion () {
    return «0.8.4»;
    }

    getAuthor () {
    return «toluschr»;
    }

    getDescription () {
    return «Animate your Discord status»;
    }

    setData (key, value) {
    BdApi.setData(this.getName(), key, value);
    }

    getData (key) {
    return BdApi.getData(this.getName(), key);
    }

    /* Code related to Animations */
    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);
    }

    /* Settings related functions */
    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»;

    // Auth token
    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());

    // timeout
    settings.appendChild(GUI.newLabel(«Time per Keyframe»));
    let timeout = GUI.newInput();
    timeout.value = this.getData(«timeout»);
    settings.appendChild(timeout);

    settings.appendChild(GUI.newDivider());

    // Animation
    settings.appendChild(GUI.newLabel(‘Animation («» for no Emoji)’));
    let animation = GUI.newTextarea();
    animation.style.fontFamily = «SourceCodePro,Consolas,Liberation Mono,Menlo,Courier,monospace»;
    animation.placeholder = ‘»Message 1″, «Emoji 1″n»Message 2», «»n…’;
    animation.value = this.animationToStr(this.getData(«animation»));
    settings.appendChild(animation);

    // Save Button
    settings.appendChild(GUI.newDivider());
    let save = GUI.newButton(«Save»);
    save.onclick = () => {
    // Set Auth token
    this.setData(«token», token.value);

    // Set timeout
    this.setData(«timeout», timeout.value);

    // Set Animation
    this.setData(«animation», this.strToAnimation(animation.value));

    this.stop();
    this.load();
    this.start();
    };
    settings.appendChild(save);

    // End
    return settings;
    }
    }

    /* Status API */
    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}’);
    }
    };

    /* GUI Wrapper */
    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;
    }
    };

  • Создание меняющегося статуса в Discord

  • После этого нажмите по меню «Файл» и из появившегося списка выберите «Сохранить как».
  • Создание меняющегося статуса в Discord

  • В окне «Сохранение» откроется правильное расположение, поэтому менять его не нужно. В поле «Тип файла» укажите «Все файлы *.*».
  • Создание меняющегося статуса в Discord

  • В качестве названия файла впишите «animated-status.plugin.js» и подтвердите сохранение.
  • Создание меняющегося статуса в Discord

  • Вернитесь к прошлой директории, убедитесь в наличии там файла JavaScript, а текстовый документ можно удалить, поскольку он так и остался пустым.
  • Создание меняющегося статуса в Discord

  • Откройте меню «Plugins» и проверьте наличие созданного только что плагина. Передвиньте ползунок для его активации.
  • Создание меняющегося статуса в Discord

  • Все остальные действия выполняются через «Settings», о чем речь пойдет в следующем шаге.
  • Создание меняющегося статуса в Discord

    Шаг 3: Настройка меняющегося статуса

    Последний этап — настройка меняющегося статуса при помощи добавленного плагина. Сейчас нужно настроить сам плагин, указав всего один параметр. Его получение производится в несколько действий, поэтому разберем его отдельно.

    Получение авторизационного токена

    Авторизационный токен необходим плагину, чтобы совершать автоматические действия смены статуса. Для его получения понадобится консоль разработчика и уже заданный обычный статус.

  • Нажмите по своей аватарке для открытия меню действий со статусами.
  • Создание меняющегося статуса в Discord

  • Выберите последний вариант — «Задать пользовательский статус».
  • Создание меняющегося статуса в Discord

  • Впишите любую надпись и сохраните изменения.
  • Создание меняющегося статуса в Discord

  • Снова вызовите меню со статусами и нажмите Ctrl + Shift + I для отображения консоли разработчика.
  • Создание меняющегося статуса в Discord

  • В ней перейдите на вкладку «Network».
  • Создание меняющегося статуса в Discord

  • Из списка имен выделите «science» и откройте вкладку «Headers».
  • Создание меняющегося статуса в Discord

  • Опуститесь почти к концу перечня параметров, где найдите строку «authorization» и скопируйте его значение.
  • Создание меняющегося статуса в Discord

  • Перейдите в «Plugins», откройте настройки необходимого плагина и вставьте токен в отведенное для этого поле.
  • Создание меняющегося статуса в Discord

    Добавление статусов для изменения

    Остается только выбрать время, через которое будут меняться статусы, и вписать их необходимое количество, что происходит следующим образом:

  • В меню настройки плагина установите задержку в миллисекундах. Впишите задержку не менее 3000, чтобы избежать возможного получения блокировки аккаунта.
  • Создание меняющегося статуса в Discord

  • Если хотите добавить в статус смайлики, предварительно найдите любой сайт, где показаны их изображения, и скопируйте.
  • Создание меняющегося статуса в Discord

  • Используйте двойные кавычки — «», внутри которых и вставьте статусы в отдельных строках. Поддерживается как кириллица, так и латиница, о эмодзи вы уже знаете. Нажмите на «Save» для сохранения меняющегося статуса.
  • Создание меняющегося статуса в Discord

  • Вернитесь к своей странице и проверьте изменения.
  • Создание меняющегося статуса в Discord

  • Необходимо подождать указанное количество секунд, чтобы статус автоматически поменялся на другой.
  • Создание меняющегося статуса в Discord

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *