Python Discord.py:如何通过用户ID变量Ping用户

Python Discord.py:如何通过用户ID变量Ping用户,python,discord.py,Python,Discord.py,我有一个队列系统bot,但我需要存储作者姓名/id。因此我有两个命令。队列数为0和1时为1。我可以很容易地使用message.author.notice,但如何ping同一消息中的第一个id(其中queue=0) 代码: 导入不一致 导入操作系统 从discord.utils导入获取 从discord.ext导入命令 #运行Bot并发送消息,以确保它已运行 client=discord.client() 全局队列 队列=0 全球作者 author=“” 全局作者2 author2=“” @客户端

我有一个队列系统bot,但我需要存储作者姓名/id。因此我有两个命令。队列数为0和1时为1。我可以很容易地使用
message.author.notice
,但如何ping同一消息中的第一个id(其中queue=0)

代码:

导入不一致
导入操作系统
从discord.utils导入获取
从discord.ext导入命令
#运行Bot并发送消息,以确保它已运行
client=discord.client()
全局队列
队列=0
全球作者
author=“”
全局作者2
author2=“”
@客户端事件
_ready()上的异步定义:
打印('我们已以{0.user}的身份登录。格式(客户端))
等待客户。改变状态(活动=不和谐。游戏('Minceraft'))
@客户端事件
消息上的异步定义(消息):#定义消息
#如果您排队,以及这样做的角色要求
如果message.content.startswith('-queue duos'):
全局队列
如果队列==0:
role=discord.utils.get(message.guild.roles,id=830557149863608367)
如果message.author.roles中的角色:
打印('您已排队')
全球作者
author=message.author.id
印刷品(作者)
#添加角色对
role=discord.utils.get(message.guild.roles,id=830219965549510656)
等待消息。作者。添加角色(角色)
#删除角色队列
role4=discord.utils.get(message.guild.roles,id=830557149863608367)
等待消息。作者。删除角色(角色4)
#传达信息
wait message.channel.send('您已加入duos队列,请耐心等待!')
队列+=1
等待消息.channel.send(队列)
elif队列==1:
role=discord.utils.get(message.guild.roles,id=830557149863608367)
如果message.author.roles中的角色:
打印('您已排队')
全局作者2
author2=message.author.id
打印(author2)
#添加角色对
role=discord.utils.get(message.guild.roles,id=830219965549510656)
等待消息。作者。添加角色(角色)
#删除角色队列
role4=discord.utils.get(message.guild.roles,id=830557149863608367)
等待消息。作者。删除角色(角色4)
#传达信息
wait message.channel.send('您已加入duos队列,请耐心等待!')
队列+=1
#在这里处理ping
等待消息。频道。发送(消息。作者。提及)
等待消息.channel.send(作者)
队列=0
#他们是否已排队并具有DUO角色
其他:
等待message.channel.send('您已经排队!')
#如果消息是unqueue duos命令
如果message.content.startswith('-unqueue duos'):
#角色要求
role=discord.utils.get(message.guild.roles,id=830219965549510656)
如果message.author.roles中的角色:
打印('您已取消排队')
#删除Duos角色
role2=discord.utils.get(message.guild.roles,id=830219965549510656)
等待消息。作者。删除角色(角色2)
#添加NoQueue角色
role3=discord.utils.get(message.guild.roles,id=830557149863608367)
等待消息。作者。添加角色(角色3)
wait message.channel.send('您有未排队的DUO!')
队列-=1
#已经不在队列中了
其他:
wait message.channel.send('您不在队列中!')
#从.env文件运行令牌
client.run(os.getenv('TOKEN'))

TL;DR:我想使用全局字符串ping某人,因为我无法使用
消息。作者。同时与两个人或在同一
消息中提及
。频道。发送
命令。

就是你提及某人的方式。只需获取id并更改用户id即可。你能做的是:

await message.channel.send(f"<@{USERID}>")
wait message.channel.send(f“”)

因为f字符串为你格式化了东西。这段代码会提到某人。

如果你正在实施某种排队系统,你不应该将队列中的人存储在列表中而不是。。。不管现在发生了什么?与这个问题无关:让你的命令成为实际的命令,而不是使用on_消息事件。这在以后会有很多用处,因为在有很多消息的服务器中,你的机器人很难看到“-(un)queue duo”。我会试试看!谢谢你帮助我:D