diff --git a/crates/pumpkin/src/net/java/pending.rs b/crates/pumpkin/src/net/java/pending.rs index 6afce92d8..f050b704f 100644 --- a/crates/pumpkin/src/net/java/pending.rs +++ b/crates/pumpkin/src/net/java/pending.rs @@ -9,6 +9,7 @@ use pumpkin_protocol::{ java::{ client::config::CConfigDisconnect, client::login::CLoginDisconnect, + client::play::CPlayDisconnect, packet_decoder::TCPNetworkDecoder, packet_encoder::TCPNetworkEncoder, server::config::{ @@ -160,6 +161,9 @@ impl PendingConnection { self.send_packet_now(&CConfigDisconnect::new(&reason.get_text())) .await; } + ConnectionState::Play => { + self.send_packet_now(&CPlayDisconnect::new(&reason)).await; + } _ => {} } debug!("Closing connection for {}", self.id); @@ -357,11 +361,11 @@ impl PendingConnection { return Ok(Some(PacketHandlerResult::Stop)); }; let config = self.config.clone().unwrap_or_default(); + self.connection_state.store(ConnectionState::Play); if let Some(reason) = can_not_join(&profile, &self.address, server).await { self.kick(reason).await; Ok(Some(PacketHandlerResult::Stop)) } else { - self.connection_state.store(ConnectionState::Play); Ok(Some(PacketHandlerResult::ReadyToPlay(profile, config))) } }