Discord. js проверить канал событий имеет разрешение или нет - PullRequest
0 голосов
/ 11 марта 2020

как я могу проверить разрешения канала для отправки сообщения

В моем случае я нахожусь в событии под названием userUpdate. js, где мой код похож на

module.exports =  async (client,oldUser, newUser) => {

    if (newUser.bot) return;    
    if(oldUser.username === newUser.username) return ;

        var log = client.guilds.channels.find(ch => ch.name.includes('member-log'));
        if (log != null) 
        var sEmbed = new Discord.RichEmbed()
           .setColor("RANDOM")
           .setTimestamp()
           .setDescription(`**OLD-USER** <@${oldUser.username}> **NEW-USER**\n<@${newUser.id}>`)
        log.send(sEmbed);
}

, но это не имеет параметра сообщения, как в сообщении, так как я могу проверить разрешение ботов

if (!message.channel.permissionsFor(client.user).has("SEND_MESSAGES")) return;

, так как я должен поместить это в userUpdate. js файл события?

1 Ответ

0 голосов
/ 11 марта 2020

Я вижу, у вас есть переменная log, которая является каналом, на который вы хотите отправить сообщение. Просто используйте тот же фрагмент, что и выше, но замените message.channel на log.

if (!log.permissionsFor(client.user).has("SEND_MESSAGES")) return;

Кроме того: Ваша обработка ошибок в приведенном выше сценарии довольно плохая и может сделать больше ошибок вместо их предотвращения. Вероятно, попробуйте просто вернуться, если журнал пуст. Вы можете заменить строку if (log != null) на if (!log) return;

...