yl_rulesets/api.lua
2025-04-16 09:37:05 +02:00

135 lines
3.7 KiB
Lua

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
--