mirror of
https://github.com/unmojang/node-minecraft-protocol.git
synced 2025-09-30 06:30:39 -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
|
, compressPacketBuffer = protocol.compressPacketBuffer
|
||||||
, oldStylePacket = protocol.oldStylePacket
|
, oldStylePacket = protocol.oldStylePacket
|
||||||
, newStylePacket = protocol.newStylePacket
|
, newStylePacket = protocol.newStylePacket
|
||||||
, parsePacket = protocol.parsePacket
|
|
||||||
, parsePacketData = protocol.parsePacketData
|
, parsePacketData = protocol.parsePacketData
|
||||||
, parseNewStylePacket = protocol.parseNewStylePacket
|
, parseNewStylePacket = protocol.parseNewStylePacket
|
||||||
, packetIds = protocol.packetIds
|
, packetIds = protocol.packetIds
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
var getField= require("../utils").getField;
|
var getField= require("../utils").getField;
|
||||||
|
var debug = require("../debug");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
'array':[readArray,writeArray,sizeOfArray],
|
'array':[readArray,writeArray,sizeOfArray],
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
var EventEmitter = require('events').EventEmitter
|
var assert = require('assert')
|
||||||
, util = require('util')
|
|
||||||
, assert = require('assert')
|
|
||||||
, crypto = require('crypto')
|
, crypto = require('crypto')
|
||||||
, bufferEqual = require('buffer-equal')
|
, bufferEqual = require('buffer-equal')
|
||||||
, superagent = require('superagent')
|
|
||||||
, protocol = require('./protocol')
|
, protocol = require('./protocol')
|
||||||
, Client = require('./client')
|
, Client = require('./client')
|
||||||
, dns = require('dns')
|
, dns = require('dns')
|
||||||
@ -14,7 +11,7 @@ var EventEmitter = require('events').EventEmitter
|
|||||||
, validateSession = Yggdrasil.validateSession
|
, validateSession = Yggdrasil.validateSession
|
||||||
, joinServer = Yggdrasil.joinServer
|
, joinServer = Yggdrasil.joinServer
|
||||||
, states = protocol.states
|
, states = protocol.states
|
||||||
, debug = protocol.debug
|
, debug = require("./debug")
|
||||||
;
|
;
|
||||||
var ursa;
|
var ursa;
|
||||||
try {
|
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
|
||||||
|
};
|
||||||
|
}
|
@ -2,50 +2,9 @@ var assert = require('assert');
|
|||||||
var zlib = require('zlib');
|
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.
|
// This is really just for the client.
|
||||||
var states = {
|
var states = {
|
||||||
@ -80,7 +39,6 @@ NMProtocols.prototype.addTypes = function(types)
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
NMProtocols.prototype.read = function(buffer, cursor, fieldInfo, rootNodes) {
|
NMProtocols.prototype.read = function(buffer, cursor, fieldInfo, rootNodes) {
|
||||||
var type = this.types[fieldInfo.type];
|
var type = this.types[fieldInfo.type];
|
||||||
if (!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) {
|
function parseNewStylePacket(buffer, state, isServer, packetsToParse, cb) {
|
||||||
var dataLengthField = utils.varint[0](buffer, 0);
|
var dataLengthField = utils.varint[0](buffer, 0);
|
||||||
var buf = buffer.slice(dataLengthField.size);
|
var buf = buffer.slice(dataLengthField.size);
|
||||||
@ -302,14 +247,12 @@ module.exports = {
|
|||||||
version: 47,
|
version: 47,
|
||||||
minecraftVersion: '1.8.1',
|
minecraftVersion: '1.8.1',
|
||||||
sessionVersion: 13,
|
sessionVersion: 13,
|
||||||
parsePacket: parsePacket,
|
|
||||||
parsePacketData: parsePacketData,
|
parsePacketData: parsePacketData,
|
||||||
parseNewStylePacket: parseNewStylePacket,
|
parseNewStylePacket: parseNewStylePacket,
|
||||||
createPacketBuffer: createPacketBuffer,
|
createPacketBuffer: createPacketBuffer,
|
||||||
compressPacketBuffer: compressPacketBuffer,
|
compressPacketBuffer: compressPacketBuffer,
|
||||||
oldStylePacket: oldStylePacket,
|
oldStylePacket: oldStylePacket,
|
||||||
newStylePacket: newStylePacket,
|
newStylePacket: newStylePacket,
|
||||||
STRING_MAX_LENGTH: STRING_MAX_LENGTH,
|
|
||||||
packetIds: packetIds,
|
packetIds: packetIds,
|
||||||
packetNames: packetNames,
|
packetNames: packetNames,
|
||||||
packetFields: packetFields,
|
packetFields: packetFields,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user