我正在尝试检查禁止列表中的用户,以查看该用户是否被服务器禁止。我一直在这里使用这个代码
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 没有出现
答案 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 */ })