Javascript 是否可以检查成员是否具有管理员权限
是否可以在Javascript 是否可以检查成员是否具有管理员权限,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,是否可以在for循环中检查discord服务器的成员是否具有管理员权限?bcz,因为我想禁止在我和我朋友的服务器中,在我的机器人下拥有角色的所有人。我该怎么做 在我的代码中,我有 else if (message.content === `${prefix}lmao`) { message.guild.members.cache.map(member => member.ban({reason: 'lol u got banned'})); 但我得到一个错误,错误是: Unha
for
循环中检查discord服务器的成员是否具有管理员权限?bcz,因为我想禁止在我和我朋友的服务器中,在我的机器人下拥有角色的所有人。我该怎么做
在我的代码中,我有
else if (message.content === `${prefix}lmao`) {
message.guild.members.cache.map(member => member.ban({reason: 'lol u got banned'}));
但我得到一个错误,错误是:
UnhandledPromiseRejectionWarning: DiscordAPIError: Missing Permissions
at RequestHandler.execute (C:\Users\dasjo\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\rest\RequestHandler.js:154:13)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async RequestHandler.push (C:\Users\dasjo\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\rest\RequestHandler.js:39:14)
我该怎么做,我的机器人禁止所有在我的机器人下扮演角色的人?禁止公会中的大量成员不是一个好主意
但是,
您可以使用GuildMembers#forEach
根据条件禁止多个成员。根据您的问题,您希望禁止那些没有管理员的人
使用Promise#catch
检测失败的禁令<代码>承诺#那么只有在禁令成功的情况下才会开火
const GuildMembers = message.guild.members.cache;
GuildMembers.forEach(member => {
if (!member.hasPermission('ADMINISTRATOR')) {
member.ban({ reason: 'lol u got banned' })
.then(_ => {
message.channel.send(`${member.displayName} successfully banned`);
})
.catch(err => {
message.channel.send(`Failed to ban ${member.displayName}`);
console.log(err);
});
}
});
map
用于创建新数组。我建议使用forEach
ok谢谢,但是错误仍然存在。。。