From 90b937eaef5ebc66a3e8008b55941121f48780ae Mon Sep 17 00:00:00 2001 From: Kae Bartlett Date: Mon, 5 Feb 2024 12:16:56 +0000 Subject: [PATCH] Catch error in forcing guild to exist for messages --- novus/models/message.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/novus/models/message.py b/novus/models/message.py index 26d90ec9..8cdb08e2 100644 --- a/novus/models/message.py +++ b/novus/models/message.py @@ -36,7 +36,7 @@ from .embed import Embed from .emoji import PartialEmoji from .file import File -from .guild import Guild +from .guild import BaseGuild, Guild from .guild_member import GuildMember from .reaction import Reaction from .role import Role @@ -48,7 +48,6 @@ from .. import payloads from ..api import HTTPConnection from . import abc - from .guild import BaseGuild from .webhook import Webhook AMI = bool | list[int] | list[abc.Snowflake] # AllowedMentions init @@ -94,7 +93,7 @@ def __init__(self, *, state: HTTPConnection, data: payloads.MessageInteraction, if cached_member: user = cached_member._update(data["member"]) else: - user = GuildMember(state=state, data=data["member"], user=user) + user = GuildMember(state=state, data=data["member"], user=user, guild=cached_guild) else: user = GuildMember(state=state, data=data["member"], user=user) self.user = user @@ -240,7 +239,11 @@ class Message(Hashable): sticker_items: list[Sticker] position: int | None - def __init__(self, *, state: HTTPConnection, data: payloads.Message) -> None: + def __init__( + self, + *, + state: HTTPConnection, + data: payloads.Message) -> None: self.state = state self.id = try_snowflake(data["id"]) channel = self.state.cache.get_channel(data["channel_id"]) @@ -250,7 +253,8 @@ def __init__(self, *, state: HTTPConnection, data: payloads.Message) -> None: self.guild = None if "guild_id" in data: self.guild = self.state.cache.get_guild(data["guild_id"]) - assert isinstance(self.guild, Guild) + if self.guild is None: + self.guild = BaseGuild(state=self.state, data={"id": data["guild_id"]}) # Get author user author = self.state.cache.get_user(data["author"]["id"])