63 lines
No EOL
1.5 KiB
Lua
63 lines
No EOL
1.5 KiB
Lua
local struct = require "struct"
|
|
local commands = {}
|
|
local defaults = {}
|
|
|
|
local functions = {}
|
|
|
|
print("Compilation des commandes")
|
|
|
|
local function addCommands(command, parent, default)
|
|
commands[command] = parent
|
|
if (default ~= nil) then
|
|
defaults[command] = default
|
|
end
|
|
end
|
|
|
|
local function addStatCommands(name, value)
|
|
addCommands(name .. ".base", name, value.default)
|
|
addCommands(name .. ".lvl", name, 0)
|
|
addCommands(name .. ".add", name, 0)
|
|
addCommands(name .. ".bonus", name, 0)
|
|
end
|
|
|
|
local function addListCommands(name, value)
|
|
addCommands(name, name)
|
|
addCommands(name .. ".replace", name)
|
|
addCommands(name .. ".reset", name)
|
|
end
|
|
|
|
for key, value in pairs(struct) do
|
|
if (value.dataType == "stat") then
|
|
addStatCommands(key, value)
|
|
elseif (value.dataType == "list") then
|
|
addListCommands(key, value)
|
|
elseif (value.dataType == "comp") then
|
|
addListCommands(key, value)
|
|
else
|
|
addCommands(key, key, value.default)
|
|
end
|
|
end
|
|
|
|
function functions.getDefaults()
|
|
return defaults
|
|
end
|
|
|
|
function functions.clean(args, command)
|
|
local baseCommand = commands[command]
|
|
if (baseCommand == nil) then
|
|
error("Command " .. baseCommand .. " doesn't exists")
|
|
end
|
|
local commandData = struct[baseCommand]
|
|
if (commandData.args == nil or commandData.args == 1) then
|
|
local arg = args[1]
|
|
if (commandData.contentType == "number") then
|
|
arg = tonumber(arg)
|
|
end
|
|
return arg
|
|
end
|
|
return args
|
|
end
|
|
|
|
functions.structs = struct
|
|
|
|
return functions |