diff options
| author | Austin Hellyer <[email protected]> | 2016-11-27 19:52:58 -0800 |
|---|---|---|
| committer | Austin Hellyer <[email protected]> | 2016-11-27 19:53:56 -0800 |
| commit | c4636a1a715b6668904eacadc41d1022f16ae8a2 (patch) | |
| tree | 0ca0727f56970aaaeba78d2f14f62e4e4266d824 /src | |
| parent | Re-export CreateEmbedFooter (diff) | |
| download | serenity-c4636a1a715b6668904eacadc41d1022f16ae8a2.tar.xz serenity-c4636a1a715b6668904eacadc41d1022f16ae8a2.zip | |
Correctly track Cache's unavailable guilds
When a guild delete is received, add its Id to the unavailable guild list,
and when a create is received, remove it.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ext/cache/mod.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ext/cache/mod.rs b/src/ext/cache/mod.rs index 923c55a..d07f7a6 100644 --- a/src/ext/cache/mod.rs +++ b/src/ext/cache/mod.rs @@ -722,12 +722,18 @@ impl Cache { #[doc(hidden)] pub fn update_with_guild_create(&mut self, event: &GuildCreateEvent) { + self.unavailable_guilds.retain(|guild_id| *guild_id != event.guild.id); + self.guilds.insert(event.guild.id, event.guild.clone()); } #[doc(hidden)] pub fn update_with_guild_delete(&mut self, event: &GuildDeleteEvent) -> Option<Guild> { + if !self.unavailable_guilds.contains(&event.guild.id) { + self.unavailable_guilds.push(event.guild.id); + } + self.guilds.remove(&event.guild.id) } |