首页 > 解决方案 > Discord.py 给用户写直接消息

问题描述

如何让我的机器人向只有用户名的用户发送消息?我想在用户被禁止时发送通知。

@client.command()
@commands.bot_has_permissions(ban_members=True)
async def unban(ctx, *, member):
    banned_users = await ctx.guild.bans()
    member_name, member_discriminator = member.split("#")

    for ban_entry in banned_users:
        user = ban_entry.user
        if (user.name, user.discriminator) == (member_name, member_discriminator):
            await ctx.guild.unban(user)
            await ctx.send(f"Unbanned {user.mention}")
            ### here i want to send the user a message that he was unbanned ###
            return

标签: pythondiscordbotsdiscord.py

解决方案


如果您想从他/她的用户名中获取成员,您可以使用MemberConverter,但在您的情况下,您不能这样做。因为您不能将 DM 发送给不与机器人共享同一行会的用户。这意味着如果用户不在公会中,您将无法向他发送消息。


推荐阅读