我有一个队列系统机器人,但我需要存储作者姓名/ID。所以我有2个命令。队列数为 0 和 1 时的一个。我可以轻松使用 message.author.mention
,但是我将如何 ping 同一消息中的第一个 ID(队列 = 0 的 ID)。
代码:
import discord
import os
from discord.utils import get
from discord.ext import commands
#run the Bot and a message to make sure it ran
client = discord.Client()
global queue
queue = 0
global author
author = " "
global author2
author2 = " "
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
await client.change_presence(activity=discord.Game('Minceraft'))
@client.event
async def on_message(message): #Defines Message
#If You Queue, And Role Requirement to Do So
if message.content.startswith('-queue duos'):
global queue
if queue == 0:
role = discord.utils.get(message.guild.roles, id=830557149863608367)
if role in message.author.roles:
print('you have queued')
global author
author = message.author.id
print(author)
#Adds Role Duos
role = discord.utils.get(message.guild.roles, id=830219965549510656)
await message.author.add_roles(role)
#Removes Role NoQueue
role4 = discord.utils.get(message.guild.roles, id=830557149863608367)
await message.author.remove_roles(role4)
#Gives Message
await message.channel.send('you have joined the duos queue sit tight!')
queue += 1
await message.channel.send(queue)
elif queue == 1:
role = discord.utils.get(message.guild.roles, id=830557149863608367)
if role in message.author.roles:
print('you have queued')
global author2
author2 = message.author.id
print(author2)
#Adds Role Duos
role = discord.utils.get(message.guild.roles, id=830219965549510656)
await message.author.add_roles(role)
#Removes Role NoQueue
role4 = discord.utils.get(message.guild.roles, id=830557149863608367)
await message.author.remove_roles(role4)
#Gives Message
await message.channel.send('you have joined the duos queue sit tight!')
queue += 1
#Work On Pings Here
await message.channel.send(message.author.mention)
await message.channel.send(author)
queue = 0
#Is They Already Queued and Have Duos Role
else:
await message.channel.send('You Already Queued!')
#if the message is unqueue duos command
if message.content.startswith('-unqueue duos'):
#Role Requirement
role = discord.utils.get(message.guild.roles, id=830219965549510656)
if role in message.author.roles:
print('you have unqueued')
#Remove Duos Role
role2 = discord.utils.get(message.guild.roles, id=830219965549510656)
await message.author.remove_roles(role2)
#Adds NoQueue Role
role3 = discord.utils.get(message.guild.roles, id=830557149863608367)
await message.author.add_roles(role3)
await message.channel.send('You Have Unqueued Duos!')
queue -= 1
#Already Not In a Queue
else:
await message.channel.send('You Are Not In a Queue!')
#Runs Token From The .env File
client.run(os.getenv('TOKEN'))
TL;DR:我想使用全局字符串 ping 某人,因为我不能同时对 2 个人或在同一个 message.author.mention
命令中使用 message.channel.send
。
答案 0 :(得分:0)
<@USERID>
是您提及某人的方式。只需获取 id 并为此更改 USERID。你可以做的是:
await message.channel.send(f"<@{USERID}>")
因为 f 字符串为你格式化东西。该代码会提到某人。