该模块为模块:Protocol version提供数据。
数据来源:
- https://wiki.vg/Protocol_version_numbers (授权协议CC-BY-SA 3.0)
- https://wiki.vg/Bedrock_Protocol_version_numbers (授权协议CC-BY-SA 3.0)
- Java版:18w47b起,.jar文件中“version.json”中的“protocol_version”。
- 基岩版:1.2.0.22起,游戏内“档案设置”中的“协议版本”。
另见
{{Protocol version}}{{Protocol version/Table}}{{Data version}}{{Al version}}- 模块:Protocol version
- 模块:Protocol version/Versions
- 模块:Al version
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版',
['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
}
}
-- Intended for translators
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.14
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, '1.13.2', '404', 1631)
ver(java, '1.13.2-pre2', '403', 1630)
ver(java, '1.13.2-pre1', '402', 1629)
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')
-- 1.7.2
ver(java, '1.7.2', '4')
ver(java, '1.7.1-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')
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', unknown .. '(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 1.2.6', '6')
ver(java_old, 'Alpha 1.2.5', '6')
ver(java_old, 'Alpha 1.2.4_01', '6')
ver(java_old, 'Alpha 1.2.4', unknown .. '(6?)')
ver(java_old, 'Alpha 1.2.3_04', '5')
ver(java_old, 'Alpha 1.2.3_02', '5')
ver(java_old, 'Alpha 1.2.3_01', '5')
ver(java_old, 'Alpha 1.2.3', '5')
ver(java_old, 'Alpha 1.2.2', '4')
ver(java_old, 'Alpha 1.2.1_01', '3')
ver(java_old, 'Alpha 1.2.1', '3')
ver(java_old, 'Alpha 1.2.0_02', '3')
ver(java_old, 'Alpha 1.2.0_01', '3')
ver(java_old, 'Alpha 1.2.0', '3')
-- 1.1
ver(java_old, 'Alpha 1.1.2_01', '2')
ver(java_old, 'Alpha 1.1.2', '2')
ver(java_old, 'Alpha 1.1.1', unknown .. '(2?)')
ver(java_old, 'Alpha 1.1.0', '2')
-- 1.0
ver(java_old, 'Alpha 1.0.17_04', '1')
ver(java_old, 'Alpha 1.0.17_03', '1')
ver(java_old, 'Alpha 1.0.17_02', '1')
ver(java_old, 'Alpha 1.0.17_01', unknown .. '(1?)')
ver(java_old, 'Alpha 1.0.17', unknown .. '(1?)')
ver(java_old, 'Alpha 1.0.16_02', '14')
ver(java_old, 'Alpha 1.0.16_01', '14')
ver(java_old, 'Alpha 1.0.16', '14')
ver(java_old, 'Alpha 1.0.15', '13')
-- These versions have a multiplayer button, but a specific server is hardcoded.
ver(java_old, 'Alpha 1.0.14', '12')
ver(java_old, 'Alpha 1.0.13_01', '12')
ver(java_old, 'Alpha 1.0.13', '12')
ver(java_old, 'Alpha 1.0.12', '11')
ver(java_old, 'Alpha 1.0.11', '10')
ver(java_old, 'Alpha 1.0.10', '10')
-- These versions have multiplayer code, but no multiplayer interface.
ver(java_old, 'Alpha 1.0.9', '10')
ver(java_old, 'Alpha 1.0.8_01', '10')
ver(java_old, 'Alpha 1.0.8', unknown .. '(10?)')
ver(java_old, 'Alpha 1.0.7', '10')
ver(java_old, 'Alpha 1.0.6_03', '10')
ver(java_old, 'Alpha 1.0.6_02', unknown .. '(10?)')
ver(java_old, 'Alpha 1.0.6_01', '10')
ver(java_old, 'Alpha 1.0.6', '10')
ver(java_old, 'Alpha 1.0.5_01', '10')
ver(java_old, 'Alpha 1.0.5', unknown .. '(10?)')
-- Multiplayer did not exist
ver(java_old, 'Alpha 1.0.4', none)
ver(java_old, 'Alpha 1.0.3', none)
ver(java_old, 'Alpha 1.0.2_02', none)
ver(java_old, 'Alpha 1.0.2_01', none)
ver(java_old, 'Alpha 1.0.2', none)
ver(java_old, 'Alpha 1.0.1_01', none)
ver(java_old, 'Alpha 1.0.1', none)
ver(java_old, 'Alpha 1.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 .. '(110?)')
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 .. '(7?)')
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 .. '(3?)')
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 }