亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

編輯已發送的嵌入機器人消息discord.py

編輯已發送的嵌入機器人消息discord.py

一只萌萌小番薯 2023-09-26 14:43:16
我正在嘗試編輯已發送的嵌入消息(用作角色反應消息)。例如:我輸入“角色”并收到一條嵌入消息,該消息在響應時分配角色。我想編輯它以在描述中添加另一個角色,而不發送全新的消息。MEE6 機器人能夠做到這一點,所以我確信這是可能的。我找到了應該可以工作的代碼:# This sends an embed message with a description of the [email protected] 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 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號