From a70eee40c88499996373baffcd716b846073df6a Mon Sep 17 00:00:00 2001 From: Oscar Beaumont Date: Wed, 8 Nov 2017 23:27:00 +0800 Subject: [PATCH 1/4] Added New Example For Generating A World This is a new example that shows how to generate a chunk (Using prismarine-chunk) and send it to the user. --- examples/server_world/mc.js | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 examples/server_world/mc.js diff --git a/examples/server_world/mc.js b/examples/server_world/mc.js new file mode 100644 index 0000000..c458402 --- /dev/null +++ b/examples/server_world/mc.js @@ -0,0 +1,47 @@ +const mc = require('minecraft-protocol'); +const Chunk = require('prismarine-chunk')("1.12.1"); +const Vec3 = require('vec3'); +var server = mc.createServer({ + 'online-mode': true, + encryption: true, + host: '0.0.0.0', + port: 25565, +}); +var chunk = new Chunk(); + +for (var x = 0; x < 16;x++) { + for (var z = 0; z < 16; z++) { + chunk.setBlockType(new Vec3(x, 100, z), 2); + for (var y = 0; y < 256; y++) { + chunk.setSkyLight(new Vec3(x, y, z), 15); + } + } +} + +server.on('login', function(client) { + client.write('login', { + entityId: client.id, + levelType: 'default', + gameMode: 0, + dimension: 0, + difficulty: 2, + maxPlayers: server.maxPlayers, + reducedDebugInfo: false + }); + client.write('position', { + x: 15, + y: 101, + z: 15, + yaw: 137, + pitch: 0, + flags: 0x00 + }); + client.write('map_chunk', { + x: 0, + z: 0, + groundUp: true, + bitMap: 0xffff, + chunkData: chunk.dump(), + blockEntities: [] + }); +}); From 39b2fc215791e32e30629fdfe522e328c45564f2 Mon Sep 17 00:00:00 2001 From: Oscar Beaumont Date: Thu, 9 Nov 2017 10:28:33 +0800 Subject: [PATCH 2/4] Send The Player Position After The Chunk Data The players position was sent before sending the chunk which had now been switched. --- examples/server_world/mc.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/server_world/mc.js b/examples/server_world/mc.js index c458402..f3efc6b 100644 --- a/examples/server_world/mc.js +++ b/examples/server_world/mc.js @@ -28,14 +28,6 @@ server.on('login', function(client) { maxPlayers: server.maxPlayers, reducedDebugInfo: false }); - client.write('position', { - x: 15, - y: 101, - z: 15, - yaw: 137, - pitch: 0, - flags: 0x00 - }); client.write('map_chunk', { x: 0, z: 0, @@ -44,4 +36,12 @@ server.on('login', function(client) { chunkData: chunk.dump(), blockEntities: [] }); + client.write('position', { + x: 15, + y: 101, + z: 15, + yaw: 137, + pitch: 0, + flags: 0x00 + }); }); From f3a25af4dc1f110ec2379fc733965618e19b6f33 Mon Sep 17 00:00:00 2001 From: Oscar Beaumont Date: Thu, 9 Nov 2017 10:29:56 +0800 Subject: [PATCH 3/4] Added package.json Added a package.json that has the dependencies for the example code. --- examples/server_world/package.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 examples/server_world/package.json diff --git a/examples/server_world/package.json b/examples/server_world/package.json new file mode 100644 index 0000000..b67be43 --- /dev/null +++ b/examples/server_world/package.json @@ -0,0 +1,11 @@ +{ + "name": "node-minecraft-protocol-example", + "version": "1.0.0", + "private": true, + "dependencies": { + "prismarine-chunk": "^1.7.0", + "vec3": "^0.1.3" + }, + "description": "A node-minecraft-protocol example", + "author": "Oscar Beaumont" +} From 8afeee014f499c5d13ca85b1957c255c942dd4a6 Mon Sep 17 00:00:00 2001 From: Oscar Beaumont Date: Thu, 9 Nov 2017 18:32:10 +0800 Subject: [PATCH 4/4] Add Minecraft Version To The Server Add the Minecraft version this example was built with to the create server function so that this example code works even if the default Minecraft version for this module changes. --- examples/server_world/mc.js | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/server_world/mc.js b/examples/server_world/mc.js index f3efc6b..ad8269b 100644 --- a/examples/server_world/mc.js +++ b/examples/server_world/mc.js @@ -6,6 +6,7 @@ var server = mc.createServer({ encryption: true, host: '0.0.0.0', port: 25565, + version:"1.12.1", }); var chunk = new Chunk();