Модуль:Prototypes/Механика/Доступ: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 40: | Строка 40: | ||
["SyndicateAgent"] = "Агент Синдиката", | ["SyndicateAgent"] = "Агент Синдиката", | ||
["CentralCommand"] = "Центральное командование", | ["CentralCommand"] = "Центральное командование", | ||
["Wizard"] = "Волшебник" | ["Wizard"] = "Волшебник", | ||
["AllAccess"] = "Полный доступ" | |||
} | } | ||
-- Основная функция модуля | -- Основная функция модуля | ||
function p.main(frame) | function p.main(frame) | ||
local | local param1 = frame.args[1] | ||
-- Режим перевода | |||
if param1 == "translate" then | |||
local key = frame.args[2] | |||
if not key then | |||
return "Ошибка: отсутствует ключ для перевода" | |||
end | |||
return translations[key] or key | |||
end | |||
local id = param1 | |||
if not id then | if not id then | ||
return "Нет данных для обработки" | return "Нет данных для обработки" | ||
| Строка 54: | Строка 66: | ||
end | end | ||
local success, jsonData = pcall(function() return accessData end) | |||
if not success or type(jsonData) ~= "table" then | |||
return "Ошибка: некорректный формат данных доступа" | |||
end | |||
for _, item in ipairs(jsonData) do | for _, item in ipairs(jsonData) do | ||
if item.id == id and item.AccessReader | if item.id == id and item.AccessReader then | ||
local result = {} | local result = {} | ||
for _, | -- Если присутствует accessGroups, обрабатываем их | ||
if item.AccessReader.accessGroups then | |||
for _, group in ipairs(item.AccessReader.accessGroups) do | |||
for _, access in ipairs(group) do | |||
table.insert(result, translations[access] or access) | |||
end | |||
end | end | ||
-- Если accessGroups отсутствует, используем access | |||
elseif item.AccessReader.access then | |||
for _, accessList in ipairs(item.AccessReader.access) do | |||
for _, access in ipairs(accessList) do | |||
table.insert(result, translations[access] or access) | |||
end | |||
end | |||
end | |||
if #result > 0 then | |||
return table.concat(result, ", ") | |||
end | end | ||
end | end | ||
end | end | ||