【问题标题】:Command raised an exception: KeyError: 'users' wen I execute ban command [closed]命令引发异常:KeyError:'users' wen 我执行禁令命令 [关闭]
【发布时间】:2021-04-08 11:35:18
【问题描述】:

如果用户关闭了他/她的 DM,机器人会给我一个错误。如何忽略此错误并无论如何禁止用户?

我的代码:

@commands.command()
async def ban(self, ctx, member : discord.Member, *, reason=None):
    if member.guild_permissions.manage_messages:
        embed = discord.Embed(title=":no_entry_sign: Error.", description="**I can't ban Moderators.**", color=discord.Color.red())
        await ctx.send(embed=embed)        
    elif ctx.message.author.guild_permissions.ban_members:
        if reason is None:
            await member.send("You was banned from *server*")
            await member.ban(reason=None, delete_message_days=0)
        else:
            await member.send("You was banned from *server*")
            await member.ban(reason=reason, delete_message_days=0)
    else:
        embed = discord.Embed(title=":no_entry_sign: Error.", description="**You are not a Moderator.**", color=discord.Color.red())
        await ctx.send(embed=embed)       

错误:

命令引发异常:KeyError: 'users'

【问题讨论】:

  • 您的代码中没有任何可能引发 KeyError 的内容。请阅读有关生成minimal, reproducible example 的内容。另外,请粘贴完整的回溯。

标签: python discord discord.py python-3.8


【解决方案1】:

您的问题似乎是您正在向被禁止的用户发送 DM,如果用户关闭了他们的 DM,那么当您发送该 DM 时它会引发异常,解决方案是不向该用户发送 DM。至于确定用户是否可以被 DM'ed,我认为没有内置的方法,所以你可以简单地使用 try-except。

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2018-12-09
    • 2019-09-19
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    相关资源
    最近更新 更多