【发布时间】:2019-11-06 00:14:51
【问题描述】:
我已经设法使 unban 命令起作用,但是现在我需要创建一个条件以避免错误,并且如果用户在禁止列表中,则需要将 unban 代码放入条件中,但我不知道如何在互联网上看到任何东西。
【问题讨论】:
-
This 可能会有所帮助
标签: javascript discord discord.js
我已经设法使 unban 命令起作用,但是现在我需要创建一个条件以避免错误,并且如果用户在禁止列表中,则需要将 unban 代码放入条件中,但我不知道如何在互联网上看到任何东西。
【问题讨论】:
标签: javascript discord discord.js
您可以使用Guild.fetchBans() 检索被禁止用户的Collection。请记住,此方法返回一个Promise。然后,您可以使用Collection.find() 搜索集合。
例子:
// Async context needed for 'await' (meaning this must be within an async function).
// Assuming 'message' is a Message within the guild.
try {
const banList = await message.guild.fetchBans();
const bannedUser = banList.find(user => user.id === 'someID');
if (bannedUser) await message.channel.send(`${bannedUser.tag} is banned.`);
else await message.channel.send('That user is not banned.');
} catch(err) {
console.error(err);
}
【讨论】:
由于 Discord.js 的软件包最新更新而导致的更新。确定用户是否被禁止的新方法与之前的方法类似,但您现在需要说明:
const targetId = banList.get(guildmemberID).user
“guildmemberID”是我的常量,这意味着你可以用任何你想要的东西替换它,就像这样:
const guildUser = args[0]
“args[0]”会根据您的目标而有所不同。将所有内容放在一起后,您的代码可能类似于以下内容:
const guildmemberID = args[0]
try {
const banList = await message.guild.fetchBans();
const targetId = banList.get(guildmemberID).user
if(targetId) {
await message.guild.members.unban(targetId);
await message.channel.send('This user has been unbanned!');
} else {
await message.channel.send('This user is not banned')
}
} catch (err) {
console.log(err);
}
请记住,如果 try/catch 块不在异步函数中,您将无法使用它。
希望对你有帮助!
【讨论】: