fix slot parsing

This commit is contained in:
Andrew Kelley 2013-01-01 14:54:25 -05:00
parent 4523996067
commit e42f89a6ac
2 changed files with 17 additions and 5 deletions

View File

@ -324,29 +324,31 @@ function readBool(buffer, offset) {
function readSlot(buffer, offset) { function readSlot(buffer, offset) {
var results = readShort(buffer, offset); var results = readShort(buffer, offset);
if (! results) return null; if (! results) return null;
var blockId = results.value; var blockId = results.value;
var cursor = offset + results.size;
if (blockId === -1) { if (blockId === -1) {
return { return {
value: { id: blockId }, value: { id: blockId },
size: results.size, size: cursor - offset,
}; };
} }
var cursor = offset + results.size;
results = readByte(buffer, cursor); results = readByte(buffer, cursor);
if (! results) return null; if (! results) return null;
var itemCount = results.value; var itemCount = results.value;
cursor += results.size; cursor += results.size;
results = readShort(buffer, cursor); results = readShort(buffer, cursor);
if (! results) return null; if (! results) return null;
var itemDamage = results.value; var itemDamage = results.value;
cursor += results.size; cursor += results.size;
results = readShort(buffer, cursor); results = readShort(buffer, cursor);
if (! results) return null; if (! results) return null;
var nbtDataSize = results.value; var nbtDataSize = results.value;
cursor += results.size;
if (nbtDataSize === -1) nbtDataSize = 0; if (nbtDataSize === -1) nbtDataSize = 0;
var nbtDataEnd = cursor + nbtDataSize; var nbtDataEnd = cursor + nbtDataSize;
var nbtData = buffer.slice(cursor, nbtDataEnd); var nbtData = buffer.slice(cursor, nbtDataEnd);

View File

@ -217,6 +217,16 @@
"type": "entityMetadata" "type": "entityMetadata"
} }
], ],
"40": [
{
"name": "eid",
"type": "int"
},
{
"name": "metadata",
"type": "entityMetadata"
}
],
"56": [ "56": [
{ {
"name": "data", "name": "data",