🇪🇬
SAM
  • 📔Info (READ)
    • States 🟪🟦🟨
    • Static Methods vs Instance Methods
    • (optional)
    • Console
  • 💘API
    • 👨‍🦽Player
      • Functions
        • 🟦sam.Player.set_nwvar
        • 🟪sam.Player.get_nwvar
        • 🟦sam.Player.kick_id
        • 🟦sam.Player.cloak
        • 🟦sam.Player.set_pdata
        • 🟦sam.Player.get_pdata
        • 🟦sam.Player.play_sound
        • 🟪sam.Player.has_permission
        • 🟪sam.Player.can_target
        • 🟪sam.Player.get_ban_limit
        • 🟪sam.Player.get_session_time
        • 🟪sam.Player.get_play_time
        • 🟦sam.Player.set_rank
        • 🟦sam.Player.set_rank_id
        • 🟦sam.Player.get_rank
        • 🟦sam.Player.ban
        • 🟦sam.Player.ban_id
        • 🟦sam.Player.unban
        • ✨exclusive
          • 🟦sam.Player.set_exclusive
          • 🟦sam.Player.get_exclusive
      • Hooks
        • 🟪SAM.Player.Authed
        • 🟪SAM.Player.UpdatedPlayTimes
        • 🟪SAM.Player.Rank.Changed
        • 🟪SAM.Player.Rank.Changed_STEAMID64
        • 🟪SAM.Player.Rank.Banned
        • 🟪SAM.Player.Rank.Banned_STEAMID64
        • 🟪SAM.Player.Rank.UnBanned
    • 🤖Command
      • Static
        • 🟪sam.Command.new
        • 🟪sam.Command.set_category
        • 🟪sam.Command.get
        • 🟪sam.Command.get_all
        • 🟪sam.Command.remove
        • 🟪sam.Command.new_argument
      • Command
        • 🟪Command:aliases
        • 🟪Command:add_arg
        • Page 1
      • Argument
    • 🔫Rank
      • Structure
      • Functions
        • 🟦sam.Rank.add
        • 🟦sam.Rank.remove
        • 🟦sam.Rank.rename
        • 🟦sam.Rank.change_inherit
        • 🟦sam.Rank.change_immunity
        • 🟦sam.Rank.change_ban_limit
        • 🟦sam.Rank.set_limit
        • 🟦sam.Rank.give_permission
        • 🟦sam.Rank.take_permission
        • 🟪sam.Rank.get_all
        • 🟪sam.Rank.get
        • 🟪sam.Rank.exists
        • 🟪sam.Rank.is_default
        • 🟪sam.Rank.inherits_from
        • 🟪sam.Rank.has_permission
        • 🟪sam.Rank.get_limit
        • 🟪sam.Rank.get_immunity
        • 🟪sam.Rank.can_target
        • 🟪sam.Rank.get_ban_limit
      • Hooks
        • 🟪SAM.Rank.Added
        • 🟪SAM.Rank.OnRemove
        • 🟪SAM.Rank.Removed
        • 🟪SAM.Rank.ChangedName
        • 🟪SAM.Rank.ChangedInherit
        • 🟪SAM.Rank.ChangedImmunity
        • 🟪SAM.Rank.ChangedBanLimit
        • 🟪SAM.Rank.ChangedLimit
        • 🟪SAM.Rank.PermissionGiven
        • 🟪SAM.Rank.PermissionTaken
    • ⚙️Config
      • 🟪sam.Config.set
      • 🟪sam.Config.get
    • ⚒️Util
      • 🟪sam.Util.parse_args
      • 🟪sam.Util.is_steamid
      • 🟪sam.Util.is_steamid64
      • 🟪sam.Util.is_valid_map
      • 🟪sam.Util.is_valid_gamemode
      • 🟪sam.Util.to_hex
    • 🕸️Net
      • 🟪sam.Net.start
        • 🟦sam.Net.start
        • 🟨sam.Net.start
      • 🟪sam.Net.hook
        • 🟦sam.Net.hook
        • 🟨sam.Net.hook
    • 📦Sql
      • 🟦sam.Sql.escape
      • 🟦sam.Sql.query
      • 🟦sam.Sql.fquery
      • 🟦sam.Sql.table_exists
      • 🟦sam.Sql.is_connected
      • 🟦sam.Sql.is_mysql
Powered by GitBook
On this page

Was this helpful?

  1. API
  2. Command

Argument

Example #1

local sam = sam
local Command = sam.Command

Command.new_argument("map")
    :OnExecute(function(argument, input, ply, _, result)
        local map_name = sam.is_valid_map(input)
		if not map_name and not (argument.optional and input == "None") then
			ply:sam_send_message("invalid", {
				S = "map", S_2 = input
			})
			return false
		end

		table.insert(result, map_name)
	end)

	:Menu(function(set_result, _, buttons, argument)
		local maps = buttons:Add("SAM.ComboBox")
		maps:SetTall(25)

		if argument.optional then
			maps:AddChoice("None", nil, true)
		end

		for _, map_name in ipairs(sam.get_global("Maps")) do
			if not (argument.exclude_current and map_name == game.GetMap()) then
				maps:AddChoice(map_name)
			end
		end

		function maps:OnSelect(_, value)
			set_result(value)
		end

		local value = argument.optional and "None" or maps:GetOptionText(1)
		maps:SetValue(value)
		maps:OnSelect(nil, value)

		return maps
	end)

	:AutoComplete(function(_, result, name)
		for _, map_name in ipairs(sam.get_global("Maps")) do
			if map_name:lower():find(name, 1, true) then
				table.insert(result, map_name)
			end
		end
	end)
:End()
PreviousPage 1NextRank

Last updated 3 years ago

Was this helpful?

💘
🤖