diff --git a/src/client/autoVersion.js b/src/client/autoVersion.js index 8cdf0e4..3051403 100644 --- a/src/client/autoVersion.js +++ b/src/client/autoVersion.js @@ -6,9 +6,7 @@ var states = require('../states'); var assert = require('assert'); var minecraft_data = require('minecraft-data'); -module.exports = function(client) { - var options = client.options; - +module.exports = function(client, options) { options.wait_connect = true; // don't let src/client/setProtocol proceed on socket 'connect' until 'connect_allowed' debug('pinging',options.host); var pingOptions = {host: options.host, port: options.port}; @@ -33,8 +31,8 @@ module.exports = function(client) { var versionInfos = minecraft_data.postNettyVersionsByProtocolVersion[protocolVersion]; if (!versionInfos && versionInfos.length < 1) throw new Error(`unsupported/unknown protocol version: ${protocolVersion}, update minecraft-data`); var versionInfo = versionInfos[0]; // use newest - client.options.version = versionInfo.minecraftVersion; - client.options.protocolVersion = protocolVersion; + options.version = versionInfo.minecraftVersion; + options.protocolVersion = protocolVersion; // Reinitialize client object with new version TODO: move out of its constructor? client.version = versionInfo.majorVersion; diff --git a/src/client/caseCorrect.js b/src/client/caseCorrect.js index e8a42d8..2eb634a 100644 --- a/src/client/caseCorrect.js +++ b/src/client/caseCorrect.js @@ -1,8 +1,7 @@ var yggdrasil = require('yggdrasil')({}); var UUID = require('uuid-1345'); -module.exports = function(client) { - var options = client.options; +module.exports = function(client, options) { var clientToken = options.clientToken || UUID.v4().toString(); options.accessToken = null; options.haveCredentials = options.password != null || (clientToken != null && options.session != null); diff --git a/src/client/compress.js b/src/client/compress.js index 40d092f..cebe34f 100644 --- a/src/client/compress.js +++ b/src/client/compress.js @@ -1,4 +1,4 @@ -module.exports = function(client) { +module.exports = function(client, options) { client.once("compress", onCompressionRequest); client.on("set_compression", onCompressionRequest); diff --git a/src/client/encrypt.js b/src/client/encrypt.js index 10b391c..696ddfc 100644 --- a/src/client/encrypt.js +++ b/src/client/encrypt.js @@ -3,8 +3,7 @@ var yggserver = require('yggdrasil').server({}); var ursa=require("../ursa"); var debug = require("../debug"); -module.exports = function(client) { - var options = client.options; +module.exports = function(client, options) { client.once('encryption_begin', onEncryptionKeyRequest); function onEncryptionKeyRequest(packet) { diff --git a/src/client/keepalive.js b/src/client/keepalive.js index 5b206cf..3fc817b 100644 --- a/src/client/keepalive.js +++ b/src/client/keepalive.js @@ -1,5 +1,4 @@ -module.exports = function(client) { - var options = client.options; +module.exports = function(client, options) { var keepAlive = options.keepAlive == null ? true : options.keepAlive; if (!keepAlive) return; diff --git a/src/client/play.js b/src/client/play.js index efcf84b..ebc491e 100644 --- a/src/client/play.js +++ b/src/client/play.js @@ -1,6 +1,6 @@ var states = require("../states"); -module.exports = function(client) { +module.exports = function(client, options) { client.once('success', onLogin); function onLogin(packet) { diff --git a/src/client/setProtocol.js b/src/client/setProtocol.js index 0c5b7db..4948b1c 100644 --- a/src/client/setProtocol.js +++ b/src/client/setProtocol.js @@ -1,8 +1,7 @@ var states = require("../states"); -module.exports = function(client) { - var options = client.options; +module.exports = function(client, options) { client.on('connect', onConnect); function onConnect() { diff --git a/src/client/tcp_dns.js b/src/client/tcp_dns.js index 2863962..a8e3060 100644 --- a/src/client/tcp_dns.js +++ b/src/client/tcp_dns.js @@ -1,8 +1,7 @@ var net = require('net'); var dns = require('dns'); -module.exports = function(client) { - var options = client.options; +module.exports = function(client, options) { options.port = options.port || 25565; options.host = options.host || 'localhost'; diff --git a/src/createClient.js b/src/createClient.js index 0a68c7c..f702353 100644 --- a/src/createClient.js +++ b/src/createClient.js @@ -25,16 +25,15 @@ function createClient(options) { options.protocolVersion = version.version; var client = new Client(false, options.majorVersion); - client.options = options; - tcp_dns(client); - caseCorrect(client); - if (options.version === false) autoVersion(client); - setProtocol(client); - keepalive(client); - encrypt(client); - play(client); - compress(client); + tcp_dns(client, options); + caseCorrect(client, options); + if (options.version === false) autoVersion(client, options); + setProtocol(client, options); + keepalive(client, options); + encrypt(client, options); + play(client, options); + compress(client, options); return client; } diff --git a/src/ping.js b/src/ping.js index 1e6adcb..4a58353 100644 --- a/src/ping.js +++ b/src/ping.js @@ -15,7 +15,6 @@ function ping(options, cb) { options.protocolVersion = version.version; var client = new Client(false,options.majorVersion); - client.options = options; client.on('error', function(err) { cb(err); }); @@ -47,6 +46,6 @@ function ping(options, cb) { client.state = states.STATUS; }); - tcp_dns(client); + tcp_dns(client, options); options.connect(client); }