diff --git a/data/protocol.json b/data/protocol.json index 0447cb7..35ee7a8 100644 --- a/data/protocol.json +++ b/data/protocol.json @@ -3,7 +3,7 @@ "string": [ "pstring", { - "countType":"short" + "countType":"i16" } ], "shapeless_recipe": [ @@ -91,11 +91,11 @@ [ { "name": "meta", - "type": "short" + "type": "i16" }, { "name": "id", - "type": "short" + "type": "i16" }, { "name": "result", @@ -108,11 +108,11 @@ [ { "name": "id", - "type": "short" + "type": "i16" }, { "name": "meta", - "type": "short" + "type": "i16" }, { "name": "result", @@ -602,7 +602,36 @@ ] } ], - "packet": [ + "encapsulated_packet":[ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0x8e": "mcpe" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "mcpe":"mcpe_packet" + } + } + ] + } + ] + ], + "mcpe_packet": [ "container", [ { diff --git a/examples/server.js b/examples/server.js index 8d9eb11..0e5db93 100644 --- a/examples/server.js +++ b/examples/server.js @@ -7,19 +7,11 @@ if(process.argv.length !=4) { var server = pmp.createServer({ host: process.argv[2], - port: parseInt(process.argv[3]) + port: parseInt(process.argv[3]), + name: 'MCPE;numerous-alpaca test server!;45 45;0.0.1;0;20' }); server.on('connection', function(client) { - client.on('unconnected_ping', function(packet) { - client.write('unconnected_pong', { - pingID: packet.pingID, - serverID: 0, - magic: 0, - serverName: 'MCPE;numerous-alpaca test server!;45 45;0.0.1;0;20' - }); - }); - client.on('error', function(err) { console.log(err.stack); }); diff --git a/package.json b/package.json index 36ba660..ba0c414 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "dependencies": { "prismarine-nbt": "^0.2.2", "protodef": "^1.2.0", - "raknet": "^1.3.1" + "raknet": "^1.5.2" }, "devDependencies": {}, "repository": { diff --git a/src/createClient.js b/src/createClient.js index 23b23ce..012e5ae 100644 --- a/src/createClient.js +++ b/src/createClient.js @@ -9,6 +9,7 @@ function createClient(options) { assert.ok(options.username, "username is required"); + options.customPackets=require("../data/protocol"); var client=raknet.createClient(options); client.username = options.username; diff --git a/src/createServer.js b/src/createServer.js index f5845bc..4d28502 100644 --- a/src/createServer.js +++ b/src/createServer.js @@ -9,6 +9,7 @@ function createServer(options) { 19132; var host = options.host || '0.0.0.0'; + options.customPackets=require("../data/protocol"); var server = raknet.createServer(options); server.name = options.name || "Minecraft Server";