First pass at supporting user apps

Co-authored-by: red <red@kalab.sk>
Co-authored-by: Vioshim <63890837+Vioshim@users.noreply.github.com>
This commit is contained in:
Danny
2024-05-04 23:25:01 -04:00
committed by GitHub
parent 2892401992
commit 2e2f51fd5c
19 changed files with 920 additions and 52 deletions

View File

@ -429,8 +429,8 @@ class ConnectionState(Generic[ClientT]):
# the keys of self._guilds are ints
return self._guilds.get(guild_id) # type: ignore
def _get_or_create_unavailable_guild(self, guild_id: int) -> Guild:
return self._guilds.get(guild_id) or Guild._create_unavailable(state=self, guild_id=guild_id)
def _get_or_create_unavailable_guild(self, guild_id: int, *, data: Optional[Dict[str, Any]] = None) -> Guild:
return self._guilds.get(guild_id) or Guild._create_unavailable(state=self, guild_id=guild_id, data=data)
def _add_guild(self, guild: Guild) -> None:
self._guilds[guild.id] = guild
@ -1592,7 +1592,8 @@ class ConnectionState(Generic[ClientT]):
if channel is not None:
if isinstance(channel, DMChannel):
channel.recipient = raw.user
if raw.user is not None and raw.user not in channel.recipients:
channel.recipients.append(raw.user)
elif guild is not None:
raw.user = guild.get_member(raw.user_id)