mirror of
https://github.com/danbulant/flying-squid
synced 2026-07-05 11:10:44 +00:00
send rest of the map only when the player has logged, fix #88
This commit is contained in:
parent
a647e34078
commit
6b86cf5e9a
2 changed files with 23 additions and 5 deletions
|
|
@ -15,7 +15,7 @@ function inject(serv,player)
|
||||||
player.entity.food = 20;
|
player.entity.food = 20;
|
||||||
player.entity.crouching = false; // Needs added in prismarine-entity later
|
player.entity.crouching = false; // Needs added in prismarine-entity later
|
||||||
player.playerViewDistance = 150;
|
player.playerViewDistance = 150;
|
||||||
player.view=8;
|
player.view=10;
|
||||||
player.world=serv.overworld;
|
player.world=serv.overworld;
|
||||||
player.username=player._client.username;
|
player.username=player._client.username;
|
||||||
serv.players.push(player);
|
serv.players.push(player);
|
||||||
|
|
@ -121,6 +121,19 @@ function inject(serv,player)
|
||||||
player.emit("connected");
|
player.emit("connected");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player.waitPlayerLogin = () => {
|
||||||
|
var events=["flying","look"];
|
||||||
|
return new Promise(function(resolve){
|
||||||
|
|
||||||
|
var listener=()=> {
|
||||||
|
events.map(event => player._client.removeListener(event,listener));
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
events.map(event =>player._client.on(event,listener));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
player.login = async () =>
|
player.login = async () =>
|
||||||
{
|
{
|
||||||
if (serv.uuidToPlayer[player._client.uuid]) {
|
if (serv.uuidToPlayer[player._client.uuid]) {
|
||||||
|
|
@ -149,6 +162,8 @@ function inject(serv,player)
|
||||||
player.emit("spawned");
|
player.emit("spawned");
|
||||||
sendPlayersWhenMove();
|
sendPlayersWhenMove();
|
||||||
|
|
||||||
setTimeout(() => {player.sendRestMap();sendChunkWhenMove();},100);
|
await player.waitPlayerLogin();
|
||||||
|
player.sendRestMap();
|
||||||
|
sendChunkWhenMove();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -59,9 +59,9 @@ function inject(serv, player) {
|
||||||
})
|
})
|
||||||
.reduce((acc,{chunkX,chunkZ})=>
|
.reduce((acc,{chunkX,chunkZ})=>
|
||||||
acc
|
acc
|
||||||
//.then(() => sleep(100))
|
|
||||||
.then(() => player.world.getColumn(chunkX,chunkZ))
|
.then(() => player.world.getColumn(chunkX,chunkZ))
|
||||||
.then((column) => player.sendChunk(chunkX,chunkZ,column))
|
.then((column) => player.sendChunk(chunkX,chunkZ,column))
|
||||||
|
.then(() => sleep(5))
|
||||||
,Promise.resolve());
|
,Promise.resolve());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -108,9 +108,12 @@ function inject(serv, player) {
|
||||||
player.updateAndSpawnNearbyPlayers();
|
player.updateAndSpawnNearbyPlayers();
|
||||||
|
|
||||||
await player.sendMap();
|
await player.sendMap();
|
||||||
setTimeout(player.sendRestMap,100);
|
|
||||||
player.sendPosition();
|
|
||||||
|
|
||||||
|
player.sendPosition();
|
||||||
player.emit('change_world');
|
player.emit('change_world');
|
||||||
|
|
||||||
|
await player.waitPlayerLogin();
|
||||||
|
player.sendRestMap();
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue