Discord.js DiscordAPIError:缺少权限---缺少哪个权限?
我有一个机器人,它应该在一个特定的类别下创建一个频道,然后向这个频道添加两个用户 下面的代码“应该”可以工作并添加用户2,但是失败了,出现了DiscordAPIError:缺少权限。 我搞不清楚这需要什么样的许可Discord.js DiscordAPIError:缺少权限---缺少哪个权限?,discord,discord.js,Discord,Discord.js,我有一个机器人,它应该在一个特定的类别下创建一个频道,然后向这个频道添加两个用户 下面的代码“应该”可以工作并添加用户2,但是失败了,出现了DiscordAPIError:缺少权限。 我搞不清楚这需要什么样的许可 function addUserToChannel(ch, user, altCh) { console.log(user.username,"sendmsg",ch.permissionsFor(client.user).has("MANAGE_CH
function addUserToChannel(ch, user, altCh) {
console.log(user.username,"sendmsg",ch.permissionsFor(client.user).has("MANAGE_CHANNELS", false)); //returns true
if (!ch.permissionsFor(user).has("SEND_MESSAGES", false)) {
console.log("User", user.username, "lacks view-channel permission");
ch.updateOverwrite(user, { //fails here obviously
SEND_MESSAGES: true,
VIEW_CHANNEL: true
});
} else {
console.log("WARN:", user.username, " already in channel ", ch.name);
altCh.send(user.toString() + " join conversation here: " + ch.toString());
}
}
使用以下代码创建通道:
function createPrivateChannel(guild, convo, user) {
let everyoneRole = guild.roles.cache.find(r => r.name === "@everyone");
let parent = guild.channels.cache.find(ch => {
//console.log(ch.id,secret.convoCat.id);
return ch.id == secret.convoCat.id;
});
return guild.channels.create(convo.chName, {
type: "text",
parent: parent,
permissionOverwrites: [
{
id: everyoneRole.id, //private channel
deny: ["VIEW_CHANNEL", "SEND_MESSAGES"]
},
{
id: client.user.id, //bot permissions
allow: [ "VIEW_CHANNEL", "SEND_MESSAGES", "READ_MESSAGE_HISTORY", "MANAGE_CHANNELS" ]
},
{
id: user.user.id, //a different user
allow: ["VIEW_CHANNEL", "SEND_MESSAGES", "READ_MESSAGE_HISTORY"]
}
]
});
}
根据(这是updateOverwrite
最终使用的):
需要管理\u角色
权限。只能允许/拒绝您的机器人在公会或频道中拥有的权限(除非您的机器人在频道中拥有MANAGE\u角色
overwrite)
我添加了一个catch处理程序来处理错误消息,发现有一个错误代码:50013如果这是任何帮助的话显然“MANAGE_CHANNEL”的意思与我理解的不同。。。