Browse Source

Fix member list cache race condition

pull/10109/head
dolfies 3 years ago
parent
commit
861d61d96d
  1. 9
      discord/state.py

9
discord/state.py

@ -178,9 +178,6 @@ class MemberSidebar:
self.exception: Optional[Exception] = None self.exception: Optional[Exception] = None
self.waiters: List[asyncio.Future[Optional[List[Member]]]] = [] self.waiters: List[asyncio.Future[Optional[List[Member]]]] = []
def __bool__(self) -> bool:
return self.subscribing
@property @property
def limit(self) -> int: def limit(self) -> int:
guild = self.guild guild = self.guild
@ -207,7 +204,7 @@ class MemberSidebar:
end = 99 end = 99
amount = self.limit amount = self.limit
if amount is None: if amount is None:
raise RuntimeError('cannot get ranges for a guild with no member/presence count') raise RuntimeError('Member/presence count required to compute ranges')
ceiling = ceil(amount / chunk) * chunk ceiling = ceil(amount / chunk) * chunk
ranges = [] ranges = []
@ -272,9 +269,6 @@ class MemberSidebar:
return list(ret) return list(ret)
def add_members(self, members: List[Member]) -> None: def add_members(self, members: List[Member]) -> None:
if self.buffer is None:
return
self.buffer.extend(members) self.buffer.extend(members)
if self.cache: if self.cache:
guild = self.guild guild = self.guild
@ -1751,7 +1745,6 @@ class ConnectionState:
if not force_scraping and any( if not force_scraping and any(
{ {
guild.me.guild_permissions.administrator,
guild.me.guild_permissions.kick_members, guild.me.guild_permissions.kick_members,
guild.me.guild_permissions.ban_members, guild.me.guild_permissions.ban_members,
guild.me.guild_permissions.manage_roles, guild.me.guild_permissions.manage_roles,

Loading…
Cancel
Save