mirror of
https://github.com/unmojang/node-minecraft-protocol.git
synced 2025-09-28 05:35:56 -04:00
refactor and fix map chunk bulk parsing
This commit is contained in:
parent
c51cb26769
commit
3804c5cea6
@ -82,17 +82,15 @@ var readers = {
|
||||
};
|
||||
|
||||
function readMapChunkBulk (buffer, offset) {
|
||||
var cursor = offset + 6;
|
||||
var cursor = offset + 7;
|
||||
if (cursor > buffer.length) return null;
|
||||
var chunkCount = buffer.readInt16BE(buffer, offset);
|
||||
var dataSize = buffer.readInt32BE(buffer, offset + 2);
|
||||
var chunkCount = buffer.readInt16BE(offset);
|
||||
var dataSize = buffer.readInt32BE(offset + 2);
|
||||
var skyLightSent = !!buffer.readInt8(offset + 6);
|
||||
|
||||
var endCursor = cursor + 1 + dataSize + 12 * chunkCount;
|
||||
var endCursor = cursor + dataSize + 12 * chunkCount;
|
||||
if (endCursor > buffer.length) return null;
|
||||
|
||||
var skyLightSent = !!buffer.readInt8(buffer, cursor);
|
||||
cursor += 1;
|
||||
|
||||
var compressedChunkDataEnd = cursor + dataSize;
|
||||
var compressedChunkData = buffer.slice(cursor, compressedChunkDataEnd);
|
||||
cursor = compressedChunkDataEnd;
|
||||
@ -100,13 +98,13 @@ function readMapChunkBulk (buffer, offset) {
|
||||
var meta = [];
|
||||
var i, chunkX, chunkZ, primaryBitMap, addBitMap;
|
||||
for (i = 0; i < chunkCount; ++i) {
|
||||
chunkX = buffer.readInt32BE(buffer, cursor);
|
||||
chunkX = buffer.readInt32BE(cursor);
|
||||
cursor += 4;
|
||||
chunkZ = buffer.readInt32BE(buffer, cursor);
|
||||
chunkZ = buffer.readInt32BE(cursor);
|
||||
cursor += 4;
|
||||
primaryBitMap = buffer.readUInt16BE(buffer, cursor);
|
||||
primaryBitMap = buffer.readUInt16BE(cursor);
|
||||
cursor += 2;
|
||||
addBitMap = buffer.readUInt16BE(buffer, cursor);
|
||||
addBitMap = buffer.readUInt16BE(cursor);
|
||||
cursor += 2;
|
||||
|
||||
meta.push({
|
||||
|
12
packets.json
12
packets.json
@ -135,10 +135,20 @@
|
||||
],
|
||||
"56": [
|
||||
{
|
||||
"name": "dummy",
|
||||
"name": "data",
|
||||
"type": "mapChunkBulk"
|
||||
}
|
||||
],
|
||||
"70": [
|
||||
{
|
||||
"name": "reason",
|
||||
"type": "byte"
|
||||
},
|
||||
{
|
||||
"name": "gameMode",
|
||||
"type": "byte"
|
||||
}
|
||||
],
|
||||
"103": [
|
||||
{
|
||||
"name": "windowId",
|
||||
|
Loading…
x
Reference in New Issue
Block a user