diff --git a/redbot/core/modlog.py b/redbot/core/modlog.py index 69ec40fb8..0b588cd65 100644 --- a/redbot/core/modlog.py +++ b/redbot/core/modlog.py @@ -286,8 +286,11 @@ class Case: modified_at: Optional[float] The UNIX time of the last change to the case. `None` if the case was never edited. - message: Optional[discord.Message] + message: Optional[Union[discord.PartialMessage, discord.Message]] The message created by Modlog for this case. + Instance of `discord.Message` *if* the Case object was returned from + `modlog.create_case()`, otherwise `discord.PartialMessage`. + `None` if we know that the message no longer exists (note: it might not exist regardless of whether this attribute is `None`) or if it has never been created. @@ -311,7 +314,7 @@ class Case: channel: Optional[Union[discord.abc.GuildChannel, int]] = None, amended_by: Optional[Union[discord.Object, discord.abc.User, int]] = None, modified_at: Optional[float] = None, - message: Optional[discord.Message] = None, + message: Optional[Union[discord.PartialMessage, discord.Message]] = None, last_known_username: Optional[str] = None, ): self.bot = bot @@ -617,14 +620,7 @@ class Case: if message is None: message_id = data.get("message") if message_id is not None: - message = discord.utils.get(bot.cached_messages, id=message_id) - if message is None: - try: - message = await mod_channel.fetch_message(message_id) - except discord.HTTPException: - message = None - else: - message = None + message = mod_channel.get_partial_message(message_id) user_objects = {"user": None, "moderator": None, "amended_by": None} for user_key in tuple(user_objects):