mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-15 21:03:46 +03:00
72 lines
1.5 KiB
Lua
72 lines
1.5 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
if SAM_LOADED then return end
|
|
|
|
local sam, command = sam, sam.command
|
|
|
|
local get_length = function(arg, input)
|
|
if (input == "" or input == nil) and arg.optional then
|
|
if arg.default ~= nil then
|
|
return arg.default
|
|
end
|
|
|
|
return ""
|
|
end
|
|
|
|
return sam.parse_length(input)
|
|
end
|
|
|
|
command.new_argument("length")
|
|
:OnExecute(function(arg, input, ply, _, result, i)
|
|
local length = get_length(arg, input)
|
|
if length == "" then
|
|
result[i] = nil
|
|
elseif not length then
|
|
ply:sam_send_message("invalid", {
|
|
S = "length", S_2 = input
|
|
})
|
|
return false
|
|
else
|
|
if arg.min and length ~= 0 then
|
|
length = math.max(length, arg.min)
|
|
end
|
|
|
|
if arg.max then
|
|
if length == 0 then
|
|
length = arg.max
|
|
else
|
|
length = math.min(length, arg.max)
|
|
end
|
|
end
|
|
|
|
result[i] = length
|
|
end
|
|
end)
|
|
|
|
:Menu(function(set_result, body, buttons, argument)
|
|
local length_input = buttons:Add("SAM.TextEntry")
|
|
length_input:SetTall(25)
|
|
|
|
length_input:SetCheck(function(new_limit)
|
|
new_limit = get_length(argument, new_limit) or nil
|
|
set_result(new_limit)
|
|
return new_limit or false
|
|
end)
|
|
|
|
local hint = argument.hint or "length"
|
|
if argument.default then
|
|
hint = hint .. " = " .. tostring(argument.default)
|
|
end
|
|
|
|
length_input:SetPlaceholder(hint)
|
|
return length_input
|
|
end)
|
|
:End() |