Module:Protocol version/Versions

From Minecraft Wiki
Jump to: navigation, search

该模块为模块:Protocol version提供数据。

数据来源:

  • http://wiki.vg/Protocol_version_numbers (授权协议CC-BY-SA 3.0)
  • Java版:18w47b起,.jar文件中“version.json”中的“protocol_version”。
  • 基岩版:1.2.0 beta起,游戏内“档案设置”中的“协议版本”。

另见[edit source]

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 = {}
local education = {}

-- References to those ordered lists
local groups = {
    {
        ['name'] = 'Java版',
        ['link'] = 'Java版',
        ['values'] = java,
        ['has_data_versions'] = true
    },
    {
        ['name'] = 'Java版(Netty改写前)',
        ['link'] = 'Java版',
        ['desc'] = '自13w41a的Netty改写开始,协议版本重置。',
        ['values'] = java_old,
        ['has_data_versions'] = false
    },
    {
        ['name'] = '愚人节版本',
        ['link'] = ':Category:愚人节玩笑',
        ['desc'] = '愚人节版本中的更改对后来的版本无影响。',
        ['values'] = java_af,
        ['has_data_versions'] = true
    },
    {
        ['name'] = '基岩版',
        ['link'] = '基岩版版本记录',
        ['values'] = pocket,
        ['has_data_versions'] = false
    },
    {
        ['name'] = '教育版',
        ['link'] = '教育版版本记录',
        ['values'] = education,
        ['has_data_versions'] = false
    }
}

-- Intended for translators
unknown = '未知'
none = 'N/A'
pending = '—'

-- 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("试图加入版本" .. name .. ",但其已经存在")
    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)

-- JAVA EDITION
-- FULL RELEASE

-- 1.17
ver(java, '21w15a', '0x40000016', 2709)
ver(java, '21w14a', '0x40000015', 2706)
ver(java, '21w13a', '0x40000014', 2705)
ver(java, '21w11a', '0x40000013', 2703)
ver(java, '21w10a', '0x40000012', 2699)
ver(java, '21w08b', '0x40000011', 2698)
ver(java, '21w08a', '0x40000010', 2697)
ver(java, '21w07a', '0x4000000F', 2695)
ver(java, '21w06a', '0x4000000E', 2694)
ver(java, '21w05b', '0x4000000D', 2692)
ver(java, '21w05a', '0x4000000C', 2690)
ver(java, '21w03a', '0x4000000B', 2689)
ver(java, '20w51a', '0x40000009', 2687)
ver(java, '20w49a', '0x40000008', 2685)
ver(java, '20w48a', '0x40000007', 2683)
ver(java, '20w46a', '0x40000006', 2682)
ver(java, '20w45a', '0x40000005', 2681)

-- 1.16 Combat Tests
ver(java, 'Combat Test 8c', 803, 2707)
ver(java, 'Combat Test 8b', 803, 2706)
ver(java, 'Combat Test 7c', 802, 2704)
ver(java, 'Combat Test 6', 801, 2701)

-- 1.16
ver(java, 'Java版1.16.5', 754, 2586)
ver(java, 'Java版1.16.5-rc1', '0x4000000A', 2585)
ver(java, 'Java版1.16.4', 754, 2584)
ver(java, 'Java版1.16.4-rc1', '0x40000003', 2583)
ver(java, 'Java版1.16.4-pre2', '0x40000002', 2582)
ver(java, 'Java版1.16.4-pre1', '0x40000001', 2581)
ver(java, 'Java版1.16.3', 753, 2580)
ver(java, 'Java版1.16.3-rc1', 752, 2579)
ver(java, 'Java版1.16.2', 751, 2578)
ver(java, 'Java版1.16.2-rc2', 750, 2577)
ver(java, 'Java版1.16.2-rc1', 749, 2576)
ver(java, 'Java版1.16.2-pre3', 748, 2575)
ver(java, 'Java版1.16.2-pre2', 746, 2574)
ver(java, 'Java版1.16.2-pre1', 744, 2573)
ver(java, '20w30a', 742, 2572)
ver(java, '20w29a', 741, 2571)
ver(java, '20w28a', 740, 2570)
ver(java, '20w27a', 738, 2569)
ver(java, 'Java版1.16.1', 736, 2567)
ver(java, 'Java版1.16', 735, 2566)
ver(java, 'Java版1.16-rc1', 734, 2565)
ver(java, 'Java版1.16-pre8', 733, 2564)
ver(java, 'Java版1.16-pre7', 732, 2563)
ver(java, 'Java版1.16-pre6', 730, 2562)
ver(java, 'Java版1.16-pre5', 729, 2561)
ver(java, 'Java版1.16-pre4', 727, 2560)
ver(java, 'Java版1.16-pre3', 725, 2559)
ver(java, 'Java版1.16-pre2', 722, 2557)
ver(java, 'Java版1.16-pre1', 721, 2556)
ver(java, '20w22a', 719, 2555)
ver(java, '20w21a', 718, 2554)
ver(java, '20w20b', 717, 2537)
ver(java, '20w20a', 716, 2536)
ver(java, '20w19a', 715, 2534)
ver(java, '20w18a', 714, 2532)
ver(java, '20w17a', 713, 2529)
ver(java, '20w16a', 712, 2526)
ver(java, '20w15a', 711, 2525)
ver(java, '20w14a', 710, 2524)
ver(java, '20w13b', 709, 2521)
ver(java, '20w13a', 708, 2520)
ver(java, '20w12a', 707, 2515)
ver(java, '20w11a', 706, 2513)
ver(java, '20w10a', 705, 2512)
ver(java, '20w09a', 704, 2510)
ver(java, '20w08a', 703, 2507)
ver(java, '20w07a', 702, 2506)
ver(java, '20w06a', 701, 2504)

-- 1.15 Combat Tests
ver(java, 'Combat Test 5', 601, 2321)
ver(java, 'Combat Test 4', 600, 2320)
-- 1.15.2
ver(java, 'Java版1.15.2', 578, 2230)
ver(java, 'Java版1.15.2-pre2', 577, 2229)
ver(java, 'Java版1.15.2-pre1', 576, 2228)
-- 1.15.1
ver(java, 'Java版1.15.1', 575, 2227)
ver(java, 'Java版1.15.1-pre1', 574, 2226)
-- 1.15
ver(java, 'Java版1.15', 573, 2225)
ver(java, 'Java版1.15-pre7', 572, 2224)
ver(java, 'Java版1.15-pre6', 571, 2223)
ver(java, 'Java版1.15-pre5', 570, 2222)
ver(java, 'Java版1.15-pre4', 569, 2221)
ver(java, 'Java版1.15-pre3', 567, 2220)
ver(java, 'Java版1.15-pre2', 566, 2219)
ver(java, 'Java版1.15-pre1', 565, 2218)
ver(java, '19w46b', 564, 2217)
ver(java, '19w46a', 563, 2216)
ver(java, '19w45b', 562, 2215)
ver(java, '19w45a', 561, 2214)
ver(java, '19w44a', 560, 2213)
ver(java, '19w42a', 559, 2212)
ver(java, '19w41a', 558, 2210)
ver(java, '19w40a', 557, 2208)
ver(java, '19w39a', 556, 2207)
ver(java, '19w38b', 555, 2206)
ver(java, '19w38a', 554, 2205)
ver(java, '19w37a', 553, 2204)
ver(java, '19w36a', 552, 2203)
ver(java, '19w35a', 551, 2201)
ver(java, '19w34a', 550, 2200)

-- 1.14 Combat Tests
ver(java, 'Combat Test 3', 502, 2069)
ver(java, 'Combat Test 2', 501, 2068)
ver(java, '1.14.3 - Combat Test', 500, 2067)
-- 1.14.4
ver(java, 'Java版1.14.4', 498, 1976)
ver(java, 'Java版1.14.4-pre7', 497, 1975)
ver(java, 'Java版1.14.4-pre6', 496, 1974)
ver(java, 'Java版1.14.4-pre5', 495, 1973)
ver(java, 'Java版1.14.4-pre4', 494, 1972)
ver(java, 'Java版1.14.4-pre3', 493, 1971)
ver(java, 'Java版1.14.4-pre2', 492, 1970)
ver(java, 'Java版1.14.4-pre1', 491, 1969)
-- 1.14.3
ver(java, 'Java版1.14.3', 490, 1968)
ver(java, 'Java版1.14.3-pre4', 489, 1967)
ver(java, 'Java版1.14.3-pre3', 488, 1966)
ver(java, 'Java版1.14.3-pre2', 487, 1965)
ver(java, 'Java版1.14.3-pre1', 486, 1964)
-- 1.14.2
ver(java, 'Java版1.14.2', 485, 1963)
ver(java, 'Java版1.14.2-pre4', 484, 1962)
ver(java, 'Java版1.14.2-pre3', 483, 1960)
ver(java, 'Java版1.14.2-pre2', 482, 1959)
ver(java, 'Java版1.14.2-pre1', 481, 1958)
--1.14.1
ver(java, 'Java版1.14.1', 480, 1957)
ver(java, 'Java版1.14.1-pre2', 479, 1956)
ver(java, 'Java版1.14.1-pre1', 478, 1955)
--1.14
ver(java, 'Java版1.14', 477, 1952)
ver(java, 'Java版1.14-pre5', 476, 1951)
ver(java, 'Java版1.14-pre4', 475, 1950)
ver(java, 'Java版1.14-pre3', 474, 1949)
ver(java, 'Java版1.14-pre2', 473, 1948)
ver(java, 'Java版1.14-pre1', 472, 1947)
ver(java, '19w14b', 471, 1945)
ver(java, '19w14a', 470, 1944)
ver(java, '19w13b', 469, 1943)
ver(java, '19w13a', 468, 1942)
ver(java, '19w12b', 467, 1941)
ver(java, '19w12a', 466, 1940)
ver(java, '19w11b', 465, 1938)
ver(java, '19w11a', 464, 1937)
ver(java, '19w09a', 463, 1935)
ver(java, '19w08b', 462, 1934)
ver(java, '19w08a', 461, 1933)
ver(java, '19w07a', 460, 1932)
ver(java, '19w06a', 459, 1931)
ver(java, '19w05a', 458, 1930)
ver(java, '19w04b', 457, 1927)
ver(java, '19w04a', 456, 1926)
ver(java, '19w03c', 455, 1924)
ver(java, '19w03b', 454, 1923)
ver(java, '19w03a', 453, 1922)
ver(java, '19w02a', 452, 1921)
ver(java, '18w50a', 451, 1919)
ver(java, '18w49a', 450, 1916)
ver(java, '18w48b', 449, 1915)
ver(java, '18w48a', 448, 1914)
ver(java, '18w47b', 447, 1913)
ver(java, '18w47a', 446, 1912)
ver(java, '18w46a', 445, 1910)
ver(java, '18w45a', 444, 1908)
ver(java, '18w44a', 443, 1907)
ver(java, '18w43c', 442, 1903)
ver(java, '18w43b', 441, 1902)
ver(java, '18w43a', 440, 1901)

-- 1.13
ver(java, 'Java版1.13.2', 404, 1631)
ver(java, 'Java版1.13.2-pre2', 403, 1630)
ver(java, 'Java版1.13.2-pre1', 402, 1629)
ver(java, 'Java版1.13.1', 401, 1628)
ver(java, 'Java版1.13.1-pre2', 400, 1627)
ver(java, '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, 'Java版1.13', 393, 1519)
ver(java, 'Java版1.13-pre10', 392, 1518)
ver(java, 'Java版1.13-pre9', 391, 1517)
ver(java, 'Java版1.13-pre8', 390, 1516)
ver(java, 'Java版1.13-pre7', 389, 1513)
ver(java, 'Java版1.13-pre6', 388, 1512)
ver(java, 'Java版1.13-pre5', 387, 1511)
ver(java, 'Java版1.13-pre4', 386, 1504)
ver(java, 'Java版1.13-pre3', 385, 1503)
ver(java, 'Java版1.13-pre2', 384, 1502)
ver(java, '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, 'Java版1.12.2', 340, 1343)
ver(java, 'Java版1.12.2-pre2', 339, 1342)
ver(java, 'Java版1.12.2-pre1', 339, 1341)
-- 1.12.1
ver(java, 'Java版1.12.1', 338, 1241)
ver(java, 'Java版1.12.1-pre1', 337, 1240)
ver(java, '17w31a', 336, 1239)
-- 1.12
ver(java, 'Java版1.12', 335, 1139)
ver(java, 'Java版1.12-pre7', 334, 1138)
ver(java, 'Java版1.12-pre6', 333, 1137)
ver(java, 'Java版1.12-pre5', 332, 1136)
ver(java, 'Java版1.12-pre4', 331, 1135)
ver(java, 'Java版1.12-pre3', 330, 1134)
ver(java, 'Java版1.12-pre2', 329, 1133)
ver(java, '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, 'Java版1.11.2', 316, 922)
-- 1.11.1
ver(java, 'Java版1.11.1', 316, 921)
ver(java, '16w50a', 316, 920)
-- 1.11
ver(java, 'Java版1.11', 315, 819)
ver(java, '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, 'Java版1.10.2', 210, 512)
-- 1.10.1
ver(java, 'Java版1.10.1', 210, 511)
-- 1.10
ver(java, 'Java版1.10', 210, 510)
ver(java, 'Java版1.10-pre2', 205, 507)
ver(java, '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, 'Java版1.9.4', 110, 184)
-- 1.9.3
ver(java, 'Java版1.9.3', 110, 183)
ver(java, 'Java版1.9.3-pre3', 110, 182)
ver(java, 'Java版1.9.3-pre2', 110, 181)
ver(java, '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, 'Java版1.9.2', 109, 176)
-- 1.9.1
ver(java, 'Java版1.9.1', 108, 175)
ver(java, 'Java版1.9.1-pre3', 108, 172)
ver(java, 'Java版1.9.1-pre2', 108, 171)
ver(java, 'Java版1.9.1-pre1', 107, 170)
-- 1.9
ver(java, 'Java版1.9', 107, 169)
ver(java, 'Java版1.9-pre4', 106, 168)
ver(java, 'Java版1.9-pre3', 105, 167)
ver(java, 'Java版1.9-pre2', 104, 165)
ver(java, '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, 'Java版1.8.9', 47)
-- 1.8.8
ver(java, 'Java版1.8.8', 47)
-- 1.8.7
ver(java, 'Java版1.8.7', 47)
-- 1.8.6
ver(java, 'Java版1.8.6', 47)
-- 1.8.5
ver(java, 'Java版1.8.5', 47)
-- 1.8.4
ver(java, 'Java版1.8.4', 47)
-- 1.8.3
ver(java, 'Java版1.8.3', 47)
-- 1.8.2
ver(java, 'Java版1.8.2', 47)
ver(java, 'Java版1.8.2-pre7', 47)
ver(java, 'Java版1.8.2-pre6', 47)
ver(java, 'Java版1.8.2-pre5', 47)
ver(java, 'Java版1.8.2-pre4', 47)
ver(java, 'Java版1.8.2-pre3', 47)
ver(java, 'Java版1.8.2-pre2', 47)
ver(java, 'Java版1.8.2-pre1', 47)
-- 1.8.1
ver(java, 'Java版1.8.1', 47)
ver(java, 'Java版1.8.1-pre5', 47)
ver(java, 'Java版1.8.1-pre4', 47)
ver(java, 'Java版1.8.1-pre3', 47)
ver(java, 'Java版1.8.1-pre2', 47)
ver(java, 'Java版1.8.1-pre1', 47)
-- 1.8
ver(java, 'Java版1.8', 47)
ver(java, 'Java版1.8-pre3', 46)
ver(java, 'Java版1.8-pre2', 45)
ver(java, '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, 'Java版1.7.10', 5)
ver(java, 'Java版1.7.10-pre4', 5)
ver(java, 'Java版1.7.10-pre3', 5)
ver(java, 'Java版1.7.10-pre2', 5)
ver(java, 'Java版1.7.10-pre1', 5)
-- 1.7.9
ver(java, 'Java版1.7.9', 5)
-- 1.7.8
ver(java, 'Java版1.7.8', 5)
-- 1.7.7
ver(java, 'Java版1.7.7', 5)
-- 1.7.6
ver(java, 'Java版1.7.6', 5)
ver(java, 'Java版1.7.6-pre2', 5)
ver(java, 'Java版1.7.6-pre1', 5)
-- 1.7.5
ver(java, 'Java版1.7.5', 4)
-- 1.7.4
ver(java, 'Java版1.7.4', 4)
ver(java, 'Java版1.7.3', 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, 'Java版1.7.2', 4)
ver(java, 'Java版1.7.1', 3)
ver(java, 'Java版1.7', 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, 'Java版1.6.4', 78)
ver(java_old, 'Java版1.6.3', 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, 'Java版1.6.2', 74)
-- 1.6.1
ver(java_old, 'Java版1.6.1', 73)
ver(java_old, 'Java版1.6', 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, 'Java版1.5.2', 61)
-- 1.5.1
ver(java_old, 'Java版1.5.1', 60)
ver(java_old, '13w12~', 60)
ver(java_old, '13w11a', 60)
-- 1.5
ver(java_old, 'Java版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', 56)
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, 'Java版1.4.7', 51)
-- 1.4.6
ver(java_old, 'Java版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, 'Java版1.4.5', 49)
-- 1.4.4
ver(java_old, 'Java版1.4.4', 49)
ver(java_old, 'Java版1.4.3', 48)
-- 1.4.2
ver(java_old, 'Java版1.4.2', 47)
ver(java_old, 'Java版1.4.1', 47)
ver(java_old, 'Java版1.4', 47)
ver(java_old, '12w42b', 47)
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, 'Java版1.3.2', 39)
-- 1.3.1
ver(java_old, 'Java版1.3.1', 39)
ver(java_old, 'Java版1.3', 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, 'Java版1.2.5', 29)
-- 1.2.4
ver(java_old, 'Java版1.2.4', 29)
-- 1.2.3
ver(java_old, 'Java版1.2.3', 28)
-- 1.2.2
ver(java_old, 'Java版1.2.2', 28)
-- 1.2.1
ver(java_old, 'Java版1.2.1', 28)
ver(java_old, 'Java版1.2', 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, 'Java版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, 'Java版1.0.1', 22)
-- 1.0.0
ver(java_old, 'Java版1.0.0', 22)
ver(java_old, 'Java版RC2', 22)
ver(java_old, 'Java版RC1', 22)
ver(java_old, 'Java版Beta 1.9 Prerelease 6', 22)
ver(java_old, 'Java版Beta 1.9 Prerelease 5', 21)
ver(java_old, 'Java版Beta 1.9 Prerelease 4', 20)
ver(java_old, 'Java版Beta 1.9 Prerelease 3', 19)
ver(java_old, 'Java版Beta 1.9 Prerelease 2', 19)
ver(java_old, 'Java版Beta 1.9 Prerelease', 18)

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

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

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

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

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

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

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

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

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

-- ALPHA + ALPHA SERVER
-- 1.2 (Client)
ver(java_old, 'Java版Alpha服务器0.2.8', 6)
ver(java_old, 'Java版Alpha v1.2.6', 6)
ver(java_old, 'Java版Alpha服务器0.2.7', 6)
ver(java_old, 'Java版Alpha v1.2.5', 6)
ver(java_old, 'Java版Alpha服务器0.2.6_02', 6)
ver(java_old, 'Java版Alpha v1.2.4_01', 6)
ver(java_old, 'Java版Alpha服务器0.2.6_01', 6)
ver(java_old, 'Java版Alpha服务器0.2.6', 6)
ver(java_old, 'Java版Alpha v1.2.3_05', 6) -- v1.2.4
ver(java_old, 'Java版Alpha v1.2.3_04', 5)
ver(java_old, 'Java版Alpha服务器0.2.5_02', 5)
ver(java_old, 'Java版Alpha服务器0.2.5_01', 5)
ver(java_old, 'Java版Alpha v1.2.3_02', 5)
ver(java_old, 'Java版Alpha v1.2.3_01', 5)
ver(java_old, 'Java版Alpha服务器0.2.5', 5)
ver(java_old, 'Java版Alpha v1.2.3', 5)
ver(java_old, 'Java版Alpha服务器0.2.4', 4)
ver(java_old, 'Java版Alpha v1.2.2', 4)
ver(java_old, 'Java版Alpha v1.2.1_01', 3)
ver(java_old, 'Java版Alpha服务器0.2.3', 3)
ver(java_old, 'Java版Alpha v1.2.1', 3)
ver(java_old, 'Java版Alpha v1.2.0_02', 3)
ver(java_old, 'Java版Alpha v1.2.0_01', 3)
ver(java_old, 'Java版Alpha服务器0.2.2_01', 3)
ver(java_old, 'Java版Alpha服务器0.2.2', 3)
ver(java_old, 'Java版Alpha v1.2.0', 3)

-- 1.1 (Client)
ver(java_old, 'Java版Alpha v1.1.2_01', 2)
ver(java_old, 'Java版Alpha v1.1.2', 2)
ver(java_old, 'Java版Alpha服务器0.2.1', 2)
ver(java_old, 'Java版Alpha v1.1.1', 2)
ver(java_old, 'Java版Alpha服务器0.2.0_01', 2)
ver(java_old, 'Java版Alpha服务器0.2.0', 2)
ver(java_old, 'Java版Alpha v1.1.0', 2)

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

-- INDEV + INFDEV - no multiplayer; all versions use the same title
ver(java_old, 'Java版Infdev', none)
ver(java_old, 'Java版Indev', none)
ver(java_old, 'Java版Indev 0.31', none)

-- CLASSIC
ver(java_old, 'Java版Classic 0.30', 7)
ver(java_old, 'Java版Classic 0.29_02', 7)
ver(java_old, 'Java版Classic 0.29_01', 7)
ver(java_old, 'Java版Classic 0.29', 7)
ver(java_old, 'Java版Classic 0.28_01', 7)
ver(java_old, 'Java版Classic 0.28', unknown)
ver(java_old, 'Java版Classic 0.27 SURVIVAL TEST', 6)
ver(java_old, 'Java版Classic 0.26 SURVIVAL TEST', 6)
ver(java_old, 'Java版Classic 0.25_05 SURVIVAL TEST', 6)
ver(java_old, 'Java版Classic 0.25_04 SURVIVAL TEST', unknown)
ver(java_old, 'Java版Classic 0.25_03 SURVIVAL TEST', unknown)
ver(java_old, 'Java版Classic 0.25_02 SURVIVAL TEST', unknown)
ver(java_old, 'Java版Classic 0.25_01 SURVIVAL TEST', unknown)
ver(java_old, 'Java版Classic 0.25 SURVIVAL TEST', 6)
ver(java_old, 'Java版Classic 0.24_SURVIVAL_TEST_03', 6)
ver(java_old, 'Java版Classic 0.24_SURVIVAL_TEST_02', 6)
ver(java_old, 'Java版Classic 0.24_SURVIVAL_TEST_01', 6)
ver(java_old, 'Java版Classic 0.24_SURVIVAL_TEST', 6)
ver(java_old, 'Java版Classic 0.0.23a_01', 6)
ver(java_old, 'Java版Classic 0.0.23a', 6)
ver(java_old, 'Java版Classic 0.0.22a_05', 6)
ver(java_old, 'Java版Classic 0.0.22a_04', 6)
ver(java_old, 'Java版Classic 0.0.22a_03', 6)
ver(java_old, 'Java版Classic 0.0.22a_02', 6)
ver(java_old, 'Java版Classic 0.0.22a_01', 6)
ver(java_old, 'Java版Classic 0.0.22a', 6)
ver(java_old, 'Java版Classic 0.0.21a_01', 6)
ver(java_old, 'Java版Classic 0.0.21a', 6)
ver(java_old, 'Java版Classic 0.0.20a_02', 6)
ver(java_old, 'Java版Classic 0.0.20a_01', 6)
ver(java_old, 'Java版Classic 0.0.20a', unknown)
ver(java_old, 'Java版Classic 0.0.19a_06', unknown)
ver(java_old, 'Java版Classic 0.0.19a_05', unknown)
ver(java_old, 'Java版Classic 0.0.19a_04', unknown)
ver(java_old, 'Java版Classic 0.0.19a_03', unknown)
ver(java_old, 'Java版Classic 0.0.19a_01', unknown)
ver(java_old, 'Java版Classic 0.0.19a', unknown)
ver(java_old, 'Java版Classic 0.0.18a_02', 4)
ver(java_old, 'Java版Classic 0.0.18a_01', unknown)
ver(java_old, 'Java版Classic 0.0.18a', unknown)
ver(java_old, 'Java版Classic 0.0.17a', unknown)
ver(java_old, 'Java版Classic 0.0.16a_02', unknown)
ver(java_old, 'Java版Classic 0.0.16a_01', unknown)
ver(java_old, 'Java版Classic 0.0.16a', unknown)
ver(java_old, 'Java版Classic 0.0.15a_03', unknown)
ver(java_old, 'Java版Classic 0.0.15a_02', unknown)
ver(java_old, 'Java版Classic 0.0.15a_01', unknown)
ver(java_old, 'Java版Classic 0.0.15a(多人测试8)', unknown)
ver(java_old, 'Java版Classic 0.0.15a(多人测试7)', unknown)
ver(java_old, 'Java版Classic 0.0.15a(多人测试6)', unknown)
ver(java_old, 'Java版Classic 0.0.15a(多人测试5)', unknown)
ver(java_old, 'Java版Classic 0.0.15a(多人测试4)', unknown)
ver(java_old, 'Java版Classic 0.0.15a(多人测试3)', unknown)
ver(java_old, 'Java版Classic 0.0.15a(多人测试2)', unknown)
ver(java_old, 'Java版Classic 0.0.15a(多人测试1)', unknown)
ver(java_old, 'Java版Classic 0.0.14a_08', none)
ver(java_old, 'Java版Classic 0.0.14a_07', none)
ver(java_old, 'Java版Classic 0.0.14a_06', none)
ver(java_old, 'Java版Classic 0.0.14a_05', none)
ver(java_old, 'Java版Classic 0.0.14a_04', none)
ver(java_old, 'Java版Classic 0.0.14a_03', none)
ver(java_old, 'Java版Classic 0.0.14a_01', none)
ver(java_old, 'Java版Classic 0.0.14a', none)
ver(java_old, 'Java版Classic 0.0.13a_03', none)
ver(java_old, 'Java版Classic 0.0.13a', none)
ver(java_old, 'Java版Classic 0.0.12a_03', none)
ver(java_old, 'Java版Classic 0.0.12a_02', none)
ver(java_old, 'Java版Classic 0.0.12a_01', none)
ver(java_old, 'Java版Classic 0.0.12a', none)
ver(java_old, 'Java版Classic 0.0.11a', none)
ver(java_old, 'Java版Classic 0.0.10a', none)
ver(java_old, 'Java版Classic 0.0.9a', none)
ver(java_old, 'Java版Classic 0.0.3a', none)
ver(java_old, 'Java版Classic 0.0.2a', none)


-- April Fools'
ver(java_af, '20w14∞', 709, 2522)
ver(java_af, 'Java版3D Shareware v1.34', 1, 1943)
ver(java_af, 'Java版1.RV-Pre1', 108, 173)
ver(java_af, '15w14a', 48)
ver(java_af, 'Java版2.0', '90, 91, 92')

-- POCKET/BEDROCK EDITION
-- Source: http://pmmp.readthedocs.io/en/rtfd/supportedMCPEversions.html
-- (Licensed under LGPL3, used with permission from author)
-- Protocol version can be found at the end of the profile settings (Settings > Profile)

-- 1.16
ver(pocket, '基岩版1.16.230.56', 435)
ver(pocket, '基岩版1.16.230.54', 435)
ver(pocket, '基岩版1.16.230.52', 434)
ver(pocket, '基岩版1.16.230.50', 433)
ver(pocket, '基岩版1.16.220', 431)
ver(pocket, '基岩版1.16.220.52', 431)
ver(pocket, '基岩版1.16.220.51', 430)
ver(pocket, '基岩版1.16.220.50', 429)
ver(pocket, '基岩版1.16.210', 428)
ver(pocket, '基岩版1.16.210.61', 428)
ver(pocket, '基岩版1.16.210.60', 428)
ver(pocket, '基岩版1.16.210.59', 428)
ver(pocket, '基岩版1.16.210.58', 428)
ver(pocket, '基岩版1.16.210.57', 427)
ver(pocket, '基岩版1.16.210.56', 427)
ver(pocket, '基岩版1.16.210.55', 425)
ver(pocket, '基岩版1.16.210.54', 425)
ver(pocket, '基岩版1.16.210.53', 424)
ver(pocket, '基岩版1.16.210.51', 423)
ver(pocket, '基岩版1.16.210.50', 423)
ver(pocket, '基岩版1.16.200.57', 422)
ver(pocket, '基岩版1.16.200.56', 422)
ver(pocket, '基岩版1.16.200.55', 422)
ver(pocket, '基岩版1.16.200.53', 422)
ver(pocket, '基岩版1.16.200.52', 421)
ver(pocket, '基岩版1.16.200.51', 420)
ver(pocket, '基岩版1.16.100.60', 419)
ver(pocket, '基岩版1.16.100.59', 418)
ver(pocket, '基岩版1.16.100.58', 417)
ver(pocket, '基岩版1.16.100.57', 416)
ver(pocket, '基岩版1.16.100.56', 415)
ver(pocket, '基岩版1.16.100.55', 414)
ver(pocket, '基岩版1.16.100.54', 413)
ver(pocket, '基岩版1.16.100.53', 412)
ver(pocket, '基岩版1.16.100.52', 411)
ver(pocket, '基岩版1.16.100.51', 410)
ver(pocket, '基岩版1.16.100.50', 409)
ver(pocket, '基岩版1.16.30.57', 418) -- RTX beta
ver(pocket, '基岩版1.16.30.56', 418) -- RTX beta
ver(pocket, '基岩版1.16.30.53', 407) --RTX Beta
ver(pocket, '基岩版1.16.30.52', 407) --RTX Beta
ver(pocket, '基岩版1.16.201', 422)
ver(pocket, '基岩版1.16.200', 422)
ver(pocket, '基岩版1.16.101', 419)
ver(pocket, '基岩版1.16.100', 419)
ver(pocket, '基岩版1.16.61', 408)
ver(pocket, '基岩版1.16.60', 408)
ver(pocket, '基岩版1.16.50', 408)
ver(pocket, '基岩版1.16.42', 408)
ver(pocket, '基岩版1.16.40', 408)
ver(pocket, '基岩版1.16.21', 408)
ver(pocket, '基岩版1.16.20', 408)
ver(pocket, '基岩版1.16.20.54', 408)
ver(pocket, '基岩版1.16.20.53', 408)
ver(pocket, '基岩版1.16.20.52', 407)
ver(pocket, '基岩版1.16.20.50', 407)
ver(pocket, '基岩版1.16.10', 407)
ver(pocket, '基岩版1.16.1.04', 407)
ver(pocket, '基岩版1.16.1.03', 407)
ver(pocket, '基岩版1.16.1', 407)
ver(pocket, '基岩版1.16.0', 407)
ver(pocket, '基岩版1.16.0.68', 407)
ver(pocket, '基岩版1.16.0.67', 407)
ver(pocket, '基岩版1.16.0.66', 407)
ver(pocket, '基岩版1.16.0.64', 407)
ver(pocket, '基岩版1.16.0.63', 406)
ver(pocket, '基岩版1.16.0.61', 405)
ver(pocket, '基岩版1.16.0.60', 404)
ver(pocket, '基岩版1.16.0.59', 401)
ver(pocket, '基岩版1.16.0.58', 401)
ver(pocket, '基岩版1.16.0.57', 403)
ver(pocket, '基岩版1.16.0.55', 402)
ver(pocket, '基岩版1.16.0.54', none)
ver(pocket, '基岩版1.16.0.53', 401)
ver(pocket, '基岩版1.16.0.52', none)
ver(pocket, '基岩版1.16.0.51', 400)
ver(pocket, '基岩版1.15.0.56', 396)
ver(pocket, '基岩版1.15.0.55', 395)
ver(pocket, '基岩版1.15.0.54', 394)
ver(pocket, '基岩版1.15.0.53', 393)
ver(pocket, '基岩版1.15.0.51', 392)
ver(pocket, '基岩版1.15.0.11', 391) --RTX Beta
ver(pocket, '基岩版1.15.0.9', 391) --RTX Beta
ver(pocket, '基岩版1.15.0.8', 391) --RTX Beta

-- 1.14
ver(pocket, '基岩版1.14.60', 390)
ver(pocket, '基岩版1.14.41', unknown)
ver(pocket, '基岩版1.14.30', 389)
ver(pocket, '基岩版1.14.30.51', 389)
ver(pocket, '基岩版1.14.20', 389)
ver(pocket, '基岩版1.14.25.1', 389)
ver(pocket, '基岩版1.14.2.51', 389)
ver(pocket, '基岩版1.14.2.50', 389)
ver(pocket, '基岩版1.14.1', 389)
ver(pocket, '基岩版1.14.1.3', 389)
ver(pocket, '基岩版1.14.1.2', 389)
ver(pocket, '基岩版1.14.0.12', 389)
ver(pocket, '基岩版1.14.0', 389)
ver(pocket, '基岩版1.14.0.52', 389)
ver(pocket, '基岩版1.14.0.51', 389)
ver(pocket, '基岩版1.14.0.50', 389)
ver(pocket, '基岩版1.14.0.6', 389)
ver(pocket, '基岩版1.14.0.4', 389)
ver(pocket, '基岩版1.14.0.3', 389)
ver(pocket, '基岩版1.14.0.2', 389)
ver(pocket, '基岩版1.14.0.1', 390)

-- 1.13
ver(pocket, '基岩版1.13.3', 388)
ver(pocket, '基岩版1.13.2', 388)
ver(pocket, '基岩版1.13.1', 388)
ver(pocket, '基岩版1.13.0', 388)
ver(pocket, '基岩版1.13.0.18', 389)
ver(pocket, '基岩版1.13.0.17', 388)
ver(pocket, '基岩版1.13.0.16', 388)
ver(pocket, '基岩版1.13.0.15', 387)
ver(pocket, '基岩版1.13.0.13', 386)
ver(pocket, '基岩版1.13.0.9', 385)
ver(pocket, '基岩版1.13.0.6', 371)
ver(pocket, '基岩版1.13.0.5', 371)
ver(pocket, '基岩版1.13.0.4', 371)
ver(pocket, '基岩版1.13.0.2', 370)
ver(pocket, '基岩版1.13.0.1', 370)

-- 1.12
ver(pocket, '基岩版1.12.1', 361)
ver(pocket, '基岩版1.12.0', 361)
ver(pocket, '基岩版1.12.0.14', 361)
ver(pocket, '基岩版1.12.0.13', 361)
ver(pocket, '基岩版1.12.0.12', 361)
ver(pocket, '基岩版1.12.0.11', 361)
ver(pocket, '基岩版1.12.0.10', 361)
ver(pocket, '基岩版1.12.0.9', 361)
ver(pocket, '基岩版1.12.0.6', 361)
ver(pocket, '基岩版1.12.0.4', 361)
ver(pocket, '基岩版1.12.0.3', 361)
ver(pocket, '基岩版1.12.0.2', 360)

-- 1.11
ver(pocket, '基岩版1.11.4', 354)
ver(pocket, '基岩版1.11.3', 354)
ver(pocket, '基岩版1.11.2', 354)
ver(pocket, '基岩版1.11.1', 354)
ver(pocket, '基岩版1.11.0', 354)
ver(pocket, '基岩版1.11.0.10', 354)
ver(pocket, '基岩版1.11.0.9', 354)
ver(pocket, '基岩版1.11.0.8', 354)
ver(pocket, '基岩版1.11.0.7', 354)
ver(pocket, '基岩版1.11.0.5', 353)
ver(pocket, '基岩版1.11.0.4', 352)
ver(pocket, '基岩版1.11.0.3', 351)
ver(pocket, '基岩版1.11.0.1', 350)

-- 1.10
ver(pocket, '基岩版1.10.1', 340)
ver(pocket, '基岩版1.10.0', 340)
ver(pocket, '基岩版1.10.0.4', 340)
ver(pocket, '基岩版1.10.0.3', 340)

-- 1.9
ver(pocket, '基岩版1.9.0', 332)
ver(pocket, '基岩版1.9.0.5', 332)
ver(pocket, '基岩版1.9.0.3', 332)
ver(pocket, '基岩版1.9.0.2', 331)
ver(pocket, '基岩版1.9.0.0', 330)

-- 1.8
ver(pocket, '基岩版1.8.1', 313)
ver(pocket, '基岩版1.8.0', 313)
ver(pocket, '基岩版1.8.0.14', 312)
ver(pocket, '基岩版1.8.0.13', 312)
ver(pocket, '基岩版1.8.0.11', 312)
ver(pocket, '基岩版1.8.0.10', 311)
ver(pocket, '基岩版1.8.0.8', 310)

-- 1.7
ver(pocket, '基岩版1.7.1', 291)
ver(pocket, '基岩版1.7.0', 291)
ver(pocket, '基岩版1.7.0.9', 291)
ver(pocket, '基岩版1.7.0.7', 291)
ver(pocket, '基岩版1.7.0.5', 291)
ver(pocket, '基岩版1.7.0.3', 290)
ver(pocket, '基岩版1.7.0.2', 290)

-- 1.6
ver(pocket, '基岩版1.6.2', 282)
ver(pocket, '基岩版1.6.1', 282)
ver(pocket, '基岩版1.6.0', 282)
ver(pocket, '基岩版1.6.0.30', 282)
ver(pocket, '基岩版1.6.0.8', 282)
ver(pocket, '基岩版1.6.0.6', 281)
ver(pocket, '基岩版1.6.0.5', 281)
ver(pocket, '基岩版1.6.0.1', 280)

-- 1.5
ver(pocket, '基岩版1.5.3', 274)
ver(pocket, '基岩版1.5.2', 274)
ver(pocket, '基岩版1.5.1', 274)
ver(pocket, '基岩版1.5.0', 274)
ver(pocket, '基岩版1.5.0.10', 274)
ver(pocket, '基岩版1.5.0.7', 273)
ver(pocket, '基岩版1.5.0.4', 271)
ver(pocket, '基岩版1.5.0.1', 271)
ver(pocket, '基岩版1.5.0.0', 270)

-- 1.4
ver(pocket, '基岩版1.4.4', 261)
ver(pocket, '基岩版1.4.3', 261)
ver(pocket, '基岩版1.4.2', 261)
ver(pocket, '基岩版1.4.1', 261)
ver(pocket, '基岩版1.4.0', 261)
ver(pocket, '基岩版1.2.20.2', 260)
ver(pocket, '基岩版1.2.20.1', 260)
ver(pocket, '基岩版1.2.14.3', 240)
ver(pocket, '基岩版1.2.14.2', 240)
ver(pocket, '基岩版1.2.13.12', 223)
ver(pocket, '基岩版1.2.13.11', 224)
ver(pocket, '基岩版1.2.13.10', 222)
ver(pocket, '基岩版1.2.13.8', 221)

-- 1.2
ver(pocket, '基岩版1.2.13.60(1.2.16)', 223)
ver(pocket, '基岩版1.2.15', 223)
ver(pocket, '基岩版1.2.14', 223)
ver(pocket, '基岩版1.2.13', 223)
ver(pocket, '基岩版1.2.13.6', 220)
ver(pocket, '基岩版1.2.13.5', 220)
ver(pocket, '基岩版1.2.11', 201)
ver(pocket, '基岩版1.2.10', 201)
ver(pocket, '基岩版1.2.10.1', 200)
ver(pocket, '基岩版1.2.9', 160)
ver(pocket, '基岩版1.2.8', 160)
ver(pocket, '基岩版1.2.7', 160)
ver(pocket, '基岩版1.2.6.60', 150)
ver(pocket, '基岩版1.2.6', 150)
ver(pocket, '基岩版1.2.6.2', 140)
ver(pocket, '基岩版1.2.5', 141)
ver(pocket, '基岩版1.2.5.15', 141)
ver(pocket, '基岩版1.2.5.12', 140)
ver(pocket, '基岩版1.2.5.0', 137)
ver(pocket, '基岩版1.2.3', 137)
ver(pocket, '基岩版1.2.3.3', 137)
ver(pocket, '基岩版1.2.2', 137)
ver(pocket, '基岩版1.2.1', 137)
ver(pocket, '基岩版1.2.0', 137)
ver(pocket, '基岩版1.2.0.31', 136)
ver(pocket, '基岩版1.2.0.25', 135)
ver(pocket, '基岩版1.2.0.22', 134)
ver(pocket, '基岩版1.2.0.18', 133)
ver(pocket, '基岩版1.2.0.15', 132)
ver(pocket, '基岩版1.2.0.11', 132)
ver(pocket, '基岩版1.2.0.9', 131)
ver(pocket, '基岩版1.2.0.7', 131)
ver(pocket, '基岩版1.2.0.2', 130)

-- 1.1
ver(pocket, '携带版1.1.7', 113)
ver(pocket, '携带版1.1.5', 113)
ver(pocket, '携带版1.1.4', 113)
ver(pocket, '携带版1.1.3', 113)
ver(pocket, '携带版1.1.3.1', 113)
ver(pocket, '携带版1.1.3.0', 113)
ver(pocket, '携带版1.1.2', 113)
ver(pocket, '携带版1.1.1', 113)
ver(pocket, '携带版1.1.1.1', 113)
ver(pocket, '携带版1.1.1.0', 113)
ver(pocket, '携带版1.1.0', 113)
ver(pocket, '携带版1.1.0.9', 112)
ver(pocket, '携带版1.1.0.8', 111)
ver(pocket, '携带版1.1.0.5', 110)
ver(pocket, '携带版1.1.0.4', 110)
ver(pocket, '携带版1.1.0.3', 110)
ver(pocket, '携带版1.1.0.1', 110)
ver(pocket, '携带版1.1.0.0', 110)

-- 1.0
ver(pocket, '携带版1.0.9', 107)
ver(pocket, '携带版1.0.8', 107)
ver(pocket, '携带版1.0.7', 107)
ver(pocket, '携带版1.0.6', 106)
ver(pocket, '携带版1.0.6.0', 105)
ver(pocket, '携带版1.0.5', 105)
ver(pocket, '携带版1.0.5.11', 105)
ver(pocket, '携带版1.0.5.3', 105)
ver(pocket, '携带版1.0.5.0', 105)
ver(pocket, '携带版1.0.4', 102)
ver(pocket, '携带版1.0.4.1', 102)
ver(pocket, '携带版1.0.4.0', 101)
ver(pocket, '携带版1.0.3', 101)
ver(pocket, '携带版1.0.3.0', 101)
ver(pocket, '携带版1.0.2', 100)
ver(pocket, '携带版1.0.1', 100)
ver(pocket, '携带版1.0.0', 100)
ver(pocket, '携带版1.0.0.7', 100)
ver(pocket, '携带版1.0.0.2', 100)
ver(pocket, '携带版1.0.0.1', 92)
ver(pocket, '携带版1.0.0.0', 92)
ver(pocket, '携带版0.17.0.2', 91)
ver(pocket, '携带版0.17.0.1', 91)

-- PE ALPHA

-- 0.16
ver(pocket, '携带版0.16.2', 91)
ver(pocket, '携带版0.16.1', 91)
ver(pocket, '携带版0.16.0', 91)
ver(pocket, '携带版0.16.0.b5', 90)
ver(pocket, '携带版0.16.0.b4', 90)
ver(pocket, '携带版0.16.0.b3', 90)
ver(pocket, '携带版0.16.0.b2', 90) -- aka Alpha 0.15.90.1
ver(pocket, '携带版0.16.0.b1', 90)

-- 0.15
ver(pocket, '携带版0.15.10', 84)
ver(pocket, '携带版0.15.9', 83)
ver(pocket, '携带版0.15.8', 82)
ver(pocket, '携带版0.15.7', 82)
ver(pocket, '携带版0.15.6', 82)
ver(pocket, '携带版0.15.4', 82)
ver(pocket, '携带版0.15.3', 81)
ver(pocket, '携带版0.15.2', 81)
ver(pocket, '携带版0.15.1', 81)
ver(pocket, '携带版0.15.1.b1', 81)
ver(pocket, '携带版0.15.0', 81)
ver(pocket, '携带版0.15.0.b3', 81)
ver(pocket, '携带版0.15.0.b2', 81)
ver(pocket, '携带版0.15.0.b1', 81)
ver(pocket, '携带版0.15.0.a4', 60)
ver(pocket, '携带版0.15.0.a3', 60)
ver(pocket, '携带版0.15.0.a2', 60)

-- 0.14
ver(pocket, '携带版0.14.3', 70)
ver(pocket, '携带版0.14.2', 60)
ver(pocket, '携带版0.14.1', 46)
ver(pocket, '携带版0.14.0', 45)
ver(pocket, '携带版0.14.0.b7', 45)
ver(pocket, '携带版0.14.0.b6', 44)
ver(pocket, '携带版0.14.0.b5', 43)
ver(pocket, '携带版0.14.0.b4', 43)
ver(pocket, '携带版0.14.0.b3', 42)
ver(pocket, '携带版0.14.0.b2', 41)
ver(pocket, '携带版0.14.0.b1', 41)

-- 0.13
ver(pocket, '携带版0.13.2', 39)
ver(pocket, '携带版0.13.1', unknown)
ver(pocket, '携带版0.13.0', unknown)
ver(pocket, '携带版0.13.0.b5', 38)
ver(pocket, '携带版0.13.0.b4', 38)
ver(pocket, '携带版0.13.0.b3', 38)
ver(pocket, '携带版0.13.0.b2', 37)
ver(pocket, '携带版0.13.0.b1', 37)

-- 0.12
ver(pocket, '携带版0.12.3', 34)
ver(pocket, '携带版0.12.2', 34)
ver(pocket, '携带版0.12.1', 34)
ver(pocket, '携带版0.12.1.b13', 34)
ver(pocket, '携带版0.12.1.b12', 34)
ver(pocket, '携带版0.12.1.b11', 34)
ver(pocket, '携带版0.12.1.b10', 34)
ver(pocket, '携带版0.12.1.b9', 34)
ver(pocket, '携带版0.12.1.b8', 33)
ver(pocket, '携带版0.12.1.b7', 33)
ver(pocket, '携带版0.12.1.b6', 32)
ver(pocket, '携带版0.12.1.b5', 31)
ver(pocket, '携带版0.12.1.b4', 31)
ver(pocket, '携带版0.12.1.b3', 30)
ver(pocket, '携带版0.12.1.b2', 30)
ver(pocket, '携带版0.12.1.b1', 29)
ver(pocket, '携带版0.12.0.1', unknown)
ver(pocket, '携带版0.12.0', unknown)

-- 0.11
ver(pocket, '携带版0.11.2', unknown)
ver(pocket, '携带版0.11.1', unknown)
ver(pocket, '携带版0.11.0', unknown)
ver(pocket, '携带版0.11.0.b14', 27)
ver(pocket, '携带版0.11.0.b13', unknown)
ver(pocket, '携带版0.11.0.b12', unknown)
ver(pocket, '携带版0.11.0.b11', 26)
ver(pocket, '携带版0.11.0.b10', unknown)
ver(pocket, '携带版0.11.0.b9', unknown)
ver(pocket, '携带版0.11.0.b8', 25)
ver(pocket, '携带版0.11.0.b7', 24)
ver(pocket, '携带版0.11.0.b6', unknown)
ver(pocket, '携带版0.11.0.b5', 23)
ver(pocket, '携带版0.11.0.b4', 22)
ver(pocket, '携带版0.11.0.b3', unknown)
ver(pocket, '携带版0.11.0.b2', unknown)
ver(pocket, '携带版0.11.0.b1', 21)

-- 0.10
ver(pocket, '携带版0.10.5', unknown)
ver(pocket, '携带版0.10.4', unknown)
ver(pocket, '携带版0.10.3', unknown)
ver(pocket, '携带版0.10.2', unknown)
ver(pocket, '携带版0.10.1', unknown)
ver(pocket, '携带版0.10.0', unknown)
ver(pocket, '携带版0.10.0.b9', unknown)
ver(pocket, '携带版0.10.0.b8', unknown)
ver(pocket, '携带版0.10.0.b7', unknown)
ver(pocket, '携带版0.10.0.b6', 20)
ver(pocket, '携带版0.10.0.b5', unknown)
ver(pocket, '携带版0.10.0.b4', unknown)
ver(pocket, '携带版0.10.0.b3', unknown)
ver(pocket, '携带版0.10.0.b2', unknown)
ver(pocket, '携带版0.10.0.b1', 19)

-- 0.9
ver(pocket, '携带版0.9.5', 18)
ver(pocket, '携带版0.9.4', unknown)
ver(pocket, '携带版0.9.3', unknown)
ver(pocket, '携带版0.9.2', unknown)
ver(pocket, '携带版0.9.1', unknown)
ver(pocket, '携带版0.9.0', unknown)
ver(pocket, '携带版0.9.0.b12', 17)
ver(pocket, '携带版0.9.0.b11', unknown)
ver(pocket, '携带版0.9.0.b10', unknown)
ver(pocket, '携带版0.9.0.b9', unknown)
ver(pocket, '携带版0.9.0.b8', unknown)
ver(pocket, '携带版0.9.0.b7', 16)
ver(pocket, '携带版0.9.0.b6', unknown)
ver(pocket, '携带版0.9.0.b5', unknown)
ver(pocket, '携带版0.9.0.b4', unknown)
ver(pocket, '携带版0.9.0.b3', unknown)
ver(pocket, '携带版0.9.0.b2', 15)
ver(pocket, '携带版0.9.0.b1', unknown)

-- 0.8
ver(pocket, '携带版0.8.2', unknown)
ver(pocket, '携带版0.8.1', 14)
ver(pocket, '携带版0.8.0', unknown)
ver(pocket, '携带版0.8.0.b8', unknown)
ver(pocket, '携带版0.8.0.b7', unknown)
ver(pocket, '携带版0.8.0.b6', unknown)
ver(pocket, '携带版0.8.0.b5', unknown)
ver(pocket, '携带版0.8.0.b4', unknown)
ver(pocket, '携带版0.8.0.b3', unknown)
ver(pocket, '携带版0.8.0.b2', unknown)

-- 0.7
ver(pocket, '携带版0.7.6', unknown)
ver(pocket, '携带版0.7.5', unknown)
ver(pocket, '携带版0.7.4', 12)
ver(pocket, '携带版0.7.3', unknown)
ver(pocket, '携带版0.7.2', unknown)
ver(pocket, '携带版0.7.1', unknown)
ver(pocket, '携带版0.7.0', 11)

-- 0.6
ver(pocket, '携带版0.6.1', 9)
ver(pocket, '携带版0.6.0', 9)

-- 0.5
ver(pocket, '携带版0.5.0', 8)

-- 0.4
ver(pocket, '携带版0.4.0 Rev3', unknown)
ver(pocket, '携带版0.4.0 Rev2', unknown)
ver(pocket, '携带版0.4.0', 7)

-- 0.3
ver(pocket, '携带版0.3.3', 6)
ver(pocket, '携带版0.3.2', 5)
ver(pocket, '携带版0.3.0', 4)

-- 0.2
ver(pocket, '携带版0.2.2', unknown)
ver(pocket, '携带版0.2.1 Rev2', unknown)
ver(pocket, '携带版0.2.1', 3)
ver(pocket, '携带版0.2.0', 2)

-- 0.1
ver(pocket, '携带版0.1.3', unknown)
ver(pocket, '携带版0.1.2', unknown)
ver(pocket, '携带版0.1.1', unknown)
ver(pocket, '携带版0.1.0', unknown)

-- Demo
ver(pocket, '携带版Demo', unknown)

-- EDUCATION EDITION
ver(education, '教育版1.14.50', 391)
ver(education, '教育版1.14.40', 391)
ver(education, '教育版1.14.32', 390)
ver(education, '教育版1.14.31', 390)
ver(education, '教育版1.14.30', 390)
ver(education, '教育版1.12.60', 363)
ver(education, '教育版1.12.5', unknown)
ver(education, '教育版1.12.3', 362)
ver(education, '教育版1.12.1', unknown)
ver(education, '教育版1.12.0', 361)
ver(education, '教育版1.9.3', 332)
ver(education, '教育版1.9.1', 332)
ver(education, '教育版1.9.0', 332)
ver(education, '教育版1.8.0', 332)
ver(education, '教育版1.7.3', 291)
ver(education, '教育版1.7.1', 291)
ver(education, '教育版1.7.0', 291)
ver(education, '教育版1.4.0', 261)
ver(education, '教育版1.0.28', 150)
ver(education, '教育版1.0.27', 150)
ver(education, '教育版1.0.21', 137)
ver(education, '教育版1.0.18', unknown)
ver(education, '教育版1.0.17', unknown)
ver(education, '教育版1.0.2', 137)
ver(education, '教育版1.0.1', unknown)
ver(education, '教育版1.0', unknown)
ver(education, '教育版0.16.0', unknown)
ver(education, '教育版0.14.2', unknown)

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