TypeError [INVALID_TYPE]: Предоставленный параметр не является пользователем или ролью

#javascript #node.js #discord #discord.js

#javascript #node.js #Discord #discord.js

Вопрос:

Я получил эту ошибку: (узел: 11624) UnhandledPromiseRejectionWarning: ошибка типа [INVALID_TYPE]: Предоставленный параметр не является ни пользователем, ни ролью.

Это мой код:

 const sr = message.guild.roles.cache.get(supportrole)
const everyone = message.guild.roles.cache.find((role) => role.name === "@everyone")

c.updateOverwrite(sr, {
    SEND_MESSAGE: true,
    VIEW_CHANNEL: true
});

c.updateOverwrite(everyone, {
    SEND_MESSAGE: false,
    VIEW_CHANNEL: false
});

c.updateOverwrite(message.author, {
    SEND_MESSAGE: true,
    VIEW_CHANNEL: true
});
  

Как я могу это исправить?

Ответ №1:

Эта строка:

 const everyone = message.guild.roles.cache.find((role) => role.name === "@everyone")
  

Проблема. Вы не сможете найти роль в этих условиях. Забавный факт, роль @everyone имеет тот же идентификатор, что и гильдия, в которой она находится. Таким образом, вы можете вместо этого использовать:

 const everyone = message.guild.roles.cache.get(message.guild.id)