Modul:Protocol version/Versions

Innen: Minecraft Wiki
[create | laptörténet | purge]Dokumentáció
Ez a(z) modul nem rendelkezik dokumentációval. Ha ismered ezen modul használatát, akkor kérlek, hozd létre!
local all = {} -- Table with version name as key and version info as value
-- These are ordered
local java = {}
local java_old = {}
local java_af = {}
local pocket = {}

-- References to those ordered lists
local groups = {
    {
        ['name'] = 'Java Edition',
        ['link'] = 'Java Edition',
        ['values'] = java,
        ['has_data_versions'] = true
    },
    {
        ['name'] = 'Java Edition (pre-netty rewrite)',
        ['link'] = 'Java Edition',
        ['desc'] = 'Protocol version numbers after the 13w41a reset due to Netty rewrite',
        ['values'] = java_old,
        ['has_data_versions'] = false
    },
    {
        ['name'] = 'April Fools versions',
        ['link'] = ':Category:April Fools\'',
        ['desc'] = 'Changes from April Fools\' versions were not kept in later versions.',
        ['values'] = java_af,
        ['has_data_versions'] = true
    },
    {
        ['name'] = 'Pocket Edition',
        ['link'] = 'Bedrock Edition version history',
        ['values'] = pocket,
        ['has_data_versions'] = false
    }
}

-- Intended for translators
unknown = 'Unknown'
none = 'N/A'

-- Define info for a single version, adding it into the appropriate lists
-- extra is used for additional, rarer options so that they can be explicitly specified
function ver(group, name, protocol, data, extra)
    if all[name] ~= nil
        then error("Attempted to add version " .. name .. " but it already exists")
    end

    local info = { }
    info.name = name
    info.protocol = protocol
    info.data = data

    if extra then
        -- Forces a separation even if the protocol/data versions match
        info.force_split = extra.force_split
    end

    all[name] = info
    table.insert(group, info)
end

-- Separate major versions (e.g. 1.12 & 1.13) with an extra line.
-- Minor versions, like 1.12, 1.12.1, and 1.12.2 don't need to be separated.
-- April Fools' versions must be put under their own section at the bottom of the page

-- Source: http://wiki.vg/Protocol_version_numbers (licensed under CC-BY-SA 3.0)

-- VANILLA
-- 1.13
ver(java, '1.13.1', '401', 1628)
ver(java, '1.13.1-pre2', '400', 1627)
ver(java, '1.13.1-pre1', '399', 1626)
ver(java, '18w33a', '398', 1625)
ver(java, '18w32a', '397', 1623)
ver(java, '18w31a', '396', 1622)
ver(java, '18w30b', '395', 1621)
ver(java, '18w30a', '394', 1620)
ver(java, '1.13', '393', 1519)
ver(java, '1.13-pre10', '392', 1518)
ver(java, '1.13-pre9', '391', 1517)
ver(java, '1.13-pre8', '390', 1516)
ver(java, '1.13-pre7', '389', 1513)
ver(java, '1.13-pre6', '388', 1512)
ver(java, '1.13-pre5', '387', 1511)
ver(java, '1.13-pre4', '386', 1504)
ver(java, '1.13-pre3', '385', 1503)
ver(java, '1.13-pre2', '384', 1502)
ver(java, '1.13-pre1', '383', 1501)
ver(java, '18w22c', '382', 1499)
ver(java, '18w22b', '381', 1498)
ver(java, '18w22a', '380', 1497)
ver(java, '18w21b', '379', 1496)
ver(java, '18w21a', '378', 1495)
ver(java, '18w20c', '377', 1493)
ver(java, '18w20b', '376', 1491)
ver(java, '18w20a', '375', 1489)
ver(java, '18w19b', '374', 1485)
ver(java, '18w19a', '373', 1484)
ver(java, '18w16a', '372', 1483)
ver(java, '18w15a', '371', 1482)
ver(java, '18w14b', '370', 1481)
ver(java, '18w14a', '369', 1479)
ver(java, '18w11a', '368', 1478)
ver(java, '18w10d', '367', 1477)
ver(java, '18w10c', '366', 1476)
ver(java, '18w10b', '365', 1474)
ver(java, '18w10a', '364', 1473)
ver(java, '18w09a', '363', 1472)
ver(java, '18w08b', '362', 1471)
ver(java, '18w08a', '361', 1470)
ver(java, '18w07c', '360', 1469)
ver(java, '18w07b', '359', 1468)
ver(java, '18w07a', '358', 1467)
ver(java, '18w06a', '357', 1466)
ver(java, '18w05a', '356', 1464)
ver(java, '18w03b', '355', 1463)
ver(java, '18w03a', '354', 1462)
ver(java, '18w02a', '353', 1461)
ver(java, '18w01a', '352', 1459)
ver(java, '17w50a', '351', 1457)
ver(java, '17w49b', '350', 1455)
ver(java, '17w49a', '349', 1454)
ver(java, '17w48a', '348', 1453)
ver(java, '17w47b', '347', 1452)
ver(java, '17w47a', '346', 1451)
ver(java, '17w46a', '345', 1449)
ver(java, '17w45b', '344', 1448)
ver(java, '17w45a', '343', 1447)
ver(java, '17w43b', '342', 1445)
ver(java, '17w43a', '341', 1444)

-- 1.12.2
ver(java, '1.12.2', '340', 1343)
ver(java, '1.12.2-pre2', '339', 1342)
ver(java, '1.12.2-pre1', '339', 1341)
-- 1.12.1
ver(java, '1.12.1', '338', 1241)
ver(java, '1.12.1-pre1', '337', 1240)
ver(java, '17w31a', '336', 1239)
-- 1.12
ver(java, '1.12', '335', 1139)
ver(java, '1.12-pre7', '334', 1138)
ver(java, '1.12-pre6', '333', 1137)
ver(java, '1.12-pre5', '332', 1136)
ver(java, '1.12-pre4', '331', 1135)
ver(java, '1.12-pre3', '330', 1134)
ver(java, '1.12-pre2', '329', 1133)
ver(java, '1.12-pre1', '328', 1132)
ver(java, '17w18b', '327', 1131)
ver(java, '17w18a', '326', 1130)
ver(java, '17w17b', '325', 1129)
ver(java, '17w17a', '324', 1128)
ver(java, '17w16b', '323', 1127)
ver(java, '17w16a', '322', 1126)
ver(java, '17w15a', '321', 1125)
ver(java, '17w14a', '320', 1124)
ver(java, '17w13b', '319', 1123)
ver(java, '17w13a', '318', 1122)
ver(java, '17w06a', '317', 1022)

-- 1.11.2
ver(java, '1.11.2', '316', 922)
-- 1.11.1
ver(java, '1.11.1', '316', 921)
ver(java, '16w50a', '316', 920)
-- 1.11
ver(java, '1.11', '315', 819)
ver(java, '1.11-pre1', '314', 818)
ver(java, '16w44a', '313', 817)
ver(java, '16w43a', '313', 816)
ver(java, '16w42a', '312', 815)
ver(java, '16w41a', '311', 814)
ver(java, '16w40a', '310', 813)
ver(java, '16w39c', '309', 812)
ver(java, '16w39b', '308', 811)
ver(java, '16w39a', '307', 809)
ver(java, '16w38a', '306', 807)
ver(java, '16w36a', '305', 805)
ver(java, '16w35a', '304', 803)
ver(java, '16w33a', '303', 802)
ver(java, '16w32b', '302', 801)
ver(java, '16w32a', '301', 800)

-- 1.10.2
ver(java, '1.10.2', '210', 512)
-- 1.10.1
ver(java, '1.10.1', '210', 511)
-- 1.10
ver(java, '1.10', '210', 510)
ver(java, '1.10-pre2', '205', 507)
ver(java, '1.10-pre1', '204', 506)
ver(java, '16w21b', '203', 504)
ver(java, '16w21a', '202', 503)
ver(java, '16w20a', '201', 501)

-- 1.9.4
ver(java, '1.9.4', '110', 184)
-- 1.9.3
ver(java, '1.9.3', '110', 183)
ver(java, '1.9.3-pre3', '110', 182)
ver(java, '1.9.3-pre2', '110', 181)
ver(java, '1.9.3-pre1', '109', 180)
ver(java, '16w15b', '109', 179)
ver(java, '16w15a', '109', 178)
ver(java, '16w14a', '109', 177)
-- 1.9.2
ver(java, '1.9.2', '109', 176)
-- 1.9.1
ver(java, '1.9.1', '108', 175)
ver(java, '1.9.1-pre3', '108', 172)
ver(java, '1.9.1-pre2', '108', 171)
ver(java, '1.9.1-pre1', '107', 170)
-- 1.9
ver(java, '1.9', '107', 169)
ver(java, '1.9-pre4', '106', 168)
ver(java, '1.9-pre3', '105', 167)
ver(java, '1.9-pre2', '104', 165)
ver(java, '1.9-pre1', '103', 164)
ver(java, '16w07b', '102', 163)
ver(java, '16w07a', '101', 162)
ver(java, '16w06a', '100', 161)
ver(java, '16w05b', '99', 160)
ver(java, '16w05a', '98', 159)
ver(java, '16w04a', '97', 158)
ver(java, '16w03a', '96', 157)
ver(java, '16w02a', '95', 156)
ver(java, '15w51b', '94', 155)
ver(java, '15w51a', '93', 154)
ver(java, '15w50a', '92', 153)
ver(java, '15w49b', '91', 152)
ver(java, '15w49a', '90', 151)
ver(java, '15w47c', '89', 150)
ver(java, '15w47b', '88', 149)
ver(java, '15w47a', '87', 148)
ver(java, '15w46a', '86', 146)
ver(java, '15w45a', '85', 145)
ver(java, '15w44b', '84', 143)
ver(java, '15w44a', '83', 142)
ver(java, '15w43c', '82', 141)
ver(java, '15w43b', '81', 140)
ver(java, '15w43a', '80', 139)
ver(java, '15w42a', '79', 138)
ver(java, '15w41b', '78', 137)
ver(java, '15w41a', '77', 136)
ver(java, '15w40b', '76', 134)
ver(java, '15w40a', '75', 133)
ver(java, '15w39c', '74', 132)
ver(java, '15w39b', '74', 131)
ver(java, '15w39a', '74', 130)
ver(java, '15w38b', '73', 129)
ver(java, '15w38a', '72', 128)
ver(java, '15w37a', '71', 127)
ver(java, '15w36d', '70', 126)
ver(java, '15w36c', '69', 125)
ver(java, '15w36b', '68', 124)
ver(java, '15w36a', '67', 123)
ver(java, '15w35e', '66', 122)
ver(java, '15w35d', '65', 121)
ver(java, '15w35c', '64', 120)
ver(java, '15w35b', '63', 119)
ver(java, '15w35a', '62', 118)
ver(java, '15w34d', '61', 117)
ver(java, '15w34c', '60', 116)
ver(java, '15w34b', '59', 115)
ver(java, '15w34a', '58', 114)
ver(java, '15w33c', '57', 112)
ver(java, '15w33b', '56', 111)
ver(java, '15w33a', '55', 111)
ver(java, '15w32c', '54', 104)
ver(java, '15w32b', '53', 103)
ver(java, '15w32a', '52', 100)
ver(java, '15w31c', '51')
ver(java, '15w31b', '50')
ver(java, '15w31a', '49')

-- 1.8.9
ver(java, '1.8.9', '47')
-- 1.8.8
ver(java, '1.8.8', '47')
-- 1.8.7
ver(java, '1.8.7', '47')
-- 1.8.6
ver(java, '1.8.6', '47')
-- 1.8.5
ver(java, '1.8.5', '47')
-- 1.8.4
ver(java, '1.8.4', '47')
-- 1.8.3
ver(java, '1.8.3', '47')
-- 1.8.2
ver(java, '1.8.2', '47')
ver(java, '1.8.2-pre7', '47')
ver(java, '1.8.2-pre6', '47')
ver(java, '1.8.2-pre5', '47')
ver(java, '1.8.2-pre4', '47')
ver(java, '1.8.2-pre3', '47')
ver(java, '1.8.2-pre2', '47')
ver(java, '1.8.2-pre1', '47')
-- 1.8.1
ver(java, '1.8.1', '47')
ver(java, '1.8.1-pre5', '47')
ver(java, '1.8.1-pre4', '47')
ver(java, '1.8.1-pre3', '47')
ver(java, '1.8.1-pre2', '47')
ver(java, '1.8.1-pre1', '47')
-- 1.8
ver(java, '1.8', '47')
ver(java, '1.8-pre3', '46')
ver(java, '1.8-pre2', '45')
ver(java, '1.8-pre1', '44')
ver(java, '14w34d', '43')
ver(java, '14w34c', '42')
ver(java, '14w34b', '41')
ver(java, '14w34a', '40')
ver(java, '14w33c', '39')
ver(java, '14w33b', '38')
ver(java, '14w33a', '37')
ver(java, '14w32d', '36')
ver(java, '14w32c', '35')
ver(java, '14w32b', '34')
ver(java, '14w32a', '33')
ver(java, '14w31a', '32')
ver(java, '14w30c', '31')
ver(java, '14w30b', '30')
ver(java, '14w30a', '30')
ver(java, '14w29b', '29')
ver(java, '14w29a', '29')
ver(java, '14w28b', '28')
ver(java, '14w28a', '27')
ver(java, '14w27b', '26')
ver(java, '14w27a', '26')
ver(java, '14w26c', '25')
ver(java, '14w26b', '24')
ver(java, '14w26a', '23')
ver(java, '14w25b', '22')
ver(java, '14w25a', '21')
ver(java, '14w21b', '20')
ver(java, '14w21a', '19')
ver(java, '14w20b', '18')
ver(java, '14w20a', '18')
ver(java, '14w19a', '17')
ver(java, '14w18b', '16')
ver(java, '14w18a', '16')
ver(java, '14w17a', '15')
ver(java, '14w11b', '14')
ver(java, '14w11a', '14')
ver(java, '14w10c', '13')
ver(java, '14w10b', '13')
ver(java, '14w10a', '13')
ver(java, '14w08a', '12')
ver(java, '14w07a', '11')
ver(java, '14w06b', '10')
ver(java, '14w06a', '10')
ver(java, '14w05b', '9')
ver(java, '14w05a', '9')
ver(java, '14w04b', '8')
ver(java, '14w04a', '7')
ver(java, '14w03b', '6')
ver(java, '14w03a', '6')
ver(java, '14w02c', '5')
ver(java, '14w02b', '5')
ver(java, '14w02a', '5')

-- 1.7.10
ver(java, '1.7.10', '5')
ver(java, '1.7.10-pre4', '5')
ver(java, '1.7.10-pre3', '5')
ver(java, '1.7.10-pre2', '5')
ver(java, '1.7.10-pre1', '5')
-- 1.7.9
ver(java, '1.7.9', '5')
-- 1.7.8
ver(java, '1.7.8', '5')
-- 1.7.7
ver(java, '1.7.7', '5')
-- 1.7.6
ver(java, '1.7.6', '5')
ver(java, '1.7.6-pre2', '5')
ver(java, '1.7.6-pre1', '5')
-- 1.7.5
ver(java, '1.7.5', '4')
-- 1.7.4
ver(java, '1.7.4', '4')
ver(java, '1.7.3-pre', '4')
ver(java, '13w49a', '4')
ver(java, '13w48b', '4')
ver(java, '13w48a', '4')
ver(java, '13w47e', '4')
ver(java, '13w47d', '4')
ver(java, '13w47c', '4')
ver(java, '13w47b', '4')
ver(java, '13w47a', '4')
-- 1.7.2
ver(java, '1.7.2', '4')
ver(java, '1.7.1-pre', '3')
ver(java, '1.7-pre', '3')
ver(java, '13w43a', '2')
ver(java, '13w42b', '1')
ver(java, '13w42a', '1')
ver(java, '13w41b', '0')
ver(java, '13w41a', '0', nil, {force_split=true})

-- Protocol versions numbers BEFORE the 13w41a reset due to Netty rewrite
ver(java_old, '13w39b', '80')
ver(java_old, '13w39a', '80')
ver(java_old, '13w38c', '79')
ver(java_old, '13w38b', '79')
ver(java_old, '13w38a', '79')

-- 1.6.4
ver(java_old, '1.6.4', '78')
ver(java_old, '1.6.3-pre', '77')
ver(java_old, '13w37b', '76')
ver(java_old, '13w37a', '76')
ver(java_old, '13w36b', '75')
ver(java_old, '13w36a', '75')
-- 1.6.2
ver(java_old, '1.6.2', '74')
-- 1.6.1
ver(java_old, '1.6.1', '73')
ver(java_old, '1.6-pre', '72')
ver(java_old, '13w26a', '72')
ver(java_old, '13w25c', '71')
ver(java_old, '13w25b', '71')
ver(java_old, '13w25a', '71')
ver(java_old, '13w24b', '70')
ver(java_old, '13w24a', '69')
ver(java_old, '13w23b', '68')
ver(java_old, '13w23a', '67')
ver(java_old, '13w22a', '67')
ver(java_old, '13w21b', '67')
ver(java_old, '13w21a', '67')
ver(java_old, '13w19a', '66')
ver(java_old, '13w18c', '65')
ver(java_old, '13w18b', '65')
ver(java_old, '13w18a', '65')
ver(java_old, '13w17a', '64')
ver(java_old, '13w16b', '63')
ver(java_old, '13w16a', '62')

-- 1.5.2
ver(java_old, '1.5.2', '61')
-- 1.5.1
ver(java_old, '1.5.1', '60')
ver(java_old, '13w12~', '60')
ver(java_old, '13w11a', '60')
-- 1.5
ver(java_old, '1.5', '60')
ver(java_old, '13w10b', '60')
ver(java_old, '13w10a', '60')
ver(java_old, '13w09c', '60')
ver(java_old, '13w09b', '59')
ver(java_old, '13w09a', '59')
ver(java_old, '13w07a', '58')
ver(java_old, '13w06a', '58')
ver(java_old, '13w05b', '57')
ver(java_old, '13w05a', '56')
ver(java_old, '13w04a', '55')
ver(java_old, '13w03a', '54')
ver(java_old, '13w02b', '53')
ver(java_old, '13w02a', '53')
ver(java_old, '13w01b', '52')
ver(java_old, '13w01a', '52')

-- 1.4.7
ver(java_old, '1.4.7', '51')
-- 1.4.6
ver(java_old, '1.4.6', '51')
ver(java_old, '12w50b', '51')
ver(java_old, '12w50a', '51')
ver(java_old, '12w49a', '50')
-- 1.4.5
ver(java_old, '1.4.5', '49')
-- 1.4.4
ver(java_old, '1.4.4', '49')
ver(java_old, '1.4.3-pre', '48')
-- 1.4.2
ver(java_old, '1.4.2', '47')
ver(java_old, '12w42b', '46')
ver(java_old, '12w42a', '46')
ver(java_old, '12w41b', '46')
ver(java_old, '12w41a', '46')
ver(java_old, '12w40b', '45')
ver(java_old, '12w40a', '44')
ver(java_old, '12w39b', '43')
ver(java_old, '12w39a', '43')
ver(java_old, '12w38b', '43')
ver(java_old, '12w38a', '43')
ver(java_old, '12w37a', '42')
ver(java_old, '12w36a', '42')
ver(java_old, '12w34b', '42')
ver(java_old, '12w34a', '41')
ver(java_old, '12w32a', '40')

-- 1.3.2
ver(java_old, '1.3.2', '39')
-- 1.3.1
ver(java_old, '1.3.1', '39')
ver(java_old, '12w30e', '39')
ver(java_old, '12w30d', '39')
ver(java_old, '12w30c', '39')
ver(java_old, '12w30b', '38')
ver(java_old, '12w30a', '38')
ver(java_old, '12w27a', '38')
ver(java_old, '12w26a', '37')
ver(java_old, '12w25a', '37')
ver(java_old, '12w24a', '36')
ver(java_old, '12w23b', '35')
ver(java_old, '12w23a', '35')
ver(java_old, '12w22a', '34')
ver(java_old, '12w21b', '33')
ver(java_old, '12w21a', '33')
ver(java_old, '12w19a', '32')
ver(java_old, '12w18a', '32')
ver(java_old, '12w17a', '31')
ver(java_old, '12w16a', '30')
ver(java_old, '12w15a', '29')

-- 1.2.5
ver(java_old, '1.2.5', '29')
-- 1.2.4
ver(java_old, '1.2.4', '29')
-- 1.2.3
ver(java_old, '1.2.3', '28')
-- 1.2.2
ver(java_old, '1.2.2', '28')
-- 1.2.1
ver(java_old, '1.2.1', '28')
ver(java_old, '12w08a', '28')
ver(java_old, '12w07b', '27')
ver(java_old, '12w07a', '27')
ver(java_old, '12w06a', '25')
ver(java_old, '12w05b', '24')
ver(java_old, '12w05a', '24')
ver(java_old, '12w04a', '24')
ver(java_old, '12w03a', '24')

-- 1.1
ver(java_old, '1.1', '23')
ver(java_old, '12w01a', '23')
ver(java_old, '11w50a', '22')
ver(java_old, '11w49a', '22')
ver(java_old, '11w48a', '22')
ver(java_old, '11w47a', '22')

-- 1.0.1
ver(java_old, '1.0.1', '22')
-- 1.0.0
ver(java_old, '1.0.0', '22')
ver(java_old, 'RC2', '22')
ver(java_old, 'RC1', '22')
ver(java_old, 'Beta 1.9 Prerelease 6', '22')
ver(java_old, 'Beta 1.9 Prerelease 5', '21')
ver(java_old, 'Beta 1.9 Prerelease 4', '20')
ver(java_old, 'Beta 1.9 Prerelease 3', '19')
ver(java_old, 'Beta 1.9 Prerelease 2', '19')
ver(java_old, 'Beta 1.9 Prerelease', '18')

-- BETA
-- 1.8
ver(java_old, 'Beta 1.8.1', '17')
ver(java_old, 'Beta 1.8', '17')
ver(java_old, 'Beta 1.8 Pre-release 2 ;)', '16')
ver(java_old, 'Beta 1.8 Pre-release', '15')

-- 1.7
ver(java_old, 'Beta 1.7.3', '14')
ver(java_old, 'Beta 1.7.2', '14')
ver(java_old, 'Beta 1.7_01', '14')
ver(java_old, 'Beta 1.7', '14')

-- 1.6
ver(java_old, 'Beta 1.6.6', '13')
ver(java_old, 'Beta 1.6.5', '13')
ver(java_old, 'Beta 1.6.4', '13')
ver(java_old, 'Beta 1.6.3', '13')
ver(java_old, 'Beta 1.6.2', '13')
ver(java_old, 'Beta 1.6.1', '13')
ver(java_old, 'Beta 1.6', '13')
ver(java_old, 'Beta 1.6 Test Build 3', '12')

-- 1.5
ver(java_old, 'Beta 1.5_02', '11') -- server-only
ver(java_old, 'Beta 1.5_01', '11')
ver(java_old, 'Beta 1.5', '11')

-- 1.4
ver(java_old, 'Beta 1.4_01', '10')
ver(java_old, 'Beta 1.4', '10')

-- 1.3
ver(java_old, 'Beta 1.3_01', '9')
ver(java_old, 'Beta 1.3', '9')

-- 1.2
ver(java_old, 'Beta 1.2_02', '8')
ver(java_old, 'Beta 1.2_01', '8')
ver(java_old, 'Beta 1.2', '8')

-- 1.1
ver(java_old, 'Beta 1.1_02', '8')
ver(java_old, 'Beta 1.1_01', '7')
ver(java_old, 'Beta 1.1', '7')

-- 1.0
ver(java_old, 'Beta 1.0.2', '7')
ver(java_old, 'Beta 1.0_01', '7')
ver(java_old, 'Beta 1.0', '7')

-- ALPHA
-- 1.2
ver(java_old, 'Alpha v1.2.6', '6')
ver(java_old, 'Alpha v1.2.5', '6')
ver(java_old, 'Alpha v1.2.4_01', '6')
ver(java_old, 'Alpha v1.2.4', unknown)
ver(java_old, 'Alpha v1.2.3_04', '5')
ver(java_old, 'Alpha v1.2.3_02', '5')
ver(java_old, 'Alpha v1.2.3_01', '5')
ver(java_old, 'Alpha v1.2.3', '5')
ver(java_old, 'Alpha v1.2.2', '4')
ver(java_old, 'Alpha v1.2.1_01', '3')
ver(java_old, 'Alpha v1.2.1', '3')
ver(java_old, 'Alpha v1.2.0_02', '3')
ver(java_old, 'Alpha v1.2.0_01', '3')
ver(java_old, 'Alpha v1.2.0', '3')

-- 1.1
ver(java_old, 'Alpha v1.1.2_01', '2')
ver(java_old, 'Alpha v1.1.2', '2')
ver(java_old, 'Alpha v1.1.1', unknown)
ver(java_old, 'Alpha v1.1.0', '2')

-- 1.0
ver(java_old, 'Alpha v1.0.17_04', '1')
ver(java_old, 'Alpha v1.0.17_03', '1')
ver(java_old, 'Alpha v1.0.17_02', '1')
ver(java_old, 'Alpha v1.0.17_01', unknown)
ver(java_old, 'Alpha v1.0.17', unknown)
ver(java_old, 'Alpha v1.0.16_02', '14')
ver(java_old, 'Alpha v1.0.16_01', '14')
ver(java_old, 'Alpha v1.0.16', '14')
ver(java_old, 'Alpha v1.0.15', '13')
-- These versions have a multiplayer button, but a specific server is hardcoded.
ver(java_old, 'Alpha v1.0.14', '12')
ver(java_old, 'Alpha v1.0.13_01', '12')
ver(java_old, 'Alpha v1.0.13', '12')
ver(java_old, 'Alpha v1.0.12', '11')
ver(java_old, 'Alpha v1.0.11', '10')
ver(java_old, 'Alpha v1.0.10', '10')
-- These versions have multiplayer code, but no multiplayer interface. 
ver(java_old, 'Alpha v1.0.9', '10')
ver(java_old, 'Alpha v1.0.8_01', '10')
ver(java_old, 'Alpha v1.0.8', unknown)
ver(java_old, 'Alpha v1.0.7', '10')
ver(java_old, 'Alpha v1.0.6_03', '10')
ver(java_old, 'Alpha v1.0.6_02', '10')
ver(java_old, 'Alpha v1.0.6_01', unknown)
ver(java_old, 'Alpha v1.0.6', '10')
ver(java_old, 'Alpha v1.0.5_01', '10')
ver(java_old, 'Alpha v1.0.5', '10')
-- Multiplayer did not exist
ver(java_old, 'Alpha v1.0.4', none)
ver(java_old, 'Alpha v1.0.3', none)
ver(java_old, 'Alpha v1.0.2_02', none)
ver(java_old, 'Alpha v1.0.2_01', none)
ver(java_old, 'Alpha v1.0.2', none)
ver(java_old, 'Alpha v1.0.1_01', none)
ver(java_old, 'Alpha v1.0.1', none)
ver(java_old, 'Alpha v1.0.0', none)

-- Indef and Infdev - no multiplayer; all versions use the same title
ver(java_old, 'Infdev', none)
ver(java_old, 'Indev', none)
ver(java_old, '0.31', none) -- also Indev

-- CLASSIC
ver(java_old, '0.30', '7')
ver(java_old, '0.28_01', '7')
-- no idea what the article names for these are
-- ver(java_old, 'c0.27_st_a', '6')
-- ver(java_old, 'c0.25_05_st', '6')
-- ver(java_old, 'c0.24_st_c', '6')
ver(java_old, '0.0.23a_01', '6')
ver(java_old, '0.0.22a_05', '6')
ver(java_old, '0.0.21a', '6')

-- April Fools'
ver(java_af, '1.RV-Pre1', '108', 173)
ver(java_af, '15w14a', '48')
ver(java_af, '2.0', '90, 91, 92')

-- POCKET EDITION
-- Source: http://pmmp.readthedocs.io/en/rtfd/supportedMCPEversions.html
-- (Licensed under LGPL3, used with permission from author)

-- 1.2
ver(pocket, 'Bedrock Edition 1.2.10 build 1', unknown)
ver(pocket, 'Bedrock Edition 1.2.9', unknown)
ver(pocket, 'Bedrock Edition 1.2.8', unknown)
ver(pocket, 'Bedrock Edition 1.2.7', unknown)
ver(pocket, 'Bedrock Edition 1.2.6.1', unknown)
ver(pocket, 'Bedrock Edition 1.2.6', unknown)
ver(pocket, 'Bedrock Edition 1.2.6 build 1', unknown)
ver(pocket, 'Bedrock Edition 1.2.5', unknown)
ver(pocket, 'Bedrock Edition 1.2.5 build 3', unknown)
ver(pocket, 'Bedrock Edition 1.2.5 build 2', unknown)
ver(pocket, 'Bedrock Edition 1.2.5 build 1', unknown)
ver(pocket, 'Bedrock Edition 1.2.3', unknown)
ver(pocket, 'Bedrock Edition 1.2.3 build 1', unknown)
ver(pocket, 'Bedrock Edition 1.2.2', unknown)
ver(pocket, 'Bedrock Edition 1.2.1', unknown)
ver(pocket, 'Bedrock Edition 1.2', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 9', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 8', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 7', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 6', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 5', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 4', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 3', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 2', unknown)
ver(pocket, 'Bedrock Edition 1.2 build 1', unknown)

-- 1.1
ver(pocket, 'Pocket Edition 1.1.7', unknown)
ver(pocket, 'Pocket Edition 1.1.5', unknown)
ver(pocket, 'Pocket Edition 1.1.4', unknown)
ver(pocket, 'Pocket Edition 1.1.3', unknown)
ver(pocket, 'Pocket Edition 1.1.3 build 2', unknown)
ver(pocket, 'Pocket Edition 1.1.3 build 1', unknown)
ver(pocket, 'Pocket Edition 1.1.2', unknown)
ver(pocket, 'Pocket Edition 1.1.1', unknown)
ver(pocket, 'Pocket Edition 1.1.1 build 2', unknown)
ver(pocket, 'Pocket Edition 1.1.1 build 1', unknown)
ver(pocket, 'Pocket Edition 1.1', unknown)
ver(pocket, 'Pocket Edition 1.1 build 7', unknown)
ver(pocket, 'Pocket Edition 1.1 build 6', unknown)
ver(pocket, 'Pocket Edition 1.1 build 5', unknown)
ver(pocket, 'Pocket Edition 1.1 build 4', unknown)
ver(pocket, 'Pocket Edition 1.1 build 3', unknown)
ver(pocket, 'Pocket Edition 1.1 build 2', unknown)
ver(pocket, 'Pocket Edition 1.1 build 1', unknown)

-- 1.0
ver(pocket, 'Pocket Edition 1.0.9', unknown)
ver(pocket, 'Pocket Edition 1.0.8', unknown)
ver(pocket, 'Pocket Edition 1.0.7', '107')
ver(pocket, 'Pocket Edition 1.0.6', '106')
ver(pocket, 'Pocket Edition 1.0.6 build 1', unknown)
ver(pocket, 'Pocket Edition 1.0.5', '105')
ver(pocket, 'Pocket Edition 1.0.5 build 3', unknown)
ver(pocket, 'Pocket Edition 1.0.5 build 2', unknown)
ver(pocket, 'Pocket Edition 1.0.5 build 1', unknown)
ver(pocket, 'Pocket Edition 1.0.4', unknown)
ver(pocket, 'Pocket Edition 1.0.4 build 2', unknown)
ver(pocket, 'Pocket Edition 1.0.4 build 1', '102')
ver(pocket, 'Pocket Edition 1.0.3', '101')
ver(pocket, 'Pocket Edition 1.0.3 build 1', unknown)
ver(pocket, 'Pocket Edition 1.0.2', unknown)
ver(pocket, 'Pocket Edition 1.0.1', unknown)
ver(pocket, 'Pocket Edition 1.0', '100')
ver(pocket, 'Pocket Edition 1.0 build 6', unknown)
ver(pocket, 'Pocket Edition 1.0 build 5', unknown)
ver(pocket, 'Pocket Edition 1.0 build 4', unknown)
ver(pocket, 'Pocket Edition 1.0 build 3', unknown)
ver(pocket, 'Pocket Edition 1.0 build 2', unknown)
ver(pocket, 'Pocket Edition 1.0 build 1', '92') -- aka Alpha 0.17.0.1

-- PE ALPHA

-- 0.16
ver(pocket, 'Pocket Edition Alpha 0.16.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.16.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.16.0', unknown)
ver(pocket, 'Pocket Edition Alpha 0.16.0 build 5', '91')
ver(pocket, 'Pocket Edition Alpha 0.16.0 build 4', unknown)
ver(pocket, 'Pocket Edition Alpha 0.16.0 build 3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.16.0 build 2', '90') -- aka Alpha 0.15.90.1
ver(pocket, 'Pocket Edition Alpha 0.16.0 build 1', unknown)

-- 0.15
ver(pocket, 'Pocket Edition Alpha 0.15.10', '84')
ver(pocket, 'Pocket Edition Alpha 0.15.9', '83')
ver(pocket, 'Pocket Edition Alpha 0.15.8', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.7', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.6', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.4', '82')
ver(pocket, 'Pocket Edition Alpha 0.15.3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.1 build 1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.0', '81')
ver(pocket, 'Pocket Edition Alpha 0.15.0 build 3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.0 build 2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.15.0 build 1', unknown)
ver(pocket, 'Pocket Edition Alpha Realms build 4', unknown)
ver(pocket, 'Pocket Edition Alpha Realms build 2', unknown)
ver(pocket, 'Pocket Edition Alpha Realms build 1', unknown)

-- 0.14
ver(pocket, 'Pocket Edition Alpha 0.14.3', '70')
ver(pocket, 'Pocket Edition Alpha 0.14.2', '60')
ver(pocket, 'Pocket Edition Alpha 0.14.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.14.0', unknown)
ver(pocket, 'Pocket Edition Alpha 0.14.0 build 7', '45')
ver(pocket, 'Pocket Edition Alpha 0.14.0 build 6', '44')
ver(pocket, 'Pocket Edition Alpha 0.14.0 build 5', '43')
ver(pocket, 'Pocket Edition Alpha 0.14.0 build 4', '43')
ver(pocket, 'Pocket Edition Alpha 0.14.0 build 3', '42')
ver(pocket, 'Pocket Edition Alpha 0.14.0 build 2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.14.0 build 1', '41')

-- 0.13
ver(pocket, 'Pocket Edition Alpha 0.13.2', '39')
ver(pocket, 'Pocket Edition Alpha 0.13.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.13.0', unknown)
ver(pocket, 'Pocket Edition Alpha 0.13.0 build 5', unknown)
ver(pocket, 'Pocket Edition Alpha 0.13.0 build 4', '38')
ver(pocket, 'Pocket Edition Alpha 0.13.0 build 3', '38')
ver(pocket, 'Pocket Edition Alpha 0.13.0 build 2', '37')
ver(pocket, 'Pocket Edition Alpha 0.13.0 build 1', '37')

-- 0.12
ver(pocket, 'Pocket Edition Alpha 0.12.3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 13', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 12', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 11', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 10', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 9', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 8', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 7', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 6', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 5', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 4', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.1 build 1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.0.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.12.0', unknown)

-- 0.11
ver(pocket, 'Pocket Edition Alpha 0.11.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 14', '27')
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 13', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 12', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 11', '26')
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 10', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 9', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 8', '25')
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 7', '24')
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 6', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 5', '23')
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 4', '22')
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.11.0 build 1', '21')

-- 0.10
ver(pocket, 'Pocket Edition Alpha 0.10.5', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.4', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 9', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 8', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 7', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 6', '20')
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 5', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 4', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.10.0 build 1', '19')

-- 0.9
ver(pocket, 'Pocket Edition Alpha 0.9.5', '18')
ver(pocket, 'Pocket Edition Alpha 0.9.4', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 12', '17')
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 11', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 10', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 9', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 8', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 7', '16')
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 6', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 5', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 4', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 2', '15')
ver(pocket, 'Pocket Edition Alpha 0.9.0 build 1', unknown)

-- 0.8
ver(pocket, 'Pocket Edition Alpha 0.8.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.8.1', '14')
ver(pocket, 'Pocket Edition Alpha 0.8.0', unknown)
ver(pocket, 'Pocket Edition Alpha 0.8.0 build 8', unknown)
ver(pocket, 'Pocket Edition Alpha 0.8.0 build 7', unknown)
ver(pocket, 'Pocket Edition Alpha 0.8.0 build 6', unknown)
ver(pocket, 'Pocket Edition Alpha 0.8.0 build 5', unknown)
ver(pocket, 'Pocket Edition Alpha 0.8.0 build 4', unknown)
ver(pocket, 'Pocket Edition Alpha 0.8.0 build 3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.8.0 build 2', unknown)

-- 0.7
ver(pocket, 'Pocket Edition Alpha 0.7.6', unknown)
ver(pocket, 'Pocket Edition Alpha 0.7.5', unknown)
ver(pocket, 'Pocket Edition Alpha 0.7.4', '12')
ver(pocket, 'Pocket Edition Alpha 0.7.3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.7.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.7.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.7.0', '11')

-- 0.6
ver(pocket, 'Pocket Edition Alpha 0.6.1', '9')
ver(pocket, 'Pocket Edition Alpha 0.6.0', '9')

-- 0.5
ver(pocket, 'Pocket Edition Alpha 0.5.0', '8')

-- 0.4
ver(pocket, 'Pocket Edition Alpha 0.4.0 rev 2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.4.0', '7')

-- 0.3
ver(pocket, 'Pocket Edition Alpha 0.3.3', '6')
ver(pocket, 'Pocket Edition Alpha 0.3.2', '5')
ver(pocket, 'Pocket Edition Alpha 0.3.0', '4')

-- 0.2
ver(pocket, 'Pocket Edition Alpha 0.2.1 alpha 2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.2.1', '3')
ver(pocket, 'Pocket Edition Alpha 0.2.0', '2')

-- 0.1
ver(pocket, 'Pocket Edition Alpha 0.1.3', unknown)
ver(pocket, 'Pocket Edition Alpha 0.1.2', unknown)
ver(pocket, 'Pocket Edition Alpha 0.1.1', unknown)
ver(pocket, 'Pocket Edition Alpha 0.1.0', unknown)

return { ['versions'] = all, ['groups'] = groups }