как исправить краш скрипта при добавлении новых таблиц в json таблицу?

zimerfm

Участник
Автор темы
72
7
Версия MoonLoader
.027.0-preview
здравствуйте. у меня есть следующий код:
Lua:
local config = {}
local local_cfg = {}


local default_cfg = {
    ["skip_x4_dialog"] = false,
    ["auto_enter"] = false,
    ["anti_freeze"] = false,
    
    ["auto_name"] = {
        ["status"] = false,
        ["value"] = "Лавка",
        ["wait"] = 1000
    }
}


if not doesDirectoryExist(getWorkingDirectory()..'\\config') then
    createDirectory(getWorkingDirectory()..'\\config')
end
if not doesFileExist(config_path) then
    saveConfig(config_path, default_cfg)
else
    config = readConfig(config_path)
end


function create_local_cfg()
    local_cfg = {
    skip_x4_dialog = imgui.new.bool(config["skip_x4_dialog"]),
        
    auto_name = {
        status = imgui.new.bool(config["auto_name"]["status"]),
        value = imgui.new.char[256](u8:encode(ffi.string(config["auto_name"]["value"]))),
        wait = imgui.new.int(config["auto_name"]["wait"])
    }
}
create_local_cfg()


Это просто шаблон конфига. Дело в том, что добавление новых таблиц в default_cfg и local_cfg скрипт крашит из-за того, что default_cfg возвращает nil. Решение - удалить файл конфига и 2 раза перезагрузить скрипт. Данное решение мне кажется костылём. Естественно, можно написать функцию, проверяющую каждое значение конфига из файла на nil, но я не умею. Как исправить мою проблему? Есть ли в json готовые методы, исправляющую мою проблему?