mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 13:23:46 +03:00
Upload
This commit is contained in:
72
addons/sam-master/lua/sam/command/arguments/length.lua
Normal file
72
addons/sam-master/lua/sam/command/arguments/length.lua
Normal file
@@ -0,0 +1,72 @@
|
||||
--[[
|
||||
| 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()
|
||||
Reference in New Issue
Block a user