mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-07-23 19:34:23 +00:00
Remove cached emoji and sticker data if intent is disabled
This commit is contained in:
parent
55f907a793
commit
5eeeef02e4
@ -472,9 +472,15 @@ class Guild(Hashable):
|
|||||||
role = Role(guild=self, data=r, state=state)
|
role = Role(guild=self, data=r, state=state)
|
||||||
self._roles[role.id] = role
|
self._roles[role.id] = role
|
||||||
|
|
||||||
self.emojis: Tuple[Emoji, ...] = tuple(map(lambda d: state.store_emoji(self, d), guild.get('emojis', [])))
|
self.emojis: Tuple[Emoji, ...] = (
|
||||||
self.stickers: Tuple[GuildSticker, ...] = tuple(
|
tuple(map(lambda d: state.store_emoji(self, d), guild.get('emojis', [])))
|
||||||
map(lambda d: state.store_sticker(self, d), guild.get('stickers', []))
|
if state.cache_guild_expressions
|
||||||
|
else ()
|
||||||
|
)
|
||||||
|
self.stickers: Tuple[GuildSticker, ...] = (
|
||||||
|
tuple(map(lambda d: state.store_sticker(self, d), guild.get('stickers', [])))
|
||||||
|
if state.cache_guild_expressions
|
||||||
|
else ()
|
||||||
)
|
)
|
||||||
self.features: List[GuildFeature] = guild.get('features', [])
|
self.features: List[GuildFeature] = guild.get('features', [])
|
||||||
self._splash: Optional[str] = guild.get('splash')
|
self._splash: Optional[str] = guild.get('splash')
|
||||||
@ -2898,7 +2904,10 @@ class Guild(Hashable):
|
|||||||
payload['tags'] = emoji
|
payload['tags'] = emoji
|
||||||
|
|
||||||
data = await self._state.http.create_guild_sticker(self.id, payload, file, reason)
|
data = await self._state.http.create_guild_sticker(self.id, payload, file, reason)
|
||||||
return self._state.store_sticker(self, data)
|
if self._state.cache_guild_expressions:
|
||||||
|
return self._state.store_sticker(self, data)
|
||||||
|
else:
|
||||||
|
return GuildSticker(state=self._state, data=data)
|
||||||
|
|
||||||
async def delete_sticker(self, sticker: Snowflake, /, *, reason: Optional[str] = None) -> None:
|
async def delete_sticker(self, sticker: Snowflake, /, *, reason: Optional[str] = None) -> None:
|
||||||
"""|coro|
|
"""|coro|
|
||||||
@ -3307,7 +3316,10 @@ class Guild(Hashable):
|
|||||||
role_ids = []
|
role_ids = []
|
||||||
|
|
||||||
data = await self._state.http.create_custom_emoji(self.id, name, img, roles=role_ids, reason=reason)
|
data = await self._state.http.create_custom_emoji(self.id, name, img, roles=role_ids, reason=reason)
|
||||||
return self._state.store_emoji(self, data)
|
if self._state.cache_guild_expressions:
|
||||||
|
return self._state.store_emoji(self, data)
|
||||||
|
else:
|
||||||
|
return Emoji(guild=self, state=self._state, data=data)
|
||||||
|
|
||||||
async def delete_emoji(self, emoji: Snowflake, /, *, reason: Optional[str] = None) -> None:
|
async def delete_emoji(self, emoji: Snowflake, /, *, reason: Optional[str] = None) -> None:
|
||||||
"""|coro|
|
"""|coro|
|
||||||
|
@ -259,6 +259,13 @@ class ConnectionState(Generic[ClientT]):
|
|||||||
|
|
||||||
self.clear()
|
self.clear()
|
||||||
|
|
||||||
|
# For some reason Discord still sends emoji/sticker data in payloads
|
||||||
|
# This makes it hard to actually swap out the appropriate store methods
|
||||||
|
# So this is checked instead, it's a small penalty to pay
|
||||||
|
@property
|
||||||
|
def cache_guild_expressions(self) -> bool:
|
||||||
|
return self._intents.emojis_and_stickers
|
||||||
|
|
||||||
async def close(self) -> None:
|
async def close(self) -> None:
|
||||||
for voice in self.voice_clients:
|
for voice in self.voice_clients:
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user