【问题标题】:Extract Discord user ID from a discord message从不和谐消息中提取不和谐用户 ID
【发布时间】:2019-04-14 19:03:46
【问题描述】:

我正在开发一个 python 机器人,我需要的一件事是让机器人在不和谐频道中查看是否有人 @'d 另一个人(即我输入类似“!callout @randomuser”之类的内容)。如果它检测到这一点,我想获取@'d 用户的用户 ID(在本例中为 @randomuser 的用户 ID)

我知道这可能是一个愚蠢的问题,但无法在其他地方找到答案。谢谢!

【问题讨论】:

标签: python-3.x discord discord.py


【解决方案1】:

更简单的方法是使用带有discord.ext.commands 扩展名的converters。这可以给你一个User 对象,它有一个User.id 属性:

from discord.ext.commands import Bot
from discord import User

bot = Bot(command_prefix='!')

@bot.command(pass_context=True)
async def getid(ctx, user: User):
    await bot.say("Their ID is {}".format(user.id))

@bot.command(pass_context=True)
async def callout(ctx, user: User):
    await bot.say("{}, someone is talking about you".format(user.mention))

bot.run("token")

【讨论】:

    【解决方案2】:

    最简单的方法是使用mentions。这将为消息中提到的所有用户 (@user) 生成用户列表。这样做的好处是它可以轻松处理多次提及。这适用于 discord.py 的重写和异步版本

    @commands.command()
    async def test(ctx):
        users = ctx.message.mentions
        await ctx.send(users[0].id)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-09
      • 2021-04-05
      • 2020-12-12
      • 2021-07-29
      • 2021-12-03
      • 1970-01-01
      • 2019-05-31
      • 2021-06-28
      相关资源
      最近更新 更多