mirror of
https://github.com/Pumpkin-MC/Pumpkin.git
synced 2026-08-30 20:14:23 +00:00
fix: set client player before spawn to prevent invisible chunks on first join (#2307)
* Fix First Join Invisible Chunk * downgrade warn! to debug! in send_chunks drop path
This commit is contained in:
@@ -478,11 +478,15 @@ impl PumpkinServer {
|
||||
.add_player(Arc::new(ClientPlatform::Java(java_client)), profile, Some(config))
|
||||
.await
|
||||
{
|
||||
// Set the player on the client BEFORE spawning so that chunk
|
||||
// sends during spawn_java_player don't get silently dropped.
|
||||
if let ClientPlatform::Java(client) = player.client.as_ref() {
|
||||
*client.player.lock().await = Some(player.clone());
|
||||
}
|
||||
world
|
||||
.spawn_java_player(&server_clone.basic_config, &player, &server_clone)
|
||||
.await;
|
||||
if let ClientPlatform::Java(client) = player.client.as_ref() {
|
||||
*client.player.lock().await = Some(player.clone());
|
||||
client.progress_player_packets(&player, &server_clone).await;
|
||||
|
||||
// Close when done
|
||||
|
||||
@@ -360,6 +360,10 @@ impl BedrockClient {
|
||||
pub async fn send_chunks(&self, chunks: &[SyncChunk]) {
|
||||
let player = self.player.lock().await.clone();
|
||||
let Some(player) = player.as_ref() else {
|
||||
debug!(
|
||||
"send_chunks: player not set yet, dropping {} chunks",
|
||||
chunks.len()
|
||||
);
|
||||
return;
|
||||
};
|
||||
let Some(server) = player.world().server.upgrade() else {
|
||||
|
||||
@@ -341,6 +341,10 @@ impl JavaClient {
|
||||
pub async fn send_chunks(&self, chunks: &[SyncChunk]) {
|
||||
let player = self.player.lock().await.clone();
|
||||
let Some(player) = player.as_ref() else {
|
||||
debug!(
|
||||
"send_chunks: player not set yet, dropping {} chunks",
|
||||
chunks.len()
|
||||
);
|
||||
return;
|
||||
};
|
||||
let Some(server) = player.world().server.upgrade() else {
|
||||
|
||||
Reference in New Issue
Block a user