如何解决命令引发异常:KeyError: 'users' wen I execute ban command
如果用户关闭了他/她的 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'
解决方法
您的问题似乎是您正在向被禁止的用户发送 DM,如果用户已关闭他们的 DM,则在您发送该 DM 时会引发异常,解决方案是不要 DM 该用户。至于确定用户是否可以被 DM,我认为没有内置的方法,所以你可以简单地使用 try-except。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。