fix(rmenus): Update msg data from origin message.

This commit is contained in:
2023-09-29 16:13:24 +03:00
parent 5f93e13469
commit eda2b92967
3 changed files with 17 additions and 0 deletions

View File

@@ -126,6 +126,7 @@ async def rolemenu_ctxcmd(interaction: discord.Interaction, message: discord.Mes
else:
menu = await RoleMenu.fetch(self.bot, menuid)
menu._message = message
await menu.update_raw()
# Open the editor
editor = MenuEditor(self.bot, menu, callerid=interaction.user.id)
@@ -895,6 +896,7 @@ class RoleMenuCog(LionCog):
)).format(name=name)
)
await target.fetch_message()
await target.update_raw()
# Parse provided options
reposting = channel is not None

View File

@@ -192,6 +192,20 @@ class RoleMenu:
self._message = _message
return self._message
async def update_raw(self):
"""
Updates the saved raw message data for non-owned menus.
"""
message = await self.fetch_message()
if not self.managed and message is not None:
message_data = {}
message_data['content'] = message.content
if message.embeds:
message_data['embed'] = message.embeds[0].to_dict()
rawmessage = json.dumps(message_data)
if rawmessage != self.data.rawmessage:
await self.data.update(rawmessage=rawmessage)
def emoji_map(self):
emoji_map = {}
for mrole in self.roles:

View File

@@ -1144,3 +1144,4 @@ class MenuEditor(MessageUI):
self.pagen = self.pagen % self.page_count
self.page_block = blocks[self.pagen]
await self.menu.fetch_message()
await self.menu.update_raw()