aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMishio595 <[email protected]>2018-07-10 23:15:16 -0600
committerMishio595 <[email protected]>2018-07-10 23:15:16 -0600
commitb373548752dbfbc4a28d38832daccf1be645d19f (patch)
treeb40212c3e8c4327d4dd214c1e7ccc406f49e9cf1 /src
parentAdd impl AsRef<MessageId> for Message (diff)
downloadserenity-b373548752dbfbc4a28d38832daccf1be645d19f.tar.xz
serenity-b373548752dbfbc4a28d38832daccf1be645d19f.zip
Add 3rd param to MessageUpdateEvent Option that contains the old message if found in the cache
Diffstat (limited to 'src')
-rw-r--r--src/client/dispatch.rs11
-rw-r--r--src/client/event_handler.rs2
2 files changed, 11 insertions, 2 deletions
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs
index 04bd8c9..b661328 100644
--- a/src/client/dispatch.rs
+++ b/src/client/dispatch.rs
@@ -510,13 +510,22 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
});
},
DispatchEvent::Model(Event::MessageUpdate(mut event)) => {
+ let message = match CACHE.read().messages.get(&event.channel_id) {
+ Some(map) => {
+ match map.get(&event.id) {
+ Some(m) => Some(m.clone()),
+ None => None,
+ }
+ },
+ None => None,
+ };
update!(event);
let context = context(data, runner_tx, shard_id);
let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
- event_handler.message_update(context, event);
+ event_handler.message_update(context, event, message);
});
},
DispatchEvent::Model(Event::PresencesReplace(mut event)) => {
diff --git a/src/client/event_handler.rs b/src/client/event_handler.rs
index 32fdaa1..b448904 100644
--- a/src/client/event_handler.rs
+++ b/src/client/event_handler.rs
@@ -230,7 +230,7 @@ pub trait EventHandler {
/// Dispatched when a message is updated.
///
/// Provides the new data of the message.
- fn message_update(&self, _ctx: Context, _new_data: MessageUpdateEvent) {}
+ fn message_update(&self, _ctx: Context, _new_data: MessageUpdateEvent, _old_message: Option<Message>) {}
fn presence_replace(&self, _ctx: Context, _: Vec<Presence>) {}