【发布时间】:2021-03-17 05:13:07
【问题描述】:
我有一个命令,你应该有 3 个选项:
1) 提及用户
2) 输入用户 ID
3) 输入任意名称
在所有 3 种情况下,机器人都应该使用适当的输入吐出嵌入。 在这样做时,它应该:
- 如果是 Discord 用户,请在说明中注明。
- 如果不是用户,只需接受输入的名称,但无论如何发送嵌入说明中的名称。
正常工作方式:
@client.command()
async def slap(ctx, *, member: discord.Member):
if member is None:
re = discord.Embed()
re.title = "Du hast die Luft geschlagen, Idiot..."
re.set_image(url="https://i.pinimg.com/originals/8f/f9/f9/8ff9f9b0e469f751f47fc0a995a172ad.gif")
await ctx.send(embed=re)
else:
er = discord.Embed()
er.title = "Das muss weh tun..."
er.description = f"Du hast {member.mention} geschlagen!"
er.set_image(url=random.choice(slapgif))
await ctx.send(embed=er)
但如果我输入一个随机名称,它会给我BadArgument 错误。我怎样才能避免这种情况并接受随机名称?
我试过了:
user: str = None
这当然只在输入时给出 ID,但也会给出像 I'mTest123 这样的名称,这当然是需要的,但如果它在服务器上,则带有 ID 的应该以 member 结尾。
【问题讨论】:
标签: discord discord.py