为了账号安全,请及时绑定邮箱和手机立即绑定

编辑已发送的嵌入机器人消息discord.py

编辑已发送的嵌入机器人消息discord.py

一只萌萌小番薯 2023-09-26 14:43:16
我正在尝试编辑已发送的嵌入消息(用作角色反应消息)。例如:我输入“角色”并收到一条嵌入消息,该消息在响应时分配角色。我想编辑它以在描述中添加另一个角色,而不发送全新的消息。MEE6 机器人能够做到这一点,所以我确信这是可能的。我找到了应该可以工作的代码:# This sends an embed message with a description of the roles.@client.eventasync def on_message(message):    if message.channel.id == 700895165665247325:        if message.content.startswith('roles'):            embedvar = discord.Embed(title="React to this message to get your roles!",                                     description="Click the corresponding emoji to receive your role.\n<:WarThunder:"                                                 "745425772944162907> - War Thunder\n<:Apex:745425965764575312> - "                                                 "Apex\n<:ModernWarfare:757104623738814554> - "                                                 "Modern Warfare\n<:Minecraft:757029546632413346> - "                                                 "Minecraft\n<:R6Siege:757030019909550122> - R6 Siege", color=0x00ff00)            embedvar2 = discord.Embed(title="React to this message to get your roles!",                                      description="Click the corresponding emoji to receive your role.\n<:WarThunder:"                                                  "745425772944162907> - War Thunder\n<:Apex:745425965764575312> - "                                                  "Apex\n<:ModernWarfare:757104623738814554> - "                                                  "Modern Warfare\n<:Minecraft:757029546632413346> - "                                                  "Minecraft\n<:R6Siege:757030019909550122> - R6 Siege\n"但它给了我这个错误:discord.errors.Forbidden: 403 Forbidden (error code: 50005): Cannot edit a message authored by another user是的,机器人拥有所有正确的权限,并且在层次结构中分配的级别低于它。
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

这是工作代码:


# This sends an embed message with a description of the roles.

@client.event

async def on_message(message):

    if message.channel.id == 700895165665247325:

        if message.content.startswith('roles'):

            embedvar = discord.Embed(title="React to this message to get your roles!",

                                     description="Click the corresponding emoji to receive your role.\n<:WarThunder:"

                                                 "745425772944162907> - War Thunder\n<:Apex:745425965764575312> - "

                                                 "Apex\n<:ModernWarfare:757104623738814554> - "

                                                 "Modern Warfare\n<:Minecraft:757029546632413346> - "

                                                 "Minecraft\n<:R6Siege:757030019909550122> - R6 Siege", color=0x00ff00)

            await message.channel.send(embed=embedvar)

            print("Changed message embed color.")

        elif message.content.startswith('update'):

            embedvar2 = discord.Embed(title="React to this message to get your roles!",

                                      description="Click the corresponding emoji to receive your role.\n<:WarThunder:"

                                                  "745425772944162907> - War Thunder\n<:Apex:745425965764575312> - "

                                                  "Apex\n<:ModernWarfare:757104623738814554> - "

                                                  "Modern Warfare\n<:Minecraft:757029546632413346> - "

                                                  "Minecraft\n<:R6Siege:757030019909550122> - R6 Siege\n"

                                                  "<:AmongUs:760192601625591859> - Among Us", color=0x00ff00)

            channel = client.get_channel(700895165665247325)

            msg = await channel.fetch_message(757114312413151272)

            await msg.edit(embed=embedvar2)

            print("Updated role reaction message.")

    else:

        return

我只需在正确的频道中输入“更新”,其中的内容embedvar2就是消息更新的内容。


查看完整回答
反对 回复 2023-09-26
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您正在尝试编辑message事件传递的内容,请尝试:

msg = await message.channel.send(embed=embedvar)
await msg.edit(embed=embedvar2)


查看完整回答
反对 回复 2023-09-26
  • 2 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信