mirror of
https://github.com/unmojang/node-minecraft-protocol.git
synced 2025-09-28 21:52:17 -04:00
move packets reading to packets.js, remove some dead code
This commit is contained in:
parent
78e70dad8e
commit
778752f097
@ -5,7 +5,6 @@ var EventEmitter = require('events').EventEmitter
|
||||
, compressPacketBuffer = protocol.compressPacketBuffer
|
||||
, oldStylePacket = protocol.oldStylePacket
|
||||
, newStylePacket = protocol.newStylePacket
|
||||
, parsePacket = protocol.parsePacket
|
||||
, parsePacketData = protocol.parsePacketData
|
||||
, parseNewStylePacket = protocol.parseNewStylePacket
|
||||
, packetIds = protocol.packetIds
|
||||
|
@ -1,4 +1,5 @@
|
||||
var getField= require("../utils").getField;
|
||||
var debug = require("../debug");
|
||||
|
||||
module.exports = {
|
||||
'array':[readArray,writeArray,sizeOfArray],
|
||||
|
@ -1,9 +1,6 @@
|
||||
var EventEmitter = require('events').EventEmitter
|
||||
, util = require('util')
|
||||
, assert = require('assert')
|
||||
var assert = require('assert')
|
||||
, crypto = require('crypto')
|
||||
, bufferEqual = require('buffer-equal')
|
||||
, superagent = require('superagent')
|
||||
, protocol = require('./protocol')
|
||||
, Client = require('./client')
|
||||
, dns = require('dns')
|
||||
@ -14,7 +11,7 @@ var EventEmitter = require('events').EventEmitter
|
||||
, validateSession = Yggdrasil.validateSession
|
||||
, joinServer = Yggdrasil.joinServer
|
||||
, states = protocol.states
|
||||
, debug = protocol.debug
|
||||
, debug = require("./debug")
|
||||
;
|
||||
var ursa;
|
||||
try {
|
||||
|
44
src/packets.js
Normal file
44
src/packets.js
Normal file
@ -0,0 +1,44 @@
|
||||
var assert=require("assert");
|
||||
|
||||
module.exports={readPackets:readPackets};
|
||||
|
||||
function readPackets(packets,states)
|
||||
{
|
||||
var packetFields = {};
|
||||
var packetNames = {};
|
||||
var packetIds = {};
|
||||
var packetStates = {toClient: {}, toServer: {}};
|
||||
for (var stateName in states) {
|
||||
var state = states[stateName];
|
||||
|
||||
packetFields[state] = {toClient: [], toServer: []};
|
||||
packetNames[state] = {toClient: [], toServer: []};
|
||||
packetIds[state] = {toClient: [], toServer: []};
|
||||
|
||||
['toClient', 'toServer'].forEach(function(direction) {
|
||||
for (var name in packets[state][direction]) {
|
||||
var info = packets[state][direction][name];
|
||||
var id = parseInt(info.id);
|
||||
var fields = info.fields;
|
||||
|
||||
assert(id !== undefined, 'missing id for packet '+name);
|
||||
assert(fields !== undefined, 'missing fields for packet '+name);
|
||||
assert(!packetNames[state][direction].hasOwnProperty(id), 'duplicate packet id '+id+' for '+name);
|
||||
assert(!packetIds[state][direction].hasOwnProperty(name), 'duplicate packet name '+name+' for '+id);
|
||||
assert(!packetFields[state][direction].hasOwnProperty(id), 'duplicate packet id '+id+' for '+name);
|
||||
assert(!packetStates[direction].hasOwnProperty(name), 'duplicate packet name '+name+' for '+id+', must be unique across all states');
|
||||
|
||||
packetNames[state][direction][id] = name;
|
||||
packetIds[state][direction][name] = id;
|
||||
packetFields[state][direction][id] = fields;
|
||||
packetStates[direction][name] = state;
|
||||
}
|
||||
});
|
||||
}
|
||||
return {
|
||||
packetFields:packetFields,
|
||||
packetNames:packetNames,
|
||||
packetIds:packetIds,
|
||||
packetStates:packetStates
|
||||
};
|
||||
}
|
@ -1,51 +1,10 @@
|
||||
var assert = require('assert');
|
||||
var zlib = require('zlib');
|
||||
|
||||
var evalCondition= require("./utils").evalCondition;
|
||||
var evalCondition = require("./utils").evalCondition;
|
||||
var readPackets = require("./packets").readPackets;
|
||||
var debug = require("./debug");
|
||||
|
||||
var STRING_MAX_LENGTH = 240;
|
||||
|
||||
|
||||
function readPackets(packets,states)
|
||||
{
|
||||
var packetFields = {};
|
||||
var packetNames = {};
|
||||
var packetIds = {};
|
||||
var packetStates = {toClient: {}, toServer: {}};
|
||||
for (var stateName in states) {
|
||||
var state = states[stateName];
|
||||
|
||||
packetFields[state] = {toClient: [], toServer: []};
|
||||
packetNames[state] = {toClient: [], toServer: []};
|
||||
packetIds[state] = {toClient: [], toServer: []};
|
||||
|
||||
['toClient', 'toServer'].forEach(function(direction) {
|
||||
for (var name in packets[state][direction]) {
|
||||
var info = packets[state][direction][name];
|
||||
var id = parseInt(info.id);
|
||||
var fields = info.fields;
|
||||
|
||||
assert(id !== undefined, 'missing id for packet '+name);
|
||||
assert(fields !== undefined, 'missing fields for packet '+name);
|
||||
assert(!packetNames[state][direction].hasOwnProperty(id), 'duplicate packet id '+id+' for '+name);
|
||||
assert(!packetIds[state][direction].hasOwnProperty(name), 'duplicate packet name '+name+' for '+id);
|
||||
assert(!packetFields[state][direction].hasOwnProperty(id), 'duplicate packet id '+id+' for '+name);
|
||||
assert(!packetStates[direction].hasOwnProperty(name), 'duplicate packet name '+name+' for '+id+', must be unique across all states');
|
||||
|
||||
packetNames[state][direction][id] = name;
|
||||
packetIds[state][direction][name] = id;
|
||||
packetFields[state][direction][id] = fields;
|
||||
packetStates[direction][name] = state;
|
||||
}
|
||||
});
|
||||
}
|
||||
return {
|
||||
packetFields:packetFields,
|
||||
packetNames:packetNames,
|
||||
packetIds:packetIds,
|
||||
packetStates:packetStates
|
||||
};
|
||||
}
|
||||
|
||||
// This is really just for the client.
|
||||
var states = {
|
||||
@ -80,7 +39,6 @@ NMProtocols.prototype.addTypes = function(types)
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
NMProtocols.prototype.read = function(buffer, cursor, fieldInfo, rootNodes) {
|
||||
var type = this.types[fieldInfo.type];
|
||||
if (!type) {
|
||||
@ -268,19 +226,6 @@ function parsePacketData(buffer, state, isServer, packetsToParse) {
|
||||
};
|
||||
}
|
||||
|
||||
function parsePacket(buffer, state, isServer, packetsToParse) {
|
||||
if (state == null) state = states.PLAY;
|
||||
var cursor = 0;
|
||||
var lengthField = utils.varint[0](buffer, 0);
|
||||
if (!lengthField) return null;
|
||||
var length = lengthField.value;
|
||||
cursor += lengthField.size;
|
||||
if (length + lengthField.size > buffer.length) return null; // fail early
|
||||
var result = parsePacketData(buffer.slice(cursor, length + cursor), state, isServer, packetsToParse);
|
||||
result.size = lengthField.size + length;
|
||||
return result;
|
||||
}
|
||||
|
||||
function parseNewStylePacket(buffer, state, isServer, packetsToParse, cb) {
|
||||
var dataLengthField = utils.varint[0](buffer, 0);
|
||||
var buf = buffer.slice(dataLengthField.size);
|
||||
@ -302,14 +247,12 @@ module.exports = {
|
||||
version: 47,
|
||||
minecraftVersion: '1.8.1',
|
||||
sessionVersion: 13,
|
||||
parsePacket: parsePacket,
|
||||
parsePacketData: parsePacketData,
|
||||
parseNewStylePacket: parseNewStylePacket,
|
||||
createPacketBuffer: createPacketBuffer,
|
||||
compressPacketBuffer: compressPacketBuffer,
|
||||
oldStylePacket: oldStylePacket,
|
||||
newStylePacket: newStylePacket,
|
||||
STRING_MAX_LENGTH: STRING_MAX_LENGTH,
|
||||
packetIds: packetIds,
|
||||
packetNames: packetNames,
|
||||
packetFields: packetFields,
|
||||
|
Loading…
x
Reference in New Issue
Block a user