#javascript #node.js #discord
#javascript #node.js #Discord
Вопрос:
Я испытываю проблему с моим ботом Discord. Что делает id, он создает канал по команде и присваивает конкретной роли разрешение «VIEW_CHANNEL». Теперь проблема в том, что мне нужно получить идентификатор роли. Я пробовал это (код ниже), но это не работает.
let admin = message.guild.roles.cache.find(role => role.name === "LuisChatAdmin").id;
РЕДАКТИРОВАТЬ: Вот ошибка. Извините, я забыл прикрепить его.
(node:11956) UnhandledPromiseRejectionWarning: TypeError [INVALID_TYPE]: Supplied parameter is not a User nor a Role. at Function.resolve (C:UsersUserDesktopStuffScheiße die sich verpissen sollLuisChatnode_modulesdiscord.jssrcstructuresPermissionOverwrites.js:177:28) at C:UsersUserDesktopStuffScheiße die sich verpissen sollLuisChatnode_modulesdiscord.jssrcmanagersGuildChannelManager.js:109:81 at Array.map (<anonymous>) at GuildChannelManager.create (C:UsersUserDesktopStuffScheiße die sich verpissen sollLuisChatnode_modulesdiscord.jssrcmanagersGuildChannelManager.js:109:51) at Client.<anonymous> (C:UsersUserDesktopStuffScheiße die sich verpissen sollLuisChatbot.js:230:34) at Client.emit (events.js:333:22) at MessageCreateAction.handle (C:UsersUserDesktopStuffScheiße die sich verpissen sollLuisChatnode_modulesdiscord.jssrcclientactionsMessageCreate.js:31:14) at Object.module.exports [as MESSAGE_CREATE] (C:UsersUserDesktopStuffScheiße die sich verpissen sollLuisChatnode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32) at WebSocketManager.handlePacket (C:UsersUserDesktopStuffScheiße die sich verpissen sollLuisChatnode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:384:31) at WebSocketShard.onPacket (C:UsersUserDesktopStuffScheiße die sich verpissen sollLuisChatnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:444:22)
ПРАВКА 2: вот весь код:
client.on('message', message => { if (message.content === "!setup") { if (message.channel.type === "text") { let admin = message.guild.roles.cache.find(role => role.name === "LuisChatAdmin").id; let bot = "752206832843620525"; if (message.guild.member(message.author).hasPermission("ADMINISTRATOR")) { message.delete(); if (message.guild.roles.cache.find(role => role.name === "LuisChatBypass")) { message.channel.send({ embed: { color: 15158332, author: { }, title: "Fehler", description: "Die Rollen existieren bereits.", }}) } else { message.guild.roles.create({ data: { name: "LuisChat Bypass", color: 'GREEN', } }) message.guild.roles.create({ data: { name: 'LuisChat Admin', color: 'RED', } }); message.guild.channels.create('luischat', { type: 'category', permissionOverwrites: [ { id: bot, allow: ['SEND_MESSAGES', 'VIEW_CHANNEL'], }, { id: admin, allow: ['VIEW_CHANNEL'], }, { id: message.guild.id, deny: ['VIEW_CHANNEL'], } ] }) } } } } })
Комментарии:
1. » Это не работает » Откуда вы это знаете? Вы заметили какие-либо ошибки? Если да, то почему вы не предоставили их здесь?
2. Судя по ошибке, проблема не в этой строке. Проблема в том, что вы неправильно настроили разрешения канала. Пожалуйста, предоставьте также этот код.
Ответ №1:
Попробуйте это
if(message.member.roles.cache.some(r=>["USER ROL"].includes(r.name)) ) {
message.channel.send('MESSAGE')
} else {
message.channel.send('u can't use because you don´t have permissions')
}
Комментарии:
1. Спасибо за вашу помощь. У меня это сработало.