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) {
var results = readShort(buffer, offset);
if (! results) return null;
var blockId = results.value;
var cursor = offset + results.size;
if (blockId === -1) {
return {
value: { id: blockId },
size: results.size,
size: cursor - offset,
};
}
var cursor = offset + results.size;
results = readByte(buffer, cursor);
if (! results) return null;
var itemCount = results.value;
cursor += results.size;
results = readShort(buffer, cursor);
if (! results) return null;
var itemDamage = results.value;
cursor += results.size;
results = readShort(buffer, cursor);
if (! results) return null;
var nbtDataSize = results.value;
cursor += results.size;
if (nbtDataSize === -1) nbtDataSize = 0;
var nbtDataEnd = cursor + nbtDataSize;
var nbtData = buffer.slice(cursor, nbtDataEnd);

View File

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