如何让机器人提及某人?

时间:2021-01-17 00:40:56

标签: python discord.py

一段时间以来,我一直试图让我的机器人在某个命令中提及某人,我正在浏览 Google 和其他网站,其中大多数网站都喜欢使用 <@(User ID)>,但我想让它提到了任何人,例如,当我使用“?hit”之类的命令时,我希望它说“(使用该命令的机器人 ping)拳(人在命令中 ping)” (随机消息idk)"

我找不到有关如何操作的网站或视频,我需要一点帮助。

2 个答案:

答案 0 :(得分:1)

每个 Member 对象都是可提及的(使用 mention 函数),请阅读文档 here。使用它,我们可以创建一个将 member 接收到 hit 的命令。然后,我们可以使用函数 ctx.author ping membermention。它看起来像:

@client.command()
async def hit(ctx, member: discord.Member):
    await ctx.send(f"{ctx.author.mention} punches {member.mention}")

输出:

l

答案 1 :(得分:0)

我无意粗鲁,但通过查看 discord API docs 可以轻松回答这个问题,因为它解释了 API 中的所有内容及其作用。我的解决方案如下。您没有提供任何代码或您遇到的代码问题,所以这就是我所能做的。

@client.command() # here, we make the client command.
async def hit(ctx, member : discord.Member): # we are making the function that actually hits the person here.
    await ctx.send(f'{ctx.message.author.mention} hits {member.mention}.') # here, we send the message that pings both the user who triggered the command, and the person who the you want to ping.

例如,如果您想让它从列表中进行选择,可以使用以下方法。

@client.command()
async def hit(ctx, member : discord.Member):

    # this is a list of random responses that could happen.
    hit_responses = [f'{ctx.message.author.mention} hits {member.mention}.',
    f'{ctx.message.author.mention} swings and hits {member.mention}.',
    f'{ctx.message.author.mention} slaps {member.mention} across the face.'] 

    hit_message = random.choice(hit_respones) # this chooses a random response.

    await ctx.send(hit_message) # this sends the random response

示例输出如下:

@goose.mp4 slaps @user across the face.