Clarify caller keyword requirement

This commit is contained in:
Count Infinity 2025-11-19 01:01:28 -07:00
parent 3cd5be6e82
commit 5da870beab
2 changed files with 6 additions and 5 deletions

View file

@ -167,9 +167,8 @@ The default protfuncs available out of the box are defined in `evennia/prototype
| `$div(<value1>, <value2>)` | Returns value2 / value1 | | `$div(<value1>, <value2>)` | Returns value2 / value1 |
| `$toint(<value>)` | Returns value converted to integer (or value if not possible) | | `$toint(<value>)` | Returns value converted to integer (or value if not possible) |
| `$eval(<code>)` | Returns result of [literal-eval](https://docs.python.org/2/library/ast.html#ast.literal_eval) of code string. Only simple python expressions. | | `$eval(<code>)` | Returns result of [literal-eval](https://docs.python.org/2/library/ast.html#ast.literal_eval) of code string. Only simple python expressions. |
| `$obj(<query>)` | Returns object #dbref searched globally by key, tag or #dbref. Error if more than one found. | | `$obj(<query>)` | Returns object searched globally by key, tag or #dbref. Requires `caller` kwarg in `spawner.spawn()` for access checks. See [searching callables](./FuncParser.md#evenniautilsfuncparsersearching_callables). |
| `$objlist(<query>)` | Like `$obj`, except always returns a list of zero, one or more results. | | `$objlist(<query>)` | Like `$obj`, except always returns a list of zero, one or more results. Requires `caller` kwarg in `spawner.spawn()` for access checks. See [searching callables](./FuncParser.md#evenniautilsfuncparsersearching_callables). |
| `$dbref(dbref)` | Returns argument if it is formed as a #dbref (e.g. #1234), otherwise error. |
For developers with access to Python, using protfuncs in prototypes is generally not useful. Passing real Python functions is a lot more powerful and flexible. Their main use is to allow in-game builders to do limited coding/scripting for their prototypes without giving them direct access to raw Python. For developers with access to Python, using protfuncs in prototypes is generally not useful. Passing real Python functions is a lot more powerful and flexible. Their main use is to allow in-game builders to do limited coding/scripting for their prototypes without giving them direct access to raw Python.

View file

@ -653,7 +653,8 @@ def batch_update_objects_with_prototype(
if it's not set in the prototype. With `exact=True`, all un-specified properties of the if it's not set in the prototype. With `exact=True`, all un-specified properties of the
objects will be removed if they exist. This will lead to a more accurate 1:1 correlation objects will be removed if they exist. This will lead to a more accurate 1:1 correlation
between the object and the prototype but is usually impractical. between the object and the prototype but is usually impractical.
caller (Object or Account, optional): This may be used by protfuncs to do permission checks. caller (Object or Account, optional): The object requesting the update. Required when using
protofuncs that perform searches. For example ($obj, $objlist, $dbref, $search).
protfunc_raise_errors (bool): Have protfuncs raise explicit errors if malformed/not found. protfunc_raise_errors (bool): Have protfuncs raise explicit errors if malformed/not found.
This is highly recommended. This is highly recommended.
Returns: Returns:
@ -890,7 +891,8 @@ def spawn(*prototypes, caller=None, **kwargs):
prototype_key (will be used to find the prototype) or a full prototype prototype_key (will be used to find the prototype) or a full prototype
dictionary. These will be batched-spawned as one object each. dictionary. These will be batched-spawned as one object each.
Keyword Args: Keyword Args:
caller (Object or Account, optional): This may be used by protfuncs to do access checks. caller (Object or Account, optional): The object requesting the update. Required when using
protofuncs that perform searches. For example ($obj, $objlist, $dbref, $search).
prototype_modules (str or list): A python-path to a prototype prototype_modules (str or list): A python-path to a prototype
module, or a list of such paths. These will be used to build module, or a list of such paths. These will be used to build
the global protparents dictionary accessible by the input the global protparents dictionary accessible by the input