diff --git a/lib/protocol.js b/lib/protocol.js index 3cee6d1..9d35ded 100644 --- a/lib/protocol.js +++ b/lib/protocol.js @@ -447,43 +447,30 @@ var packets = { ] }; -var writers = { - 'int': IntWriter, - 'short': ShortWriter, - 'ushort': UShortWriter, - 'byte': ByteWriter, - 'ubyte': UByteWriter, - 'string': StringWriter, - 'byteArray16': ByteArray16Writer, - 'bool': BoolWriter, - 'double': DoubleWriter, - 'float': FloatWriter, - 'slot': SlotWriter, -}; +var types = { + 'int': [readInt, IntWriter], + 'short': [readShort, ShortWriter], + 'ushort': [readUShort, UShortWriter], + 'byte': [readByte, ByteWriter], + 'ubyte': [readUByte, UByteWriter], + 'string': [readString, StringWriter], + 'byteArray16': [readByteArray16, ByteArray16Writer], + 'bool': [readBool, BoolWriter], + 'double': [readDouble, DoubleWriter], + 'float': [readFloat, FloatWriter], + 'slot': [readSlot, SlotWriter], -var readers = { - 'string': readString, - 'ascii': readAscii, - 'byteArray16': readByteArray16, - 'byteArray32': readByteArray32, - 'short': readShort, - 'ushort': readUShort, - 'int': readInt, - 'byte': readByte, - 'ubyte': readUByte, - 'long': readLong, - 'slot': readSlot, - 'bool': readBool, - 'double': readDouble, - 'float': readFloat, - 'slotArray': readSlotArray, - 'mapChunkBulk': readMapChunkBulk, - 'entityMetadata': readEntityMetadata, - 'objectData': readObjectData, - 'intArray8': readIntArray8, - 'intVector': readIntVector, - 'byteVector': readByteVector, - 'byteVectorArray': readByteVectorArray, + 'ascii': [readAscii], + 'byteArray32': [readByteArray32], + 'long': [readLong], + 'slotArray': [readSlotArray], + 'mapChunkBulk': [readMapChunkBulk], + 'entityMetadata': [readEntityMetadata], + 'objectData': [readObjectData], + 'intArray8': [readIntArray8], + 'intVector': [readIntVector], + 'byteVector': [readByteVector], + 'byteVectorArray': [readByteVectorArray], }; var entityMetadataReaders = { @@ -997,7 +984,7 @@ function createPacketBuffer(packetId, params, isServer) { var packet = get(packetId, isServer); packet.forEach(function(fieldInfo) { var value = params[fieldInfo.name]; - var Writer = writers[fieldInfo.type]; + var Writer = types[fieldInfo.type][1]; assert.ok(Writer, "missing writer for data type: " + fieldInfo.type); var field = new Writer(value); size += field.size; @@ -1022,7 +1009,7 @@ function parsePacket(buffer, isServer) { var i, fieldInfo, read, readResults; for (i = 0; i < packetInfo.length; ++i) { fieldInfo = packetInfo[i]; - read = readers[fieldInfo.type]; + read = types[fieldInfo.type][0]; assert.ok(read, "missing reader for data type: " + fieldInfo.type); readResults = read(buffer, size); if (readResults) {