<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.lemoncraft.su/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8</id>
	<title>Модуль:Версия модификации - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lemoncraft.su/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8&amp;action=history"/>
	<updated>2026-06-24T08:29:37Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8&amp;diff=1609&amp;oldid=prev</id>
		<title>Spark108: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8&amp;diff=1609&amp;oldid=prev"/>
		<updated>2025-03-26T11:16:22Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:16, 26 марта 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Spark108</name></author>
	</entry>
	<entry>
		<id>https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8&amp;diff=1608&amp;oldid=prev</id>
		<title>minecraftwiki&gt;BabylonAS: ссылка на редактирование данных о версии</title>
		<link rel="alternate" type="text/html" href="https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8&amp;diff=1608&amp;oldid=prev"/>
		<updated>2024-12-03T14:12:44Z</updated>

		<summary type="html">&lt;p&gt;ссылка на редактирование данных о версии&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Получает CSS-класс(ы) code, в который помещается номер версии модификации. Эти&lt;br /&gt;
классы нужны для различного оформления номеров версий из веток с разной&lt;br /&gt;
стабильностью (релизная / стабильная, бета-версия, альфа-версия).&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
 • branch_type: тип ветки (см. документацию к модулю&lt;br /&gt;
   [[Модуль:Версия модификации/Данные]]). Ветки без типов или с неизвестным&lt;br /&gt;
   тмпом считаются стабильными.&lt;br /&gt;
&lt;br /&gt;
Возвращает строку, содержащую соответствующие классы.&lt;br /&gt;
]=]&lt;br /&gt;
local function get_version_class(branch_type)&lt;br /&gt;
	local classes = {&lt;br /&gt;
		stable = &amp;quot;modversion modversion-stable&amp;quot;,&lt;br /&gt;
		beta = &amp;quot;modversion modversion-beta&amp;quot;,&lt;br /&gt;
		alpha = &amp;quot;modversion modversion-alpha&amp;quot;,&lt;br /&gt;
		unmaintained = &amp;quot;modversion modversion-unmaintained&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return classes[branch_type] or classes.stable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Получает текст всплывающей подсказки для номера версии в зависимости от типа&lt;br /&gt;
ветки.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
 • branch_type: тип ветки (см. документацию к модулю&lt;br /&gt;
   [[Модуль:Версия модификации/Данные]]). Ветки без типов или с неизвестным&lt;br /&gt;
   тмпом считаются стабильными.&lt;br /&gt;
&lt;br /&gt;
Возвращает строку, содержащую текст всплывающей подсказки.&lt;br /&gt;
]=]&lt;br /&gt;
local function get_tooltip(branch_type)&lt;br /&gt;
	local tooltips = {&lt;br /&gt;
		stable = &amp;quot;Стабильная версия&amp;quot;,&lt;br /&gt;
		beta = &amp;quot;Бета-версия&amp;quot;,&lt;br /&gt;
		alpha = &amp;quot;Альфа-версия&amp;quot;,&lt;br /&gt;
		unmaintained = &amp;quot;Неподдерживаемая версия&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return tooltips[branch_type] or tooltips.stable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Сравнивает два номера версий, соответствующих одному и тому же формату: оба&lt;br /&gt;
номера версий должны состоять из последовательностей чисел одинаковой длины, в&lt;br /&gt;
которых числа разделены точками.&lt;br /&gt;
&lt;br /&gt;
Поведение функции не определено при использовании любого другого формата.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
 • ver1 (строка): номер первой версии;&lt;br /&gt;
 • ver2 (строка): номер второй версии.&lt;br /&gt;
 &lt;br /&gt;
Возвращает булево значение, равное `true`, если и только если ver1 больше ver2.&lt;br /&gt;
]=]&lt;br /&gt;
local function compare_version(ver1, ver2)&lt;br /&gt;
	local parts1 = mw.text.split(ver1, &amp;#039;%.&amp;#039;)&lt;br /&gt;
	local parts2 = mw.text.split(ver2, &amp;#039;%.&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	for i, part in ipairs(parts1) do&lt;br /&gt;
		local part1_number = tonumber(part)&lt;br /&gt;
		local part2_number = tonumber(parts2[i])&lt;br /&gt;
		if part1_number &amp;gt; part2_number then&lt;br /&gt;
			return true&lt;br /&gt;
		elseif part1_number &amp;lt; part2_number then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Форматирует один номер версии согласно приведённому типу ветки.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
 • version (строка): номер версии&lt;br /&gt;
 • branch_type (строка): тип ветки&lt;br /&gt;
 &lt;br /&gt;
Возвращает строку с готовым вики-текстом.&lt;br /&gt;
]=]&lt;br /&gt;
local function format_single_version(version, branch_type)&lt;br /&gt;
	local ver_class = get_version_class(branch_type)&lt;br /&gt;
	local tooltip = get_tooltip(branch_type)&lt;br /&gt;
	&lt;br /&gt;
	return &amp;#039;&amp;lt;code class=&amp;quot;explain tooltip &amp;#039; .. ver_class .. &amp;#039;&amp;quot; title=&amp;quot;&amp;#039; .. tooltip .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. version .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Функция, форматирующая номера версий какой-либо модификации.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
 • mod_struct: структура с данными о соответствующей модификации (см.&lt;br /&gt;
   документацию модуля [[Модуль:Версия модификации/Данные]]).&lt;br /&gt;
   &lt;br /&gt;
Возвращает строку с готовым вики-текстом.&lt;br /&gt;
]=]&lt;br /&gt;
local function format_ver(mod_struct)&lt;br /&gt;
	local versions = {}&lt;br /&gt;
	for i, branch in ipairs(mod_struct) do&lt;br /&gt;
		table.insert(versions, format_single_version(branch.v, branch.type))&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(versions, &amp;quot; / &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Функция, форматирующая номера версий какой-либо модификации вместе с&lt;br /&gt;
соответствующими версиями Minecraft. Предназначена для использования в карточках&lt;br /&gt;
модификаций.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
 • mod_struct: структура с данными о соответствующей модификации (см.&lt;br /&gt;
   документацию модуля [[Модуль:Версия модификации/Данные]]).&lt;br /&gt;
   &lt;br /&gt;
Возвращает строку с готовым вики-текстом.&lt;br /&gt;
]=]&lt;br /&gt;
local function format_infobox(mod_struct)&lt;br /&gt;
	local versions1 = {}&lt;br /&gt;
	for i, branch in ipairs(mod_struct) do&lt;br /&gt;
		if not versions1[branch.mc] then&lt;br /&gt;
			versions1[branch.mc] = {}&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(versions1[branch.mc], branch)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local versions2 = {}&lt;br /&gt;
	for mcver, branch_array in pairs(versions1) do&lt;br /&gt;
		table.insert(versions2, {mcver, branch_array})&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(versions2, function(ver1, ver2) return compare_version(ver1[1], ver2[1]) end)&lt;br /&gt;
	&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for i, v in ipairs(versions2) do&lt;br /&gt;
		table.insert(result, &amp;#039;;&amp;#039; .. v[1])&lt;br /&gt;
		for i2, branch in ipairs(v[2]) do&lt;br /&gt;
			table.insert(result, &amp;#039;:&amp;#039; .. format_single_version(branch.v, branch.type))	&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(result, &amp;#039;\n&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Функция, форматирующая номера версий Minecraft, с которыми совместима какая-либо&lt;br /&gt;
модификация.&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
 • mod_struct: структура с данными о соответствующей модификации (см.&lt;br /&gt;
   документацию модуля [[Модуль:Версия модификации/Данные]]).&lt;br /&gt;
   &lt;br /&gt;
Возвращает строку с готовым вики-текстом.&lt;br /&gt;
]=]&lt;br /&gt;
local function format_mc(mod_struct)&lt;br /&gt;
	local versions = {}&lt;br /&gt;
	for i, branch in ipairs(mod_struct) do&lt;br /&gt;
		table.insert(versions, branch.mc)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(versions, &amp;quot; / &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Функция, форматирующая номера версий Minecraft, с которыми совместима какая-либо&lt;br /&gt;
модификация. Эта функция предназначена для встраивания значения в таблицу и&lt;br /&gt;
окрашивает ячейку с результатом в красный / зелёный цвет в зависимости от того,&lt;br /&gt;
есть ли у модификации ветка, поддерживающая последнюю версию Minecraft (Java&lt;br /&gt;
Edition).&lt;br /&gt;
&lt;br /&gt;
Параметры:&lt;br /&gt;
 • mod_struct: структура с данными о соответствующей модификации (см.&lt;br /&gt;
   документацию модуля [[Модуль:Версия модификации/Данные]]).&lt;br /&gt;
   &lt;br /&gt;
Возвращает строку с готовым вики-текстом.&lt;br /&gt;
]=]&lt;br /&gt;
local function format_mct(mod_struct)&lt;br /&gt;
	local versions = {}&lt;br /&gt;
	local supports_latest = false&lt;br /&gt;
	local latest = mw.loadData([[Модуль:Версия/Значения]]).m&lt;br /&gt;
	&lt;br /&gt;
	for i, branch in ipairs(mod_struct) do&lt;br /&gt;
		local mc_version = branch.mc&lt;br /&gt;
		if mc_version == latest then&lt;br /&gt;
			supports_latest = true&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		table.insert(versions, mc_version)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local result = table.concat(versions, &amp;quot; / &amp;quot;)&lt;br /&gt;
	if supports_latest then&lt;br /&gt;
		result = &amp;#039;style=&amp;quot;background: #C6EFCE; color: #006100&amp;quot; |&amp;#039; .. result&lt;br /&gt;
	else&lt;br /&gt;
		result = &amp;#039;style=&amp;quot;background: #FFC7CE; color: #9C0006&amp;quot; |&amp;#039; .. result&lt;br /&gt;
 	end&lt;br /&gt;
 	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local formatters = {&lt;br /&gt;
	ver = format_ver,&lt;br /&gt;
	infobox = format_infobox,&lt;br /&gt;
	mc = format_mc,&lt;br /&gt;
	mct = format_mct&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Точка входа для шаблона [[Шаблон:Модверсия]]. Для информации о параметрах см.&lt;br /&gt;
документацию этого шаблона.&lt;br /&gt;
]=]&lt;br /&gt;
function p.main(args)&lt;br /&gt;
	local mod_data = mw.loadData([[Модуль:Версия модификации/Данные]])&lt;br /&gt;
	local mod_struct = assert(&lt;br /&gt;
		mod_data[args.mod],&lt;br /&gt;
		(&amp;quot;Модификации %s не найдено&amp;quot;):format(args.mod)&lt;br /&gt;
	)&lt;br /&gt;
	&lt;br /&gt;
	local formatter = assert( formatters[args.format], (&amp;quot;Некорректный формат: %s&amp;quot;):format(args.format) )&lt;br /&gt;
	return formatter(mod_struct), &amp;quot;\n&amp;lt;small&amp;gt;([[Special:EditPage/Модуль:Версия модификации/Данные|обновить]])&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.version(f)&lt;br /&gt;
	local args = require([[Модуль:ProcessArgs]]).merge(true)&lt;br /&gt;
	&lt;br /&gt;
	local mod_name = assert(args[1], &amp;quot;Не указано название модификации&amp;quot;)&lt;br /&gt;
	local output_format = args[2]&lt;br /&gt;
	local format = &amp;quot;ver&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	if output_format then&lt;br /&gt;
		if formatters[output_format] then&lt;br /&gt;
			format = output_format&lt;br /&gt;
		else&lt;br /&gt;
			error((&amp;quot;Указан неверный формат: %s&amp;quot;):format(output_format))	&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return p.main({mod = mod_name, format = format})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Дополнительная точка входа для документации шаблона [[Шаблон:Модверсия]].&lt;br /&gt;
Никаких параметров не принимает. Возвращает таблицу со всеми известными&lt;br /&gt;
модификациями.&lt;br /&gt;
]=]&lt;br /&gt;
function p.list_all()&lt;br /&gt;
	local mod_data = mw.loadData([[Модуль:Версия модификации/Данные]])&lt;br /&gt;
	local all_mods = {}&lt;br /&gt;
	&lt;br /&gt;
	for k, v in pairs(mod_data) do&lt;br /&gt;
		table.insert(all_mods, {k, v})&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(all_mods, function(a, b) return a[2].name &amp;lt; b[2].name end)&lt;br /&gt;
	&lt;br /&gt;
	local result = {}&lt;br /&gt;
	table.insert(result, &amp;#039;{| class=&amp;quot;wikitable&amp;quot;\n! Код\n! Название\n! Версия модификации\n! Версия Minecraft&amp;#039;)&lt;br /&gt;
	for i, mod in ipairs(all_mods) do&lt;br /&gt;
		local mod_link = mod[2].link and (mod[2].link .. &amp;#039;|&amp;#039; .. mod[2].name) or mod[2].name&lt;br /&gt;
		table.insert(result, &amp;#039;|-\n| &amp;lt;code&amp;gt;&amp;#039; .. mod[1] .. &amp;#039;&amp;lt;/code&amp;gt;\n| [[&amp;#039; .. mod_link .. &amp;#039;]]\n| &amp;#039; .. format_ver(mod[2]) .. &amp;#039;\n| &amp;#039; .. format_mc(mod[2]))	&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(result, &amp;#039;|}&amp;#039;)&lt;br /&gt;
	return table.concat(result, &amp;#039;\n&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>minecraftwiki&gt;BabylonAS</name></author>
	</entry>
</feed>