diff --git a/gateway/src/handle_events.rs b/gateway/src/handle_events.rs index 9a739b1..b801eb9 100644 --- a/gateway/src/handle_events.rs +++ b/gateway/src/handle_events.rs @@ -1,6 +1,6 @@ use std::sync::Arc; use std::sync::atomic::Ordering; -use tokio::sync::{mpsc, Mutex, RwLock}; +use tokio::sync::{Mutex}; use twilight_cache_inmemory::InMemoryCache; use twilight_gateway::Shard; use twilight_http::Client; @@ -43,19 +43,22 @@ pub async fn handle_events(http_client: Arc, app_id: Id { - }, Event::InteractionCreate(interaction) => { + cache.update(&event); let framework_clone = Arc::clone(&framework); framework_clone.process(interaction.0.clone()).await; }, + + Event::MessageDelete(message) => { + message_delete::handle_message_delete_events(message, &mut cache).await; + cache.update(&event); + } + _ => { + cache.update(&event); tracing::info!(kind = ?event.kind(), shard = ?shard.id(), "received event of type {:?}", event.kind()); } } diff --git a/gateway/src/handlers/message_delete.rs b/gateway/src/handlers/message_delete.rs index 4b6e939..0bbd3e4 100644 --- a/gateway/src/handlers/message_delete.rs +++ b/gateway/src/handlers/message_delete.rs @@ -1,12 +1,10 @@ use std::sync::Arc; -use tokio::sync::{Mutex}; use tracing::{info, warn}; use twilight_cache_inmemory::InMemoryCache; use twilight_model::gateway::payload::incoming::MessageDelete; -pub(crate) async fn handle_message_delete_events(event: &MessageDelete, cache: Arc>) { - let cache_lock = cache.lock().await; - let message = cache_lock.message(event.id); +pub(crate) async fn handle_message_delete_events(event: &MessageDelete, cache: &mut InMemoryCache) { + let message = cache.message(event.id); match message { Some(msg) => {