From e250895386dcaeaa566515ba3bcfabdd5b44f11b Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Mon, 23 Feb 2026 16:30:02 +0100 Subject: [PATCH] Get user --- src/main.rs | 24 ++++++++++++++++++++++++ src/methods.rs | 10 ++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/main.rs b/src/main.rs index aed9350..5b5dca4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -180,6 +180,7 @@ async fn main() -> session_rs::Result<()> { session .on_request::({ let sessions = Arc::clone(&sessions); + let uuid = Arc::clone(&uuid); move |_, emote| { let sessions = Arc::clone(&sessions); @@ -190,6 +191,17 @@ async fn main() -> session_rs::Result<()> { }) .await; + session + .on_request::({ + let sessions = Arc::clone(&sessions); + let pool = Arc::clone(&pool); + + move |_, uuid: String| { + get_user(sessions.clone(), uuid.clone(), pool.clone()) + } + }) + .await; + Ok::<(), session_rs::Error>(()) }) as Pin + Send>> } @@ -197,6 +209,18 @@ async fn main() -> session_rs::Result<()> { .await } +async fn get_user( + sessions: SessionMap, + uuid: String, + pool: Arc, +) -> Result, String> { + if !sessions.lock().await.contains_key(&uuid) { + return Ok(None); + } + + Ok(Some(user::get(&uuid, pool.as_ref()).await?)) +} + async fn send_emote( sessions: SessionMap, uuid: UUID, diff --git a/src/methods.rs b/src/methods.rs index a347359..d857866 100644 --- a/src/methods.rs +++ b/src/methods.rs @@ -75,3 +75,13 @@ impl Method for EmoteEvent { type Response = String; type Error = String; } + +#[derive(Debug, Serialize, Deserialize)] +pub struct Player; + +impl Method for Player { + const NAME: &'static str = "player"; + type Request = String; + type Response = Option; + type Error = String; +}