GetCommandHandlers

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This function is used to retrieve a list of all the registered command handlers of a given resource (or of all resources). Function also added client-side.

Syntax

table getCommandHandlers ( [ resource theResource ] ) 

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • theResource: The resource from which you wish to retrieve all command handlers. Or leave it empty to retrieve command handlers of all resources.

Returns

Returns a table containing all the commands of the given resource or a table with subtables containing the command and theResource pointer ( { "command", theResource } ). See examples below if you don't understand it.

Example

This example add a command to output list of all commands in the chat.

addCommandHandler( "commands", 
   function(player)
      local commandsList = {} --table to store commands
		
      --store/sort commands in the table where key is resource and value is table with commands
      for _, subtable in pairs( getCommandHandlers() ) do
	 local commandName = subtable[1]
	 local theResource = subtable[2]
			
         if not commandsList[theResource] then
	    commandsList[theResource] = {}
	 end
			
	 table.insert( commandsList[theResource], commandName )
      end
		
      --output sorted information in the chat
      for theResource, commands in pairs( commandsList ) do
	  local resourceName = getResourceInfo( theResource, "name" ) or getResourceName( theResource ) --try to get full name, if no full name - use short name
	  outputChatBox( "== "..resourceName.. " ==", player, 0, 255, 0 )
			
	  --output list of commands
	  for _, command in pairs( commands ) do
	     outputChatBox( "/"..command, player, 255, 255, 255 )
	  end
      end
  end
)

This example add a command to output list of all commands for the resource in the chat. Syntax: /commands [resource-name]

addCommandHandler("commands", 
  function( player, _, resourceName)
     local theResource = (resourceName and getResourceFromName(resourceName)) or resource 
     outputChatBox( "* Commands from "..getResourceName(theResource).." resource", player, 0, 255, 0 )
		
     local commands = getCommandHandlers( theResource )
     for _, command in pairs( commands ) do
        outputChatBox( "/"..command, player, 255, 255, 255 )
     end
  end
)

See Also