尝试 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)
当我 运行 此代码时,它会引发 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)