From 79f82afb916fe1948b8b6e3053a9aa683ee28adf Mon Sep 17 00:00:00 2001 From: Romain Beaumont Date: Thu, 13 Jul 2017 14:03:52 +0200 Subject: [PATCH] var -> const/let in examples and tests --- .jshintrc | 110 ------------------ examples/client_auto/client_auto.js | 12 +- examples/client_channel/client_channel.js | 8 +- examples/client_chat/client_chat.js | 48 ++++---- .../client_custom_channel.js | 4 +- .../client_custom_packets.js | 10 +- examples/client_echo/client_echo.js | 12 +- examples/proxy/proxy.js | 46 ++++---- examples/server/server.js | 16 +-- examples/server_channel/server_channel.js | 4 +- .../server_custom_channel.js | 4 +- .../server_helloworld/server_helloworld.js | 10 +- test/benchmark.js | 26 ++--- test/clientTest.js | 62 +++++----- test/common/parallel.js | 2 +- test/packetTest.js | 52 ++++----- test/serverTest.js | 56 ++++----- 17 files changed, 185 insertions(+), 297 deletions(-) delete mode 100644 .jshintrc diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 86831d1..0000000 --- a/.jshintrc +++ /dev/null @@ -1,110 +0,0 @@ -{ - // Settings - "passfail": false, - // Stop on first error. - "maxerr": 100, - // Maximum errors before stopping. - - - // Predefined globals whom JSHint will ignore. - "browser": false, - // Standard browser globals e.g. `window`, `document`. - "predef": [ - // extra globals - "describe", - "beforeEach", - "afterEach", - "before", - "after", - "it" - ], - "node": true, - "rhino": false, - "couch": false, - "wsh": false, - // Windows Scripting Host. - - "jquery": false, - "prototypejs": false, - "mootools": false, - "dojo": false, - // Development. - "debug": true, - // Allow debugger statements e.g. browser breakpoints. - "devel": true, - // Allow development statements e.g. `console.log();`. - - - // EcmaScript 5. - "es5": true, - // Allow EcmaScript 5 syntax. - "strict": false, - // Require `use strict` pragma in every file. - "globalstrict": true, - // Allow global "use strict" (also enables 'strict'). - - - // The Good Parts. - "asi": true, - // Tolerate Automatic Semicolon Insertion (no semicolons). - "laxbreak": false, - // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. - "laxcomma": true, - "bitwise": false, - // Prohibit bitwise operators (&, |, ^, etc.). - "boss": true, - // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. - "curly": false, - // Require {} for every new block or scope. - "eqeqeq": true, - // Require triple equals i.e. `===`. - "eqnull": true, - // Tolerate use of `== null`. - "evil": false, - // Tolerate use of `eval`. - "expr": false, - // Tolerate `ExpressionStatement` as Programs. - "forin": false, - // Prohibt `for in` loops without `hasOwnProperty`. - "immed": true, - // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` - "latedef": false, - // Prohibit variable use before definition. - "loopfunc": false, - // Allow functions to be defined within loops. - "noarg": true, - // Prohibit use of `arguments.caller` and `arguments.callee`. - "regexp": false, - // Prohibit `.` and `[^...]` in regular expressions. - "regexdash": false, - // Tolerate unescaped last dash i.e. `[-...]`. - "scripturl": false, - // Tolerate script-targeted URLs. - "shadow": false, - // Allows re-define variables later in code e.g. `var x=1; x=2;`. - "supernew": false, - // Tolerate `new function () { ... };` and `new Object;`. - "undef": true, - // Require all non-global variables be declared before they are used. - - - // Persone styling prefrences. - "newcap": true, - // Require capitalization of all constructor functions e.g. `new F()`. - "noempty": true, - // Prohibit use of empty blocks. - "nonew": true, - // Prohibit use of constructors for side-effects. - "nomen": false, - // Prohibit use of initial or trailing underbars in names. - "onevar": false, - // Allow only one `var` statement per function. - "plusplus": false, - // Prohibit use of `++` & `--`. - "sub": false, - // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. - "trailing": true, - // Prohibit trailing whitespaces. - "white": false - // Check against strict whitespace and indentation rules. -} diff --git a/examples/client_auto/client_auto.js b/examples/client_auto/client_auto.js index 1733608..cec1bc0 100644 --- a/examples/client_auto/client_auto.js +++ b/examples/client_auto/client_auto.js @@ -1,13 +1,13 @@ 'use strict'; -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); if(process.argv.length < 4 || process.argv.length > 6) { console.log("Usage : node echo.js [] []"); process.exit(1); } -var client = mc.createClient({ +const client = mc.createClient({ version: false, host: process.argv[2], port: parseInt(process.argv[3]), @@ -22,10 +22,10 @@ client.on('disconnect', function(packet) { console.log('disconnected: '+ packet.reason); }); client.on('chat', function(packet) { - var jsonMsg = JSON.parse(packet.message); - if(jsonMsg.translate == 'chat.type.announcement' || jsonMsg.translate == 'chat.type.text') { - var username = jsonMsg.with[0].text; - var msg = jsonMsg.with[1]; + const jsonMsg = JSON.parse(packet.message); + if(jsonMsg.translate === 'chat.type.announcement' || jsonMsg.translate === 'chat.type.text') { + const username = jsonMsg.with[0].text; + const msg = jsonMsg.with[1]; if(username === client.username) return; client.write('chat', {message: msg}); } diff --git a/examples/client_channel/client_channel.js b/examples/client_channel/client_channel.js index c396da6..50f6088 100644 --- a/examples/client_channel/client_channel.js +++ b/examples/client_channel/client_channel.js @@ -1,14 +1,12 @@ -var ProtoDef = require('protodef').ProtoDef; -var mc = require('minecraft-protocol'); - -var proto = new ProtoDef(); +const mc = require('minecraft-protocol'); if(process.argv.length < 4 || process.argv.length > 6) { console.log("Usage : node client_channel.js [] []"); process.exit(1); } -var client = mc.createClient({version: false, +const client = mc.createClient({ + version: false, host: process.argv[2], port: parseInt(process.argv[3]), username: process.argv[4] ? process.argv[4] : "test", diff --git a/examples/client_chat/client_chat.js b/examples/client_chat/client_chat.js index 167805e..6e80fa0 100644 --- a/examples/client_chat/client_chat.js +++ b/examples/client_chat/client_chat.js @@ -1,10 +1,10 @@ -var readline = require('readline'); -var color = require("ansi-color").set; -var mc = require('minecraft-protocol'); -var states = mc.states; -var util = require('util'); +const readline = require('readline'); +const color = require("ansi-color").set; +const mc = require('minecraft-protocol'); +const states = mc.states; +const util = require('util'); -var colors = { +const colors = { "black": 'black+white_bg', "dark_blue": 'blue', "dark_green": 'green', @@ -29,7 +29,7 @@ var colors = { "reset": 'white+black_bg' }; -var dictionary = { +const dictionary = { "chat.stream.emote": "(%s) * %s %s", "chat.stream.text": "(%s) <%s> %s", "chat.type.achievement": "%s has just earned the achievement %s", @@ -39,7 +39,7 @@ var dictionary = { "chat.type.text": "<%s> %s" }; -var rl = readline.createInterface({ +const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false @@ -56,18 +56,18 @@ if(process.argv.length < 5) { } process.argv.forEach(function(val) { - if(val == "-h") { + if(val === "-h") { print_help(); process.exit(0); } }); -var host = process.argv[2]; -var port = parseInt(process.argv[3]); -var user = process.argv[4]; -var passwd = process.argv[5]; +let host = process.argv[2]; +let port = parseInt(process.argv[3]); +const user = process.argv[4]; +const passwd = process.argv[5]; -if(host.indexOf(':') != -1) { +if(host.indexOf(':') !== -1) { port = host.substring(host.indexOf(':') + 1); host = host.substring(0, host.indexOf(':')); } @@ -75,7 +75,7 @@ if(host.indexOf(':') != -1) { console.log("connecting to " + host + ":" + port); console.log("user: " + user); -var client = mc.createClient({ +const client = mc.createClient({ host: host, port: port, username: user, @@ -87,7 +87,7 @@ client.on('kick_disconnect', function(packet) { process.exit(1); }); -var chats = []; +const chats = []; client.on('connect', function() { console.info(color('Successfully connected to ' + host + ':' + port, "blink+green")); @@ -117,13 +117,13 @@ client.on('state', function(newState) { }); rl.on('line', function(line) { - if(line == '') { + if(line === '') { return; - } else if(line == '/quit') { + } else if(line === '/quit') { console.info('Disconnected from ' + host + ':' + port); client.end(); return; - } else if(line == '/end') { + } else if(line === '/end') { console.info('Forcibly ended client'); process.exit(0); return; @@ -134,14 +134,14 @@ rl.on('line', function(line) { }); client.on('chat', function(packet) { - var j = JSON.parse(packet.message); - var chat = parseChat(j, {}); + const j = JSON.parse(packet.message); + const chat = parseChat(j, {}); console.info(chat); }); function parseChat(chatObj, parentState) { function getColorize(parentState) { - var myColor = ""; + let myColor = ""; if('color' in parentState) myColor += colors[parentState.color] + "+"; if(parentState.bold) myColor += "bold+"; if(parentState.underlined) myColor += "underline+"; @@ -153,7 +153,7 @@ function parseChat(chatObj, parentState) { if(typeof chatObj === "string") { return color(chatObj, getColorize(parentState)); } else { - var chat = ""; + let chat = ""; if('color' in chatObj) parentState.color = chatObj['color']; if('bold' in chatObj) parentState.bold = chatObj['bold']; if('italic' in chatObj) parentState.italic = chatObj['italic']; @@ -164,7 +164,7 @@ function parseChat(chatObj, parentState) { if('text' in chatObj) { chat += color(chatObj.text, getColorize(parentState)); } else if('translate' in chatObj && dictionary.hasOwnProperty(chatObj.translate)) { - var args = [dictionary[chatObj.translate]]; + const args = [dictionary[chatObj.translate]]; chatObj['with'].forEach(function(s) { args.push(parseChat(s, parentState)); }); diff --git a/examples/client_custom_channel/client_custom_channel.js b/examples/client_custom_channel/client_custom_channel.js index d8a08b5..939de8b 100644 --- a/examples/client_custom_channel/client_custom_channel.js +++ b/examples/client_custom_channel/client_custom_channel.js @@ -1,11 +1,11 @@ -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); if(process.argv.length < 4 || process.argv.length > 6) { console.log("Usage : node client_channel.js [] []"); process.exit(1); } -var client = mc.createClient({ +const client = mc.createClient({ host: process.argv[2], port: parseInt(process.argv[3]), username: process.argv[4] ? process.argv[4] : "test", diff --git a/examples/client_custom_packets/client_custom_packets.js b/examples/client_custom_packets/client_custom_packets.js index 11c353e..6996fe7 100644 --- a/examples/client_custom_packets/client_custom_packets.js +++ b/examples/client_custom_packets/client_custom_packets.js @@ -1,17 +1,17 @@ -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); if(process.argv.length < 4 || process.argv.length > 6) { console.log("Usage : node echo.js [] []"); process.exit(1); } -var customPackets={ +const customPackets = { "1.8": { "play": { "toClient": { "types": { "packet_custom_name": [ - "container",[ + "container", [ { "name": "age", "type": "i64" @@ -57,12 +57,12 @@ var customPackets={ } }; -var client = mc.createClient({ +const client = mc.createClient({ host: process.argv[2], port: parseInt(process.argv[3]), username: process.argv[4] ? process.argv[4] : "echo", password: process.argv[5], - customPackets:customPackets + customPackets: customPackets }); client.on('connect', function() { diff --git a/examples/client_echo/client_echo.js b/examples/client_echo/client_echo.js index 3407073..15641a3 100644 --- a/examples/client_echo/client_echo.js +++ b/examples/client_echo/client_echo.js @@ -1,11 +1,11 @@ -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); if(process.argv.length < 4 || process.argv.length > 6) { console.log("Usage : node echo.js [] []"); process.exit(1); } -var client = mc.createClient({ +const client = mc.createClient({ host: process.argv[2], port: parseInt(process.argv[3]), username: process.argv[4] ? process.argv[4] : "echo", @@ -22,10 +22,10 @@ client.on('end', function(err) { console.log('Connection lost'); }); client.on('chat', function(packet) { - var jsonMsg = JSON.parse(packet.message); - if(jsonMsg.translate == 'chat.type.announcement' || jsonMsg.translate == 'chat.type.text') { - var username = jsonMsg.with[0].text; - var msg = jsonMsg.with[1]; + const jsonMsg = JSON.parse(packet.message); + if(jsonMsg.translate === 'chat.type.announcement' || jsonMsg.translate === 'chat.type.text') { + const username = jsonMsg.with[0].text; + const msg = jsonMsg.with[1]; if(username === client.username) return; client.write('chat', {message: msg}); } diff --git a/examples/proxy/proxy.js b/examples/proxy/proxy.js index 0e5d029..a0671a3 100644 --- a/examples/proxy/proxy.js +++ b/examples/proxy/proxy.js @@ -1,6 +1,6 @@ -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); -var states = mc.states; +const states = mc.states; function printHelpAndExit(exitCode) { console.log("usage: node proxy.js [...] "); console.log("options:"); @@ -32,24 +32,24 @@ process.argv.forEach(function(val) { } }); -var args = process.argv.slice(2); -var host; -var port = 25565; -var version; +const args = process.argv.slice(2); +let host; +let port = 25565; +let version; -var printAllNames = false; -var printNameWhitelist = {}; -var printNameBlacklist = {}; +let printAllNames = false; +const printNameWhitelist = {}; +const printNameBlacklist = {}; (function() { - for(var i = 0; i < args.length; i++) { - var option = args[i]; + for(let i = 0; i < args.length; i++) { + const option = args[i]; if(!/^-/.test(option)) break; if(option === "--dump-all") { printAllNames = true; continue; } i++; - var name = args[i]; + const name = args[i]; if(option === "--dump") { printNameWhitelist[name] = "io"; } else if(option === "-x") { @@ -68,17 +68,17 @@ if(host.indexOf(':') !== -1) { host = host.substring(0, host.indexOf(':')); } -var srv = mc.createServer({ +const srv = mc.createServer({ 'online-mode': false, port: 25566, keepAlive: false, version:version }); srv.on('login', function(client) { - var addr = client.socket.remoteAddress; + const addr = client.socket.remoteAddress; console.log('Incoming connection', '(' + addr + ')'); - var endedClient = false; - var endedTargetClient = false; + let endedClient = false; + let endedTargetClient = false; client.on('end', function() { endedClient = true; console.log('Connection closed by client', '(' + addr + ')'); @@ -92,7 +92,7 @@ srv.on('login', function(client) { if(!endedTargetClient) targetClient.end("Error"); }); - var targetClient = mc.createClient({ + const targetClient = mc.createClient({ host: host, port: port, username: client.username, @@ -125,12 +125,12 @@ srv.on('login', function(client) { } } }); - var bufferEqual = require('buffer-equal'); + const bufferEqual = require('buffer-equal'); targetClient.on('raw', function(buffer, meta) { if(client.state !== states.PLAY || meta.state !== states.PLAY) return; - var packetData = targetClient.deserializer.parsePacketBuffer(buffer).data.params; - var packetBuff = client.serializer.createPacketBuffer({name:meta.name, params:packetData}); + const packetData = targetClient.deserializer.parsePacketBuffer(buffer).data.params; + const packetBuff = client.serializer.createPacketBuffer({name:meta.name, params:packetData}); if(!bufferEqual(buffer, packetBuff)) { console.log("client<-server: Error in packet " + meta.state + "." + meta.name); console.log("received buffer",buffer.toString('hex')); @@ -149,8 +149,8 @@ srv.on('login', function(client) { client.on('raw', function(buffer, meta) { if(meta.state !== states.PLAY || targetClient.state !== states.PLAY) return; - var packetData = client.deserializer.parsePacketBuffer(buffer).data.params; - var packetBuff = targetClient.serializer.createPacketBuffer({name:meta.name, params:packetData}); + const packetData = client.deserializer.parsePacketBuffer(buffer).data.params; + const packetBuff = targetClient.serializer.createPacketBuffer({name:meta.name, params:packetData}); if(!bufferEqual(buffer, packetBuff)) { console.log("client->server: Error in packet " + meta.state + "." + meta.name); console.log("received buffer",buffer.toString('hex')); @@ -180,6 +180,6 @@ function shouldDump(name, direction) { return matches(printNameWhitelist[name]); function matches(result) { - return result != null && result.indexOf(direction) !== -1; + return result !== null && result.indexOf(direction) !== -1; } } diff --git a/examples/server/server.js b/examples/server/server.js index bd02553..7621b31 100644 --- a/examples/server/server.js +++ b/examples/server/server.js @@ -1,17 +1,17 @@ -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); -var options = { +const options = { motd: 'Vox Industries', 'max-players': 127, port: 25565, 'online-mode': false }; -var server = mc.createServer(options); +const server = mc.createServer(options); server.on('login', function(client) { broadcast(client.username + ' joined the game.'); - var addr = client.socket.remoteAddress + ':' + client.socket.remotePort; + const addr = client.socket.remoteAddress + ':' + client.socket.remotePort; console.log(client.username + ' connected', '(' + addr + ')'); client.on('end', function() { @@ -39,7 +39,7 @@ server.on('login', function(client) { }); client.on('chat', function(data) { - var message = '<' + client.username + '>' + ' ' + data.message; + const message = '<' + client.username + '>' + ' ' + data.message; broadcast(message, null, client.username); console.log(message); }); @@ -54,15 +54,15 @@ server.on('listening', function() { }); function broadcast(message, exclude, username) { - var client, translate; + let client, translate; translate = username ? 'chat.type.announcement' : 'chat.type.text'; username = username || 'Server'; - for(var clientId in server.clients) { + for(const clientId in server.clients) { if(!server.clients.hasOwnProperty(clientId)) continue; client = server.clients[clientId]; if(client !== exclude) { - var msg = { + const msg = { translate: translate, "with": [ username, diff --git a/examples/server_channel/server_channel.js b/examples/server_channel/server_channel.js index 9b7fc60..851b17b 100644 --- a/examples/server_channel/server_channel.js +++ b/examples/server_channel/server_channel.js @@ -1,6 +1,6 @@ -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); -var server = mc.createServer({ +const server = mc.createServer({ 'online-mode': false, // optional encryption: false, // optional host: '0.0.0.0', // optional diff --git a/examples/server_custom_channel/server_custom_channel.js b/examples/server_custom_channel/server_custom_channel.js index acb4ee2..4172def 100644 --- a/examples/server_custom_channel/server_custom_channel.js +++ b/examples/server_custom_channel/server_custom_channel.js @@ -1,6 +1,6 @@ -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); -var server = mc.createServer({ +const server = mc.createServer({ 'online-mode': false, // optional encryption: false, // optional host: '0.0.0.0', // optional diff --git a/examples/server_helloworld/server_helloworld.js b/examples/server_helloworld/server_helloworld.js index 4f9f8af..688d042 100644 --- a/examples/server_helloworld/server_helloworld.js +++ b/examples/server_helloworld/server_helloworld.js @@ -1,13 +1,13 @@ -var mc = require('minecraft-protocol'); +const mc = require('minecraft-protocol'); -var options = { +const options = { 'online-mode': true }; -var server = mc.createServer(options); +const server = mc.createServer(options); server.on('login', function(client) { - var addr = client.socket.remoteAddress; + const addr = client.socket.remoteAddress; console.log('Incoming connection', '(' + addr + ')'); client.on('end', function() { @@ -38,7 +38,7 @@ server.on('login', function(client) { flags: 0x00 }); - var msg = { + const msg = { translate: 'chat.type.announcement', "with": [ 'Server', diff --git a/test/benchmark.js b/test/benchmark.js index 1209364..38e14e0 100644 --- a/test/benchmark.js +++ b/test/benchmark.js @@ -1,10 +1,10 @@ -var ITERATIONS = 10000; +const ITERATIONS = 10000; -var mc = require("../"); -var util = require('util'); -var states = mc.states; +const mc = require("../"); +const util = require('util'); +const states = mc.states; -var testDataWrite = [ +const testDataWrite = [ {name: 'keep_alive', params: {keepAliveId: 957759560}}, {name: 'chat', params: {message: ' Hello World!'}}, {name: 'position_look', params: {x: 6.5, y: 65.62, stance: 67.24, z: 7.5, yaw: 0, pitch: 0, onGround: true}} @@ -19,14 +19,14 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ if(!(i>=firstVersion && i<=lastVersion)) return; - var mcData=require("minecraft-data")(supportedVersion); - var version=mcData.version; + const mcData=require("minecraft-data")(supportedVersion); + const version=mcData.version; describe("benchmark "+version.minecraftVersion,function(){ this.timeout(60 * 1000); - var inputData = []; + const inputData = []; it("bench serializing",function(done){ - var serializer=new mc.createSerializer({state:states.PLAY,isServer:false,version:version.minecraftVersion}); - var start, i, j; + const serializer=new mc.createSerializer({state:states.PLAY,isServer:false,version:version.minecraftVersion}); + let start, i, j; console.log('Beginning write test'); start = Date.now(); for(i = 0; i < ITERATIONS; i++) { @@ -34,16 +34,16 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ inputData.push(serializer.createPacketBuffer(testDataWrite[j])); } } - var result=(Date.now() - start) / 1000; + const result=(Date.now() - start) / 1000; console.log('Finished write test in ' + result + ' seconds'); done(); }); it("bench parsing",function(done){ - var deserializer=new mc.createDeserializer({state:states.PLAY,isServer:true,version:version.minecraftVersion}); + const deserializer=new mc.createDeserializer({state:states.PLAY,isServer:true,version:version.minecraftVersion}); console.log('Beginning read test'); start = Date.now(); - for (var j = 0; j < inputData.length; j++) { + for (let j = 0; j < inputData.length; j++) { deserializer.parsePacketBuffer(inputData[j]); } console.log('Finished read test in ' + (Date.now() - start) / 1000 + ' seconds'); diff --git a/test/clientTest.js b/test/clientTest.js index 9164cdf..882febe 100644 --- a/test/clientTest.js +++ b/test/clientTest.js @@ -1,27 +1,27 @@ -var mc = require('../'); -var Server = mc.Server; -var path = require('path'); -var assert = require('power-assert'); -var SURVIVE_TIME = 10000; -var MC_SERVER_PATH = path.join(__dirname, 'server'); +const mc = require('../'); +const Server = mc.Server; +const path = require('path'); +const assert = require('power-assert'); +const SURVIVE_TIME = 10000; +const MC_SERVER_PATH = path.join(__dirname, 'server'); -var Wrap = require('minecraft-wrap').Wrap; +const Wrap = require('minecraft-wrap').Wrap; const {firstVersion,lastVersion}=require("./common/parallel"); -var download = require('minecraft-wrap').download; +const download = require('minecraft-wrap').download; mc.supportedVersions.forEach(function(supportedVersion,i) { if(!(i>=firstVersion && i<=lastVersion)) return; - var PORT=Math.round(30000+Math.random()*20000); - var mcData = require("minecraft-data")(supportedVersion); - var version = mcData.version; - var MC_SERVER_JAR_DIR = process.env.MC_SERVER_JAR_DIR; - var MC_SERVER_JAR = MC_SERVER_JAR_DIR + "/minecraft_server." + version.minecraftVersion + ".jar"; - var wrap = new Wrap(MC_SERVER_JAR, MC_SERVER_PATH+"_"+supportedVersion); + const PORT=Math.round(30000+Math.random()*20000); + const mcData = require("minecraft-data")(supportedVersion); + const version = mcData.version; + const MC_SERVER_JAR_DIR = process.env.MC_SERVER_JAR_DIR; + const MC_SERVER_JAR = MC_SERVER_JAR_DIR + "/minecraft_server." + version.minecraftVersion + ".jar"; + const wrap = new Wrap(MC_SERVER_JAR, MC_SERVER_PATH+"_"+supportedVersion); wrap.on('line', function(line) { console.log(line); }); @@ -85,20 +85,20 @@ mc.supportedVersions.forEach(function(supportedVersion,i) { it("connects successfully - offline mode", function (done) { - var client = mc.createClient({ + const client = mc.createClient({ username: 'Player', version: version.minecraftVersion, port: PORT }); - var lineListener = function (line) { - var match = line.match(/\[Server thread\/INFO\]: <(.+?)> (.+)/); + const lineListener = function (line) { + const match = line.match(/\[Server thread\/INFO\]: <(.+?)> (.+)/); if (!match) return; assert.strictEqual(match[1], 'Player'); assert.strictEqual(match[2], "hello everyone; I have logged in."); wrap.writeServer("say hello\n"); }; wrap.on('line', lineListener); - var chatCount = 0; + let chatCount = 0; client.on('login', function (packet) { assert.strictEqual(packet.levelType, 'default'); assert.strictEqual(packet.difficulty, 1); @@ -111,7 +111,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i) { client.on('chat', function (packet) { chatCount += 1; assert.ok(chatCount <= 2); - var message = JSON.parse(packet.message); + const message = JSON.parse(packet.message); if (chatCount === 1) { assert.strictEqual(message.translate, "chat.type.text"); assert.deepEqual(message["with"][0].clickEvent, { @@ -134,7 +134,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i) { it("does not crash for " + SURVIVE_TIME + "ms", function (done) { - var client = mc.createClient({ + const client = mc.createClient({ username: 'Player', version: version.minecraftVersion, port: PORT @@ -145,7 +145,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i) { }); }); client.on("chat", function (packet) { - var message = JSON.parse(packet.message); + const message = JSON.parse(packet.message); assert.strictEqual(message.translate, "chat.type.text"); /*assert.deepEqual(message["with"][0], { clickEvent: { @@ -163,9 +163,9 @@ mc.supportedVersions.forEach(function(supportedVersion,i) { }); it("produce a decent error when connecting with the wrong version", function (done) { - var client = mc.createClient({ + const client = mc.createClient({ username: 'Player', - version: version.minecraftVersion == "1.8.8" ? "1.11.2" : "1.8.8", + version: version.minecraftVersion === "1.8.8" ? "1.11.2" : "1.8.8", port: PORT }); client.once("error", function (err) { @@ -202,14 +202,14 @@ mc.supportedVersions.forEach(function(supportedVersion,i) { }); it.skip("connects successfully - online mode", function (done) { - var client = mc.createClient({ + const client = mc.createClient({ username: process.env.MC_USERNAME, password: process.env.MC_PASSWORD, version: version.minecraftVersion, port: PORT }); - var lineListener = function (line) { - var match = line.match(/\[Server thread\/INFO\]: <(.+?)> (.+)/); + const lineListener = function (line) { + const match = line.match(/\[Server thread\/INFO\]: <(.+?)> (.+)/); if (!match) return; assert.strictEqual(match[1], client.username); assert.strictEqual(match[2], "hello everyone; I have logged in."); @@ -225,11 +225,11 @@ mc.supportedVersions.forEach(function(supportedVersion,i) { message: "hello everyone; I have logged in." }); }); - var chatCount = 0; + let chatCount = 0; client.on('chat', function (packet) { chatCount += 1; assert.ok(chatCount <= 2); - if (chatCount == 2) { + if (chatCount === 2) { client.removeAllListeners('chat'); wrap.removeListener('line', lineListener); client.end(); @@ -239,14 +239,14 @@ mc.supportedVersions.forEach(function(supportedVersion,i) { }); it("gets kicked when no credentials supplied in online mode", function (done) { - var client = mc.createClient({ + const client = mc.createClient({ username: 'Player', version: version.minecraftVersion, port: PORT }); - var gotKicked = false; + let gotKicked = false; client.on('disconnect', function (packet) { - assert.ok(packet.reason.indexOf('"Failed to verify username!"') != -1 || packet.reason.indexOf('multiplayer.disconnect.unverified_username') != -1); + assert.ok(packet.reason.indexOf('"Failed to verify username!"') !== -1 || packet.reason.indexOf('multiplayer.disconnect.unverified_username') !== -1); gotKicked = true; }); client.on('end', function () { diff --git a/test/common/parallel.js b/test/common/parallel.js index 3c53612..cdfbc76 100644 --- a/test/common/parallel.js +++ b/test/common/parallel.js @@ -11,7 +11,7 @@ const mc = require("../../"); // (3,4,10) -> (9,9) function testedRange(nodeIndex,nodeTotal,numberOfVersions) { const nbFirsts=Math.ceil(numberOfVersions/nodeTotal); - if(nodeIndex==(nodeTotal-1)) + if(nodeIndex===(nodeTotal-1)) return {firstVersion:nbFirsts*nodeIndex,lastVersion:numberOfVersions-1}; return {firstVersion:nodeIndex*nbFirsts,lastVersion:(nodeIndex+1)*nbFirsts-1}; diff --git a/test/packetTest.js b/test/packetTest.js index 4e3748e..8b87c46 100644 --- a/test/packetTest.js +++ b/test/packetTest.js @@ -1,11 +1,11 @@ -var mc = require('../'); -var states = mc.states; -var Client = mc.Client; -var Server = mc.Server; -var net = require('net'); -var assert = require('power-assert'); -var getFieldInfo = require('protodef').utils.getFieldInfo; -var getField = require('protodef').utils.getField; +const mc = require('../'); +const states = mc.states; +const Client = mc.Client; +const Server = mc.Server; +const net = require('net'); +const assert = require('power-assert'); +const getFieldInfo = require('protodef').utils.getFieldInfo; +const getField = require('protodef').utils.getField; function evalCount(count, fields) { if(fields[count["field"]] in count["map"]) @@ -13,7 +13,7 @@ function evalCount(count, fields) { return count["default"]; } -var values = { +const values = { 'i32': 123456, 'i16': -123, 'u16': 123, @@ -23,14 +23,14 @@ var values = { 'string': "hi hi this is my client string", 'buffer': new Buffer(8), 'array': function(typeArgs, context) { - var count; + let count; if (typeof typeArgs.count === "object") count = evalCount(typeArgs.count, context); else if (typeof typeArgs.count !== "undefined") count = getField(typeArgs.count, context); else if (typeof typeArgs.countType !== "undefined") count = 1; - var arr = []; + const arr = []; while (count > 0) { arr.push(getValue(typeArgs.type, context)); count--; @@ -38,7 +38,7 @@ var values = { return arr; }, 'container': function(typeArgs, context) { - var results = { + const results = { "..": context }; Object.keys(typeArgs).forEach(function(index){ @@ -129,7 +129,7 @@ var values = { 'position_iii': {x: 12, y: 100, z: 4382821}, 'restBuffer': new Buffer(0), 'switch': function(typeArgs, context) { - var i = typeArgs.fields[getField(typeArgs.compareTo, context)]; + const i = typeArgs.fields[getField(typeArgs.compareTo, context)]; if (typeof i === "undefined") return getValue(typeArgs.default, context); else @@ -139,7 +139,7 @@ var values = { return getValue(typeArgs, context); }, 'bitfield': function(typeArgs) { - var results={}; + const results={}; Object.keys(typeArgs).forEach(function(index){ results[typeArgs[index].name] = 1; }); @@ -148,7 +148,7 @@ var values = { }; function getValue(_type, packet) { - var fieldInfo = getFieldInfo(_type); + const fieldInfo = getFieldInfo(_type); if (typeof values[fieldInfo.type] === "function") return values[fieldInfo.type](fieldInfo.typeArgs, packet); else if (values[fieldInfo.type] !== "undefined") @@ -163,13 +163,13 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ if(!(i>=firstVersion && i<=lastVersion)) return; - var PORT=Math.round(30000+Math.random()*20000); - var mcData=require("minecraft-data")(supportedVersion); - var version=mcData.version; - var packets = mcData.protocol; + const PORT=Math.round(30000+Math.random()*20000); + const mcData=require("minecraft-data")(supportedVersion); + const version=mcData.version; + const packets = mcData.protocol; describe("packets "+version.minecraftVersion, function() { - var client, server, serverClient; + let client, server, serverClient; before(function(done) { server = new Server(version.minecraftVersion); server.once('listening', function() { @@ -189,14 +189,14 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ }); client.end(); }); - var packetInfo, field; - Object.keys(packets).filter(function(state){return state!="types"}).forEach(function(state){ + let packetInfo, field; + Object.keys(packets).filter(function(state){return state!=="types"}).forEach(function(state){ Object.keys(packets[state]).forEach(function(direction){ - Object.keys(packets[state][direction].types).filter(function(packetName){return packetName!="packet"}).forEach(function(packetName){ + Object.keys(packets[state][direction].types).filter(function(packetName){return packetName!=="packet"}).forEach(function(packetName){ packetInfo = packets[state][direction].types[packetName]; packetInfo=packetInfo ? packetInfo : null; - it(state + ","+(direction=="toServer" ? "Server" : "Client")+"Bound," + packetName, - callTestPacket(packetName.substr(7), packetInfo, state, direction=="toServer" )); + it(state + ","+(direction==="toServer" ? "Server" : "Client")+"Bound," + packetName, + callTestPacket(packetName.substr(7), packetInfo, state, direction==="toServer" )); }); }); }); @@ -210,7 +210,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ function testPacket(packetName, packetInfo, state, toServer, done) { // empty object uses default values - var packet = getValue(packetInfo, {}); + const packet = getValue(packetInfo, {}); if(toServer) { serverClient.once(packetName, function(receivedPacket) { try { diff --git a/test/serverTest.js b/test/serverTest.js index bfec1ee..bc8b39a 100644 --- a/test/serverTest.js +++ b/test/serverTest.js @@ -1,5 +1,5 @@ -var mc = require('../'); -var assert = require('power-assert'); +const mc = require('../'); +const assert = require('power-assert'); const {firstVersion,lastVersion}=require("./common/parallel"); @@ -7,18 +7,18 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ if(!(i>=firstVersion && i<=lastVersion)) return; - var PORT=Math.round(30000+Math.random()*20000); - var mcData=require("minecraft-data")(supportedVersion); - var version=mcData.version; + const PORT=Math.round(30000+Math.random()*20000); + const mcData=require("minecraft-data")(supportedVersion); + const version=mcData.version; describe("mc-server "+version.minecraftVersion, function() { it("starts listening and shuts down cleanly", function(done) { - var server = mc.createServer({ + const server = mc.createServer({ 'online-mode': false, version: version.minecraftVersion, port:PORT }); - var listening = false; + let listening = false; server.on('listening', function() { listening = true; server.close(); @@ -29,14 +29,14 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ }); }); it("kicks clients that do not log in", function(done) { - var server = mc.createServer({ + const server = mc.createServer({ 'online-mode': false, kickTimeout: 100, checkTimeoutInterval: 10, version: version.minecraftVersion, port:PORT }); - var count = 2; + let count = 2; server.on('connection', function(client) { client.on('end', function(reason) { assert.strictEqual(reason, '{"text":"LoginTimeout"}'); @@ -47,7 +47,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ resolve(); }); server.on('listening', function() { - var client = new mc.Client(false,version.minecraftVersion); + const client = new mc.Client(false,version.minecraftVersion); client.on('end', function() { resolve(); }); @@ -60,14 +60,14 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ } }); it("kicks clients that do not send keepalive packets", function(done) { - var server = mc.createServer({ + const server = mc.createServer({ 'online-mode': false, kickTimeout: 100, checkTimeoutInterval: 10, version: version.minecraftVersion, port:PORT }); - var count = 2; + let count = 2; server.on('connection', function(client) { client.on('end', function(reason) { assert.strictEqual(reason, '{"text":"KeepAliveTimeout"}'); @@ -78,7 +78,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ resolve(); }); server.on('listening', function() { - var client = mc.createClient({ + const client = mc.createClient({ username: 'superpants', host: '127.0.0.1', port: PORT, @@ -95,7 +95,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ } }); it("responds to ping requests", function(done) { - var server = mc.createServer({ + const server = mc.createServer({ 'online-mode': false, motd: 'test1234', 'max-players': 120, @@ -130,13 +130,13 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ server.on('close', done); }); it("clients can log in and chat", function(done) { - var server = mc.createServer({ + const server = mc.createServer({ 'online-mode': false, version: version.minecraftVersion, port:PORT }); - var username = ['player1', 'player2']; - var index = 0; + const username = ['player1', 'player2']; + let index = 0; server.on('login', function(client) { assert.notEqual(client.id, null); assert.strictEqual(client.username, username[index++]); @@ -155,13 +155,13 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ reducedDebugInfo: 0 }); client.on('chat', function(packet) { - var message = '<' + client.username + '>' + ' ' + packet.message; + const message = '<' + client.username + '>' + ' ' + packet.message; broadcast(message); }); }); server.on('close', done); server.on('listening', function() { - var player1 = mc.createClient({ + const player1 = mc.createClient({ username: 'player1', host: '127.0.0.1', version: version.minecraftVersion, @@ -194,7 +194,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ }); player2.write('chat', {message: "hi"}); }); - var player2 = mc.createClient({ + const player2 = mc.createClient({ username: 'player2', host: '127.0.0.1', version: version.minecraftVersion, @@ -204,8 +204,8 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ }); function broadcast(message, exclude) { - var client; - for(var clientId in server.clients) { + let client; + for(const clientId in server.clients) { if(!server.clients.hasOwnProperty(clientId)) continue; client = server.clients[clientId]; @@ -215,11 +215,11 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ }); it("kicks clients when invalid credentials", function(done) { this.timeout(10000); - var server = mc.createServer({ + const server = mc.createServer({ version: version.minecraftVersion, port:PORT }); - var count = 4; + let count = 4; server.on('connection', function(client) { client.on('end', function(reason) { resolve(); @@ -231,7 +231,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ }); server.on('listening', function() { resolve(); - var client = mc.createClient({ + const client = mc.createClient({ username: 'lalalal', host: "127.0.0.1", version: version.minecraftVersion, @@ -247,12 +247,12 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ } }); it("gives correct reason for kicking clients when shutting down", function(done) { - var server = mc.createServer({ + const server = mc.createServer({ 'online-mode': false, version: version.minecraftVersion, port:PORT }); - var count = 2; + let count = 2; server.on('login', function(client) { client.on('end', function(reason) { assert.strictEqual(reason, '{"text":"ServerShutdown"}'); @@ -272,7 +272,7 @@ mc.supportedVersions.forEach(function(supportedVersion,i){ resolve(); }); server.on('listening', function() { - var client = mc.createClient({ + const client = mc.createClient({ username: 'lalalal', host: '127.0.0.1', version: version.minecraftVersion,