diff options
| author | Mishio595 <[email protected]> | 2018-07-10 23:15:16 -0600 |
|---|---|---|
| committer | Mishio595 <[email protected]> | 2018-07-10 23:15:16 -0600 |
| commit | b373548752dbfbc4a28d38832daccf1be645d19f (patch) | |
| tree | b40212c3e8c4327d4dd214c1e7ccc406f49e9cf1 /src | |
| parent | Add impl AsRef<MessageId> for Message (diff) | |
| download | serenity-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.rs | 11 | ||||
| -rw-r--r-- | src/client/event_handler.rs | 2 |
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>) {} |