从arg列表中的client.send_message()中选择用户

时间:2018-12-13 18:29:15

标签: python discord.py

有点难以解释,但是我有这段代码:

if message.content.upper().startswith("!SAY"):
  args = message.content.split(" ")
  await client.send_message(args[1],"%s" % (" ".join(args[2:])))

基本上,这是在有人输入时说的!例如,第一个arg应该是用户

喜欢:

!say @thepatchworkhoax#1024 

下一个是:

!say @thepatchworkhoax#1024 random text

使用该机器人,机器人将向用户发送随机文本消息。

但是我需要找出合适的前缀以从列表中选择用户:

又是:

 user.args[1]

如果有人知道这一点,我将非常感谢您的帮助。

完整代码:

@client.event
async def on_message(message):
  if message.content.upper().startswith("!PING"):
    userid = message.author.id
    await client.send_message(message.channel,"<@%s> Pong!" % userid)
  if message.content.upper().startswith("!SAY"):
    args = message.content.split(" ")
    await client.send_message(args[1],"%s" % (" ".join(args[2:])))

1 个答案:

答案 0 :(得分:1)

如果您真的想使用某个事件,则可以执行类似

的操作
  if message.content.upper().startswith("!SAY"):
    args = message.content.split(" ")
    await client.send_message(message.mentions[0],'%s' % (' '.join(args[2:])))

但是我建议您考虑使用命令来实现这种功能