【问题标题】:Getting the userid of a user that was tagged获取被标记的用户的用户 ID
【发布时间】:2021-09-25 12:31:35
【问题描述】:

我正在使用 discordpy 构建一个 discord 机器人。我希望它具有的功能之一是能够提供关于用户的随机百分比。

例子:

user1: !w @user2

bot:@user2 是 x% y

我不确定如何从 user1 发送的消息中提取 user2 的用户 ID。有人有什么建议吗?

【问题讨论】:

  • 你听说过discord.Member吗?有了这个,您将能够显示名称/ID。链接:Docs
  • 您可以使用message.mentions 获取在消息中作为Member 对象提及的成员列表,然后您可以使用Member.id 获取他们的用户ID
  • 谢谢,但是看了文档后,还是不知道怎么实现。这是我的代码,如果 message.content.startswith('w!cool their id'): await message.channel.send('the people id is cool')

标签: python discord.py bots


【解决方案1】:

您可以使用id attributediscord.Member

示例:

@bot.command()
def w(ctx, user: discord.Member):
    user_id = user.id
    print(user_id)

【讨论】:

  • 如果您查看 cmets,看起来他想使用 on_message-event,而不是命令。
【解决方案2】:
@client.event
async def on_message(message):
    if message.content.startswith('w!cool '):
        if message.mentions == []:
            await message.channel.send("You should mention someone!\n```\nw!cool <mention>\n```")
            return
        coolness_tosend=""
        for i in message.mentions:
            coolness_tosend=coolness_tosend+"<@" + str(i.id) + "> is " + str(random.choice(range(100))) + "\% cool.\n"
        await message.channel.send(coolness_tosend)

链接:

discord.Message.mentions in API reference

discord.Message in API reference

但请注意,单独的 w!cool 没有参数是行不通的。它可以防止与w!coolpic 等命令发生冲突。不要忘记做一个import random

【讨论】:

    【解决方案3】:

    您在标题中提出了一个问题,但描述与它不匹配;-;

    这是一个根据你在描述中询问的基本代码,你可以自定义它:)

    确保将“客户端”替换为您使用过的任何内容

    @client.command()
    async def cool(ctx, user: discord.Member = None):
        pctg = (random.randint(0, 100))
        if user == None:
            await ctx.send('Mention a user')
        else:
            await ctx.send(f"{user.name} is {pctg}% cool")
    

    如果您希望提到的用户 ID 作为机器人的回复,请使用以下 -

    @client.command()
    async def uid(ctx, user: discord.Member):
        uid = user.id
        await ctx.send(uid)
    

    【讨论】:

    • 如果您查看 cmets,看起来他想使用 on_message-event,而不是命令。
    • 我认为使用命令会更方便,但无论如何我会看看我是否可以做出一些改变来回答。
    • 我试过了,我真的认为使用命令更好:')
    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    相关资源
    最近更新 更多