Module:Protocol version/Versions

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 grouped = { ['java'] = java, ['java_pre_netty'] = java_old, ['java_april_fools'] = java_af }

-- Define info for a single version, adding it into the appropriate lists function ver(group, name, protocol, data) if (all[name] ~= nil) then error("Attempted to add version " .. name .. " but it already exists!") end

local info = {['name'] = name, ['protocol'] = protocol, ['data'] = data } all[name] = info table.insert(group, info) end

-- Separate major versions (e.g. 1.12 & 1.13) with an extra enter. -- 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 -- Protocol version numbers after the 13w41a reset due to Netty rewrite -- 1.13 ver(java, '18w03b', '355') ver(java, '18w03a', '354') ver(java, '18w02a', '353') ver(java, '18w01a', '352') ver(java, '17w50a', '351') ver(java, '17w49b', '350') ver(java, '17w49a', '349') ver(java, '17w48a', '348') ver(java, '17w47b', '347') ver(java, '17w47a', '346') ver(java, '17w46a', '345') ver(java, '17w45b', '344') ver(java, '17w45a', '343') ver(java, '17w43b', '342') ver(java, '17w43a', '341')

-- 1.12.2 ver(java, '1.12.2', '340') ver(java, '1.12.2-pre2', '339') ver(java, '1.12.2-pre1', '339') -- 1.12.1 ver(java, '1.12.1', '338') ver(java, '1.12.1-pre1', '337') ver(java, '17w31a', '336') -- 1.12 ver(java, '1.12', '335') ver(java, '1.12-pre7', '334') ver(java, '1.12-pre6', '333') ver(java, '1.12-pre5', '332') ver(java, '1.12-pre4', '331') ver(java, '1.12-pre3', '330') ver(java, '1.12-pre2', '329') ver(java, '1.12-pre1', '328') ver(java, '17w18b', '327') ver(java, '17w18a', '326') ver(java, '17w17b', '325') ver(java, '17w17a', '324') ver(java, '17w16b', '323') ver(java, '17w16a', '322') ver(java, '17w15a', '321') ver(java, '17w14a', '320') ver(java, '17w13b', '319') ver(java, '17w13a', '318') ver(java, '17w06a', '317')

-- 1.11.2 ver(java, '1.11.2', '316') -- 1.11.1 ver(java, '1.11.1', '316') ver(java, '16w50a', '316') -- 1.11 ver(java, '1.11', '315') ver(java, '1.11-pre1', '314') ver(java, '16w44a', '313') ver(java, '16w43a', '313') ver(java, '16w42a', '312') ver(java, '16w41a', '311') ver(java, '16w40a', '310') ver(java, '16w39c', '309') ver(java, '16w39b', '308') ver(java, '16w39a', '307') ver(java, '16w38a', '306') ver(java, '16w36a', '305') ver(java, '16w35a', '304') ver(java, '16w33a', '303') ver(java, '16w32b', '302') ver(java, '16w32a', '301')

-- 1.10.2 ver(java, '1.10.2', '210') -- 1.10.1 ver(java, '1.10.1', '210') -- 1.10 ver(java, '1.10', '210') ver(java, '1.10-pre2', '205') ver(java, '1.10-pre1', '204') ver(java, '16w21b', '203') ver(java, '16w21a', '202') ver(java, '16w20a', '201')

-- 1.9.4 ver(java, '1.9.4', '110') -- 1.9.3 ver(java, '1.9.3', '110') ver(java, '1.9.3-pre3', '110') ver(java, '1.9.3-pre2', '110') ver(java, '1.9.3-pre1', '109') ver(java, '16w15b', '109') ver(java, '16w15a', '109') ver(java, '16w14a', '109') -- 1.9.2 ver(java, '1.9.2', '109') -- 1.9.1 ver(java, '1.9.1', '108') ver(java, '1.9.1-pre3', '108') ver(java, '1.9.1-pre2', '108') ver(java, '1.9.1-pre1', '107') -- 1.9 ver(java, '1.9', '107') ver(java, '1.9-pre4', '106') ver(java, '1.9-pre3', '105') ver(java, '1.9-pre2', '104') ver(java, '1.9-pre1', '103') ver(java, '16w07b', '102') ver(java, '16w07a', '101') ver(java, '16w06a', '100') ver(java, '16w05b', '99') ver(java, '16w05a', '98') ver(java, '16w04a', '97') ver(java, '16w03a', '96') ver(java, '16w02a', '95') ver(java, '15w51b', '94') ver(java, '15w51a', '93') ver(java, '15w50a', '92') ver(java, '15w49b', '91') ver(java, '15w49a', '90') ver(java, '15w47c', '89') ver(java, '15w47b', '88') ver(java, '15w47a', '87') ver(java, '15w46a', '86') ver(java, '15w45a', '85') ver(java, '15w44b', '84') ver(java, '15w44a', '83') ver(java, '15w43c', '82') ver(java, '15w43b', '81') ver(java, '15w43a', '80') ver(java, '15w42a', '79') ver(java, '15w41b', '78') ver(java, '15w41a', '77') ver(java, '15w40b', '76') ver(java, '15w40a', '75') ver(java, '15w39c', '74') ver(java, '15w38b', '73') ver(java, '15w38a', '72') ver(java, '15w37a', '71') ver(java, '15w36d', '70') ver(java, '15w36c', '69') ver(java, '15w36b', '68') ver(java, '15w36a', '67') ver(java, '15w35e', '66') ver(java, '15w35d', '65') ver(java, '15w35c', '64') ver(java, '15w35b', '63') ver(java, '15w35a', '62') ver(java, '15w34d', '61') ver(java, '15w34c', '60') ver(java, '15w34b', '59') ver(java, '15w34a', '58') ver(java, '15w33c', '57') ver(java, '15w33b', '56') ver(java, '15w33a', '55') ver(java, '15w32c', '54') ver(java, '15w32b', '53') ver(java, '15w32a', '52') 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') -- 1.8.1 ver(java, '1.8.1', '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, '14w30a', '30') 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, '14w20a', '18') ver(java, '14w19a', '17') ver(java, '14w18b', '16') ver(java, '14w17a', '15') 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, '14w06a', '10') ver(java, '14w05a', '9') ver(java, '14w04b', '8') ver(java, '14w04a', '7') ver(java, '14w03a', '6') ver(java, '14w02a', '5')

-- 1.7.10 ver(java, '1.7.10', '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') -- 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, '13w43a', '2') ver(java, '13w42b', '1') ver(java, '13w42a', '1') ver(java, '13w41b', '0') ver(java, '13w41a', '0')

-- 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') -- 1.6.3 ver(java_old, '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, '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, '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') -- 1.5 ver(java_old, '1.5', '60') ver(java_old, '13w09b', '59') 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, '13w02a', '53') 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, '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, '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, '12w27a', '38') ver(java_old, '12w26a', '37') ver(java_old, '12w25a', '37') ver(java_old, '12w24a', '36') 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')

-- 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, '12w07a', '27') ver(java_old, '12w06a', '25') ver(java_old, '12w05a', '24') ver(java_old, '12w04a', '24') ver(java_old, '12w03a', '24') ver(java_old, '12w02a', '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, '1.0.0-RC2', '22') ver(java_old, '1.0.0-RC1', '22') ver(java_old, 'Beta 1.9-pre6', '22') ver(java_old, 'Beta 1.9-pre5', '21') ver(java_old, 'Beta 1.9-pre4', '20') ver(java_old, 'Beta 1.9-pre3', '19') ver(java_old, 'Beta 1.9-pre2', '19') ver(java_old, 'Beta 1.9-pre1', '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-pre2', '16') ver(java_old, 'Beta 1.8-pre1', '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.1', '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_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_02', '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', 'unknown (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', 'unknown (1?)') ver(java_old, 'Alpha 1.0.17_02', '1') ver(java_old, 'Alpha 1.0.17', 'unknown') ver(java_old, 'Alpha 1.0.16_02', 'unknown') ver(java_old, 'Alpha 1.0.16_01', 'unknown') ver(java_old, 'Alpha 1.0.16', '14') ver(java_old, 'Alpha 1.0.15', '13') -- Between Alpha 1.0.0 and 1.0.14_01, multiplayer did not exist

-- CLASSIC ver(java_old, '0.30c', '7') ver(java_old, '0.0.23a_01', '6')

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

return { ['all'] = all, ['grouped'] = grouped }