node-minecraft-protocol/src/createClient.js

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;
}