尝试 dm 被禁止的用户时引发禁止的异常 (Discord.py)

Raise forbidden exception when trying to dm a banned user (Discord.py)

当我 运行 此代码时,它会引发 403 禁止异常:无法向该用户发送消息。我怎样才能绕过那个,所以 dm 禁止和踢用户?

if user.dm_channel == None:
    await user.create_dm()
await user.dm_channel.send(
    content=f"You have been kicked from {server} by <@{message.author.id}> (reason : {splited[2]})")

你不能。 Discord 机器人只能向他们至少共享一台服务器的用户发送 DM,因此如果某人 kicked/banned 来自唯一的共同服务器,您的机器人将无法向他们发送任何消息。

尝试在禁止用户之前发送消息。

在踢他们之前将消息发送到用户的 DM 频道。

@client.command()
async def kick(ctx, user: discord.Member, *, reason=None):
  if user.dm_channel == None:
      await user.create_dm()
  await user.dm_channel.send(
      content=f"You have been kicked from {ctx.guild} by {ctx.message.author}\nReason: {reason} ")
  await user.kick(reason=reason)