Merge pull request #496 from plexigras/auto-version-fix

improved automatic version resolution
This commit is contained in:
Romain Beaumont 2017-06-19 14:01:12 +02:00 committed by GitHub
commit 4e468b09dc

View File

@ -22,19 +22,20 @@ module.exports = function(client, options) {
// The version string is interpreted by https://github.com/PrismarineJS/node-minecraft-data // The version string is interpreted by https://github.com/PrismarineJS/node-minecraft-data
const brandedMinecraftVersion = response.version.name; // 1.8.9, 1.7.10 const brandedMinecraftVersion = response.version.name; // 1.8.9, 1.7.10
const protocolVersion = response.version.protocol;// 47, 5 const protocolVersion = response.version.protocol;// 47, 5
let versions = [brandedMinecraftVersion]
debug(`Server version: ${brandedMinecraftVersion}, protocol: ${protocolVersion}`); .concat(brandedMinecraftVersion.match(/((\d+\.)+\d+)/g)||[])
.map(function (version) {
let minecraftVersion; return minecraft_data.versionsByMinecraftVersion["pc"][version]
if (brandedMinecraftVersion.indexOf(' ') !== -1) { })
// Spigot and Glowstone++ prepend their name; strip it off .filter(function (info) { return info })
minecraftVersion = brandedMinecraftVersion.split(' ')[1]; .sort(function (a, b) { return b.version - a.version })
} else { .concat(minecraft_data.postNettyVersionsByProtocolVersion["pc"][protocolVersion]||[])
minecraftVersion = brandedMinecraftVersion; if (versions.length === 0) {
throw new Error(`unsupported/unknown protocol version: ${protocolVersion}, update minecraft-data`);
} }
const minecraftVersion = versions[0].minecraftVersion;
const versionInfo = minecraft_data.versionsByMinecraftVersion["pc"][minecraftVersion]; debug(`Server version: ${minecraftVersion}, protocol: ${protocolVersion}`);
if (!versionInfo) throw new Error(`unsupported/unknown protocol version: ${protocolVersion}, update minecraft-data`);
options.version = minecraftVersion; options.version = minecraftVersion;
options.protocolVersion = protocolVersion; options.protocolVersion = protocolVersion;