aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorMishio595 <[email protected]>2018-09-16 11:37:51 -0600
committerMishio595 <[email protected]>2018-09-16 11:37:51 -0600
commit9fdff0acc0162299e704a4e4b9143e6dfffa02bc (patch)
tree49897ea45537a5623ce5d92b08bbe161e793a09b /src/model
parentDon't log event deserialization failures in voice (diff)
downloadserenity-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.rs57
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
+ }
}
}