bdd-creature/libs/commands.lua

63 lines
1.5 KiB
Lua
Raw Normal View History

2024-08-01 23:14:47 +02:00
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
2024-08-01 23:26:55 +02:00
addCommands(key, key, value.default)
2024-08-01 23:14:47 +02:00
end
end
function functions.getDefaults()
return defaults
end
2024-08-01 23:56:04 +02:00
function functions.clean(args, command)
local baseCommand = commands[command]
if (baseCommand == nil) then
error("Command " .. baseCommand .. " doesn't exists")
end
2024-08-02 08:53:17 +02:00
local commandData = struct[baseCommand]
if (commandData.args == nil or commandData.args == 1) then
2024-08-01 23:56:04 +02:00
local arg = args[1]
2024-08-02 08:53:17 +02:00
if (commandData.contentType == "number") then
2024-08-01 23:56:04 +02:00
arg = tonumber(arg)
end
return arg
end
return args
end
2024-08-02 08:34:54 +02:00
functions.structs = struct
2024-08-01 23:14:47 +02:00
return functions