Отметим, что позиция Discord по поводу установки расширений и дополнительных плагинов пока до конца не ясна. Некоторые юзеры попадают под автоматический бан со стороны ИИ, если выбирают неправильные настройки расширений, которые воспринимаются как попытка нарушить работоспособность софта, поэтому используйте приведенную далее инструкцию только на свой страх и риск.
Все дальнейшие действия подразумевают взаимодействие с компьютерной программой Discord, поскольку понадобится установить для нее плагин и выполнить настройку, что возможно реализовать только на ПК (браузерная версия для этого не подойдет). При этом уже меняющийся статус будет виден везде. Если вы еще не инсталлировали Дискорд на свой компьютер, сделайте это, воспользовавшись инструкцией по ссылке ниже.
Подробнее: Как установить Discord
Шаг 1: Скачивание и установка BetterDiscord
За возможность установки меняющегося статуса в Дискорде отвечает программа BetterDiscord. Она расширяет общую функциональность мессенджера, добавляя новые функции, часть из которых мы и будем использовать в дальнейшем.
Перейти к скачиванию BetterDiscord с официального сайта
- Воспользуйтесь ссылкой выше, чтобы перейти на официальный сайт и начать скачивание программы.
- Произойдет открытие страницы на GitHub, где рекомендуем сразу выбрать файл формата EXE для загрузки установщика.
- По завершении скачивания откройте его из папки с загрузками или прямо через браузер.
- Подтвердите правила лицензионного соглашения для продолжения установки.
- В следующем окне выберите первый вариант — «Install BandagedBD».
- Отметьте галочкой «Install To Stable», если установлена обычная стабильная версия Дискорда. Путь к файлам определяется автоматически, но если этого не произошло, придется вручную указать расположение, где находится исполняемый файл для запуска софта.
- Ожидайте окончания инсталляции, после чего закройте данное окно и перезагрузите Дискорд.
На этом добавление расширенной функциональности в программу завершено. В этой статье мы поговорим только о доступных плагинах, а если вы желаете узнать, что еще предоставляет BetterDiscord, ознакомьтесь с описанием на официальном сайте или самостоятельно проверьте каждый пункт в самом Дискорде.
Шаг 2: Создание плагина для меняющегося статуса
Создадим плагин, который далее будет загружен в BetterDiscord и позволит настроить меняющийся статус. Он уже написан при помощи языка JavaScript — код находится в открытом доступе. Останется только сформировать из него файл и загрузить для использования в программе.
- Для этого откройте Discord и нажмите по значку с шестеренкой, перейдя тем самым в общие настройки.
- Вы увидите наличие нового раздела — «Bandaged BD», где щелкните по строке «Plugins».
- Нажмите кнопку «Open Plugin Folder», чтобы перейти в ту папку, где хранятся все связанные плагины.
- Пока что она пустая, поскольку ни одно расширение еще не установлено, что мы сейчас и исправим.
- Нажмите по пустому месту в директории правой кнопкой мыши, наведите курсор на «Создать» и выберите вариант «Текстовый документ».
- Можно не менять ему название и дважды кликнуть для редактирования через «Блокнот».
- Вставьте туда следующий код:
//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;
}
};
- После этого нажмите по меню «Файл» и из появившегося списка выберите «Сохранить как».
- В окне «Сохранение» откроется правильное расположение, поэтому менять его не нужно. В поле «Тип файла» укажите «Все файлы *.*».
- В качестве названия файла впишите «animated-status.plugin.js» и подтвердите сохранение.
- Вернитесь к прошлой директории, убедитесь в наличии там файла JavaScript, а текстовый документ можно удалить, поскольку он так и остался пустым.
- Откройте меню «Plugins» и проверьте наличие созданного только что плагина. Передвиньте ползунок для его активации.
- Все остальные действия выполняются через «Settings», о чем речь пойдет в следующем шаге.
Шаг 3: Настройка меняющегося статуса
Последний этап — настройка меняющегося статуса при помощи добавленного плагина. Сейчас нужно настроить сам плагин, указав всего один параметр. Его получение производится в несколько действий, поэтому разберем его отдельно.
Получение авторизационного токена
Авторизационный токен необходим плагину, чтобы совершать автоматические действия смены статуса. Для его получения понадобится консоль разработчика и уже заданный обычный статус.
- Нажмите по своей аватарке для открытия меню действий со статусами.
- Выберите последний вариант — «Задать пользовательский статус».
- Впишите любую надпись и сохраните изменения.
- Снова вызовите меню со статусами и нажмите Ctrl + Shift + I для отображения консоли разработчика.
- В ней перейдите на вкладку «Network».
- Из списка имен выделите «science» и откройте вкладку «Headers».
- Опуститесь почти к концу перечня параметров, где найдите строку «authorization» и скопируйте его значение.
- Перейдите в «Plugins», откройте настройки необходимого плагина и вставьте токен в отведенное для этого поле.
Добавление статусов для изменения
Остается только выбрать время, через которое будут меняться статусы, и вписать их необходимое количество, что происходит следующим образом:
- В меню настройки плагина установите задержку в миллисекундах. Впишите задержку не менее 3000, чтобы избежать возможного получения блокировки аккаунта.
- Если хотите добавить в статус смайлики, предварительно найдите любой сайт, где показаны их изображения, и скопируйте.
- Используйте двойные кавычки —
""
, внутри которых и вставьте статусы в отдельных строках. Поддерживается как кириллица, так и латиница, о эмодзи вы уже знаете. Нажмите на «Save» для сохранения меняющегося статуса. - Вернитесь к своей странице и проверьте изменения.
- Необходимо подождать указанное количество секунд, чтобы статус автоматически поменялся на другой.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Пишет content errors
Здравствуйте, Тема. Опишите, пожалуйста, проблему более детально. На каком именно этапе возникает подобная проблема? Проверьте правильность выполняемых действий и убедитесь в том, что не вносите никаких изменений в код, который вставляется при установке плагина. Статья была написана недавно и все действия описываются последовательно, я их выполнял самостоятельно, поэтому само дополнение точно рабочее и код плагина актуальный. Скорее всего, во время выполнения инструкций вами были допущены ошибки.
Проблема на скриншоте. Как исправить?
Здравствуйте, Анастасия, в самом плагине отсутствует или добавлена лишняя кавычка. Удалите его файл и создайте заново, скопируйте код из этой статьи, только на этот раз убедитесь в том, что абсолютно все знаки были скопированы. Соответственно, перед созданием нового плагина нужно удалить старый и проверить, чтобы он не отображался в программе.
Сделала все, как сказали, и все равно пишет про лишнюю кавычку. Код скопировала строго на странице, не копируя другие символы
Здравствуйте еще раз. Только что все перепроверили и поменяли. Оказалось, что сам сайт не отображает некоторые символы по причине их кодировки. Сейчас все настроили и вы можете скопировать текст заново и создать новый плагин. Не забудьте указать для него соответствующее название.
Большое спасибо, все помогло и статус работает)
Первый день статус работал, на следующий день перестал меняться. Настройки не сброшены. Надо обновлять какие-то параметры каждый день?
Вот такая ошибка вылезает в консоли каждый раз, когда статус пытается обновиться