【问题标题】:Adding multiple reactions to a message discord.py向消息 discord.py 添加多个反应
【发布时间】:2020-10-27 00:13:40
【问题描述】:

因此,下面显示的代码旨在向发送命令的不和谐频道发送嵌入消息。在那里,添加数字 1 到 3 的表情符号作为反应。

    # Start
    @client.command()
    async def start(self, ctx):
        # Main Message
        em = discord.Embed(title="Welcome to the Escape Room Test")
        em.add_field(name="To Continue React to the 1.", value="Ignore this", inline=False)
        message = await ctx.channel.send(embed=em)
        # Add Reactions
        number_of_responses = 3
        for counter in range(number_of_responses):
            await message.add_reaction(emoji_numbers[counter])
    # End Start
emoji_numbers = ["1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣"]

但是,在添加第一个表情符号后,我得到了这个错误,并且无法找到解决它的方法。任何建议都会很棒。谢谢。

Traceback (most recent call last):
  File "d:/aab_dev/aaa_NewDev/EscapeRoomBot/bot.py", line 21, in <module>
    client.run("CLIENT-TOKEN-WAS-HERE")
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\discord\client.py", line 574, in run
    return task.result()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\discord\client.py", line 494, in _silence_gathered
    fut.result()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\discord\client.py", line 482, in start
    await self.connect(reconnect=reconnect)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\discord\client.py", line 404, in connect
    await self._connect()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\discord\client.py", line 369, in _connect
    await self.ws.poll_event()
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\discord\gateway.py", line 447, in poll_event
    await self.received_message(msg)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\discord\gateway.py", line 401, in received_message
    func(data)
  File "C:\Program Files (x86)\Python37-32\lib\site-packages\discord\state.py", line 391, in parse_message_reaction_add
    emoji = PartialEmoji(animated=emoji_data['animated'], id=emoji_id, name=emoji_data['name'])
KeyError: 'animated'
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x055704D0>

【问题讨论】:

  • 如何运行机器人?
  • 也许尝试将用于添加反应的 for 循环设为异步 for 循环? async for counter in range(number_of_resonses):
  • 遗憾的是 Async 不起作用,我有一个可以运行机器人的主文件。

标签: python discord discord.py


【解决方案1】:

该代码有效,但我对其进行了一些编辑。

您的代码:

@client.command()
async def start(self, ctx):
    # Main Message
    em = discord.Embed(title="Welcome to the Escape Room Test")
    em.add_field(name="To Continue React to the 1.", value="Ignore this", inline=False)
    # Add Reactions
    number_of_responses = 3
    emoji_numbers = ["1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣"]

    message = await ctx.send(embed=em)
    for i in range(number_of_responses):
        await message.add_reaction(emoji_numbers[i])

【讨论】:

  • 您在for 循环中错过了len()
猜你喜欢
  • 2019-09-06
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多