所以我为我的机器人创建了一个 dm 命令,它运行良好,但我无法 dm 用户名中有空格的用户。有人知道怎么做吗?
@client.command(pass_context=True)
@commands.is_owner()
async def dm(ctx, user: discord.User, *, message=None):
message = message or "Message from bot owner"
embed = discord.Embed(title="Message from bot owner", description=message, color = 0)
await user.send(embed = embed)
当我尝试使用空格发送用户时,例如:=dm Special user#1234
我的终端说找不到用户 Special。
答案 0 :(得分:1)
你可以这样做
@client.command(pass_context=True)
@commands.is_owner()
async def dm(ctx, user, *, message=None):
if message is None:
await ctx.send("You need to specify the message to send!")
return
user = client.fetch_user(user)
await user.send(embed=discord.Embed(title="Message from bot owner", description=message, color = 0))
答案 1 :(得分:0)
在这种情况下,您应该有一种单独的方式来定义 message
变量,因为 member
变量可能需要空格。这是我定义函数的方式:
@commands.command()
async def dm(self, ctx, *, member: discord.Member):
await ctx.send('Enter a message to DM in the chat...')
msg = await self.bot.wait_for('message', check=lambda message: message.author == ctx.author)
await member.send(msg.content)