如何检查用户是否被禁止?

时间:2019-06-24 08:08:28

标签: javascript discord discord.js

我设法使unban命令起作用,但是现在我需要制定一个条件以避免错误,并且如果用户在禁止列表中,则需要将unban代码放入条件中,但是我不知道如何以及在互联网上什么都没看到。

2 个答案:

答案 0 :(得分:0)

您可以使用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);
}

答案 1 :(得分:0)

由于 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 块不在异步函数中,则您不能使用它。

希望对您有所帮助!