aboutsummaryrefslogtreecommitdiff
path: root/src/game/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/server.rs')
-rw-r--r--src/game/server.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/game/server.rs b/src/game/server.rs
index 1f5cc7b..1b4d373 100644
--- a/src/game/server.rs
+++ b/src/game/server.rs
@@ -56,14 +56,12 @@ async fn game_loop(config: Config, state: Arc<State>) {
struct ClientState {
pid: Option<u32>,
alive: bool,
- username: String,
}
async fn handle_client(sock: TcpStream, state: Arc<State>) -> Result<()> {
let mut cstate = ClientState {
pid: None,
alive: false,
- username: "guest".to_string(),
};
let res = handle_client_inner(sock, &state, &mut cstate).await;
if let Some(pid) = cstate.pid {
@@ -87,8 +85,8 @@ async fn handle_client_inner(
loop {
tokio::select! {
message = chat.recv() => {
- let (player, message) = message?;
- tx.send_packet(Packet::Chat(format!("{player}: {message}"))).await?;
+ let (id, message) = message?;
+ tx.send_packet(Packet::Message { id, message }).await?;
},
new_game = ticks.recv() => {
let new_game = new_game?;
@@ -235,7 +233,9 @@ async fn handle_packet(
.await?;
return Ok(());
}
- let _ = state.chat.send((cstate.username.clone(), message));
+ if let Some(pid) = cstate.pid {
+ let _ = state.chat.send((pid, message));
+ }
}
_ => {
tx.send_packet(Packet::Error("clients dont send this packet".to_string()))