From Kolmafia
Jump to navigation Jump to search

Function Syntax

void disable(string func )

  • func is the name of the function you wish to disable.

This function allows you to disable commands and/or functions by name. String func specifies the name of a CLI command or ASH function that you do not wish to be carried out. Note these include custom ASH functions (that you name yourself), but not aliases. Mafia has an internal array of function names which are disabled. At the start of each session, this array starts empty. Disable adds names to this array and mafia will not allow functions to be called that are named after any on the disabled list (with the exception of disable and enable). This is useful for debugging scripts, as you can quickly disable functions from the top of a script without digging through the code. In addition, when a disabled function is called, mafia will print a line informing you of this fact, while not acting on it. Important considerations:

  1. Mafia cannot differentiate between scripts that call functions of the same name. If function "foo" is disabled from script one, it will still be disabled when you run script two, unless you enable "foo" or restart mafia.
  2. Remember that CLI commands will be disabled if they have the same name (or can be disabled deliberately with this function).
  3. A disabled function still returns a value - the default value for its declared return type (false, 0, "", $item[none], an empty map, etc.). If a disabled function is incorporated into a condition (eg. "if(disabled_function())" ), then mafia will not just skip the entire conditional - execution will continue as normal, based on that default value.
  4. Using "all" as the string parameter will disable all ASH and CLI functions with the exception of enable and disable. Therefore, to re-enable all functions, you must type "enable all" into the CLI - ASH enable("all") would technically work, but at that point you'd have no way of invoking a script that contains it.
  5. disable() and enable() cannot be individually disabled using disable(), either.


Code Samples

This mini scriptlet generates a map that is outputted to a data file. In testing you might not want to do this every time, so you can disable map_to_file().


See Also