【问题标题】:how to fetch a user in the banlist (duplicate) discordjs如何在禁止列表中获取用户(重复) discordjs
【发布时间】:2021-04-15 06:27:05
【问题描述】:

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

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 没有出现

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    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 */ })
    

    【讨论】:

    • 您好,我已经尝试将 await 放在那里,正如您告诉我的那样,结果由于某种原因没有改善。我再次尝试在我的服务器中禁止一个用户,它仍然说这个用户在他没有被禁止的时候被禁止了!谢谢你的回答。
    • 我编辑了我的答案,因为我忘记了您需要检查集合的大小,该集合是从方法fetchBans返回的
    • 您好,很抱歉在这里回复晚了。我已将代码编辑为 bansUser.size
    • 那你没有正确实现 await。如果代码太长,您可以通过 pastebin 或 hastebin 将您的代码发送给我吗?
    • 您好,感谢您的回复。这是我在 pastebin pastebin.com/gZgwNH3m 的代码
    猜你喜欢
    • 2017-06-09
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 2019-11-12
    • 2017-05-23
    • 1970-01-01
    • 2020-07-01
    • 2018-04-15
    相关资源
    最近更新 更多