对此有2个反应?

时间:2020-10-11 23:50:19

标签: python discord.py

我想在此代码中添加2个反应:

@client.event
async def on_message(message):
  if message.content.startswith('<:JAX1:764860878512062505> offer'):
    member = message.mentions[0]
    await message.channel.send(f'{member.mention} Has been offered by <:JAX1:764860878512062505>.')
    if message.content.startswith(f"{member.mention} Has been offered by <:JAX1:764860878512062505>"):
      emoji = get(client.get_all_emojis(), name='<:Accept:764926510673952859>')
      await client.add_reaction(message, emoji)

但是问题是,

if message.content.startswith(f"{member.mention} Has been offered by <:JAX1:764860878512062505>"):
      emoji = get(client.get_all_emojis(), name='<:Accept:764926510673952859>')
      await client.add_reaction(message, emoji)

不给我错误信息,但也没有增加任何反应,请帮助我。

2 个答案:

答案 0 :(得分:0)

client.add_reactionclient.get_all_emojis()来自旧版本的discord.py。

我相信这就是您要尝试的事情:

@client.event
async def on_message(message):
if message.content.startswith('<:JAX1:764860878512062505> offer'):
    member = message.mentions[0]
    msg = await message.channel.send(f'{member.mention} Has been offered by <:JAX1:764860878512062505>.')
    await msg.add_reaction('<:Accept:764926510673952859>')

答案 1 :(得分:0)

client没有属性add_reaction。您应该使用message.add_reaction。因此,您只需执行await message.add_reaction(emoji)message.add_reaction('<:Accept:764926510673952859>')

此外,也无法在代码中添加响应,因为首先,您正在检查消息内容是否以'<:JAX1:764860878512062505> offer'开头,如果是,则尝试检查相同消息内容的开头是否为f"{member.mention} Has been offered by <:JAX1:764860878512062505>"