mirror of
https://github.com/PrismarineJS/node-minecraft-protocol.git
synced 2025-05-19 17:50:24 -04:00
better error reporting. add test
This commit is contained in:
parent
2434b49528
commit
035f69919d
2 changed files with 46 additions and 6 deletions
21
index.js
21
index.js
|
@ -143,14 +143,23 @@ function createServer(options) {
|
||||||
user: client.username,
|
user: client.username,
|
||||||
serverId: digest
|
serverId: digest
|
||||||
});
|
});
|
||||||
request.end(function (err,resp){
|
request.end(function(err, resp) {
|
||||||
|
var myErr;
|
||||||
if (err) {
|
if (err) {
|
||||||
client.end('Error :', err);
|
server.emit('error', err);
|
||||||
return;
|
client.end('InternalError');
|
||||||
}
|
} else if (resp.serverError) {
|
||||||
if (resp.text !== "YES") {
|
myErr = new Error("session.minecraft.net is broken: " + resp.status);
|
||||||
|
myErr.code = 'EMCSESSION500';
|
||||||
|
server.emit('error', myErr);
|
||||||
|
client.end('McSessionDown');
|
||||||
|
} else if (resp.serverError) {
|
||||||
|
myErr = new Error("session.minecraft.net rejected request: " + resp.status);
|
||||||
|
myErr.code = 'EMCSESSION400';
|
||||||
|
server.emit('error', myErr);
|
||||||
|
client.end('McSessionRejectedAuthRequest');
|
||||||
|
} else if (resp.text !== "YES") {
|
||||||
client.end('FailedToVerifyUsername');
|
client.end('FailedToVerifyUsername');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
31
test/test.js
31
test/test.js
|
@ -525,6 +525,37 @@ describe("mc-server", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
it("kicks clients when invalid credentials", function(done) {
|
||||||
|
var server = mc.createServer();
|
||||||
|
var count = 5;
|
||||||
|
server.on('connection', function(client) {
|
||||||
|
client.on('end', function(reason) {
|
||||||
|
resolve();
|
||||||
|
server.close();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
server.on('close', function() {
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
server.on('listening', function() {
|
||||||
|
resolve();
|
||||||
|
var client = mc.createClient({
|
||||||
|
username: 'lalalal',
|
||||||
|
password: "this is wrong",
|
||||||
|
});
|
||||||
|
client.on('error', function(err) {
|
||||||
|
assert.strictEqual(err.code, 'ELOGIN400');
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
client.on('end', function() {
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
function resolve() {
|
||||||
|
count -= 1;
|
||||||
|
if (count <= 0) done();
|
||||||
|
}
|
||||||
|
});
|
||||||
it("gives correct reason for kicking clients when shutting down", function(done) {
|
it("gives correct reason for kicking clients when shutting down", function(done) {
|
||||||
var server = mc.createServer({ 'online-mode': false, });
|
var server = mc.createServer({ 'online-mode': false, });
|
||||||
var count = 2;
|
var count = 2;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue