python - 命令引发异常:AttributeError: 'str' object has no attribute 'mention'
问题描述
@client.command()
async def unban(ctx, *, member):
banned_user = await ctx.guild.bans()
member_name, member_discriminator = member.split('#')
guild = ctx.guild
embed = discord.Embed(title="unban", description=f"{member.mention} has been Unbanned ", colour=discord.Colour.red())
for ban_entry in banned_user:
user = ban_entry.user
if (user.name, user.discriminator) == (member_name, member_discriminator):
await ctx.guild.unban(user)
await ctx.send(embed=embed)
await member.send(f"you have been unbanned from: **{guild.name}**")
return
为什么我会得到AttributeError: 'str' object has no attribute 'mention'
?
解决方案
它正在发生,因为Member
它只是一个字符串。如果它只是一个普通字符串,它不会被识别为discord.Member
并且你不能使用。.mention
相反,请使用user
from 行user = ban_entry.user
,因为它是discord.User
您可以提及的。
代码:
@client.command()
async def unban(ctx, *, member):
banned_user = await ctx.guild.bans()
member_name, member_discriminator = member.split('#')
guild = ctx.guild
for ban_entry in banned_user:
user = ban_entry.user
if (user.name, user.discriminator) == (member_name, member_discriminator):
await ctx.guild.unban(user)
embed = discord.Embed(title="unban", description=f"{user.mention} has been Unbanned ", colour=discord.Colour.red())
await ctx.send(embed=embed)
await member.send(f"You have been unbanned from: **{guild.name}**")
return
推荐阅读
- asp.net - 从 ashx 重定向到 aspx 后,会话变量丢失
- python - 为分组数据生成具有特定长度的 RNN 序列/批次
- regex - Jenkins UI Textfinder如何设置多个正则表达式
- android - 发送有序广播时 FLAG_RECEIVER_FOREGROUND 究竟做了什么?
- mesos - mesos/dcos:暴露一个服务端点
- javascript - 如何使用 React Native 脚本在后台接收 Firebase 通知
- java - 在 Java 程序中使用 Linux Strace 命令
- php - Laravel Socialite - 谷歌登录失败“缺少必需的参数:代码”
- android - 当我尝试在选项卡之间切换时应用程序崩溃
- node.js - React:将对象数组从 MongoDB(使用 node.js +express)发送到客户端