From 4466bedac9a347bd960537866d48e6b7c90c9de5 Mon Sep 17 00:00:00 2001 From: Romain Beaumont Date: Thu, 30 Jul 2015 04:05:08 +0200 Subject: [PATCH] Fix entityMetadata : container is ambiguous --- src/datatypes/minecraft.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/datatypes/minecraft.js b/src/datatypes/minecraft.js index 4221ba9..c5e93f1 100644 --- a/src/datatypes/minecraft.js +++ b/src/datatypes/minecraft.js @@ -174,6 +174,16 @@ for(var n in entityMetadataTypes) { entityMetadataTypeBytes[entityMetadataTypes[n].type] = n; } +// container is ambiguous +function findByte(type,value) +{ + if(type!="container") + return entityMetadataTypeBytes[type]; + console.log(JSON.stringify(value)); + console.log(value["x"]===undefined ? 7 : 6); + return value["x"]===undefined ? 7 : 6; +} + function readEntityMetadata(buffer, offset) { var cursor = offset; @@ -214,7 +224,7 @@ function readEntityMetadata(buffer, offset) { function writeEntityMetadata(value, buffer, offset) { var self = this; value.forEach(function(item) { - var type = entityMetadataTypeBytes[item.type]; + var type = findByte(item.type,item.value); var headerByte = (type << 5) | item.key; buffer.writeUInt8(headerByte, offset); offset += 1; @@ -230,7 +240,7 @@ function sizeOfEntityMetadata(value) { var item; for(var i = 0; i < value.length; ++i) { item = value[i]; - size += this.sizeOf(item.value, entityMetadataTypes[entityMetadataTypeBytes[item.type]], {}); + size += this.sizeOf(item.value, entityMetadataTypes[findByte(item.type,item.value)], {}); } return size; }