From 3dd181d9534bff8dd1ca73d87e2607471cf6ad9c Mon Sep 17 00:00:00 2001 From: deathcap Date: Mon, 18 Jan 2016 01:41:47 -0800 Subject: [PATCH 1/3] Move protocol stream to node-minecraft-protocol (createClientStream) Requires https://github.com/PrismarineJS/node-minecraft-protocol/pull/320 --- minecraft-protocol-stream.js | 49 ++---------------------------------- 1 file changed, 2 insertions(+), 47 deletions(-) diff --git a/minecraft-protocol-stream.js b/minecraft-protocol-stream.js index 6f92f9a..d08bbe3 100644 --- a/minecraft-protocol-stream.js +++ b/minecraft-protocol-stream.js @@ -7,43 +7,17 @@ var Client = require('minecraft-protocol').Client; var protocol = require('minecraft-protocol'); var assert = require('assert'); var states = protocol.states; +var createClientStream = require('minecraft-protocol').createClientStream; module.exports = { protocol: protocol, createClient: createClient }; -// generic stream version of index.js createClient() function createClient(options) { - assert.ok(options, "options is required"); - var stream = options.stream; - assert.ok(stream, "stream is required"); - - assert.ok(options.username, "username is required"); - var keepAlive = options.keepAlive == null ? true : options.keepAlive; - - var optVersion = options.version || require('./mcversion.js'); - var mcData = require('minecraft-data')(optVersion); - var version = mcData.version; - - var client = new Client(false, version.majorVersion); - - // Options to opt-out of MC protocol packet framing (useful since WS is alreay framed) - if (options.noPacketFramer) { - client.framer = EmptyTransformStream; - } - if (options.noPacketSplitter) { - client.splitter = EmptyTransformStream; - } + var client = createClientStream(options); client.on('connect', onConnect); - client.once('success', onLogin); - client.once('compress', onCompressionRequest); - client.once('set_compression', onCompressionRequest); - if (keepAlive) client.on('keep_alive', onKeepAlive); - - client.username = options.username; - client.setSocket(stream); return client; @@ -53,23 +27,4 @@ function createClient(options) { // directly to LOGIN, to receive login success and set compression packets client.state = states.LOGIN; } - - function onLogin(packet) { - console.log('onLogin',packet); - // successful login, transition to play phase - client.state = states.PLAY; - client.uuid = packet.uuid; - client.username = packet.username; - } - - function onCompressionRequest(packet) { - console.log('onCompressionRequest', packet); - client.compressionThreshold = packet.threshold; - } - - function onKeepAlive(packet) { - client.write('keep_alive', { - keepAliveId: packet.keepAliveId - }); - } } From fb59638e07245965089fa1c97ff4191362484e7e Mon Sep 17 00:00:00 2001 From: deathcap Date: Mon, 18 Jan 2016 13:39:33 -0800 Subject: [PATCH 2/3] Move stream option to use client setSocket() Requires https://github.com/deathcap/node-minecraft-protocol/commit/dd1d647d0e5bdae3c57c75272e2d73b03a4d03bf --- minecraft-protocol-stream.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/minecraft-protocol-stream.js b/minecraft-protocol-stream.js index d08bbe3..11ed968 100644 --- a/minecraft-protocol-stream.js +++ b/minecraft-protocol-stream.js @@ -15,7 +15,11 @@ module.exports = { }; function createClient(options) { + assert.ok(options, "options is required"); + assert.ok(options.stream, "stream is required"); + var client = createClientStream(options); + client.setSocket(options.stream); client.on('connect', onConnect); From b8c8dbfc82f5a02027e30dce10b9273a23f0bd66 Mon Sep 17 00:00:00 2001 From: deathcap Date: Sat, 6 Feb 2016 21:20:32 -0800 Subject: [PATCH 3/3] Update to use createClient() with stream option --- minecraft-protocol-stream.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/minecraft-protocol-stream.js b/minecraft-protocol-stream.js index 11ed968..631595e 100644 --- a/minecraft-protocol-stream.js +++ b/minecraft-protocol-stream.js @@ -7,7 +7,7 @@ var Client = require('minecraft-protocol').Client; var protocol = require('minecraft-protocol'); var assert = require('assert'); var states = protocol.states; -var createClientStream = require('minecraft-protocol').createClientStream; +var createClient = require('minecraft-protocol').createClient; module.exports = { protocol: protocol, @@ -18,8 +18,7 @@ function createClient(options) { assert.ok(options, "options is required"); assert.ok(options.stream, "stream is required"); - var client = createClientStream(options); - client.setSocket(options.stream); + var client = createClient(options); client.on('connect', onConnect);