Discord.js 解禁所有用户
Posted
技术标签:
【中文标题】Discord.js 解禁所有用户【英文标题】:Discord.js Unban all users 【发布时间】:2020-11-19 09:50:54 【问题描述】:您好,我正在尝试在 discord.js 中创建一个命令来取消禁止所有被禁止的用户,但是当我执行 ub all 命令时,它说取消禁止所有但没有取消禁止任何人,这是我目前的代码
bot.on('message', message =>
const member = message.member;
switch(message.content.toLowerCase())
case (PREFIX + "ub all"):
if(member.hasPermission('ADMINISTRATOR'))
async function ubAll()
const users = await message.guild.fetchBans()
for (const user of users.array())
await message.guild.unban(user)
message.reply("Unbanned all users from the server.")
if(!member.hasPermission('ADMINISTRATOR'))
message.reply("You do not have enough permissions for this command!")
)
【问题讨论】:
您使用的是哪个版本的 Discord JS?您可以在package.json
中查看。
我正在使用 discord.js: 12.2.0
【参考方案1】:
unban
不是guild
的方法。您需要使用guild.members.unban()
。
bot.on("message", message =>
switch(message.content.toLowerCase())
case (PREFIX + "ub all"):
if (message.member.hasPermission("ADMINISTRATOR"))
message.guild.fetchBans().then(bans =>
if (bans.size == 0) message.reply("There are no banned users."); throw "No members to unban.";
bans.forEach(ban =>
message.guild.members.unban(ban.user.id);
);
).then(() => message.reply("Unbanned all users.")).catch(e => console.log(e))
else message.reply("You do not have enough permissions for this command.")
break;
);
【讨论】:
【参考方案2】:bot.on('message', message =>
const member = message.member;
switch(message.content.toLowerCase())
case (PREFIX + "ub all"):
if(member.hasPermission('ADMINISTRATOR'))
message.guild.fetchBans().forEach((fB)=>
message.guild.members.unban(fB.user.id);
)
// All Users get unbanned
else
// User does not have permission.
)
我强烈建议您查看 Discord.JS v12 文档。 https://discord.js.org/#/docs/main/stable/general/welcome
【讨论】:
【参考方案3】:您正在声明ubAll
函数,但实际上并未调用它。
您也可以将最后的if
替换为else
。
bot.on("message", async (message) =>
const member = message.member;
switch (message.content.toLowerCase())
case PREFIX + "ub all":
if (member.hasPermission("ADMINISTRATOR"))
const users = await message.guild.fetchBans();
for (const user of users.array())
await message.guild.unban(user);
message.reply("Unbanned all users from the server.");
else
message.reply("You do not have enough permissions for this command!");
);
【讨论】:
以上是关于Discord.js 解禁所有用户的主要内容,如果未能解决你的问题,请参考以下文章