diff --git a/examples/server.js b/examples/server.js index 4a28371..17af12a 100644 --- a/examples/server.js +++ b/examples/server.js @@ -56,10 +56,12 @@ server.on('listening', function() { }); function broadcast(message, exclude, username) { - var client, translate, username; + var client, translate; translate = username ? 'chat.type.announcement' : 'chat.type.text'; username = username || 'Server'; for (var clientId in server.clients) { + if (!server.clients.hasOwnProperty(clientId)) continue; + client = server.clients[clientId]; if (client !== exclude) { var msg = { diff --git a/index.js b/index.js index 5f67fdb..9af2522 100644 --- a/index.js +++ b/index.js @@ -9,6 +9,7 @@ var EventEmitter = require('events').EventEmitter , Client = require('./lib/client') , Server = require('./lib/server') , debug = protocol.debug +; module.exports = { createClient: createClient, diff --git a/lib/client.js b/lib/client.js index 2b32dbb..09424e9 100644 --- a/lib/client.js +++ b/lib/client.js @@ -6,6 +6,7 @@ var net = require('net') , createPacketBuffer = protocol.createPacketBuffer , parsePacket = protocol.parsePacket , debug = protocol.debug +; module.exports = Client; diff --git a/lib/ping.js b/lib/ping.js index 6d96178..8390c93 100644 --- a/lib/ping.js +++ b/lib/ping.js @@ -1,6 +1,7 @@ var net = require('net') , Client = require('./client') , protocol = require('./protocol') +; module.exports = ping; diff --git a/lib/protocol.js b/lib/protocol.js index 39f9641..d3cc390 100644 --- a/lib/protocol.js +++ b/lib/protocol.js @@ -605,12 +605,14 @@ var entityMetadataTypes = { // maps string type name to number var entityMetadataTypeBytes = {}; for (var n in entityMetadataTypes) { + if (!entityMetadataTypes.hasOwnProperty(n)) continue; + entityMetadataTypeBytes[entityMetadataTypes[n]] = n; } function sizeOfEntityMetadata(value) { var size = 1 + value.length; - var item, dataType; + var item; for (var i = 0; i < value.length; ++i) { item = value[i]; size += sizeOf(item.type, item.value); @@ -636,7 +638,7 @@ function sizeOfObjectData(value) { function writeObjectData(value, buffer, offset) { buffer.writeInt32BE(value.intField, offset); - if (value.intField === 0) return; + if (value.intField === 0) return -1; offset += 4; buffer.writeInt16BE(value.velocityX, offset); @@ -1120,7 +1122,7 @@ function readPropertyArray (buffer, offset) { property.elementList = []; for (var j = 0; j < elementListLength ; j++) { - property.elementList[j] = {} + property.elementList[j] = {}; results = readUUID(buffer, cursor); if (! results) return null; @@ -1276,7 +1278,7 @@ function writeSlot(value, buffer, offset) { buffer.writeInt16BE(nbtDataSize, offset + 5); value.nbtData.copy(buffer, offset + 7); return offset + 7 + value.nbtData.length; -}; +} function sizeOfString(value) { assert.ok(value.length < STRING_MAX_LENGTH, "string greater than max length"); @@ -1297,7 +1299,7 @@ function writeString(value, buffer, offset) { offset += 2; } return offset; -}; +} function sizeOfAscii(value) { return 2 + value.length; @@ -1312,7 +1314,7 @@ function writeAscii(value, buffer, offset) { offset += 1; } return offset; -}; +} function sizeOfByteArray16(value) { assert.ok(Buffer.isBuffer(value), "non buffer passed to ByteArray16Writer"); @@ -1323,7 +1325,7 @@ function writeByteArray16(value, buffer, offset) { buffer.writeInt16BE(value.length, offset); value.copy(buffer, offset + 2); return offset + 2 + value.length; -}; +} function writeByte(value, buffer, offset) { buffer.writeInt8(value, offset); @@ -1338,7 +1340,7 @@ function writeBool(value, buffer, offset) { function writeUByte(value, buffer, offset) { buffer.writeUInt8(value, offset); return offset + 1; -}; +} function writeFloat(value, buffer, offset) { buffer.writeFloatBE(value, offset); diff --git a/lib/server.js b/lib/server.js index 07410d0..45af5d0 100644 --- a/lib/server.js +++ b/lib/server.js @@ -3,6 +3,7 @@ var net = require('net') , util = require('util') , assert = require('assert') , Client = require('./client') +; module.exports = Server; @@ -53,6 +54,8 @@ Server.prototype.listen = function(port, host) { Server.prototype.close = function() { var client; for(var clientId in this.clients) { + if (!this.clients.hasOwnProperty(clientId)) continue; + client = this.clients[clientId]; client.end('ServerShutdown'); } diff --git a/test/benchmark.js b/test/benchmark.js index cf2205d..1180fa2 100644 --- a/test/benchmark.js +++ b/test/benchmark.js @@ -8,7 +8,7 @@ var FakeSocket = function() { EventEmitter.call(this); }; util.inherits(FakeSocket, EventEmitter); -FakeSocket.prototype.write = function(){} +FakeSocket.prototype.write = function(){}; var client = new Client(); var socket = new FakeSocket(); diff --git a/test/test.js b/test/test.js index 0e8fad2..fe8fc8b 100644 --- a/test/test.js +++ b/test/test.js @@ -14,6 +14,7 @@ var mc = require('../') , MC_SERVER_JAR = process.env.MC_SERVER_JAR , SURVIVE_TIME = 10000 , MC_SERVER_PATH = path.join(__dirname, 'server') +; var defaultServerProps = { 'generator-settings': "", @@ -127,6 +128,8 @@ describe("packets", function() { }); var packetId, packetInfo, field; for(packetId in protocol.packets) { + if (!protocol.packets.hasOwnProperty(packetId)) continue; + packetId = parseInt(packetId, 10); packetInfo = protocol.packets[packetId]; it("0x" + zfill(parseInt(packetId, 10).toString(16), 2), @@ -150,7 +153,6 @@ describe("packets", function() { // empty object uses default values var packet = {}; packetInfo.forEach(function(field) { - var value = field.type; packet[field.name] = values[field.type]; }); serverClient.once(packetId, function(receivedPacket) { @@ -169,7 +171,7 @@ describe("packets", function() { packetInfo.forEach(function(field) { assert.deepEqual(p1[field], p2[field]); }); - var field, cmp; + var field; for (field in p1) { assert.ok(field in p2, "field " + field + " missing in p2"); } @@ -187,9 +189,13 @@ describe("client", function() { var props = {}; var prop; for (prop in defaultServerProps) { + if (!defaultServerProps.hasOwnProperty(prop)) continue; + props[prop] = defaultServerProps[prop]; } for (prop in propOverrides) { + if (!propOverrides.hasOwnProperty(prop)) continue; + props[prop] = propOverrides[prop]; } var batch = new Batch(); @@ -197,6 +203,8 @@ describe("client", function() { batch.push(function(cb) { var str = ""; for (var prop in props) { + if (!props.hasOwnProperty(prop)) continue; + str += prop + "=" + props[prop] + "\n"; } fs.writeFile(path.join(MC_SERVER_PATH, "server.properties"), str, cb); @@ -547,6 +555,8 @@ describe("mc-server", function() { function broadcast(message, exclude) { var client; for (var clientId in server.clients) { + if (!server.clients.hasOwnProperty(clientId)) continue; + client = server.clients[clientId]; if (client !== exclude) client.write(0x03, { message: message }); }