concommand/Add

From Garry's Mod
(Difference between revisions)
Jump to: navigation, search
(Improved layout, example desc.)
m (typo fix)
 
(11 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 
{{Func
 
{{Func
|Name=Add
 
|Parent=concommand
 
 
|Description=Creates a console command that runs a function in lua with optional autocompletion function and help text.
 
|Description=Creates a console command that runs a function in lua with optional autocompletion function and help text.
|Realm=Shared
+
 
 +
{{Bug|Issue=1183|This will fail if the concommand was previously removed with {{LibraryFunction|concommand|Remove}} in a different realm (creating a command on the client that was removed from the server and vice-versa).}}
 +
|Realm=Shared and Menu
 
|IsClass=No
 
|IsClass=No
 +
|File=lua/includes/modules/concommand.lua
 +
|Line=28
 
}}
 
}}
 
{{Arg
 
{{Arg
 
|type=string
 
|type=string
 
|name=name
 
|name=name
|desc=The command name to be used in console.
+
|desc=The command name to be used in console.<br><br>
  
It may not contain any of the following (even as a substring) or the command will not be registered:<br/>
+
This cannot be a name of existing console command or console variable. It will silently fail if it is.
toggleconsole, exit, gameui_activate, connect, disconnect
+
 
}}
 
}}
 
{{Arg
 
{{Arg
Line 18: Line 19:
 
|name=callback
 
|name=callback
 
|desc=The function to run when the concommand is executed. Arguments passed are:
 
|desc=The function to run when the concommand is executed. Arguments passed are:
* {{FuncArg|Player|ply|The player the ran the concommand.}}
+
* {{FuncArg|Player|ply|The player that ran the concommand. NULL entity if command was entered with the dedicated server console.}}
 
* {{FuncArg|string|cmd|The concommand string (if one callback is used for several concommands).}}
 
* {{FuncArg|string|cmd|The concommand string (if one callback is used for several concommands).}}
 
* {{FuncArg|table|args|A table of all string arguments.}}
 
* {{FuncArg|table|args|A table of all string arguments.}}
Line 47: Line 48:
 
{{Example
 
{{Example
 
|Description=Adds a concommand ''killyourself'' which will kill the user.
 
|Description=Adds a concommand ''killyourself'' which will kill the user.
|Code=concommand.Add("killyourself",function( ply )
+
|Code=concommand.Add("killyourself",function( ply, cmd, args )
 
     ply:Kill()
 
     ply:Kill()
 
     print("You killed yourself!")
 
     print("You killed yourself!")
Line 55: Line 56:
 
|Description=A concommand that prints the SteamID and nickname of every player on the server.
 
|Description=A concommand that prints the SteamID and nickname of every player on the server.
 
|Code=concommand.Add( "retrieveplayers", function()   
 
|Code=concommand.Add( "retrieveplayers", function()   
for _, v in pairs( player.GetAll() ) do
+
for _, ply in ipairs( player.GetAll() ) do
print( v:Nick() .. ", " .. v:SteamID() .. "\n" )
+
print( ply:Nick() .. ", " .. ply:SteamID() .. "\n" )
 
end
 
end
 
end)
 
end)
 
}}
 
}}

Latest revision as of 04:55, 22 February 2019

 concommand.Add( )

Contents

Description

Creates a console command that runs a function in lua with optional autocompletion function and help text.

BUG

This will fail if the concommand was previously removed with concommand.Remove in a different realm (creating a command on the client that was removed from the server and vice-versa).

Issue Tracker: #1183

Arguments

string name

The command name to be used in console.

This cannot be a name of existing console command or console variable. It will silently fail if it is.

Arguments

function callback

The function to run when the concommand is executed. Arguments passed are:

  • Player ply - The player that ran the concommand. NULL entity if command was entered with the dedicated server console.
  • string cmd - The concommand string (if one callback is used for several concommands).
  • table args - A table of all string arguments.
  • string argStr - The arguments as a string.

Arguments

function autoComplete=nil

The function to call which should return a table of options for autocompletion. (Autocompletion Tutorial)

This only properly works on the client since it is not networked. Arguments passed are:

  • string cmd - The concommand this autocompletion is for.
  • string args - The arguments typed so far.

Arguments

string helpText=nil

The text to display should a user run 'help cmdName'.

Arguments

number flags=0

Concommand modifier flags. See FCVAR_ Enums.

Examples

Example

Adds a concommand killyourself which will kill the user.

concommand.Add("killyourself",function( ply, cmd, args )
    ply:Kill()
    print("You killed yourself!")
end)


Examples

Example

A concommand that prints the SteamID and nickname of every player on the server.

concommand.Add( "retrieveplayers", function()  
	for _, ply in ipairs( player.GetAll() ) do
		print( ply:Nick() .. ", " .. ply:SteamID() .. "\n" )
	end
end)


Personal tools
Navigation