mirror of
https://github.com/PrismarineJS/node-minecraft-protocol.git
synced 2025-05-16 00:00:39 -04:00
40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
const Client = require('./client');
|
|
const assert = require('assert');
|
|
|
|
|
|
const encrypt = require('./client/encrypt');
|
|
const keepalive = require('./client/keepalive');
|
|
const compress = require('./client/compress');
|
|
const caseCorrect = require('./client/caseCorrect');
|
|
const setProtocol = require('./client/setProtocol');
|
|
const play = require('./client/play');
|
|
const tcp_dns = require('./client/tcp_dns');
|
|
const autoVersion = require('./client/autoVersion');
|
|
|
|
module.exports=createClient;
|
|
|
|
function createClient(options) {
|
|
assert.ok(options, "options is required");
|
|
assert.ok(options.username, "username is required");
|
|
|
|
// TODO: avoid setting default version if autoVersion is enabled
|
|
const optVersion = options.version || require("./version").defaultVersion;
|
|
const mcData=require("minecraft-data")(optVersion);
|
|
if (!mcData) throw new Error(`unsupported protocol version: ${optVersion}`);
|
|
const version = mcData.version;
|
|
options.majorVersion = version.majorVersion;
|
|
options.protocolVersion = version.version;
|
|
|
|
const client = new Client(false, version.minecraftVersion,options.customPackets);
|
|
|
|
tcp_dns(client, options);
|
|
caseCorrect(client, options);
|
|
if (options.version === false) autoVersion(client, options);
|
|
setProtocol(client, options);
|
|
keepalive(client, options);
|
|
encrypt(client, options);
|
|
play(client, options);
|
|
compress(client, options);
|
|
|
|
return client;
|
|
}
|