local function get_data() return yl_rulesets.data end function yl_rulesets.get_data() return get_data() end -- Create ruleset_group -- local function register_ruleset_group(ruleset_group_name) local data = yl_rulesets.get_data() if type(ruleset_group_name) ~= "string" then return false, yl_rulesets.t("error_not_a_string", "ruleset_group") end if type(data) ~= "table" then return false, yl_rulesets.t("error_not_a_table", "data") end if data[ruleset_group_name] ~= nil then return false, yl_rulesets.t("error_already_exists", "ruleset_group", ruleset_group_name) end data[ruleset_group_name] = {} return true, "" end function yl_rulesets.register_ruleset_group(...) return register_ruleset_group(...) end -- Create ruleset -- local function register_ruleset(ruleset_name, ruleset_group_name) local data = yl_rulesets.get_data() if type(ruleset_name) ~= "string" then return false, yl_rulesets.t("error_not_a_string", "ruleset_name") end if type(ruleset_group_name) ~= "string" then return false, yl_rulesets.t("error_not_a_string", "ruleset_group_name") end if type(data) ~= "table" then return false, yl_rulesets.t("error_not_a_table", "data") end if type(data[ruleset_group_name]) ~= "table" then return false, yl_rulesets.t("error_not_a_table", "ruleset_group_name") end if data[ruleset_group_name][ruleset_name] ~= nil then return false, yl_rulesets.t("error_already_exists", "ruleset_name", ruleset_name) end data[ruleset_group_name][ruleset_name] = {} return true, "" end function yl_rulesets.register_ruleset(...) return register_ruleset(...) end -- Create rule -- local function register_rule(rule_name, ruleset_name, ruleset_group_name, function_activate, function_deactivate, options) local data = yl_rulesets.get_data() -- strings if type(rule_name) ~= "string" then return false, yl_rulesets.t("error_not_a_string", "rule_name") end if type(ruleset_name) ~= "string" then return false, yl_rulesets.t("error_not_a_string", "ruleset_name") end if type(ruleset_group_name) ~= "string" then return false, yl_rulesets.t("error_not_a_string", "ruleset_group_name") end -- functions if type(function_activate) ~= "function" then return false, yl_rulesets.t("error_not_a_function", "function_activate") end if type(function_deactivate) ~= "function" then return false, yl_rulesets.t("error_not_a_function", "function_deactivate") end -- data if type(data) ~= "table" then return false, yl_rulesets.t("error_not_a_table", "data") end if type(data[ruleset_group_name]) ~= "table" then return false, yl_rulesets.t("error_not_a_table", "ruleset_group_name") end if data[ruleset_group_name][ruleset_name] ~= "table" then return false, yl_rulesets.t("error_not_a_table", "ruleset_name") end if data[ruleset_group_name][ruleset_name][rule_name] ~= nil then return false, yl_rulesets.t("error_already_exists", "rule_name", rule_name) end local rule = { rule_name = rule_name, ruleset_name = ruleset_name, ruleset_group_name = ruleset_group_name, function_activate = function_activate, function_deactivate = function_deactivate, options = options or {} } data[ruleset_group_name][ruleset_name][rule_name] = rule return true, "" end function yl_rulesets.register_rule(...) return register_rule(...) end -- Enable ruleset --