mirror of
https://github.com/unmojang/node-minecraft-protocol.git
synced 2025-09-28 05:35:56 -04:00
Merge pull request #173 from rom1504/refactor_numeric
refactor numeric.js : all the functions were the same
This commit is contained in:
commit
84079bb0a8
@ -1,113 +1,3 @@
|
|||||||
module.exports = {
|
|
||||||
'byte': [readByte, writeByte, 1],
|
|
||||||
'ubyte': [readUByte, writeUByte, 1],
|
|
||||||
'short': [readShort, writeShort, 2],
|
|
||||||
'ushort': [readUShort, writeUShort, 2],
|
|
||||||
'int': [readInt, writeInt, 4],
|
|
||||||
'long': [readLong, writeLong, 8],
|
|
||||||
'float': [readFloat, writeFloat, 4],
|
|
||||||
'double': [readDouble, writeDouble, 8]
|
|
||||||
};
|
|
||||||
|
|
||||||
function readByte(buffer, offset) {
|
|
||||||
if(offset + 1 > buffer.length) return null;
|
|
||||||
var value = buffer.readInt8(offset);
|
|
||||||
return {
|
|
||||||
value: value,
|
|
||||||
size: 1,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeByte(value, buffer, offset) {
|
|
||||||
buffer.writeInt8(value, offset);
|
|
||||||
return offset + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
function readUByte(buffer, offset) {
|
|
||||||
if(offset + 1 > buffer.length) return null;
|
|
||||||
var value = buffer.readUInt8(offset);
|
|
||||||
return {
|
|
||||||
value: value,
|
|
||||||
size: 1,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeUByte(value, buffer, offset) {
|
|
||||||
buffer.writeUInt8(value, offset);
|
|
||||||
return offset + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
function readFloat(buffer, offset) {
|
|
||||||
if(offset + 4 > buffer.length) return null;
|
|
||||||
var value = buffer.readFloatBE(offset);
|
|
||||||
return {
|
|
||||||
value: value,
|
|
||||||
size: 4,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeFloat(value, buffer, offset) {
|
|
||||||
buffer.writeFloatBE(value, offset);
|
|
||||||
return offset + 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
function readDouble(buffer, offset) {
|
|
||||||
if(offset + 8 > buffer.length) return null;
|
|
||||||
var value = buffer.readDoubleBE(offset);
|
|
||||||
return {
|
|
||||||
value: value,
|
|
||||||
size: 8,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeDouble(value, buffer, offset) {
|
|
||||||
buffer.writeDoubleBE(value, offset);
|
|
||||||
return offset + 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function readShort(buffer, offset) {
|
|
||||||
if(offset + 2 > buffer.length) return null;
|
|
||||||
var value = buffer.readInt16BE(offset);
|
|
||||||
return {
|
|
||||||
value: value,
|
|
||||||
size: 2,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function writeShort(value, buffer, offset) {
|
|
||||||
buffer.writeInt16BE(value, offset);
|
|
||||||
return offset + 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
function readUShort(buffer, offset) {
|
|
||||||
if(offset + 2 > buffer.length) return null;
|
|
||||||
var value = buffer.readUInt16BE(offset);
|
|
||||||
return {
|
|
||||||
value: value,
|
|
||||||
size: 2,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeUShort(value, buffer, offset) {
|
|
||||||
buffer.writeUInt16BE(value, offset);
|
|
||||||
return offset + 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
function readInt(buffer, offset) {
|
|
||||||
if(offset + 4 > buffer.length) return null;
|
|
||||||
var value = buffer.readInt32BE(offset);
|
|
||||||
return {
|
|
||||||
value: value,
|
|
||||||
size: 4,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeInt(value, buffer, offset) {
|
|
||||||
buffer.writeInt32BE(value, offset);
|
|
||||||
return offset + 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function readLong(buffer, offset) {
|
function readLong(buffer, offset) {
|
||||||
if(offset + 8 > buffer.length) return null;
|
if(offset + 8 > buffer.length) return null;
|
||||||
return {
|
return {
|
||||||
@ -122,6 +12,39 @@ function writeLong(value, buffer, offset) {
|
|||||||
return offset + 8;
|
return offset + 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function generateFunctions(bufferReader,bufferWriter,size)
|
||||||
|
{
|
||||||
|
var reader=function(buffer, offset)
|
||||||
|
{
|
||||||
|
if(offset + size > buffer.length) return null;
|
||||||
|
var value = buffer[bufferReader](offset);
|
||||||
|
return {
|
||||||
|
value: value,
|
||||||
|
size: size
|
||||||
|
};
|
||||||
|
};
|
||||||
|
var writer=function(value, buffer, offset) {
|
||||||
|
buffer[bufferWriter](value, offset);
|
||||||
|
return offset + size;
|
||||||
|
};
|
||||||
|
return [reader, writer, size];
|
||||||
|
}
|
||||||
|
|
||||||
|
var nums= {
|
||||||
|
'byte': ["readInt8", "writeInt8", 1],
|
||||||
|
'ubyte': ["readUInt8", "writeUInt8", 1],
|
||||||
|
'short': ["readInt16BE", "writeInt16BE", 2],
|
||||||
|
'ushort': ["readUInt16BE", "writeUInt16BE", 2],
|
||||||
|
'int': ["readInt32BE", "writeInt32BE", 4],
|
||||||
|
'float': ["readFloatBE", "writeFloatBE", 4],
|
||||||
|
'double': ["readDoubleBE", "writeDoubleBE", 8]
|
||||||
|
};
|
||||||
|
|
||||||
|
var types=Object.keys(nums).reduce(function(types,num){
|
||||||
|
types[num]=generateFunctions(nums[num][0], nums[num][1], nums[num][2]);
|
||||||
|
return types;
|
||||||
|
},{});
|
||||||
|
types["long"]=[readLong, writeLong, 8];
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = types;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user