discord.py如何获取Discord服务器已封禁用户的封禁原因
解决方案
你调用get_bans接口返回的迭代器元素不是User类型对象,而是Ban数据类实例,每个实例天然包含了你需要的封禁原因字段,直接读取对应属性即可。
调整后的代码示例
bans = await client.get_bans(message.guild.id) for ban_entry in bans: # ban_entry.user 对应被封禁用户对象,ban_entry.reason 对应封禁原因 print(f"User: {ban_entry.user.name} | User ID: {ban_entry.user.id} | Ban Reason: {ban_entry.reason or '未填写封禁原因'}")
补充说明
- 如果封禁时没有填写原因,
reason字段会返回None,建议做兜底显示处理,比如上面示例里用or '未填写封禁原因'做默认值 - 该特性在discord.py v1.x及v2.x版本均支持,不需要额外调用其他接口
内容的提问来源于stack exchange,提问作者Yılmaz Alpaslan
相关产品推荐
相关产品推荐

