[英]Edit already sent embed bot message discord.py
我正在嘗試編輯已發送的嵌入消息(作為角色反應消息)。 例如:我輸入“角色”並收到一條嵌入消息,在響應時分配角色。 我想編輯它以在描述中添加另一個角色而不發送全新的消息。 MEE6 bot 能夠做到這一點,所以我相信這是可能的。 我找到了應該工作的代碼:
# 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)
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)
await message.channel.send(embed=embedvar)
await message.edit(embed=embedvar2)
print("Changed message embed color.")
else:
return
然而它給了我這個錯誤:
discord.errors.Forbidden: 403 Forbidden (error code: 50005): Cannot edit a message authored by another user
是的,機器人擁有所有正確的權限,並且在層次結構中分配的等級低於它。
您正在嘗試編輯事件傳遞的message
,請嘗試:
msg = await message.channel.send(embed=embedvar)
await msg.edit(embed=embedvar2)
這是工作代碼:
# 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
中的內容就是消息更新的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.