diff options
| author | Mishio595 <[email protected]> | 2018-09-16 11:37:51 -0600 |
|---|---|---|
| committer | Mishio595 <[email protected]> | 2018-09-16 11:37:51 -0600 |
| commit | 9fdff0acc0162299e704a4e4b9143e6dfffa02bc (patch) | |
| tree | 49897ea45537a5623ce5d92b08bbe161e793a09b /src/model | |
| parent | Don't log event deserialization failures in voice (diff) | |
| download | serenity-9fdff0acc0162299e704a4e4b9143e6dfffa02bc.tar.xz serenity-9fdff0acc0162299e704a4e4b9143e6dfffa02bc.zip | |
Old message is optionally passed with message_update event
Diffstat (limited to 'src/model')
| -rw-r--r-- | src/model/event.rs | 57 |
1 files changed, 32 insertions, 25 deletions
diff --git a/src/model/event.rs b/src/model/event.rs index 191c98f..03905cf 100644 --- a/src/model/event.rs +++ b/src/model/event.rs @@ -847,41 +847,48 @@ pub struct MessageUpdateEvent { #[cfg(feature = "cache")] impl CacheUpdate for MessageUpdateEvent { - type Output = (); + type Output = Message; fn update(&mut self, cache: &mut Cache) -> Option<Self::Output> { - let messages = cache.messages.get_mut(&self.channel_id)?; - let message = messages.get_mut(&self.id)?; + if let Some(messages) = cache.messages.get_mut(&self.channel_id) { + if let Some(message) = messages.get_mut(&self.id) { + let item = message.clone(); - if let Some(attachments) = self.attachments.clone() { - message.attachments = attachments; - } + if let Some(attachments) = self.attachments.clone() { + message.attachments = attachments; + } - if let Some(content) = self.content.clone() { - message.content = content; - } + if let Some(content) = self.content.clone() { + message.content = content; + } - if let Some(edited_timestamp) = self.edited_timestamp { - message.edited_timestamp = Some(edited_timestamp); - } + if let Some(edited_timestamp) = self.edited_timestamp { + message.edited_timestamp = Some(edited_timestamp); + } - if let Some(mentions) = self.mentions.clone() { - message.mentions = mentions; - } + if let Some(mentions) = self.mentions.clone() { + message.mentions = mentions; + } - if let Some(mention_everyone) = self.mention_everyone { - message.mention_everyone = mention_everyone; - } + if let Some(mention_everyone) = self.mention_everyone { + message.mention_everyone = mention_everyone; + } - if let Some(mention_roles) = self.mention_roles.clone() { - message.mention_roles = mention_roles; - } + if let Some(mention_roles) = self.mention_roles.clone() { + message.mention_roles = mention_roles; + } - if let Some(pinned) = self.pinned { - message.pinned = pinned; - } + if let Some(pinned) = self.pinned { + message.pinned = pinned; + } - None + Some(item) + } else { + None + } + } else { + None + } } } |