Skip to content

Commit 5e06a04

Browse files
committed
revert world sendNearbyChunks change
1 parent c21bf20 commit 5e06a04

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/lib/plugins/world.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ const spiralloop = require('spiralloop')
66
const { level } = require('prismarine-provider-anvil')
77
const nbt = require('prismarine-nbt')
88

9+
function sleep (ms = 0) {
10+
return new Promise(resolve => setTimeout(resolve, ms))
11+
}
12+
913
module.exports.server = async function (serv, options = {}) {
1014
const { version, worldFolder, generation = { name: 'diamond_square', options: { worldHeight: 80 } } } = options
1115
const { registry } = serv
@@ -236,7 +240,7 @@ module.exports.player = function (player, serv, settings) {
236240
return t
237241
}
238242

239-
async function sendNearbyChunks (view) {
243+
async function sendNearbyChunks (view, group) {
240244
player.lastPositionChunkUpdated = player.position
241245
const playerChunkX = Math.floor(player.position.x / 16)
242246
const playerChunkZ = Math.floor(player.position.z / 16)
@@ -246,17 +250,18 @@ module.exports.player = function (player, serv, settings) {
246250
.filter(([x, z]) => Math.abs(x - playerChunkX) > view || Math.abs(z - playerChunkZ) > view)
247251
.forEach(([x, z]) => player._unloadChunk(x, z))
248252

249-
const promises = []
250-
spiral([view * 2, view * 2])
253+
return spiral([view * 2, view * 2])
251254
.map(t => ({
252255
chunkX: playerChunkX + t[0] - view,
253256
chunkZ: playerChunkZ + t[1] - view
254257
}))
255258
.filter(({ chunkX, chunkZ }) => serv._worldLoadPlayerChunk(chunkX, chunkZ, player))
256-
.forEach(({ chunkX, chunkZ }) => {
257-
promises.push(player.world.getColumn(chunkX, chunkZ).then((column) => player.sendChunk(chunkX, chunkZ, column)))
258-
})
259-
return Promise.all(promises)
259+
.reduce((acc, { chunkX, chunkZ }) => {
260+
const p = acc
261+
.then(() => player.world.getColumn(chunkX, chunkZ))
262+
.then((column) => player.sendChunk(chunkX, chunkZ, column))
263+
return group ? p.then(() => sleep(5)) : p
264+
}, Promise.resolve())
260265
}
261266

262267
player.worldSendInitialChunks = () => {

0 commit comments

Comments
 (0)