如何在禁止列表(重复)discordjs 中获取用户

时间:2021-01-09 21:26:10

标签: discord.js

我正在尝试检查禁止列表中的用户,以查看该用户是否被服务器禁止。我一直在这里使用这个代码

let banMember = message.mentions.members.first() || await bot.users.fetch(args[0])

let bansUser = message.guild.fetchBans(banMember)

 if(!bansUser) {
// code for ban
} else {
message.channel.send("This Member is already banned")

我现在遇到的问题是用户在服务器中没有被禁止,但是当我执行此命令时,它显示用户在他没有被禁止时被禁止。

不知道我的代码哪里做错了。

我也尝试过研究以下帖子:

Cannot read property 'fetchBans' of undefined

How do I check if a user is banned or not?

进度1:当用户在公会时触发else。所以我决定将 bansUser.size > 1 反转为 bansUser.size < 1,机器人最终禁止了用户。但是在禁止用户后,当我尝试通过再次禁止来触发 else 时,else 没有出现

1 个答案:

答案 0 :(得分:0)

Guild#fetchBans 从 API 中获取一些东西。所以你需要等待它。

你可以通过写来做到这一点(函数需要是异步的)

let bansUser = await message.guild.fetchBans(banMember).catch(e => { /* Code when the user isn't banned */ })

或者通过这样写:

message.guild.fetchBans(banMember).then((bansUser) => {
    // Code when the user is banned
}).catch(error => { /* Code when the user isn't banned */ })