我怎样才能得到我的 AFK 命令的原因

How can I get the reason on my AFK command

当用户提到执行 afk 命令的成员时,我想要嵌入的原因;原因是 消息 参数。

我的代码:

_afk = []

@bot.command()
async def afk(ctx, *, message=None):
    
    member = ctx.author
    current_name = member.display_name
    if message == None:
      message = "AFK"
    
    
    if member == ctx.guild.owner:
      _afk.append(member.id)
      embed = discord.Embed(title="AFK",description=f"{member.mention}: I have set your AFK status - **{message}**",timestamp=starttime,color=discord.Color.from_rgb(25, 42, 194))
      embed.set_author(name=f"{member.name}#{member.discriminator}", icon_url=member.avatar.url) 
    else:
      _afk.append(member.id)
      embed = discord.Embed(title="AFK",description=f"{member.mention}: I have set your AFK status - **{message}**",timestamp=starttime,color=discord.Color.from_rgb(25, 42, 194))
      embed.set_author(name=f"{member.name}#{member.discriminator}", icon_url=member.avatar.url) 
      await member.edit(nick=f'[AFK] {member.display_name}')

    
    await ctx.send(embed=embed)
    

  
 

    

    

@bot.event
async def on_message(message):
    
    member = message.author
    current_name = member.display_name
    if message.author.bot: 
        return
    
    for mention in message.mentions:
        if mention.id in  _afk:
          
          embed = discord.Embed(description=f" {mention.mention} is currently AFK:  ",timestamp=starttime,color=discord.Color.from_rgb(25, 42, 194))
          embed.set_author(name=f"{member.name}#{member.discriminator}", icon_url=member.avatar.url)
          await message.reply(embed=embed)
          
    if member.id in _afk:
        _afk.remove(member.id)  

        
        emb=discord.Embed(description=f" {member.mention}: Welcome Back! I have removed your AFK.",timestamp=starttime,color=discord.Color.from_rgb(25, 42, 194))
        emb.set_author(name=f"{member.name}#{member.discriminator}", icon_url=member.avatar.url) 
        await message.channel.send(embed=emb)
        await member.edit(nick=current_name[5:])
    await bot.process_commands(message)

这里的问题是我无法找到一种方法将 AFK 命令的原因放入 以在 message.mentions 中提及:

我会为你推荐一本字典!

您可以在此处为每个用户 ID 保存原因。

将是以下代码: 因此,我在 afk 命令的嵌入配置中改进了您的代码。 :D


afkdictionary = {}

@bot.command()
async def afk(ctx, *, message=None):
    
    member = ctx.author
    current_name = member.display_name
    if message == None:
      message = "AFK"
    
    
      embed = discord.Embed(title="AFK",description=f"{member.mention}: I have set your AFK status - **{message}**",timestamp=starttime,color=discord.Color.from_rgb(25, 42, 194))
      embed.set_author(name=f"{member.name}#{member.discriminator}", icon_url=member.avatar.url)
    if member != ctx.guild.owner:
      await member.edit(nick=f'[AFK] {member.display_name}')

    
    await ctx.send(embed=embed)
    afkdictionary[str(member.id)] = message
    
@bot.event
async def on_message(message):
    
    member = message.author
    current_name = member.display_name
    if message.author.bot: 
        return
    
    for mention in message.mentions:
        if mention.id in afkdictionary:
          
          embed = discord.Embed(description=f" {mention.mention} is currently AFK: {afkdictionary[str(mention.id)]}",timestamp=starttime,color=discord.Color.from_rgb(25, 42, 194))
          embed.set_author(name=f"{member.name}#{member.discriminator}", icon_url=member.avatar.url)
          await message.reply(embed=embed)
          
    if member.id in _afk:
        del afkdictionary[str(member.id)]
        
        emb=discord.Embed(description=f" {member.mention}: Welcome Back! I have removed your AFK.",timestamp=starttime,color=discord.Color.from_rgb(25, 42, 194))
        emb.set_author(name=f"{member.name}#{member.discriminator}", icon_url=member.avatar.url) 
        await message.channel.send(embed=emb)
        await member.edit(nick=current_name[5:])
    await bot.process_commands(message)```