python - 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
解决方案
如果您想从他/她的用户名中获取成员,您可以使用MemberConverter
,但在您的情况下,您不能这样做。因为您不能将 DM 发送给不与机器人共享同一行会的用户。这意味着如果用户不在公会中,您将无法向他发送消息。
推荐阅读
- python - 数据框中的 Python 时间戳 - 转换为数据格式
- javascript - Angular 通用函数处理程序不更新组件属性
- python-3.x - InvalidArgumentError 函数调用堆栈:train_function
- sql - SQL .如何查找具有几乎相同字符串值的记录?
- python - 我正在尝试创建一个代码,该代码能够计算一个人需要获得什么成绩才能获得理想的整体成绩
- windows-subsystem-for-linux - 在 WSL2 中安装 v4l2loopback
- overriding - 覆盖 prestashop 类以公开一个受保护的方法
- python - Python 正则表达式 - 从字符串中提取数字并具有正向前瞻
- python-3.x - 根据其他列中的条件创建 BOOL 列
- python - Python - 如何过滤文件列表并仅返回包含特定扩展名的值?