diff --git a/AUTHORS.md b/docs/AUTHORS.md similarity index 100% rename from AUTHORS.md rename to docs/AUTHORS.md diff --git a/examples/clientReadmeExample.js b/examples/client/client.js similarity index 100% rename from examples/clientReadmeExample.js rename to examples/client/client.js diff --git a/examples/clientTest.js b/examples/client/clientInternal.js similarity index 92% rename from examples/clientTest.js rename to examples/client/clientInternal.js index a6996eb..f30fe23 100644 --- a/examples/clientTest.js +++ b/examples/client/clientInternal.js @@ -1,3 +1,6 @@ +/** + * Do not use this example unless you need to change the login procedure, instead see `client.js`. + */ process.env.DEBUG = 'minecraft-protocol raknet' const { Client } = require('bedrock-protocol') const { ChunkColumn, Version } = require('bedrock-provider') diff --git a/examples/createClientExample.js b/examples/client/createClient.js similarity index 100% rename from examples/createClientExample.js rename to examples/client/createClient.js diff --git a/examples/serverReadmeExample.js b/examples/server/basicServer.js similarity index 100% rename from examples/serverReadmeExample.js rename to examples/server/basicServer.js diff --git a/examples/serverTest.js b/examples/server/server.js similarity index 91% rename from examples/serverTest.js rename to examples/server/server.js index e299b62..8e4e74d 100644 --- a/examples/serverTest.js +++ b/examples/server/server.js @@ -1,27 +1,31 @@ /** + * This example spawns a client. For a basic server that disconnects users, see "basicServer.js". + * * bedrock-protocol server example; to run this example you need to clone this repo from git. * first need to dump some packets from the vanilla server as there is alot of boilerplate - * to send to clients. + * to send to clients. The `serverChunks.js` contains the chunk loading code. * * In your server implementation, you need to implement each of the following packets to * get a client to spawn like vanilla. You can look at the dumped packets in `data/1.16.10/sample` * * First, dump packets for version 1.16.210 by running `npm run dumpPackets`. + * Then you can run `node server.js ` to start this script. */ process.env.DEBUG = 'minecraft-protocol' // packet logging // const fs = require('fs') -const { Server } = require('../src/server') -const { hasDumps } = require('../tools/genPacketDumps') -const DataProvider = require('../data/provider') -const { waitFor } = require('../src/datatypes/util') +const { Server } = require('bedrock-protocol') + +const { hasDumps } = require('../../tools/genPacketDumps') +const DataProvider = require('../../data/provider') +const { waitFor } = require('../../src/datatypes/util') const { loadWorld } = require('./serverChunks') -async function startServer (version = '1.16.220', ok) { +async function startServer (version = '1.17.10', ok) { if (!hasDumps(version)) { throw Error('You need to dump some packets first. Run tools/genPacketDumps.js') } - const Item = require('../types/Item')(version) + const Item = require('../../types/Item')(version) const port = 19132 const server = new Server({ host: '0.0.0.0', port, version }) let loop diff --git a/examples/serverChunks.js b/examples/server/serverChunks.js similarity index 83% rename from examples/serverChunks.js rename to examples/server/serverChunks.js index 0b711c4..d6fac9c 100644 --- a/examples/serverChunks.js +++ b/examples/server/serverChunks.js @@ -4,7 +4,7 @@ const { LevelDB } = require('leveldb-zlib') const { join } = require('path') async function loadWorld (version) { - const path = join(__dirname, `../tools/bds-${version}/worlds/Bedrock level/db`) + const path = join(__dirname, `../../tools/bds-${version}/worlds/Bedrock level/db`) console.log('Loading world at path', path) // Load world from testing server const db = new LevelDB(path, { createIfMissing: false }) await db.open() @@ -19,11 +19,8 @@ async function loadWorld (version) { for (let cx = cxStart; cx < cxEnd; cx++) { for (let cz = czStart; cz < czEnd; cz++) { - // console.log('reading chunk at ', cx, cz) - const cc = await wp.load(cx, cz, true) if (!cc) { - // console.log('no chunk') continue } const cbuf = await cc.networkEncodeNoCache() @@ -35,7 +32,6 @@ async function loadWorld (version) { blobs: [], payload: cbuf }) - // console.log('Ht',cc.sectionsLen,cc.sections) } } diff --git a/package.json b/package.json index e521bae..44bdda2 100644 --- a/package.json +++ b/package.json @@ -21,18 +21,13 @@ ], "license": "MIT", "dependencies": { - "@azure/msal-node": "^1.1.0", - "@xboxreplay/xboxlive-auth": "^3.3.3", "debug": "^4.3.1", - "jose-node-cjs-runtime": "^3.12.1", "jsonwebtoken": "^8.5.1", "jsp-raknet": "^2.1.3", "minecraft-folder-path": "^1.2.0", - "node-fetch": "^2.6.1", "prismarine-auth": "^1.1.0", "prismarine-nbt": "^1.5.0", "protodef": "^1.14.0", - "smart-buffer": "^4.1.0", "uuid-1345": "^1.0.2" }, "optionalDependencies": { diff --git a/src/client/auth.js b/src/client/auth.js index bee00f3..98c334d 100644 --- a/src/client/auth.js +++ b/src/client/auth.js @@ -69,21 +69,3 @@ module.exports = { createOfflineSession, authenticate } - -// async function msaTest () { -// // MsAuthFlow.resetTokenCaches() - -// await authenticateDeviceCode({ -// connect(...args) { -// console.log('Connecting', args) -// }, -// emit(...e) { -// console.log('Event', e) -// } -// }, {}) -// } - -// // debug with node microsoftAuth.js -// if (!module.parent) { -// msaTest() -// } diff --git a/src/handshake/loginVerify.js b/src/handshake/loginVerify.js index 722dd17..62adc6d 100644 --- a/src/handshake/loginVerify.js +++ b/src/handshake/loginVerify.js @@ -24,7 +24,6 @@ module.exports = (client, server, options) => { for (const token of chain) { const decoded = JWT.verify(token, pubKey, { algorithms: ['ES384'] }) - // console.log('Decoded', decoded) // Check if signed by Mojang key const x5u = getX5U(token) @@ -37,7 +36,6 @@ module.exports = (client, server, options) => { finalKey = decoded.identityPublicKey || finalKey // non pem data = { ...data, ...decoded } } - // console.log('Result', data) if (!didVerify && !options.offline) { client.disconnect('disconnectionScreen.notAuthenticated') diff --git a/tools/startVanillaServer.js b/tools/startVanillaServer.js index 8e34794..157f458 100644 --- a/tools/startVanillaServer.js +++ b/tools/startVanillaServer.js @@ -112,7 +112,7 @@ async function startServerAndWait (version, withTimeout, options) { if (!module.parent) { // if (process.argv.length < 3) throw Error('Missing version argument') - startServer(process.argv[2] || '1.16.201', null, process.argv[3] ? { 'server-port': process.argv[3], 'online-mode': !!process.argv[4] } : undefined) + startServer(process.argv[2] || '1.17.10', null, process.argv[3] ? { 'server-port': process.argv[3], 'online-mode': !!process.argv[4] } : undefined) } module.exports = { fetchLatestStable, startServer, startServerAndWait }