a few small changes to make the code better

This commit is contained in:
Romain Beaumont 2015-11-30 22:19:56 +01:00
parent f3a653ef1c
commit b2b53c9343
14 changed files with 40 additions and 47 deletions

View file

@ -55,7 +55,7 @@ if(process.argv.length < 5) {
process.exit(1); process.exit(1);
} }
process.argv.forEach(function(val, index, array) { process.argv.forEach(function(val) {
if(val == "-h") { if(val == "-h") {
print_help(); print_help();
process.exit(0); process.exit(0);
@ -167,9 +167,9 @@ function parseChat(chatObj, parentState) {
chat += color(util.format.apply(this, args), getColorize(parentState)); chat += color(util.format.apply(this, args), getColorize(parentState));
} }
for(var i in chatObj.extra) { chatObj.extra.forEach(function(i) {
chat += parseChat(chatObj.extra[i], parentState); chat += parseChat(chatObj.extra[i], parentState);
} });
return chat; return chat;
} }
} }

View file

@ -26,7 +26,7 @@ if(process.argv.length < 4) {
printHelpAndExit(1); printHelpAndExit(1);
} }
process.argv.forEach(function(val, index, array) { process.argv.forEach(function(val) {
if(val == "-h") { if(val == "-h") {
printHelpAndExit(0); printHelpAndExit(0);
} }
@ -175,8 +175,8 @@ srv.on('login', function(client) {
function shouldDump(name, direction) { function shouldDump(name, direction) {
if(matches(printNameBlacklist[name])) return false; if(matches(printNameBlacklist[name])) return false;
if(printAllNames) return true; if(printAllNames) return true;
if(matches(printNameWhitelist[name])) return true; return matches(printNameWhitelist[name]);
return false;
function matches(result) { function matches(result) {
return result != null && result.indexOf(direction) !== -1; return result != null && result.indexOf(direction) !== -1;
} }

View file

@ -1,11 +1,10 @@
var mc = require('minecraft-protocol'); var mc = require('minecraft-protocol');
var states = mc.states;
var options = { var options = {
motd: 'Vox Industries', motd: 'Vox Industries',
'max-players': 127, 'max-players': 127,
port: 25565, port: 25565,
'online-mode': false, 'online-mode': false
}; };
var server = mc.createServer(options); var server = mc.createServer(options);

View file

@ -1,7 +1,7 @@
var mc = require('minecraft-protocol'); var mc = require('minecraft-protocol');
var options = { var options = {
'online-mode': true, 'online-mode': true
}; };
var server = mc.createServer(options); var server = mc.createServer(options);

View file

@ -86,6 +86,7 @@ function createClient(options) {
client.connect(port, host); client.connect(port, host);
} }
var timeout = null;
return client; return client;
function onConnect() { function onConnect() {
@ -104,7 +105,6 @@ function createClient(options) {
function onCompressionRequest(packet) { function onCompressionRequest(packet) {
client.compressionThreshold = packet.threshold; client.compressionThreshold = packet.threshold;
} }
var timeout = null;
function onKeepAlive(packet) { function onKeepAlive(packet) {
if (timeout) if (timeout)
clearTimeout(timeout); clearTimeout(timeout);
@ -153,7 +153,7 @@ function createClient(options) {
var encryptedVerifyTokenBuffer = pubKey.encrypt(packet.verifyToken, undefined, undefined, ursa.RSA_PKCS1_PADDING); var encryptedVerifyTokenBuffer = pubKey.encrypt(packet.verifyToken, undefined, undefined, ursa.RSA_PKCS1_PADDING);
client.write('encryption_begin', { client.write('encryption_begin', {
sharedSecret: encryptedSharedSecretBuffer, sharedSecret: encryptedSharedSecretBuffer,
verifyToken: encryptedVerifyTokenBuffer, verifyToken: encryptedVerifyTokenBuffer
}); });
client.setEncryption(sharedSecret); client.setEncryption(sharedSecret);
} }

View file

@ -70,7 +70,7 @@ function createServer(options) {
}); });
} }
function onKeepAlive(packet) { function onKeepAlive() {
lastKeepAlive = new Date(); lastKeepAlive = new Date();
} }
@ -86,7 +86,7 @@ function createServer(options) {
clearTimeout(loginKickTimer); clearTimeout(loginKickTimer);
} }
function onPing(packet) { function onPing() {
var response = { var response = {
"version": { "version": {
"name": version.minecraftVersion, "name": version.minecraftVersion,

View file

@ -1,8 +1,6 @@
var nbt = require('prismarine-nbt'); var nbt = require('prismarine-nbt');
var types=require("protodef").types;
var uuid = require('node-uuid'); var uuid = require('node-uuid');
// TODO : remove type-specific, replace with generic containers and arrays.
module.exports = { module.exports = {
'UUID': [readUUID, writeUUID, 16], 'UUID': [readUUID, writeUUID, 16],
'nbt': [readNbt, writeNbt, sizeOfNbt], 'nbt': [readNbt, writeNbt, sizeOfNbt],
@ -14,7 +12,7 @@ module.exports = {
function readUUID(buffer, offset) { function readUUID(buffer, offset) {
return { return {
value: uuid.unparse(buffer, offset), value: uuid.unparse(buffer, offset),
size: 16, size: 16
}; };
} }
@ -71,37 +69,37 @@ function sizeOfRestBuffer(value) {
return value.length; return value.length;
} }
function readEntityMetadata(buffer, offset, typeArgs) { function readEntityMetadata(buffer, offset, {type,endVal}) {
var cursor = offset; var cursor = offset;
var metadata = []; var metadata = [];
var item; var item;
while(true) { while(true) {
item = buffer.readUInt8(cursor); item = buffer.readUInt8(cursor);
if(item === typeArgs.endVal) { if(item === endVal) {
return { return {
value: metadata, value: metadata,
size: cursor + 1 - offset size: cursor + 1 - offset
}; };
} }
var results = this.read(buffer, cursor, typeArgs.type, {}); var results = this.read(buffer, cursor, type, {});
metadata.push(results.value); metadata.push(results.value);
cursor += results.size; cursor += results.size;
} }
} }
function writeEntityMetadata(value, buffer, offset, typeArgs) { function writeEntityMetadata(value, buffer, offset, {type,endVal}) {
var self = this; var self = this;
value.forEach(function(item) { value.forEach(function(item) {
offset = self.write(item, buffer, offset, typeArgs.type, {}); offset = self.write(item, buffer, offset, type, {});
}); });
buffer.writeUInt8(typeArgs.endVal, offset); buffer.writeUInt8(endVal, offset);
return offset + 1; return offset + 1;
} }
function sizeOfEntityMetadata(value, typeArgs) { function sizeOfEntityMetadata(value, {type}) {
var size = 1; var size = 1;
for(var i = 0; i < value.length; ++i) { for(var i = 0; i < value.length; ++i) {
size += this.sizeOf(value[i], typeArgs.type, {}); size += this.sizeOf(value[i], type, {});
} }
return size; return size;
} }

View file

@ -1,4 +1,4 @@
var util = require('util') var util = require('util');
var debug; var debug;
if(process.env.NODE_DEBUG && /(minecraft-protocol|mc-proto)/.test(process.env.NODE_DEBUG)) { if(process.env.NODE_DEBUG && /(minecraft-protocol|mc-proto)/.test(process.env.NODE_DEBUG)) {

View file

@ -4,11 +4,11 @@ var Transform = require("readable-stream").Transform;
module.exports.createCompressor = function(threshold) { module.exports.createCompressor = function(threshold) {
return new Compressor(threshold); return new Compressor(threshold);
} };
module.exports.createDecompressor = function(threshold) { module.exports.createDecompressor = function(threshold) {
return new Decompressor(threshold); return new Decompressor(threshold);
} };
class Compressor extends Transform { class Compressor extends Transform {
constructor(compressionThreshold = -1) { constructor(compressionThreshold = -1) {
@ -47,8 +47,7 @@ class Decompressor extends Transform {
} }
_transform(chunk, enc, cb) { _transform(chunk, enc, cb) {
var size, value, error; var { size, value, error } = readVarInt(chunk, 0);
({ size, value, error } = readVarInt(chunk, 0));
if (error) if (error)
return cb(error); return cb(error);
if (value === 0) if (value === 0)

View file

@ -3,11 +3,11 @@ var Transform = require("readable-stream").Transform;
module.exports.createSplitter = function() { module.exports.createSplitter = function() {
return new Splitter(); return new Splitter();
} };
module.exports.createFramer = function() { module.exports.createFramer = function() {
return new Framer(); return new Framer();
} };
class Framer extends Transform { class Framer extends Transform {
constructor() { constructor() {
@ -30,10 +30,9 @@ class Splitter extends Transform {
} }
_transform(chunk, enc, cb) { _transform(chunk, enc, cb) {
this.buffer = Buffer.concat([this.buffer, chunk]); this.buffer = Buffer.concat([this.buffer, chunk]);
var value, size, error;
var offset = 0; var offset = 0;
({ value, size, error } = readVarInt(this.buffer, offset) || { error: "Not enough data" }); var { value, size, error } = readVarInt(this.buffer, offset) || { error: "Not enough data" };
while (!error && this.buffer.length >= offset + size + value) while (!error && this.buffer.length >= offset + size + value)
{ {
this.push(this.buffer.slice(offset + size, offset + size + value)); this.push(this.buffer.slice(offset + size, offset + size + value));

View file

@ -7,7 +7,7 @@ var states = mc.states;
var testDataWrite = [ var testDataWrite = [
{name: 'keep_alive', params: {keepAliveId: 957759560}}, {name: 'keep_alive', params: {keepAliveId: 957759560}},
{name: 'chat', params: {message: '<Bob> Hello World!'}}, {name: 'chat', params: {message: '<Bob> Hello World!'}},
{name: 'position_look', params: {x: 6.5, y: 65.62, stance: 67.24, z: 7.5, yaw: 0, pitch: 0, onGround: true}}, {name: 'position_look', params: {x: 6.5, y: 65.62, stance: 67.24, z: 7.5, yaw: 0, pitch: 0, onGround: true}}
// TODO: add more packets for better quality data // TODO: add more packets for better quality data
]; ];
@ -36,7 +36,7 @@ mc.supportedVersions.forEach(function(supportedVersion){
var deserializer=new mc.createDeserializer({state:states.PLAY,isServer:true,version:version.majorVersion}); var deserializer=new mc.createDeserializer({state:states.PLAY,isServer:true,version:version.majorVersion});
console.log('Beginning read test'); console.log('Beginning read test');
start = Date.now(); start = Date.now();
for (j = 0; j < inputData.length; j++) { for (var j = 0; j < inputData.length; j++) {
deserializer.parsePacketBuffer(inputData[j]); deserializer.parsePacketBuffer(inputData[j]);
} }
console.log('Finished read test in ' + (Date.now() - start) / 1000 + ' seconds'); console.log('Finished read test in ' + (Date.now() - start) / 1000 + ' seconds');

View file

@ -43,7 +43,7 @@ mc.supportedVersions.forEach(function(supportedVersion) {
}); });
wrap.startServer({ wrap.startServer({
motd: 'test1234', motd: 'test1234',
'max-players': 120, 'max-players': 120
}, function(err) { }, function(err) {
if(err) if(err)
return done(err); return done(err);

View file

@ -41,9 +41,9 @@ var values = {
var results = { var results = {
"..": context "..": context
}; };
for(var index in typeArgs) { Object.keys(typeArgs).forEach(function(index){
results[typeArgs[index].name] = getValue(typeArgs[index].type, results); results[typeArgs[index].name] = getValue(typeArgs[index].type, results);
} });
delete context[".."]; delete context[".."];
return results; return results;
}, },
@ -100,7 +100,7 @@ var values = {
intField: 9, intField: 9,
velocityX: 1, velocityX: 1,
velocityY: 2, velocityY: 2,
velocityZ: 3, velocityZ: 3
}, },
'UUID': "00112233-4455-6677-8899-aabbccddeeff", 'UUID': "00112233-4455-6677-8899-aabbccddeeff",
'position': {x: 12, y: 332, z: 4382821}, 'position': {x: 12, y: 332, z: 4382821},
@ -155,7 +155,7 @@ mc.supportedVersions.forEach(function(supportedVersion){
client.end(); client.end();
}); });
var packetName, packetInfo, field; var packetName, packetInfo, field;
for(state in packets) { for(var state in packets) {
if(!packets.hasOwnProperty(state)) continue; if(!packets.hasOwnProperty(state)) continue;
for(packetName in packets[state].toServer) { for(packetName in packets[state].toServer) {
if(!packets[state].toServer.hasOwnProperty(packetName)) continue; if(!packets[state].toServer.hasOwnProperty(packetName)) continue;
@ -210,14 +210,13 @@ mc.supportedVersions.forEach(function(supportedVersion){
packetInfo.forEach(function(field) { packetInfo.forEach(function(field) {
assert.deepEqual(p1[field], p2[field]); assert.deepEqual(p1[field], p2[field]);
}); });
var field; Object.keys(p1).forEach(function(field){
for(field in p1) {
if (p1[field] !== undefined) if (p1[field] !== undefined)
assert.ok(field in p2, "field " + field + " missing in p2, in p1 it has value " + JSON.stringify(p1[field])); assert.ok(field in p2, "field " + field + " missing in p2, in p1 it has value " + JSON.stringify(p1[field]));
} });
for(field in p2) { Object.keys(p2).forEach(function(field){
assert.ok(field in p1, "field " + field + " missing in p1, in p2 it has value " + JSON.stringify(p2[field])); assert.ok(field in p1, "field " + field + " missing in p1, in p2 it has value " + JSON.stringify(p2[field]));
} });
} }
}); });

View file

@ -1,5 +1,4 @@
var mc = require('../'); var mc = require('../');
var Client = mc.Client;
var assert = require('power-assert'); var assert = require('power-assert');
mc.supportedVersions.forEach(function(supportedVersion){ mc.supportedVersions.forEach(function(supportedVersion){
@ -271,4 +270,4 @@ mc.supportedVersions.forEach(function(supportedVersion){
} }
}); });
}); });
}) });