use super::{ChatMessage, Position, ZoneConnection}; pub struct ChatHandler {} impl ChatHandler { pub async fn handle_chat_message(connection: &mut ZoneConnection, chat_message: &ChatMessage) { tracing::info!("Client sent chat message: {}!", chat_message.message); let parts: Vec<&str> = chat_message.message.split(' ').collect(); match parts[0] { "!setpos" => { let pos_x = parts[1].parse::().unwrap(); let pos_y = parts[2].parse::().unwrap(); let pos_z = parts[3].parse::().unwrap(); connection .set_player_position(Position { x: pos_x, y: pos_y, z: pos_z, }) .await; } _ => tracing::info!("Unrecognized debug command!"), } } }