Discord.py用户名多词与内容多词相关问题

  • 本文关键字:问题 py Discord 用户 discord.py
  • 更新时间 :
  • 英文 :


我想通过聊天机器人发送消息。当我向昵称没有"空格"的用户发送消息时,如:John#1234或Im_the_best_traveller#1234等,但当我向昵称包含多个单词的用户发送消息时,如:Trying hard#1234等,程序只看到昵称的第一个单词。

@bot.command()
async def sender(user: discord.User, *,content:str):
await user.send(content)

I've try to

@bot.command()
async def sender(user: ,*, discord.User, content:str):
await user.send(content)

但是在我想要发送的消息之后,由程序作为昵称的一部分计数。

这是文本命令的限制。参数之间用空格分隔。当您使用*, param时,您表示所有剩余的参数必须由最后一个参数消耗。没有办法让两个参数消耗可变数量的参数,毕竟您的命令将无法分隔它们(了解更多)。

要解决这种情况,您有一些选择:

  • 引用多字用户名(例如:"Trying hard#1234");
  • 使用用户ID或提及,只需要一个参数;
  • 请求在命令执行期间发送的消息(更复杂);
  • 将您的命令转换为斜杠命令,其中没有此限制。