discord.py通过一个命令发送一条消息,该命令在设定的时间后计算有多少个“;投票表决”;用于反应(自定义表情符号)

discord.py通过一个命令发送一条消息,该命令在设定的时间后计算有多少个“;投票表决”;用于反应(自定义表情符号),discord.py,Discord.py,我试了好几天(甚至没有成功地问)反应取决于信息。我正在处理的命令是一个投票,经过一段时间后,通过精确计算一个反应相对于另一个反应的投票数,自动写入结果。 我想使用自定义表情符号,但我不能,甚至尝试使用普通的表情符号,我甚至不计算它们,也不知道该怎么做。 我可以用普通的表情符号来实现这一点,但当我用自定义表情符号尝试相同的过程时,命令锁定thumbsup=len([wait I.users().flatte(),用于message.responses if str(I.emoji)==please

我试了好几天(甚至没有成功地问)反应取决于信息。我正在处理的命令是一个投票,经过一段时间后,通过精确计算一个反应相对于另一个反应的投票数,自动写入结果。 我想使用自定义表情符号,但我不能,甚至尝试使用普通的表情符号,我甚至不计算它们,也不知道该怎么做。 我可以用普通的表情符号来实现这一点,但当我用自定义表情符号尝试相同的过程时,命令锁定
thumbsup=len([wait I.users().flatte(),用于message.responses if str(I.emoji)==please][0])
我该如何解决

代码:

@client.command(别名=[“crp”])
@commands.has_权限(administrator=True)
异步定义内容(ctx,*,建议):
favore=获取表情符号(ctx.guild,“Favorevole”)
contro=get_表情符号(ctx.guild,“Contrario”)
flore=get_emoji(ctx.guild,“Astenuto”)
消息=等待ctx发送(建议)
等待消息。添加反应(优惠)
等待消息。添加反应(控制)
等待消息。添加反应(flore)
等待异步睡眠(10)
message=wait ctx.channel.fetch_消息(message.id)
等待消息。删除\u反应(偏好、客户、用户)
等待消息。删除\u反应(控制、客户端、用户)
等待消息。移除反应(flore,client.user)
thumbsup=len([wait i.users().flatte()表示消息中的i.responses if str(i.emoji)==favore][0])
thumbsdown=len([wait i.users().flatte()表示消息中的i.responses if str(i.emoji)==control][0])
中性=len([wait i.users().flatte()表示消息中的i.responses if str(i.emoji)==flore][0])
等待ctx.send(f“{thumbsup}a favore,{thumbsdown}control e{neutral}astenuti”)
错误:

Traceback (most recent call last):
  File "C:\Users\PC GIUSEPPE\PycharmProjects\LMIIBot Development\venv\lib\site-packages\discord\ext\commands\core.py", line 83, in wrapped
    ret = await coro(*args, **kwargs)
  File "C:/Users/PC GIUSEPPE/PycharmProjects/LMIIBot Development/LMIIBot Development.py", line 442, in conteggio_reazioni_personalizzate
    thumbsup = len([await i.users().flatten() for i in message.reactions if str(i.emoji) == favore][0])
IndexError: list index out of range

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\PC GIUSEPPE\PycharmProjects\LMIIBot Development\venv\lib\site-packages\discord\ext\commands\bot.py", line 892, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\PC GIUSEPPE\PycharmProjects\LMIIBot Development\venv\lib\site-packages\discord\ext\commands\core.py", line 797, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\PC GIUSEPPE\PycharmProjects\LMIIBot Development\venv\lib\site-packages\discord\ext\commands\core.py", line 92, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: IndexError: list index out of range

您拥有message对象,因此您可以从该消息中获取所有反应,并像这样过滤您想要的反应


reaction=get(message.reactions,emoji=我可以从消息中看到您使用普通的emoji。我对可以放在discord服务器上的那些emoji感兴趣。我知道discord.py API提到了“PartialEmoji”当涉及到使用自定义表情时,我的字符串只要不需要计数就可以工作,并且该字符串是为简单的表情而设计的,没有自定义。我尝试使用“PartialEmoji”但它也给了我同样的错误。另一件事:他的方法,然而,也计算了已被删除的反应。经过一些思考,你可以用替换正常的表情。