[LUA] Бан в единицах для FAdmin

Как сделать бан в Fadmin в нормальных единицах через чат? Если человек вышел с сервера - забанить его можно только указав время в минутах (что неудобно), хотелось бы сделать бан по типу /ban steamid 1d13h 1.1
Можно ли так сделать?

Установка: gamemode/modules/fadmin/fadmin/playeractions/kickban

Создаём в этой папке файл sv_bannew.lua

И вставляем скрипт ниже

local function ParseTimeToSeconds(timeStr)
    local seconds = 0
    for num, unit in timeStr:gmatch("(%d+)([dDhHmMyYwW])") do
        num = tonumber(num) or 0
        if unit:lower() == "s" then
            seconds = seconds + num
        elseif unit:lower() == "m" then
            seconds = seconds + num * 60
        elseif unit:lower() == "h" then
            seconds = seconds + num * 3600
        elseif unit:lower() == "d" then
            seconds = seconds + num * 86400
        elseif unit:lower() == "w" then
            seconds = seconds + num * 604800
        elseif unit:lower() == "y" then
            seconds = seconds + num * 31536000
        end
    end
    return seconds
end

local function OnPlayerBanCommand(ply, cmd, args)
    if not FAdmin.Access.PlayerHasPrivilege(ply, "Ban") then
        ply:ChatPrint("Нет прав для использования данной кмд.")
        return
    end

    local targetSteamID = args[1]
    local banTimeStr = args[2]
    local reason = table.concat(args, " ", 3) -- Объединяем все аргументы после steamid и времени в одну строку - причину бана.

    if not targetSteamID or not banTimeStr then
        ply:ChatPrint("Пример: /ban <steamid> <время> <причина>")
        return
    end

    local banTimeInSeconds = ParseTimeToSeconds(banTimeStr)
    if not banTimeInSeconds then
        ply:ChatPrint("Неверный формат времени. Используй формат по типу 1d5h.")
        return
    end

    local endTime = os.time() + banTimeInSeconds
    FAdmin.Bans.AddBan(targetSteamID, ply:SteamID(), ply:Nick(), endTime, reason)
    ply:ChatPrint("Player with SteamID " .. targetSteamID .. " has been banned for " .. banTimeStr .. " with reason: " .. reason)
end

concommand.Add("ban", OnPlayerBanCommand)
1 лайк

не работает