Lazy guilds
Discord rolled out lazy guilds for all guilds in the service, not just the large
ones, that gives a real punch on having any proper UX for users since PRESENCE_UPDATE
s aren't accepted by the client as actual guild presence updates.
HOWEVER, due to API compatiblity, clients are able to resort to PRESENCE_UPDATE
s instead of GUILD_MEMBER_LIST_UPDATE
s, which means we need to handle both behaviors at once.
My proposal is create a class: GuildMemberList
. It would handle everything on pub/sub to users that subscribed to it (via the new OP 14, which is undocumented but its been RE'd here: https://gitlab.com/luna/litecord/blob/c7923da1245edd1fde7d71168d5e34519849347f/litecord/gateway/websocket.py#L581 ). And would dispatch PRESENCE_UPDATE
s to users who haven't subscribed to the list.
-
Implement GuildMemberList
-
Dispatch GUILD_MEMBER_UPDATE
s in the same way discord does(via the variousSYNC
,INVALIDATE
,INSERT
,UPDATE
andDELETE
operators) -
Dispatch PRESENCE_UPDATE
s only to users who haven't subscribed with OP 14(which is OP 12 Guild Sync)