【问题标题】:discord.py Mention user by namediscord.py 按名称提及用户
【发布时间】:2021-02-19 16:55:22
【问题描述】:

我试图在 discord.py 中通过他们的名字提及用户。我当前的代码是:

@bot.command(name='mention')
@commands.has_role(OwnerCommands)
async def mention(ctx, *, member: discord.Member):
    memberid = member.id
    await ctx.message.delete()
    await ctx.send('<@{}>'.format(memberid))

但它不起作用。我该怎么做?

编辑,我找到了答案。

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    这是相当直接的member.mention

    @bot.command(name='mention')
    @commands.has_role(OwnerCommands)
    async def mention(ctx, *, member: discord.Member):
        await ctx.message.delete()
        await ctx.send(member.mention)
    

    【讨论】:

    • 是的,但我不想在命令中提及用户。然后,他们将获得双重 ping。我只想做?提到ENORMOUZ
    • 您可以像AZ#0573 一样使用NAME#NUMBER。那会工作
    【解决方案2】:

    我们可以跳过手动工作,直接使用discord的Member Model。 Member 对象上的mention 返回字符串,以便我们直接提及它们。

    @bot.command(name='mention')
    @commands.has_role(OwnerCommands)
    async def mention(ctx, *, member: discord.Member):
        await ctx.message.delete()
        await ctx.send(member.mention)
    

    【讨论】:

    • 是的,但我不想在命令中提及用户。然后,他们将获得双重 ping。我只想做?提到ENORMOUZ
    【解决方案3】:

    没关系,我找到了办法。我只是在 Discord 开发者页面中打开了特权缩进。

    【讨论】:

      【解决方案4】:

      如果您不想通过使用 discord.py MemberConverter 扩展名两次提及成员,另一种解决方案,并且不要忘记从 discord 开发人员门户激活成员特权缩进。

      资源: https://discordpy.readthedocs.io/en/rewrite/ext/commands/api.html#discord.ext.commands.MemberConverter How to convert a string to a user discord.py

      import discord
      from discord.ext import commands
      from discord.ext.commands import MemberConverter 
      
      intents = discord.Intents(members = True)
      
      client = commands.Bot(command_prefix="$", intents=intents)
      
      @client.command()
      async def mention(ctx, member):
        converter = MemberConverter()
        member = await converter.convert(ctx, (member))
        await ctx.send(member.mention)
      

      【讨论】:

        猜你喜欢
        • 2019-01-25
        • 2017-10-13
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-01
        • 2021-04-08
        • 2021-09-20
        相关资源
        最近更新 更多