Discord.py-标记随机用户

Discord.py-标记随机用户,discord,discord.py,Discord,Discord.py,我最近开始使用Discord.py。 我的问题是:如何标记一个随机用户,例如,如果您编写!在聊天中添加标签?我还没有找到答案 if message.content.startswith(“+best”): 用户ID=“” 从客户端.send_消息(message.channel,,:%s是最佳的“%userid”) 谢谢以下是我的做法: 在服务器中生成用户列表 使用random.choice从列表中选择随机用户 在您的消息中提及使用API的用户(或者如果您愿意,请手动执行) 以下是实现: 来自

我最近开始使用Discord.py。 我的问题是:如何标记一个随机用户,例如,如果您编写!在聊天中添加标签?我还没有找到答案

if message.content.startswith(“+best”):
用户ID=“”
从客户端.send_消息(message.channel,,:%s是最佳的“%userid”)
谢谢

以下是我的做法:

  • 在服务器中生成用户列表
  • 使用
    random.choice
    从列表中选择随机用户
  • 在您的消息中提及使用API的用户(或者如果您愿意,请手动执行)
  • 以下是实现:

    来自随机导入选择
    如果message.content.startswith(“+best”):
    user=choice(message.channel.guild.members)
    从客户端.send_消息(message.channel,,:%s是最好的“%user.notice”)
    
    详细阐述美学的答案,你可以这样做:

    import random
    
    if message.content.startswith('+best'):
        channel = message.channel
        randomMember = random.choice(channel.guild.members)
        await channel.send(f'{randomMember.mention} is the best')
    
    
    请注意,代码在discord.py的重写版本中,而不是异步版本-如果您使用的是异步版本,我建议您迁移到重写,因为对discord.py异步版本的支持已停止。要了解更多信息,请参阅找到的迁移文档


    如果您需要帮助,请告诉我-快乐编码

    首先,我建议您安装,因为它更高级

    然后,我建议您使用
    @client.command()
    decorator创建bot命令,如下所示:

    import random
    
    if message.content.startswith('+best'):
        channel = message.channel
        randomMember = random.choice(channel.guild.members)
        await channel.send(f'{randomMember.mention} is the best')
    
    
    @client.command()
    异步def testcommand(ctx):
    通过
    
    现在您已经完成了这两件事,有几种方法可以做到这一点。例如,如果您不希望bot提到命令调用程序或其他bot,可以编写:

    来自随机导入选择
    从discord.ext导入命令
    @client.command()
    @commands.guild_only()
    异步def标签(ctx):
    尝试:
    等待ctx.send(选项(tuple(如果不是member.bot和member!=ctx.author,则为ctx.guild.members中的成员指定member.notice)))
    除索引器外:
    等待ctx.send(“您是其中唯一的人类成员!”)
    
    如果您不希望bot提到其他bot,但它可以提到命令调用程序,请使用:

    来自随机导入选择
    从discord.ext导入命令
    @client.command()
    @commands.guild_only()
    异步def标签(ctx):
    等待ctx.send(选项(tuple(如果不是member.bot,则为ctx.guild.members中的member.notice)))
    
    如果您希望机器人提及任何公会成员、人类或机器人,请使用:

    来自随机导入选择
    从discord.ext导入命令
    @client.command()
    @commands.guild_only()
    异步def标签(ctx):
    等待ctx.send(选项(tuple(ctx.guild.members中成员的member.notice)))
    
    我玩了一会儿,终于成功了,你可以试试

    @client.command(pass\u context=True)
    异步(ctx):
    user=choice(ctx.message.channel.guild.members)
    等待ctx.send(f'{ctx.message.author.title}拥抱{user.title}'))
    
    这里混合了异步和重写分支的一些语法。在0.16版上,
    guild
    应该是
    server
    ,在1.0.0版上,
    client.send\u message(message.channel,
    应该是
    message.channel.send(…
    忽略On\u message Traceback中的异常(最近一次调用):文件“D:\Development\Projects\mymanager.py\venv\lib\site packages\discord\client.py”,第307行,来自getattr(self,event)(*args,**kwargs)文件“D:/Development/Projects/mymanager.py/main.py”的运行事件生成,第62行,在on_message user=choice(message.channel.server.members)文件“C:\Users\HP\AppData\Local\Programs\Python\Python35-32\lib\random.py”中,选项返回序列[i]第265行TypeError:“dict_values”对象不支持索引