Discord.JS | Проблема с переводом прав роли

Статус
В этой теме нельзя размещать новые ответы.

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
433
Доброго времени суток! Начал писать оповещения о создании новой роли.
perms.json:
{
    "ADMINISTRATOR":            "Администратор",
    "CREATE_INSTANT_INVITE":    "Создание приглашений",
    "KICK_MEMBERS":             "Выгонять участников",
    "BAN_MEMBERS":              "Бан участников",
    "MANAGE_CHANNELS":          "Управление каналами",
    "MANAGE_GUILD":             "Управление сервером",
    "ADD_REACTIONS":            "Добавление реакций",
    "VIEW_AUDIT_LOG":           "Просмотр журнала аудита",
    "PRIORITY_SPEAKER":         "Приоритетный режим",
    "STREAM":                   "Стрим",
    "VIEW_CHANNEL":             "Просмотр каналов",
    "SEND_MESSAGES":            "Отправлять сообщения",
    "SEND_TTS_MESSAGES":        "Отправлять TTS сообщения",
    "MANAGE_MESSAGES":          "Управление сообщениями",
    "EMBED_LINKS":              "Embed сообщения",
    "ATTACH_FILES":             "Прикреплять файлы",
    "READ_MESSAGE_HISTORY":     "Читать историю сообщений",
    "MENTION_EVERYONE":         "Упоминания",
    "USE_EXTERNAL_EMOJIS":      "Использование внешних эмодзи",
    "VIEW_GUILD_INSIGHTS":      "Просмотр аналитики сервера",
    "CONNECT":                  "Подключаться",
    "SPEAK":                    "Говорить",
    "MUTE_MEMBERS":             "Отключать участникам микрофон",
    "DEAFEN_MEMBERS":           "Отключать участникам звук",
    "MOVE_MEMBERS":             "Перемещать участников",
    "USE_VAD":                  "Использовать режим активации по голосу",
    "CHANGE_NICKNAME":          "Изменить никнейм",
    "MANAGE_NICKNAMES":         "Управление никнеймами",
    "MANAGE_ROLES":             "Управление ролями",
    "MANAGE_WEBHOOKS":          "Управление вебхуками",
    "MANAGE_EMOJIS":            "Управление эмодзи"
}
Код index.js:
client.on('roleCreate', role => {  
    const permsNames = require('./perms.json');
    var i;
    var permissionsObject = [];

    for(i = 0; i < role.permissions.toArray().length; i++) {
        permissionsObject.push({ permName: role.permissions.toArray()[i] });
    }

    var m;
    var permissionsArray = [];

    let permNames = Object.values(permsNames);

    for(m = 0; m < permNames.length; m++) {
        permissionsArray.push({ permName: permNames[m] });
    }

    console.log(permissionsArray);
});
Как можно произвести поиск названия прав роли по данному JSON файлу?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #2
Как можно произвести поиск названия прав роли по данному JSON файлу?
Именно те, что ключами представлены или значениями?
Если ключи - Object.keys(permsNames) вернёт массив имеющихся ключей.
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
433
Именно те, что ключами представлены или значениями?
Если ключи - Object.keys(permsNames) вернёт массив имеющихся ключей.
Ключами. По ключам уже найти перевод и вставить в окончательный массив.
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
@xyligan,
JavaScript:
const jsonFile = require('./example.json');
client.on('roleCreate', (role) => {
    let permissionsArray = role.permissions.toArray();

    // Не имеет смысла делать это каждый раз
    //const jsonFile = require('./example.json');

    for (let prop in jsonFile) {
        const idx = permissionsArray.indexOf(prop);
       
        if(idx != -1) {
            permissionsArray[idx] = jsonFile[prop];
        }
    }

    console.log(permissionsArray);

});

// Output:
//[
//  'Создание приглашений',
//  'Добавление реакций',
//  'Стрим',
//  'Просмотр каналов',
//  'Отправлять сообщения',
//  'Отправлять TTS сообщения',
//  'Embed сообщения',
//  'Прикреплять файлы',
//  'Читать историю сообщений',
//  'Использование внешних эмодзи',
//  'Подключаться',
//  'Говорить',
//  'Использовать режим активации по голосу',
//  'Изменить никнейм'
//]
 
Последнее редактирование:

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
433
@xyligan,
JavaScript:
const jsonFile = require('./example.json');
client.on('roleCreate', (role) => {
    let permissionsArray = role.permissions.toArray();

    // Не имеет смысла делать это каждый раз
    //const jsonFile = require('./example.json');

    for (let prop in jsonFile) {
        const idx = permissionsArray.indexOf(prop);
      
        if(idx != -1) {
            permissionsArray[idx] = jsonFile[prop];
        }
    }

    console.log(permissionsArray);

});

// Output:
//[
//  'Создание приглашений',
//  'Добавление реакций',
//  'Стрим',
//  'Просмотр каналов',
//  'Отправлять сообщения',
//  'Отправлять TTS сообщения',
//  'Embed сообщения',
//  'Прикреплять файлы',
//  'Читать историю сообщений',
//  'Использование внешних эмодзи',
//  'Подключаться',
//  'Говорить',
//  'Использовать режим активации по голосу',
//  'Изменить никнейм'
//]
Спасибо за помощь. Код разобрал и понял, что и как делать =)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу