From eda2b929676b4952705b812b1d713f0e5c0288ac Mon Sep 17 00:00:00 2001 From: Conatum Date: Fri, 29 Sep 2023 16:13:24 +0300 Subject: [PATCH] fix(rmenus): Update msg data from origin message. --- src/modules/rolemenus/cog.py | 2 ++ src/modules/rolemenus/rolemenu.py | 14 ++++++++++++++ src/modules/rolemenus/ui/menueditor.py | 1 + 3 files changed, 17 insertions(+) diff --git a/src/modules/rolemenus/cog.py b/src/modules/rolemenus/cog.py index 588a45a2..9efef99a 100644 --- a/src/modules/rolemenus/cog.py +++ b/src/modules/rolemenus/cog.py @@ -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 diff --git a/src/modules/rolemenus/rolemenu.py b/src/modules/rolemenus/rolemenu.py index fc8d4fee..bc4437af 100644 --- a/src/modules/rolemenus/rolemenu.py +++ b/src/modules/rolemenus/rolemenu.py @@ -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: diff --git a/src/modules/rolemenus/ui/menueditor.py b/src/modules/rolemenus/ui/menueditor.py index a4c5f55f..0b8de19e 100644 --- a/src/modules/rolemenus/ui/menueditor.py +++ b/src/modules/rolemenus/ui/menueditor.py @@ -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()