@@ 28,20 28,26 @@ pub async fn handle_client(mgr: ClientManager, data: Arc<RwLock<PhysicsData>>, r
match msg {
ClientHandlerMessage::Tick => {} // this intentionally does nothing,
ClientHandlerMessage::ChatMessage { from, message } => {
- send!(client_tx, &MessageS2C::Chat {
- message,
- from
- }).await?;
+ if matches!(state, State::Play) {
+ send!(client_tx, &MessageS2C::Chat {
+ message,
+ from
+ }).await?;
+ }
}
ClientHandlerMessage::PlayersUpdate { players } => {
- send!(client_tx, &MessageS2C::PlayersUpdate {
- players
- }).await?;
+ if matches!(state, State::Play) {
+ send!(client_tx, &MessageS2C::PlayersUpdate {
+ players
+ }).await?;
+ }
}
ClientHandlerMessage::PlanetData { planets } => {
- send!(client_tx, &MessageS2C::PlanetData {
- planets
- }).await?;
+ if matches!(state, State::Play) {
+ send!(client_tx, &MessageS2C::PlanetData {
+ planets
+ }).await?;
+ }
}
}
} else {
@@ 103,6 109,7 @@ pub async fn handle_client(mgr: ClientManager, data: Arc<RwLock<PhysicsData>>, r
given_username: requested_username.clone(),
next_state,
}).await?;
+
state = next_state;
username = requested_username;