From 76339a4b84e4b681017eabe9ec3f44e70e5bb9f4 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 3 Feb 2013 16:35:49 -0500 Subject: [PATCH] server: online mode: don't log in client until username verification --- index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 7bbbecf..4476952 100644 --- a/index.js +++ b/index.js @@ -30,7 +30,7 @@ function createServer(options) { var checkTimeoutInterval = options.checkTimeoutInterval || 4 * 1000; var motd = options.motd || "A Minecraft server"; var onlineMode = options['online-mode'] == null ? true : options['online-mode']; - var encryptionEnabled = options['encryption'] == null ? true : options['encryption']; + var encryptionEnabled = options.encryption == null ? true : options.encryption; var serverKey = ursa.generatePrivateKey(1024); @@ -146,7 +146,7 @@ function createServer(options) { var myErr; if (err) { server.emit('error', err); - client.end('InternalError'); + client.end('McSessionUnavailable'); } else if (resp.serverError) { myErr = new Error("session.minecraft.net is broken: " + resp.status); myErr.code = 'EMCSESSION500'; @@ -159,6 +159,8 @@ function createServer(options) { client.end('McSessionRejectedAuthRequest'); } else if (resp.text !== "YES") { client.end('FailedToVerifyUsername'); + } else { + loginClient(); } }); } @@ -167,7 +169,7 @@ function createServer(options) { verifyToken: new Buffer(0) }); client.encryptionEnabled = true; - loginClient(); + if (! onlineMode) loginClient(); } else { client.end('DidNotEncryptVerifyTokenProperly'); }