pyplanet.contrib.command

The commands contributed package contains command management and callback logic.

class pyplanet.contrib.command.CommandManager(instance)[source]

The Command Manager contributed extension is a manager that controls all chat-commands in the game. Your app needs to use this manager to register any custom commands you want to provide.

You should access this class within your app like this:

self.instance.command_manager

You can register your commands like this:

await self.instance.command_manager.register(
        Command(command='reboot', target=self.reboot_pool, perms='admin:reboot', admin=True),
)

More information of the command and the options of it, see the pyplanet.contrib.command.Command class.

Warning

Don’t initiate this class yourself. Access this class from the self.instance.command_manager instance.

execute(player, command, *args)[source]

Execute a command for the given player with the given args.

Parameters:
  • player (pyplanet.apps.core.maniaplanet.models.player.Player) – Player instance.
  • command (pyplanet.contrib.command.command.Command) – Command instance.
  • args – Args for the command, will be concat into a string with spaces.
Returns:

register(*commands)[source]

Register your command.

Parameters:commands (pyplanet.contrib.command.command.Command) – Command instance.
class pyplanet.contrib.command.Command(command, target, aliases=None, admin=False, namespace=None, parser=None, perms=None, description=None)[source]

The command instance describes the command itself, the target to fire and all other related information, like admin command or aliases.

Some examples of some commands:

# Admin command with permission on it.
Command(command='reboot', target=self.reboot_pool, perms='admin:reboot', admin=True)

# Normal user command with optional argument.
Command(command='list', target=self.show_map_list)                      .add_param(name='search', required=False)
add_param(name: str, nargs=1, type=<class 'str'>, default=None, required: bool = True, help: str = None, dest: str = None)[source]

Add positional parameter.

Parameters:
  • name – Name of parameter, will be used to store result into!
  • nargs – Number of arguments, use integer or ‘*’ for multiple or infinite.
  • type – Type of value, keep str to match all types. Use any other to try to parse to the type.
  • default – Default value when no value is given.
  • required – Set the parameter required state, defaults to true.
  • help – Help text to display when parameter is invalid or not given and required.
  • dest – Destination to save into namespace result (defaults to name).
Returns:

parser instance

Return type:

pyplanet.contrib.command.command.Command

get_params(input)[source]

Get params in array from input in array.

Parameters:input (list) – Array of raw input.
Returns:Array of parameters, stripped of the command name and namespace, if defined.
Return type:list
handle(instance, player, argv)[source]

Handle command parsing and execution.

Parameters:
  • player (pyplanet.apps.core.maniaplanet.models.player.Player) – Player object.
  • argv – Arguments in array
match(raw)[source]

Try to match the command with the given input in array style (splitted by spaces).

Parameters:raw (list) – Raw input, split by spaces.
Returns:Boolean if command matches.
usage_text

The usage text line for the command.

class pyplanet.contrib.command.ParameterParser(prog=None)[source]

Parameter Parser.

Todo

Write introduction + examples.

add_param(name: str, nargs=1, type=<class 'str'>, default=None, required: bool = True, help: str = None, dest: str = None)[source]

Add positional parameter.

Parameters:
  • name – Name of parameter, will be used to store result into!
  • nargs – Number of arguments, use integer or ‘*’ for multiple or infinite.
  • type – Type of value, keep str to match all types. Use any other to try to parse to the type.
  • default – Default value when no value is given.
  • required – Set the parameter required state, defaults to true.
  • help – Help text to display when parameter is invalid or not given and required.
  • dest – Destination to save into namespace result (defaults to name).
Returns:

parser instance

Return type:

pyplanet.contrib.command.ParameterParser

errors

Get errors.

Returns:array of strings.
Return type:list
is_valid()[source]

Is data valid?

Returns:boolean
parse(argv)[source]

Parse arguments.

Parameters:argv – arguments.
parse_parameter(param, input, position)[source]

Validate and parse param value at input position.

Parameters:
  • param (dict) – Param dict given.
  • input (list) – Full params input (without command or namespace!)
  • position (int) – Current seek position.
Returns:

value.

exception pyplanet.contrib.command.exceptions.InvalidParamException[source]

Invalid parameter arguments given!

exception pyplanet.contrib.command.exceptions.NotValidated[source]

Your parser hasn’t been called with .parse() before, so no parsing took place!

exception pyplanet.contrib.command.exceptions.ParamException[source]
exception pyplanet.contrib.command.exceptions.ParamParseException[source]
exception pyplanet.contrib.command.exceptions.ParamValidateException[source]