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 if (baseCommand.args == nil or baseCommand.args == 1) then local arg = args[1] if (baseCommand.contentType == "number") then arg = tonumber(arg) end return arg end return args end return functions