Hi! I'm a Minecraft PE server developer.
In general, chunk should be fully refreshed when client receives a new chunk data. But I found that those empty chunk sections that server doesn't send can't be refreshed, they're just like before.
Can you fix this bug asap?
I'm looking forward to your reply.
Attachments
Comments 14
First of all, PMMP is never the only server software in the world. However, whatever software you use, you will meet this problem. Secondly, what server software can do is sending packets. As a result, it is hard to fix client-side issue with hacks. This will result in making the client unstable and breaking the cleanliness of the codes of the server. For player's interests, please fix.
I didn't fully understand the issue. Are you sending a FullChunk packet (id 58), but the client doesn't rebuild previously empty subchunks?
(for what it matters, I consider this a real bug in the client, because we do want to support third-party servers doing stuff like that)
No, but probably later.
edit: If there is a bug that is. I still haven't tried to reproduce it. I haven't heard that this is an actual problem from other server developers.
I can confirm that MiNET also suffer from this issue. So not just a PocketMine problem for anyone thinking it is related to the server-code.
In case it helps anyone out, the hack I'm using to work around this issue is to send a null chunk to clear the area, before sending actual chunks when changing worlds.
To clear a column, just send a chunk packet with 1 byte in the chunk data: count of subchunks you want to overwrite, and the client will extrapolate a stack of empty subchunks from that.
It's not ideal, since unless your server-side tracking of used chunks is absolutely perfect (which it definitely isn't in PocketMine) the issue may still occur occasionally, but it does work. It also lags the hell out of the client.
If you want to clear all chunks you could just teleport the player somewhere else and send new chunks as usual.
Earlier version, when teleporting player outside of chunks, it started shaking violently. That might not be the case now so that might work to force the client to "clear". Need to test that. But otherwise, sending null-chunks is not too bad a solution since they are sent in batch, and are very small. We used that trick earlier to force the dimension-loading-screens to show up during world-transfers.
The issue is with pocketmine or whatever custom pmmp you are using, mcpe code has very little to do with servers.