mirror of
https://github.com/PrismarineJS/node-minecraft-protocol.git
synced 2025-05-08 12:20:26 -04:00
a few small changes to make the code better
This commit is contained in:
parent
f3a653ef1c
commit
b2b53c9343
14 changed files with 40 additions and 47 deletions
examples
src
test
|
@ -55,7 +55,7 @@ if(process.argv.length < 5) {
|
|||
process.exit(1);
|
||||
}
|
||||
|
||||
process.argv.forEach(function(val, index, array) {
|
||||
process.argv.forEach(function(val) {
|
||||
if(val == "-h") {
|
||||
print_help();
|
||||
process.exit(0);
|
||||
|
@ -167,9 +167,9 @@ function parseChat(chatObj, parentState) {
|
|||
|
||||
chat += color(util.format.apply(this, args), getColorize(parentState));
|
||||
}
|
||||
for(var i in chatObj.extra) {
|
||||
chatObj.extra.forEach(function(i) {
|
||||
chat += parseChat(chatObj.extra[i], parentState);
|
||||
}
|
||||
});
|
||||
return chat;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ if(process.argv.length < 4) {
|
|||
printHelpAndExit(1);
|
||||
}
|
||||
|
||||
process.argv.forEach(function(val, index, array) {
|
||||
process.argv.forEach(function(val) {
|
||||
if(val == "-h") {
|
||||
printHelpAndExit(0);
|
||||
}
|
||||
|
@ -175,8 +175,8 @@ srv.on('login', function(client) {
|
|||
function shouldDump(name, direction) {
|
||||
if(matches(printNameBlacklist[name])) return false;
|
||||
if(printAllNames) return true;
|
||||
if(matches(printNameWhitelist[name])) return true;
|
||||
return false;
|
||||
return matches(printNameWhitelist[name]);
|
||||
|
||||
function matches(result) {
|
||||
return result != null && result.indexOf(direction) !== -1;
|
||||
}
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
var mc = require('minecraft-protocol');
|
||||
var states = mc.states;
|
||||
|
||||
var options = {
|
||||
motd: 'Vox Industries',
|
||||
'max-players': 127,
|
||||
port: 25565,
|
||||
'online-mode': false,
|
||||
'online-mode': false
|
||||
};
|
||||
|
||||
var server = mc.createServer(options);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
var mc = require('minecraft-protocol');
|
||||
|
||||
var options = {
|
||||
'online-mode': true,
|
||||
'online-mode': true
|
||||
};
|
||||
|
||||
var server = mc.createServer(options);
|
||||
|
|
|
@ -86,6 +86,7 @@ function createClient(options) {
|
|||
client.connect(port, host);
|
||||
}
|
||||
|
||||
var timeout = null;
|
||||
return client;
|
||||
|
||||
function onConnect() {
|
||||
|
@ -104,7 +105,6 @@ function createClient(options) {
|
|||
function onCompressionRequest(packet) {
|
||||
client.compressionThreshold = packet.threshold;
|
||||
}
|
||||
var timeout = null;
|
||||
function onKeepAlive(packet) {
|
||||
if (timeout)
|
||||
clearTimeout(timeout);
|
||||
|
@ -153,7 +153,7 @@ function createClient(options) {
|
|||
var encryptedVerifyTokenBuffer = pubKey.encrypt(packet.verifyToken, undefined, undefined, ursa.RSA_PKCS1_PADDING);
|
||||
client.write('encryption_begin', {
|
||||
sharedSecret: encryptedSharedSecretBuffer,
|
||||
verifyToken: encryptedVerifyTokenBuffer,
|
||||
verifyToken: encryptedVerifyTokenBuffer
|
||||
});
|
||||
client.setEncryption(sharedSecret);
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ function createServer(options) {
|
|||
});
|
||||
}
|
||||
|
||||
function onKeepAlive(packet) {
|
||||
function onKeepAlive() {
|
||||
lastKeepAlive = new Date();
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ function createServer(options) {
|
|||
clearTimeout(loginKickTimer);
|
||||
}
|
||||
|
||||
function onPing(packet) {
|
||||
function onPing() {
|
||||
var response = {
|
||||
"version": {
|
||||
"name": version.minecraftVersion,
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
var nbt = require('prismarine-nbt');
|
||||
var types=require("protodef").types;
|
||||
var uuid = require('node-uuid');
|
||||
|
||||
// TODO : remove type-specific, replace with generic containers and arrays.
|
||||
module.exports = {
|
||||
'UUID': [readUUID, writeUUID, 16],
|
||||
'nbt': [readNbt, writeNbt, sizeOfNbt],
|
||||
|
@ -14,7 +12,7 @@ module.exports = {
|
|||
function readUUID(buffer, offset) {
|
||||
return {
|
||||
value: uuid.unparse(buffer, offset),
|
||||
size: 16,
|
||||
size: 16
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -71,37 +69,37 @@ function sizeOfRestBuffer(value) {
|
|||
return value.length;
|
||||
}
|
||||
|
||||
function readEntityMetadata(buffer, offset, typeArgs) {
|
||||
function readEntityMetadata(buffer, offset, {type,endVal}) {
|
||||
var cursor = offset;
|
||||
var metadata = [];
|
||||
var item;
|
||||
while(true) {
|
||||
item = buffer.readUInt8(cursor);
|
||||
if(item === typeArgs.endVal) {
|
||||
if(item === endVal) {
|
||||
return {
|
||||
value: metadata,
|
||||
size: cursor + 1 - offset
|
||||
};
|
||||
}
|
||||
var results = this.read(buffer, cursor, typeArgs.type, {});
|
||||
var results = this.read(buffer, cursor, type, {});
|
||||
metadata.push(results.value);
|
||||
cursor += results.size;
|
||||
}
|
||||
}
|
||||
|
||||
function writeEntityMetadata(value, buffer, offset, typeArgs) {
|
||||
function writeEntityMetadata(value, buffer, offset, {type,endVal}) {
|
||||
var self = this;
|
||||
value.forEach(function(item) {
|
||||
offset = self.write(item, buffer, offset, typeArgs.type, {});
|
||||
offset = self.write(item, buffer, offset, type, {});
|
||||
});
|
||||
buffer.writeUInt8(typeArgs.endVal, offset);
|
||||
buffer.writeUInt8(endVal, offset);
|
||||
return offset + 1;
|
||||
}
|
||||
|
||||
function sizeOfEntityMetadata(value, typeArgs) {
|
||||
function sizeOfEntityMetadata(value, {type}) {
|
||||
var size = 1;
|
||||
for(var i = 0; i < value.length; ++i) {
|
||||
size += this.sizeOf(value[i], typeArgs.type, {});
|
||||
size += this.sizeOf(value[i], type, {});
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
var util = require('util')
|
||||
var util = require('util');
|
||||
|
||||
var debug;
|
||||
if(process.env.NODE_DEBUG && /(minecraft-protocol|mc-proto)/.test(process.env.NODE_DEBUG)) {
|
||||
|
|
|
@ -4,11 +4,11 @@ var Transform = require("readable-stream").Transform;
|
|||
|
||||
module.exports.createCompressor = function(threshold) {
|
||||
return new Compressor(threshold);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports.createDecompressor = function(threshold) {
|
||||
return new Decompressor(threshold);
|
||||
}
|
||||
};
|
||||
|
||||
class Compressor extends Transform {
|
||||
constructor(compressionThreshold = -1) {
|
||||
|
@ -47,8 +47,7 @@ class Decompressor extends Transform {
|
|||
}
|
||||
|
||||
_transform(chunk, enc, cb) {
|
||||
var size, value, error;
|
||||
({ size, value, error } = readVarInt(chunk, 0));
|
||||
var { size, value, error } = readVarInt(chunk, 0);
|
||||
if (error)
|
||||
return cb(error);
|
||||
if (value === 0)
|
||||
|
|
|
@ -3,11 +3,11 @@ var Transform = require("readable-stream").Transform;
|
|||
|
||||
module.exports.createSplitter = function() {
|
||||
return new Splitter();
|
||||
}
|
||||
};
|
||||
|
||||
module.exports.createFramer = function() {
|
||||
return new Framer();
|
||||
}
|
||||
};
|
||||
|
||||
class Framer extends Transform {
|
||||
constructor() {
|
||||
|
@ -30,10 +30,9 @@ class Splitter extends Transform {
|
|||
}
|
||||
_transform(chunk, enc, cb) {
|
||||
this.buffer = Buffer.concat([this.buffer, chunk]);
|
||||
var value, size, error;
|
||||
var offset = 0;
|
||||
|
||||
({ value, size, error } = readVarInt(this.buffer, offset) || { error: "Not enough data" });
|
||||
var { value, size, error } = readVarInt(this.buffer, offset) || { error: "Not enough data" };
|
||||
while (!error && this.buffer.length >= offset + size + value)
|
||||
{
|
||||
this.push(this.buffer.slice(offset + size, offset + size + value));
|
||||
|
|
|
@ -7,7 +7,7 @@ var states = mc.states;
|
|||
var testDataWrite = [
|
||||
{name: 'keep_alive', params: {keepAliveId: 957759560}},
|
||||
{name: 'chat', params: {message: '<Bob> Hello World!'}},
|
||||
{name: 'position_look', params: {x: 6.5, y: 65.62, stance: 67.24, z: 7.5, yaw: 0, pitch: 0, onGround: true}},
|
||||
{name: 'position_look', params: {x: 6.5, y: 65.62, stance: 67.24, z: 7.5, yaw: 0, pitch: 0, onGround: true}}
|
||||
// TODO: add more packets for better quality data
|
||||
];
|
||||
|
||||
|
@ -36,7 +36,7 @@ mc.supportedVersions.forEach(function(supportedVersion){
|
|||
var deserializer=new mc.createDeserializer({state:states.PLAY,isServer:true,version:version.majorVersion});
|
||||
console.log('Beginning read test');
|
||||
start = Date.now();
|
||||
for (j = 0; j < inputData.length; j++) {
|
||||
for (var j = 0; j < inputData.length; j++) {
|
||||
deserializer.parsePacketBuffer(inputData[j]);
|
||||
}
|
||||
console.log('Finished read test in ' + (Date.now() - start) / 1000 + ' seconds');
|
||||
|
|
|
@ -43,7 +43,7 @@ mc.supportedVersions.forEach(function(supportedVersion) {
|
|||
});
|
||||
wrap.startServer({
|
||||
motd: 'test1234',
|
||||
'max-players': 120,
|
||||
'max-players': 120
|
||||
}, function(err) {
|
||||
if(err)
|
||||
return done(err);
|
||||
|
|
|
@ -41,9 +41,9 @@ var values = {
|
|||
var results = {
|
||||
"..": context
|
||||
};
|
||||
for(var index in typeArgs) {
|
||||
Object.keys(typeArgs).forEach(function(index){
|
||||
results[typeArgs[index].name] = getValue(typeArgs[index].type, results);
|
||||
}
|
||||
});
|
||||
delete context[".."];
|
||||
return results;
|
||||
},
|
||||
|
@ -100,7 +100,7 @@ var values = {
|
|||
intField: 9,
|
||||
velocityX: 1,
|
||||
velocityY: 2,
|
||||
velocityZ: 3,
|
||||
velocityZ: 3
|
||||
},
|
||||
'UUID': "00112233-4455-6677-8899-aabbccddeeff",
|
||||
'position': {x: 12, y: 332, z: 4382821},
|
||||
|
@ -155,7 +155,7 @@ mc.supportedVersions.forEach(function(supportedVersion){
|
|||
client.end();
|
||||
});
|
||||
var packetName, packetInfo, field;
|
||||
for(state in packets) {
|
||||
for(var state in packets) {
|
||||
if(!packets.hasOwnProperty(state)) continue;
|
||||
for(packetName in packets[state].toServer) {
|
||||
if(!packets[state].toServer.hasOwnProperty(packetName)) continue;
|
||||
|
@ -210,14 +210,13 @@ mc.supportedVersions.forEach(function(supportedVersion){
|
|||
packetInfo.forEach(function(field) {
|
||||
assert.deepEqual(p1[field], p2[field]);
|
||||
});
|
||||
var field;
|
||||
for(field in p1) {
|
||||
Object.keys(p1).forEach(function(field){
|
||||
if (p1[field] !== undefined)
|
||||
assert.ok(field in p2, "field " + field + " missing in p2, in p1 it has value " + JSON.stringify(p1[field]));
|
||||
}
|
||||
for(field in p2) {
|
||||
});
|
||||
Object.keys(p2).forEach(function(field){
|
||||
assert.ok(field in p1, "field " + field + " missing in p1, in p2 it has value " + JSON.stringify(p2[field]));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
var mc = require('../');
|
||||
var Client = mc.Client;
|
||||
var assert = require('power-assert');
|
||||
|
||||
mc.supportedVersions.forEach(function(supportedVersion){
|
||||
|
@ -271,4 +270,4 @@ mc.supportedVersions.forEach(function(supportedVersion){
|
|||
}
|
||||
});
|
||||
});
|
||||
})
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue