Source code for evennia.utils.optionclasses
-"""
-Option classes store user- or server Options in a generic way
-while also providing validation.
-
-"""
-
-import datetime
+import datetime
from evennia import logger
from evennia.utils.ansi import strip_ansi
from evennia.utils.validatorfuncs import _TZ_DICT
@@ -53,7 +47,7 @@
from evennia.utils import validatorfuncs
-[docs]class BaseOption:
+[docs]class BaseOption(object):
"""
Abstract Class to deal with encapsulating individual Options. An Option has
a name/key, a description to display in relevant commands and menus, and a
@@ -157,8 +151,8 @@
[docs] def save(self, **kwargs):
"""
Stores the current value using `.handler.save_handler(self.key, value, **kwargs)`
- where kwargs are a combination of those passed into this function and the
- ones specified by the OptionHandler.
+ where `kwargs` are a combination of those passed into this function and
+ the ones specified by the `OptionHandler`.
Keyword Args:
any (any): Not used by default. These are passed in from self.set
diff --git a/docs/0.9.5/_modules/evennia/utils/picklefield.html b/docs/0.9.5/_modules/evennia/utils/picklefield.html
index fa8ac4c095..8a2536e413 100644
--- a/docs/0.9.5/_modules/evennia/utils/picklefield.html
+++ b/docs/0.9.5/_modules/evennia/utils/picklefield.html
@@ -327,7 +327,7 @@
return value
[docs] def value_to_string(self, obj):
- value = self._get_val_from_obj(obj)
+ value = self.value_from_object(obj)
return self.get_db_prep_value(value)
[docs] def get_internal_type(self):
diff --git a/docs/0.9.5/_modules/evennia/utils/search.html b/docs/0.9.5/_modules/evennia/utils/search.html
index 62fdc9f499..8fd3b8ac56 100644
--- a/docs/0.9.5/_modules/evennia/utils/search.html
+++ b/docs/0.9.5/_modules/evennia/utils/search.html
@@ -77,6 +77,7 @@
"search_message",
"search_channel",
"search_help_entry",
+ "search_tag",
"search_script_tag",
"search_account_tag",
"search_channel_tag",
diff --git a/docs/0.9.5/_modules/evennia/utils/test_resources.html b/docs/0.9.5/_modules/evennia/utils/test_resources.html
index e20f7f0068..952284061f 100644
--- a/docs/0.9.5/_modules/evennia/utils/test_resources.html
+++ b/docs/0.9.5/_modules/evennia/utils/test_resources.html
@@ -80,18 +80,18 @@
should directly give the module pathname to unload.
Example:
- ::
- # (in a test method)
- unload_module(foo)
- with mock.patch("foo.GLOBALTHING", "mockval"):
- import foo
- ... # test code using foo.GLOBALTHING, now set to 'mockval'
+ ```python
+ # (in a test method)
+ unload_module(foo)
+ with mock.patch("foo.GLOBALTHING", "mockval"):
+ import foo
+ ... # test code using foo.GLOBALTHING, now set to 'mockval'
+ ```
- Notes:
- This allows for mocking constants global to the module, since
- otherwise those would not be mocked (since a module is only
- loaded once).
+ This allows for mocking constants global to the module, since
+ otherwise those would not be mocked (since a module is only
+ loaded once).
"""
if isinstance(module, str):
diff --git a/docs/0.9.5/_modules/evennia/utils/utils.html b/docs/0.9.5/_modules/evennia/utils/utils.html
index 2dcf9e4cf9..a5dd1ceeaf 100644
--- a/docs/0.9.5/_modules/evennia/utils/utils.html
+++ b/docs/0.9.5/_modules/evennia/utils/utils.html
@@ -401,17 +401,17 @@
values with double quotes.
Returns:
- liststr (str): The list represented as a string.
+ str: The list represented as a string.
Examples:
```python
- # no endsep:
- [1,2,3] -> '1, 2, 3'
- # with endsep=='and':
- [1,2,3] -> '1, 2 and 3'
- # with addquote and endsep
- [1,2,3] -> '"1", "2" and "3"'
+ >>> list_to_string([1,2,3], endsep='')
+ '1, 2, 3'
+ >>> list_to_string([1,2,3], ensdep='and')
+ '1, 2 and 3'
+ >>> list_to_string([1,2,3], endsep='and', addquote=True)
+ '"1", "2" and "3"'
```
"""
@@ -891,7 +891,7 @@
the text with "?" in place of problematic characters. If the specified encoding cannot
be found, the protocol flag is reset to utf-8. In any case, returns bytes.
- Note:
+ Notes:
If `text` is already bytes, return it as is.
"""
@@ -931,7 +931,7 @@
Returns:
decoded_text (str): The decoded text.
- Note:
+ Notes:
If `text` is already str, return it as is.
"""
if isinstance(text, str):
@@ -985,18 +985,17 @@
distance from parent.
Args:
- obj (any): Object to analyze. This may be either an instance
- or a class.
- parent (any): Can be either instance, class or python path to class.
+ obj (any): Object to analyze. This may be either an instance or
+ a class.
+ parent (any): Can be either an instance, a class or the python
+ path to the class.
Returns:
inherits_from (bool): If `parent` is a parent to `obj` or not.
Notes:
- What differs this function from e.g. `isinstance()` is that `obj`
- may be both an instance and a class, and parent may be an
- instance, a class, or the python path to a class (counting from
- the evennia root directory).
+ What differentiates this function from Python's `isinstance()` is the
+ flexibility in the types allowed for the object and parent being compared.
"""
@@ -1044,8 +1043,7 @@
shortcut to having to use the full backend name.
Args:
- name (str): One of 'sqlite3', 'mysql', 'postgresql'
- or 'oracle'.
+ name (str): One of 'sqlite3', 'mysql', 'postgresql' or 'oracle'.
Returns:
uses (bool): If the given database is used or not.
@@ -1069,20 +1067,19 @@
timedelay (int or float): The delay in seconds
callback (callable): Will be called as `callback(*args, **kwargs)`
after `timedelay` seconds.
- args (any, optional): Will be used as arguments to callback
+ *args: Will be used as arguments to callback
Keyword Args:
- persistent (bool, optional): should make the delay persistent
- over a reboot or reload
- any (any): Will be used as keyword arguments to callback.
+ persistent (bool): Make the delay persistent over a reboot or reload.
+ any: Any other keywords will be use as keyword arguments to callback.
Returns:
- deferred (deferred): Will fire with callback after
- `timedelay` seconds. Note that if `timedelay()` is used in the
- commandhandler callback chain, the callback chain can be
- defined directly in the command body and don't need to be
- specified here.
+ deferred: Will fire with callback after `timedelay` seconds. Note that
+ if `timedelay()` is used in the
+ commandhandler callback chain, the callback chain can be
+ defined directly in the command body and don't need to be
+ specified here.
- Note:
+ Notes:
The task handler (`evennia.scripts.taskhandler.TASK_HANDLER`) will
be called for persistent or non-persistent tasks.
If persistent is set to True, the callback, its arguments
@@ -1113,17 +1110,16 @@
executed with `*args` and non-reserved `**kwargs` as arguments.
The callable will be executed using ProcPool, or in a thread
if ProcPool is not available.
-
Keyword Args:
at_return (callable): Should point to a callable with one
- argument. It will be called with the return value from
- to_execute.
+ argument. It will be called with the return value from
+ to_execute.
at_return_kwargs (dict): This dictionary will be used as
- keyword arguments to the at_return callback.
+ keyword arguments to the at_return callback.
at_err (callable): This will be called with a Failure instance
- if there is an error in to_execute.
+ if there is an error in to_execute.
at_err_kwargs (dict): This dictionary will be used as keyword
- arguments to the at_err errback.
+ arguments to the at_err errback.
Notes:
All other `*args` and `**kwargs` will be passed on to
@@ -1209,7 +1205,7 @@
[docs]def has_parent(basepath, obj):
"""
- Checks if `basepath` is somewhere in `obj`'s parent tree.
+ Checks if `basepath` is somewhere in obj's parent tree.
Args:
basepath (str): Python dotpath to compare against obj path.
@@ -1577,8 +1573,8 @@
Returns:
suggestions (list): Suggestions from `vocabulary` with a
- similarity-rating that higher than or equal to `cutoff`.
- Could be empty if there are no matches.
+ similarity-rating that higher than or equal to `cutoff`.
+ Could be empty if there are no matches.
"""
return [
@@ -1646,11 +1642,9 @@
[docs]def format_table(table, extra_space=1):
"""
- Note: `evennia.utils.evtable` is more powerful than this, but this function
- can be useful when the number of columns and rows are unknown and must be
- calculated on the fly.
+ Format a 2D array of strings into a multi-column table.
- Args.
+ Args:
table (list): A list of lists to represent columns in the
table: `[[val,val,val,...], [val,val,val,...], ...]`, where
each val will be placed on a separate row in the
@@ -1660,26 +1654,30 @@
padding (in characters) should be left between columns.
Returns:
- table (list): A list of lists representing the rows to print
- out one by one.
+ list: A list of lists representing the rows to print out one by one.
Notes:
The function formats the columns to be as wide as the widest member
of each column.
- Example:
- ::
+ `evennia.utils.evtable` is more powerful than this, but this
+ function can be useful when the number of columns and rows are
+ unknown and must be calculated on the fly.
- ftable = format_table([[...], [...], ...])
- for ir, row in enumarate(ftable):
- if ir == 0:
- # make first row white
- string += "\\\\n|w" + ""join(row) + "|n"
- else:
- string += "\\\\n" + "".join(row)
- print(string)
+ Examples: ::
+
+ ftable = format_table([[1,2,3], [4,5,6]])
+ string = ""
+ for ir, row in enumarate(ftable):
+ if ir == 0:
+ # make first row white
+ string += "\\n|w" + "".join(row) + "|n"
+ else:
+ string += "\\n" + "".join(row)
+ print(string)
"""
+
if not table:
return [[]]
@@ -1695,6 +1693,191 @@
return ftable
+[docs]def percent(value, minval, maxval, formatting="{:3.1f}%"):
+ """
+ Get a value in an interval as a percentage of its position
+ in that interval. This also understands negative numbers.
+
+ Args:
+ value (number): This should be a value minval<=value<=maxval.
+ minval (number or None): Smallest value in interval. This could be None
+ for an open interval (then return will always be 100%)
+ maxval (number or None): Biggest value in interval. This could be None
+ for an open interval (then return will always be 100%)
+ formatted (str, optional): This is a string that should
+ accept one formatting tag. This will receive the
+ current value as a percentage. If None, the
+ raw float will be returned instead.
+ Returns:
+ str or float: The formatted value or the raw percentage as a float.
+ Notes:
+ We try to handle a weird interval gracefully.
+
+ - If either maxval or minval is None (open interval), we (aribtrarily) assume 100%.
+ - If minval > maxval, we return 0%.
+ - If minval == maxval == value we are looking at a single value match and return 100%.
+ - If minval == maxval != value we return 0%.
+ - If value not in [minval..maxval], we set value to the closest
+ boundary, so the result will be 0% or 100%, respectively.
+
+ """
+ result = None
+ if None in (minval, maxval):
+ # we have no boundaries, percent calculation makes no sense,
+ # we set this to 100% since it
+ result = 100.0
+ elif minval > maxval:
+ # interval has no width so we cannot
+ # occupy any position within it.
+ result = 0.0
+ elif minval == maxval == value:
+ # this is a single value that we match
+ result = 100.0
+ elif minval == maxval != value:
+ # interval has no width so we cannot be in it.
+ result = 0.0
+
+ if result is None:
+ # constrain value to interval
+ value = min(max(minval, value), maxval)
+
+ # these should both be >0
+ dpart = value - minval
+ dfull = maxval - minval
+ result = (dpart / dfull) * 100.0
+
+ if isinstance(formatting, str):
+ return formatting.format(result)
+ return result
+
+
+import functools # noqa
+
+
+[docs]def percentile(iterable, percent, key=lambda x: x):
+ """
+ Find the percentile of a list of values.
+
+ Args:
+ iterable (iterable): A list of values. Note N MUST BE already sorted.
+ percent (float): A value from 0.0 to 1.0.
+ key (callable, optional). Function to compute value from each element of N.
+
+ Returns:
+ float: The percentile of the values
+
+ """
+ if not iterable:
+ return None
+ k = (len(iterable) - 1) * percent
+ f = math.floor(k)
+ c = math.ceil(k)
+ if f == c:
+ return key(iterable[int(k)])
+ d0 = key(iterable[int(f)]) * (c - k)
+ d1 = key(iterable[int(c)]) * (k - f)
+ return d0 + d1
+
+
+[docs]def format_grid(elements, width=78, sep=" ", verbatim_elements=None):
+ """
+ This helper function makes a 'grid' output, where it distributes the given
+ string-elements as evenly as possible to fill out the given width.
+ will not work well if the variation of length is very big!
+
+ Args:
+ elements (iterable): A 1D list of string elements to put in the grid.
+ width (int, optional): The width of the grid area to fill.
+ sep (str, optional): The extra separator to put between words. If
+ set to the empty string, words may run into each other.
+ verbatim_elements (list, optional): This is a list of indices pointing to
+ specific items in the `elements` list. An element at this index will
+ not be included in the calculation of the slot sizes. It will still
+ be inserted into the grid at the correct position and may be surrounded
+ by padding unless filling the entire line. This is useful for embedding
+ decorations in the grid, such as horizontal bars.
+
+ Returns:
+ gridstr: The grid as a list of ready-formatted rows. We return it
+ like this to make it easier to insert decorations between rows, such
+ as horizontal bars.
+ """
+ if not verbatim_elements:
+ verbatim_elements = []
+
+ nelements = len(elements)
+ # add sep to all but the very last element
+ elements = [elements[ie] + sep for ie in range(nelements - 1)] + [elements[-1]]
+ wls = [len(elem) for elem in elements]
+ wls_percentile = [wl for iw, wl in enumerate(wls) if iw not in verbatim_elements]
+ # from pudb import debugger
+ # debugger.Debugger().set_trace()
+
+ # get the nth percentile as a good representation of average width
+ averlen = int(percentile(sorted(wls_percentile), 0.9)) + 2 # include extra space
+ aver_per_row = width // averlen + 1
+
+ if aver_per_row == 1:
+ # one line per row, output directly since this is trivial
+ # we use rstrip here to remove extra spaces added by sep
+ return [
+ crop(element.rstrip(), width) + " " * max(0, width - len(element.rstrip()))
+ for iel, element in enumerate(elements)
+ ]
+
+ indices = [averlen * ind for ind in range(aver_per_row - 1)]
+
+ rows = []
+ ic = 0
+ row = ""
+ for ie, element in enumerate(elements):
+
+ wl = wls[ie]
+ lrow = len(row)
+ debug = row.replace(" ", ".")
+
+ if lrow + wl > width:
+ # this slot extends outside grid, move to next line
+ row += " " * (width - lrow)
+ rows.append(row)
+ if wl >= width:
+ # remove sep if this fills the entire line
+ element = element.rstrip()
+ row = crop(element, width)
+ ic = 0
+ elif ic >= aver_per_row - 1:
+ # no more slots available on this line
+ row += " " * max(0, (width - lrow))
+ rows.append(row)
+ row = crop(element, width)
+ ic = 0
+ else:
+ try:
+ while lrow > max(0, indices[ic]):
+ # slot too wide, extend into adjacent slot
+ ic += 1
+ row += " " * max(0, indices[ic] - lrow)
+ except IndexError:
+ # we extended past edge of grid, crop or move to next line
+ if ic == 0:
+ row = crop(element, width)
+ else:
+ row += " " * max(0, width - lrow)
+ rows.append(row)
+ ic = 0
+ else:
+ # add a new slot
+ row += element + " " * max(0, averlen - wl)
+ ic += 1
+
+ if ie >= nelements - 1:
+ # last element, make sure to store
+ row += " " * max(0, width - len(row))
+ rows.append(row)
+
+ return rows
+
+
[docs]def get_evennia_pids():
"""
Get the currently valid PIDs (Process IDs) of the Portal and
@@ -1706,13 +1889,13 @@
Examples:
This can be used to determine if we are in a subprocess by
- something like:
```python
self_pid = os.getpid()
server_pid, portal_pid = get_evennia_pids()
is_subprocess = self_pid not in (server_pid, portal_pid)
```
+
"""
server_pidfile = os.path.join(settings.GAME_DIR, "server.pid")
portal_pidfile = os.path.join(settings.GAME_DIR, "portal.pid")
@@ -1928,16 +2111,15 @@
query (str, optional): The search query used to produce `matches`.
quiet (bool, optional): If `True`, no messages will be echoed to caller
on errors.
-
Keyword Args:
nofound_string (str): Replacement string to echo on a notfound error.
multimatch_string (str): Replacement string to echo on a multimatch error.
Returns:
processed_result (Object or None): This is always a single result
- or `None`. If `None`, any error reporting/handling should
- already have happened. The returned object is of the type we are
- checking multimatches for (e.g. Objects or Commands)
+ or `None`. If `None`, any error reporting/handling should
+ already have happened. The returned object is of the type we are
+ checking multimatches for (e.g. Objects or Commands)
"""
@@ -1996,10 +2178,10 @@
Keyword Args:
size_limit (int): Use this to limit the number of elements
- alloweds to be in this list. By default the overshooting elements
- will be removed in FIFO order.
+ alloweds to be in this list. By default the overshooting elements
+ will be removed in FIFO order.
fifo (bool, optional): Defaults to `True`. Remove overshooting elements
- in FIFO order. If `False`, remove in FILO order.
+ in FIFO order. If `False`, remove in FILO order.
"""
super().__init__()
@@ -2066,10 +2248,10 @@
from this parent.
Returns:
- typeclasses (dict): On the form {"typeclass.path": typeclass, ...}
+ dict: On the form `{"typeclass.path": typeclass, ...}`
Notes:
- This will dynamicall retrieve all abstract django models inheriting at any distance
+ This will dynamically retrieve all abstract django models inheriting at any distance
from the TypedObject base (aka a Typeclass) so it will work fine with any custom
classes being added.
@@ -2092,14 +2274,19 @@
[docs]def interactive(func):
"""
- Decorator to make a method pausable with yield(seconds) and able to ask for
- user-input with `response=yield(question)`. For the question-asking to
- work, 'caller' must the name of an argument or kwarg to the decorated
- function.
+ Decorator to make a method pausable with `yield(seconds)`
+ and able to ask for user-input with `response=yield(question)`.
+ For the question-asking to work, one of the args or kwargs to the
+ decorated function must be named 'caller'.
- Example:
- ::
+ Raises:
+ ValueError: If asking an interactive question but the decorated
+ function has no arg or kwarg named 'caller'.
+ ValueError: If passing non int/float to yield using for pausing.
+ Examples:
+
+ ```python
@interactive
def myfunc(caller):
caller.msg("This is a test")
@@ -2111,9 +2298,10 @@
yield(5)
else:
# ...
+ ```
Notes:
- This turns the method into a generator!
+ This turns the decorated function or method into a generator.
"""
from evennia.utils.evmenu import get_input
diff --git a/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html b/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html
index 34c14e6706..5aa1bda835 100644
--- a/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html
+++ b/docs/0.9.5/_modules/evennia/utils/validatorfuncs.html
@@ -89,12 +89,10 @@
account (AccountDB): The Account performing this lookup. Unless `from_tz` is provided,
the account's timezone option will be used.
from_tz (pytz.timezone): An instance of a pytz timezone object from the
- user. If not provided, tries to use the timezone option of the `account`.
+ user. If not provided, tries to use the timezone option of `account`.
If neither one is provided, defaults to UTC.
-
Returns:
datetime in UTC.
-
Raises:
ValueError: If encountering a malformed timezone, date string or other format error.
diff --git a/docs/0.9.5/api/evennia-api.html b/docs/0.9.5/api/evennia-api.html
index 7fb80cbcbd..a0b27971be 100644
--- a/docs/0.9.5/api/evennia-api.html
+++ b/docs/0.9.5/api/evennia-api.html
@@ -266,8 +266,14 @@
evennia.utils
- evennia.utils.ansi
- evennia.utils.batchprocessors
- evennia.utils.containers
diff --git a/docs/0.9.5/api/evennia.accounts.accounts.html b/docs/0.9.5/api/evennia.accounts.accounts.html
index 66f3ae65ed..28cb5ce2bf 100644
--- a/docs/0.9.5/api/evennia.accounts.accounts.html
+++ b/docs/0.9.5/api/evennia.accounts.accounts.html
@@ -939,6 +939,94 @@ overriding the call (unused by default).
+
+-
+class
evennia.accounts.accounts.DefaultGuest(*args, **kwargs)[source]¶
+Bases: evennia.accounts.accounts.DefaultAccount
+This class is used for guest logins. Unlike Accounts, Guests and
+their characters are deleted after disconnection.
+
+-
+classmethod
create(**kwargs)[source]¶
+Forwards request to cls.authenticate(); returns a DefaultGuest object
+if one is available for use.
+
+
+
+-
+classmethod
authenticate(**kwargs)[source]¶
+Gets or creates a Guest account object.
+
+- Keyword Arguments
+ip (str, optional) – IP address of requestor; used for ban checking,
+throttling and logging
+
+- Returns
+account (Object) – Guest account object, if available
+errors (list): List of error messages accrued during this request.
+
+
+
+
+
+-
+
at_post_login(session=None, **kwargs)[source]¶
+In theory, guests only have one character regardless of which
+MULTISESSION_MODE we’re in. They don’t get a choice.
+
+- Parameters
+
+session (Session, optional) – Session connecting.
+**kwargs (dict) – Arbitrary, optional arguments for users
+overriding the call (unused by default).
+
+
+
+
+
+
+-
+
at_server_shutdown()[source]¶
+We repeat the functionality of at_disconnect() here just to
+be on the safe side.
+
+
+
+-
+
at_post_disconnect(**kwargs)[source]¶
+Once having disconnected, destroy the guest’s characters and
+
+- Parameters
+**kwargs (dict) – Arbitrary, optional arguments for users
+overriding the call (unused by default).
+
+
+
+
+
+-
+exception
DoesNotExist¶
+Bases: evennia.accounts.accounts.DefaultAccount.DoesNotExist
+
+
+
+-
+exception
MultipleObjectsReturned¶
+Bases: evennia.accounts.accounts.DefaultAccount.MultipleObjectsReturned
+
+
+
+-
+
path = 'evennia.accounts.accounts.DefaultGuest'¶
+
+
+
+-
+
typename = 'DefaultGuest'¶
+
+
+
+
diff --git a/docs/0.9.5/api/evennia.commands.command.html b/docs/0.9.5/api/evennia.commands.command.html
index 68600c8417..2d21e377e4 100644
--- a/docs/0.9.5/api/evennia.commands.command.html
+++ b/docs/0.9.5/api/evennia.commands.command.html
@@ -374,17 +374,6 @@ commands the caller can use.
-
--
-
client_height()[source]¶
-Get the client screenheight for the session using this command.
-
-- Returns
-client height (int) – The height (in characters) of the client window.
-
-
-
-
-
styled_table(*args, **kwargs)[source]¶
@@ -437,6 +426,11 @@ detailing the contents of the table.
save_for_next = False¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': '\n Base command\n\n Usage:\n command [args]\n\n This is the base command class. Inherit from this\n to create new commands.\n\n The cmdhandler makes the following variables available to the\n command methods (so you can always assume them to be there):\n self.caller - the game object calling the command\n self.cmdstring - the command name used to trigger this command (allows\n you to know which alias was used, for example)\n cmd.args - everything supplied to the command following the cmdstring\n (this is usually what is parsed in self.parse())\n cmd.cmdset - the cmdset from which this command was matched (useful only\n seldomly, notably for help-type commands, to create dynamic\n help entries and lists)\n cmd.obj - the object on which this command is defined. If a default command,\n this is usually the same as caller.\n cmd.rawstring - the full raw string input, including any args and no parsing.\n\n The following class properties can/should be defined on your child class:\n\n key - identifier for command (e.g. "look")\n aliases - (optional) list of aliases (e.g. ["l", "loo"])\n locks - lock string (default is "cmd:all()")\n help_category - how to organize this help entry in help system\n (default is "General")\n auto_help - defaults to True. Allows for turning off auto-help generation\n arg_regex - (optional) raw string regex defining how the argument part of\n the command should look in order to match for this command\n (e.g. must it be a space between cmdname and arg?)\n auto_help_display_key - (optional) if given, this replaces the string shown\n in the auto-help listing. This is particularly useful for system-commands\n whose actual key is not really meaningful.\n\n (Note that if auto_help is on, this initial string is also used by the\n system to create the help entry for the command, so it\'s a good idea to\n format it similar to this one). This behavior can be changed by\n overriding the method \'get_help\' of a command: by default, this\n method returns cmd.__doc__ (that is, this very docstring, or\n the docstring of your command). You can, however, extend or\n replace this without disabling auto_help.\n '}¶
+
+
diff --git a/docs/0.9.5/api/evennia.commands.default.account.html b/docs/0.9.5/api/evennia.commands.default.account.html
index dbbe4f2cda..c7d615620c 100644
--- a/docs/0.9.5/api/evennia.commands.default.account.html
+++ b/docs/0.9.5/api/evennia.commands.default.account.html
@@ -98,6 +98,11 @@ method. Otherwise all text will be returned to all connected sessions.
lock_storage = 'cmd:all()'¶
+
+-
+
search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}¶
+
+
@@ -152,6 +157,11 @@ as you the account have access right to puppet it.
lock_storage = 'cmd:all()'¶
+
+-
+
search_index_entry = {'aliases': 'puppet', 'category': 'general', 'key': 'ic', 'tags': '', 'text': '\n control an object you have permission to puppet\n\n Usage:\n ic <character>\n\n Go in-character (IC) as a given Character.\n\n This will attempt to "become" a different object assuming you have\n the right to do so. Note that it\'s the ACCOUNT character that puppets\n characters/objects and which needs to have the correct permission!\n\n You cannot become an object that is already controlled by another\n account. In principle <character> can be any in-game object as long\n as you the account have access right to puppet it.\n '}¶
+
+
@@ -201,6 +211,11 @@ as you the account have access right to puppet it.
lock_storage = 'cmd:pperm(Player)'¶
+
+-
+
search_index_entry = {'aliases': 'unpuppet', 'category': 'general', 'key': 'ooc', 'tags': '', 'text': '\n stop puppeting and go ooc\n\n Usage:\n ooc\n\n Go out-of-character (OOC).\n\n This will leave your current character and put you in a incorporeal OOC state.\n '}¶
+
+
@@ -249,6 +264,11 @@ as you the account have access right to puppet it.
lock_storage = 'cmd:pperm(Player)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'password', 'tags': '', 'text': '\n change your password\n\n Usage:\n password <old password> = <new password>\n\n Changes your password. Make sure to pick a safe one.\n '}¶
+
+
@@ -305,6 +325,11 @@ game. Use the /all switch to disconnect from all sessions.
lock_storage = 'cmd:all()'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'quit', 'tags': '', 'text': '\n quit the game\n\n Usage:\n quit\n\n Switch:\n all - disconnect all connected sessions\n\n Gracefully disconnect your current session from the\n game. Use the /all switch to disconnect from all sessions.\n '}¶
+
+
@@ -356,6 +381,11 @@ if you want.
lock_storage = 'cmd:pperm(Player)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'charcreate', 'tags': '', 'text': '\n create a new character\n\n Usage:\n charcreate <charname> [= desc]\n\n Create a new character, optionally giving it a description. You\n may use upper-case letters in the name - you will nevertheless\n always be able to access your character using lower-case letters\n if you want.\n '}¶
+
+
@@ -414,6 +444,11 @@ later connecting with a client with different capabilities.
lock_storage = 'cmd:all()'¶
+
+-
+
search_index_entry = {'aliases': 'options', 'category': 'general', 'key': 'option', 'tags': '', 'text': '\n Set an account option\n\n Usage:\n option[/save] [name = value]\n\n Switches:\n save - Save the current option settings for future logins.\n clear - Clear the saved options.\n\n This command allows for viewing and setting client interface\n settings. Note that saved options may not be able to be used if\n later connecting with a client with different capabilities.\n\n\n '}¶
+
+
@@ -462,6 +497,11 @@ later connecting with a client with different capabilities.
lock_storage = 'cmd:all()'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'sessions', 'tags': '', 'text': '\n check your connected session(s)\n\n Usage:\n sessions\n\n Lists the sessions currently connected to your account.\n\n '}¶
+
+
@@ -512,6 +552,11 @@ also for those with all permissions.
lock_storage = 'cmd:all()'¶
+
+-
+
search_index_entry = {'aliases': 'doing', 'category': 'general', 'key': 'who', 'tags': '', 'text': '\n list who is currently online\n\n Usage:\n who\n doing\n\n Shows who is currently online. Doing is an alias that limits info\n also for those with all permissions.\n '}¶
+
+
@@ -591,6 +636,11 @@ Takes a table of columns [[val,val,…],[val,val,…],…]
lock_storage = 'cmd:all()'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'color', 'tags': '', 'text': '\n testing which colors your client support\n\n Usage:\n color ansi||xterm256\n\n Prints a color map along with in-mud color codes to use to produce\n them. It also tests what is supported in your client. Choices are\n 16-color ansi (supported in most muds) or the 256-color xterm256\n standard. No checking is done to determine your client supports\n color - if not you will see rubbish appear.\n '}¶
+
+
@@ -646,6 +696,11 @@ Use the unquell command to revert back to normal operation.
lock_storage = 'cmd:pperm(Player)'¶
+
+-
+
search_index_entry = {'aliases': 'unquell', 'category': 'general', 'key': 'quell', 'tags': '', 'text': "\n use character's permissions instead of account's\n\n Usage:\n quell\n unquell\n\n Normally the permission level of the Account is used when puppeting a\n Character/Object to determine access. This command will switch the lock\n system to make use of the puppeted Object's permissions instead. This is\n useful mainly for testing.\n Hierarchical permission quelling only work downwards, thus an Account cannot\n use a higher-permission Character to escalate their permission level.\n Use the unquell command to revert back to normal operation.\n "}¶
+
+
@@ -689,6 +744,11 @@ Use the unquell command to revert back to normal operation.
lock_storage = 'cmd:pperm(Player)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'chardelete', 'tags': '', 'text': '\n delete a character - this cannot be undone!\n\n Usage:\n chardelete <charname>\n\n Permanently deletes one of your characters.\n '}¶
+
+
@@ -746,6 +806,11 @@ to all the variables defined therein.
lock_storage = 'cmd:all();'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'style', 'tags': '', 'text': '\n In-game style options\n\n Usage:\n style\n style <option> = <value>\n\n Configure stylings for in-game display elements like table borders, help\n entriest etc. Use without arguments to see all available options.\n\n '}¶
+
+
diff --git a/docs/0.9.5/api/evennia.commands.default.admin.html b/docs/0.9.5/api/evennia.commands.default.admin.html
index b085ad5862..2f6a00356b 100644
--- a/docs/0.9.5/api/evennia.commands.default.admin.html
+++ b/docs/0.9.5/api/evennia.commands.default.admin.html
@@ -89,6 +89,11 @@ supplied it will be echoed to the user unless /quiet is set.
lock_storage = 'cmd:perm(boot) or perm(Admin)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'boot', 'tags': '', 'text': '\n kick an account from the server.\n\n Usage\n boot[/switches] <account obj> [: reason]\n\n Switches:\n quiet - Silently boot without informing account\n sid - boot by session id instead of name or dbref\n\n Boot an account object from the server. If a reason is\n supplied it will be echoed to the user unless /quiet is set.\n '}¶
+
+
@@ -163,6 +168,11 @@ values in each tuple is set to the empty string.
lock_storage = 'cmd:perm(ban) or perm(Developer)'¶
+
+-
+
search_index_entry = {'aliases': 'bans', 'category': 'admin', 'key': 'ban', 'tags': '', 'text': "\n ban an account from the server\n\n Usage:\n ban [<name or ip> [: reason]]\n\n Without any arguments, shows numbered list of active bans.\n\n This command bans a user from accessing the game. Supply an optional\n reason to be able to later remember why the ban was put in place.\n\n It is often preferable to ban an account from the server than to\n delete an account with accounts/delete. If banned by name, that account\n account can no longer be logged into.\n\n IP (Internet Protocol) address banning allows blocking all access\n from a specific address or subnet. Use an asterisk (*) as a\n wildcard.\n\n Examples:\n ban thomas - ban account 'thomas'\n ban/ip 134.233.2.111 - ban specific ip address\n ban/ip 134.233.2.* - ban all in a subnet\n ban/ip 134.233.*.* - even wider ban\n\n A single IP filter can be easy to circumvent by changing computers\n or requesting a new IP address. Setting a wide IP block filter with\n wildcards might be tempting, but remember that it may also\n accidentally block innocent users connecting from the same country\n or region.\n\n "}¶
+
+
@@ -209,6 +219,11 @@ unban.
lock_storage = 'cmd:perm(unban) or perm(Developer)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'unban', 'tags': '', 'text': '\n remove a ban from an account\n\n Usage:\n unban <banid>\n\n This will clear an account name/ip ban previously set with the ban\n command. Use this command without an argument to view a numbered\n list of bans. Use the numbers in this list to select which one to\n unban.\n\n '}¶
+
+
@@ -238,7 +253,7 @@ to accounts respectively.
@@ -267,6 +282,11 @@ to accounts respectively.
lock_storage = 'cmd:perm(emit) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}¶
+
+
@@ -310,6 +330,11 @@ to accounts respectively.
lock_storage = 'cmd:perm(newpassword) or perm(Admin)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'userpassword', 'tags': '', 'text': "\n change the password of an account\n\n Usage:\n userpassword <user obj> = <new password>\n\n Set an account's password.\n "}¶
+
+
@@ -363,6 +388,11 @@ or account. If no permission is given, list all permissions on <object>.
lock_storage = 'cmd:perm(perm) or perm(Developer)'¶
+
+-
+
search_index_entry = {'aliases': 'setperm', 'category': 'admin', 'key': 'perm', 'tags': '', 'text': '\n set the permissions of an account/object\n\n Usage:\n perm[/switch] <object> [= <permission>[,<permission>,...]]\n perm[/switch] *<account> [= <permission>[,<permission>,...]]\n\n Switches:\n del - delete the given permission from <object> or <account>.\n account - set permission on an account (same as adding * to name)\n\n This command sets/clears individual permission strings on an object\n or account. If no permission is given, list all permissions on <object>.\n '}¶
+
+
@@ -407,6 +437,11 @@ including all currently unlogged in.
lock_storage = 'cmd:perm(wall) or perm(Admin)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'admin', 'key': 'wall', 'tags': '', 'text': '\n make an announcement to all\n\n Usage:\n wall <message>\n\n Announces a message to all connected sessions\n including all currently unlogged in.\n '}¶
+
+
@@ -456,6 +491,11 @@ including all currently unlogged in.
lock_storage = 'cmd:perm(spawn) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'force', 'tags': '', 'text': '\n forces an object to execute a command\n\n Usage:\n force <object>=<command string>\n\n Example:\n force bob=get stick\n '}¶
+
+
diff --git a/docs/0.9.5/api/evennia.commands.default.batchprocess.html b/docs/0.9.5/api/evennia.commands.default.batchprocess.html
index bbf5a95917..92365d3567 100644
--- a/docs/0.9.5/api/evennia.commands.default.batchprocess.html
+++ b/docs/0.9.5/api/evennia.commands.default.batchprocess.html
@@ -103,6 +103,11 @@ skipping, reloading etc.
lock_storage = 'cmd:perm(batchcommands) or perm(Developer)'¶
+
+-
+
search_index_entry = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}¶
+
+
@@ -161,6 +166,11 @@ object copies behind when testing out the script.
lock_storage = 'cmd:superuser()'¶
+
+-
+
search_index_entry = {'aliases': 'batchcodes', 'category': 'building', 'key': 'batchcode', 'tags': '', 'text': '\n build from batch-code file\n\n Usage:\n batchcode[/interactive] <python path to file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n debug - auto-delete all objects that has been marked as\n deletable in the script file (see example files for\n syntax). This is useful so as to to not leave multiple\n object copies behind when testing out the script.\n\n Runs batches of commands from a batch-code text file (*.py).\n\n '}¶
+
+
diff --git a/docs/0.9.5/api/evennia.commands.default.building.html b/docs/0.9.5/api/evennia.commands.default.building.html
index 73e739260c..ca38b95a61 100644
--- a/docs/0.9.5/api/evennia.commands.default.building.html
+++ b/docs/0.9.5/api/evennia.commands.default.building.html
@@ -85,6 +85,11 @@ the cases, see the module doc.
lock_storage = 'cmd:all();'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'general', 'key': 'command', 'tags': '', 'text': "\n This is a parent class for some of the defining objmanip commands\n since they tend to have some more variables to define new objects.\n\n Each object definition can have several components. First is\n always a name, followed by an optional alias list and finally an\n some optional data, such as a typeclass or a location. A comma ','\n separates different objects. Like this:\n\n name1;alias;alias;alias:option, name2;alias;alias ...\n\n Spaces between all components are stripped.\n\n A second situation is attribute manipulation. Such commands\n are simpler and offer combinations\n\n objname/attr/attr/attr, objname/attr, ...\n\n "}¶
+
+
@@ -146,6 +151,11 @@ by everyone.
lock_storage = 'cmd:perm(setobjalias) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'setobjalias', 'category': 'building', 'key': 'alias', 'tags': '', 'text': "\n adding permanent aliases for object\n\n Usage:\n alias <obj> [= [alias[,alias,alias,...]]]\n alias <obj> =\n alias/category <obj> = [alias[,alias,...]:<category>\n\n Switches:\n category - requires ending input with :category, to store the\n given aliases with the given category.\n\n Assigns aliases to an object so it can be referenced by more\n than one name. Assign empty to remove all aliases from object. If\n assigning a category, all aliases given will be using this category.\n\n Observe that this is not the same thing as personal aliases\n created with the 'nick' command! Aliases set with alias are\n changing the object in question, making those aliases usable\n by everyone.\n "}¶
+
+
@@ -191,6 +201,11 @@ one exact copy of the original object will be created with the name lock_storage = 'cmd:perm(copy) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'copy', 'tags': '', 'text': "\n copy an object and its properties\n\n Usage:\n copy <original obj> [= <new_name>][;alias;alias..]\n [:<new_location>] [,<new_name2> ...]\n\n Create one or more copies of an object. If you don't supply any targets,\n one exact copy of the original object will be created with the name *_copy.\n "}¶
+
+
@@ -283,6 +298,11 @@ required and get the attribute from the object.
lock_storage = 'cmd:perm(cpattr) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'cpattr', 'tags': '', 'text': "\n copy attributes between objects\n\n Usage:\n cpattr[/switch] <obj>/<attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n cpattr[/switch] <obj>/<attr> = <obj1> [,<obj2>,<obj3>,...]\n cpattr[/switch] <attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n cpattr[/switch] <attr> = <obj1>[,<obj2>,<obj3>,...]\n\n Switches:\n move - delete the attribute from the source object after copying.\n\n Example:\n cpattr coolness = Anna/chillout, Anna/nicety, Tom/nicety\n ->\n copies the coolness attribute (defined on yourself), to attributes\n on Anna and Tom.\n\n Copy the attribute one object to one or more attributes on another object.\n If you don't supply a source object, yourself is used.\n "}¶
+
+
@@ -337,6 +357,11 @@ object. If you don’t supply a source object, yourself is used.
lock_storage = 'cmd:perm(mvattr) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'mvattr', 'tags': '', 'text': "\n move attributes between objects\n\n Usage:\n mvattr[/switch] <obj>/<attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n mvattr[/switch] <obj>/<attr> = <obj1> [,<obj2>,<obj3>,...]\n mvattr[/switch] <attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]\n mvattr[/switch] <attr> = <obj1>[,<obj2>,<obj3>,...]\n\n Switches:\n copy - Don't delete the original after moving.\n\n Move an attribute from one object to one or more attributes on another\n object. If you don't supply a source object, yourself is used.\n "}¶
+
+
@@ -405,6 +430,11 @@ object of this type like this:
lock_storage = 'cmd:perm(create) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'create', 'tags': '', 'text': "\n create new objects\n\n Usage:\n create[/drop] <objname>[;alias;alias...][:typeclass], <objname>...\n\n switch:\n drop - automatically drop the new object into your current\n location (this is not echoed). This also sets the new\n object's home to the current location rather than to you.\n\n Creates one or more new objects. If typeclass is given, the object\n is created as a child of this typeclass. The typeclass script is\n assumed to be located under types/ and any further\n directory structure is given in Python notation. So if you have a\n correct typeclass 'RedButton' defined in\n types/examples/red_button.py, you could create a new\n object of this type like this:\n\n create/drop button;red : examples.red_button.RedButton\n\n "}¶
+
+
@@ -461,6 +491,11 @@ describe the current room.
lock_storage = 'cmd:perm(desc) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'describe', 'category': 'building', 'key': 'desc', 'tags': '', 'text': '\n describe an object or the current room.\n\n Usage:\n desc [<obj> =] <description>\n\n Switches:\n edit - Open up a line editor for more advanced editing.\n\n Sets the "desc" attribute on an object. If an object is not given,\n describe the current room.\n '}¶
+
+
@@ -493,7 +528,7 @@ You can specify the /force switch to bypass this confirmation.
@@ -532,6 +567,11 @@ You can specify the /force switch to bypass this confirmation.
lock_storage = 'cmd:perm(destroy) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'del delete', 'category': 'building', 'key': 'destroy', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}¶
+
+
@@ -601,6 +641,11 @@ would be ‘north;no;n’.
lock_storage = 'cmd:perm(dig) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'dig', 'tags': '', 'text': "\n build new rooms and connect them to the current location\n\n Usage:\n dig[/switches] <roomname>[;alias;alias...][:typeclass]\n [= <exit_to_there>[;alias][:typeclass]]\n [, <exit_to_here>[;alias][:typeclass]]\n\n Switches:\n tel or teleport - move yourself to the new room\n\n Examples:\n dig kitchen = north;n, south;s\n dig house:myrooms.MyHouseTypeclass\n dig sheer cliff;cliff;sheer = climb up, climb down\n\n This command is a convenient way to build rooms quickly; it creates the\n new room and you can optionally set up exits back and forth between your\n current room and the new one. You can add as many aliases as you\n like to the name of the room and the exits in question; an example\n would be 'north;no;n'.\n "}¶
+
+
@@ -671,6 +716,11 @@ For more flexibility and power in creating rooms, use dig.
lock_storage = 'cmd: perm(tunnel) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'tun', 'category': 'building', 'key': 'tunnel', 'tags': '', 'text': '\n create new rooms in cardinal directions only\n\n Usage:\n tunnel[/switch] <direction>[:typeclass] [= <roomname>[;alias;alias;...][:typeclass]]\n\n Switches:\n oneway - do not create an exit back to the current location\n tel - teleport to the newly created room\n\n Example:\n tunnel n\n tunnel n = house;mike\'s place;green building\n\n This is a simple way to build using pre-defined directions:\n |wn,ne,e,se,s,sw,w,nw|n (north, northeast etc)\n |wu,d|n (up and down)\n |wi,o|n (in and out)\n The full names (north, in, southwest, etc) will always be put as\n main name for the exit, using the abbreviation as an alias (so an\n exit will always be able to be used with both "north" as well as\n "n" for example). Opposite directions will automatically be\n created back from the new room unless the /oneway switch is given.\n For more flexibility and power in creating rooms, use dig.\n '}¶
+
+
@@ -726,6 +776,11 @@ currently set destination.
lock_storage = 'cmd:perm(link) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'link', 'tags': '', 'text': '\n link existing rooms together with exits\n\n Usage:\n link[/switches] <object> = <target>\n link[/switches] <object> =\n link[/switches] <object>\n\n Switch:\n twoway - connect two exits. For this to work, BOTH <object>\n and <target> must be exit objects.\n\n If <object> is an exit, set its destination to <target>. Two-way operation\n instead sets the destination to the *locations* of the respective given\n arguments.\n The second form (a lone =) sets the destination to None (same as\n the unlink command) and the third form (without =) just shows the\n currently set destination.\n '}¶
+
+
@@ -776,6 +831,11 @@ and call func in CmdLink
lock_storage = 'cmd:perm(unlink) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'unlink', 'tags': '', 'text': '\n remove exit-connections between rooms\n\n Usage:\n unlink <Object>\n\n Unlinks an object, for example an exit, disconnecting\n it from whatever it was connected to.\n '}¶
+
+
@@ -824,6 +884,11 @@ It is also a convenient target of the “home” command.
lock_storage = 'cmd:perm(sethome) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'sethome', 'tags': '', 'text': '\n set an object\'s home location\n\n Usage:\n sethome <obj> [= <home_location>]\n sethom <obj>\n\n The "home" location is a "safety" location for objects; they\n will be moved there if their current location ceases to exist. All\n objects should always have a home location for this reason.\n It is also a convenient target of the "home" command.\n\n If no location is given, just view the object\'s home location.\n '}¶
+
+
@@ -868,6 +933,11 @@ to a user. Defaults to yourself.
lock_storage = 'cmd:perm(listcmdsets) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'listcmsets', 'category': 'building', 'key': 'cmdsets', 'tags': '', 'text': '\n list command sets defined on an object\n\n Usage:\n cmdsets <obj>\n\n This displays all cmdsets assigned\n to a user. Defaults to yourself.\n '}¶
+
+
@@ -912,6 +982,11 @@ rename an account.
lock_storage = 'cmd:perm(rename) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'rename', 'category': 'building', 'key': 'name', 'tags': '', 'text': '\n change the name and/or aliases of an object\n\n Usage:\n name <obj> = <newname>;alias1;alias2\n\n Rename an object to something new. Use *obj to\n rename an account.\n\n '}¶
+
+
@@ -973,6 +1048,11 @@ as well as the self.create_exit() method.
lock_storage = 'cmd:perm(open) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'open', 'tags': '', 'text': '\n open a new exit from the current room\n\n Usage:\n open <new exit>[;alias;alias..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = <destination>\n\n Handles the creation of exits. If a destination is given, the exit\n will point there. The <return exit> argument sets up an exit at the\n destination leading back to the current room. Destination name\n can be given both as a #dbref and a name, if that name is globally\n unique.\n\n '}¶
+
+
@@ -1128,6 +1208,11 @@ with older attrs that might have been named with []’s.
lock_storage = 'cmd:perm(set) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'set', 'tags': '', 'text': '\n set attribute on an object or account\n\n Usage:\n set <obj>/<attr> = <value>\n set <obj>/<attr> =\n set <obj>/<attr>\n set *<account>/<attr> = <value>\n\n Switch:\n edit: Open the line editor (string values only)\n script: If we\'re trying to set an attribute on a script\n channel: If we\'re trying to set an attribute on a channel\n account: If we\'re trying to set an attribute on an account\n room: Setting an attribute on a room (global search)\n exit: Setting an attribute on an exit (global search)\n char: Setting an attribute on a character (global search)\n character: Alias for char, as above.\n\n Sets attributes on objects. The second example form above clears a\n previously set attribute while the third form inspects the current value of\n the attribute (if any). The last one (with the star) is a shortcut for\n operating on a player Account rather than an Object.\n\n The most common data to save with this command are strings and\n numbers. You can however also set Python primitives such as lists,\n dictionaries and tuples on objects (this might be important for\n the functionality of certain custom objects). This is indicated\n by you starting your value with one of |c\'|n, |c"|n, |c(|n, |c[|n\n or |c{ |n.\n\n Once you have stored a Python primitive as noted above, you can include\n |c[<key>]|n in <attr> to reference nested values in e.g. a list or dict.\n\n Remember that if you use Python primitives like this, you must\n write proper Python syntax too - notably you must include quotes\n around your strings or you will get an error.\n\n '}¶
+
+
@@ -1182,7 +1267,7 @@ server settings.
@@ -1211,6 +1296,11 @@ server settings.
lock_storage = 'cmd:perm(typeclass) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'swap parent update type', 'category': 'building', 'key': 'typeclass', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object.\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶
+
+
@@ -1258,6 +1348,11 @@ matching the given attribute-wildcard search string.
lock_storage = 'cmd:perm(wipe) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'building', 'key': 'wipe', 'tags': '', 'text': "\n clear all attributes from an object\n\n Usage:\n wipe <object>[/<attr>[/<attr>...]]\n\n Example:\n wipe box\n wipe box/colour\n\n Wipes all of an object's attributes, or optionally only those\n matching the given attribute-wildcard search string.\n "}¶
+
+
@@ -1325,6 +1420,11 @@ them by ‘;’, i.e:
lock_storage = 'cmd: perm(locks) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'locks', 'category': 'building', 'key': 'lock', 'tags': '', 'text': "\n assign a lock definition to an object\n\n Usage:\n lock <object or *account>[ = <lockstring>]\n or\n lock[/switch] <object or *account>/<access_type>\n\n Switch:\n del - delete given access type\n view - view lock associated with given access type (default)\n\n If no lockstring is given, shows all locks on\n object.\n\n Lockstring is of the form\n access_type:[NOT] func1(args)[ AND|OR][ NOT] func2(args) ...]\n Where func1, func2 ... valid lockfuncs with or without arguments.\n Separator expressions need not be capitalized.\n\n For example:\n 'get: id(25) or perm(Admin)'\n The 'get' lock access_type is checked e.g. by the 'get' command.\n An object locked with this example lock will only be possible to pick up\n by Admins or by an object with id=25.\n\n You can add several access_types after one another by separating\n them by ';', i.e:\n 'get:id(25); delete:perm(Builder)'\n "}¶
+
+
@@ -1351,7 +1451,7 @@ If object is not specified, the current location is examined.
@@ -1446,6 +1546,11 @@ non-persistent data stored on object
lock_storage = 'cmd:perm(examine) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'exam ex', 'category': 'building', 'key': 'examine', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}¶
+
+
@@ -1477,7 +1582,7 @@ one is given.
@@ -1506,6 +1611,11 @@ one is given.
lock_storage = 'cmd:perm(find) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'search locate', 'category': 'building', 'key': 'find', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}¶
+
+
@@ -1579,6 +1689,11 @@ teleported to the target location.
lock_storage = 'cmd:perm(teleport) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'teleport', 'category': 'building', 'key': 'tel', 'tags': '', 'text': "\n teleport object to another location\n\n Usage:\n tel/switch [<object> to||=] <target location>\n\n Examples:\n tel Limbo\n tel/quiet box = Limbo\n tel/tonone box\n\n Switches:\n quiet - don't echo leave/arrive messages to the source/target\n locations for the move.\n intoexit - if target is an exit, teleport INTO\n the exit object instead of to its destination\n tonone - if set, teleport the object to a None-location. If this\n switch is set, <target location> is ignored.\n Note that the only way to retrieve\n an object from a None location is by direct #dbref\n reference. A puppeted object cannot be moved to None.\n loc - teleport object to the target's location instead of its contents\n\n Teleports an object somewhere. If no object is given, you yourself are\n teleported to the target location.\n "}¶
+
+
@@ -1636,6 +1751,11 @@ the object.
lock_storage = 'cmd:perm(script) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'addscript', 'category': 'building', 'key': 'script', 'tags': '', 'text': '\n attach a script to an object\n\n Usage:\n script[/switch] <obj> [= script_path or <scriptkey>]\n\n Switches:\n start - start all non-running scripts on object, or a given script only\n stop - stop all scripts on objects, or a given script only\n\n If no script path/key is given, lists all scripts active on the given\n object.\n Script path can be given from the base location for scripts as given in\n settings. If adding a new script, it will be started automatically\n (no /start switch is needed). Using the /start or /stop switches on an\n object without specifying a script key/path will start/stop ALL scripts on\n the object.\n '}¶
+
+
@@ -1702,6 +1822,11 @@ enough to for most grouping schemes.
lock_storage = 'cmd:perm(tag) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'tags', 'category': 'building', 'key': 'tag', 'tags': '', 'text': '\n handles the tags of an object\n\n Usage:\n tag[/del] <obj> [= <tag>[:<category>]]\n tag/search <tag>[:<category]\n\n Switches:\n search - return all objects with a given Tag\n del - remove the given tag. If no tag is specified,\n clear all tags on object.\n\n Manipulates and lists tags on objects. Tags allow for quick\n grouping of and searching for objects. If only <obj> is given,\n list all tags on the object. If /search is used, list objects\n with the given tag.\n The category can be used for grouping tags themselves, but it\n should be used with restrain - tags on their own are usually\n enough to for most grouping schemes.\n '}¶
+
+
@@ -1808,6 +1933,11 @@ displays a list of available prototypes.
lock_storage = 'cmd:perm(spawn) or perm(Builder)'¶
+
+-
+
search_index_entry = {'aliases': 'olc', 'category': 'building', 'key': 'spawn', 'tags': '', 'text': '\n spawn objects from prototype\n\n Usage:\n spawn[/noloc] <prototype_key>\n spawn[/noloc] <prototype_dict>\n\n spawn/search [prototype_keykey][;tag[,tag]]\n spawn/list [tag, tag, ...]\n spawn/list modules - list only module-based prototypes\n spawn/show [<prototype_key>]\n spawn/update <prototype_key>\n\n spawn/save <prototype_dict>\n spawn/edit [<prototype_key>]\n olc - equivalent to spawn/edit\n\n Switches:\n noloc - allow location to be None if not specified explicitly. Otherwise,\n location will default to caller\'s current location.\n search - search prototype by name or tags.\n list - list available prototypes, optionally limit by tags.\n show, examine - inspect prototype by key. If not given, acts like list.\n raw - show the raw dict of the prototype as a one-line string for manual editing.\n save - save a prototype to the database. It will be listable by /list.\n delete - remove a prototype from database, if allowed to.\n update - find existing objects with the same prototype_key and update\n them with latest version of given prototype. If given with /save,\n will auto-update all objects with the old version of the prototype\n without asking first.\n edit, menu, olc - create/manipulate prototype in a menu interface.\n\n Example:\n spawn GOBLIN\n spawn {"key":"goblin", "typeclass":"monster.Monster", "location":"#2"}\n spawn/save {"key": "grunt", prototype: "goblin"};;mobs;edit:all()\n \x0c\n Dictionary keys:\n |wprototype_parent |n - name of parent prototype to use. Required if typeclass is\n not set. Can be a path or a list for multiple inheritance (inherits\n left to right). If set one of the parents must have a typeclass.\n |wtypeclass |n - string. Required if prototype_parent is not set.\n |wkey |n - string, the main object identifier\n |wlocation |n - this should be a valid object or #dbref\n |whome |n - valid object or #dbref\n |wdestination|n - only valid for exits (object or dbref)\n |wpermissions|n - string or list of permission strings\n |wlocks |n - a lock-string\n |waliases |n - string or list of strings.\n |wndb_|n<name> - value of a nattribute (ndb_ is stripped)\n\n |wprototype_key|n - name of this prototype. Unique. Used to store/retrieve from db\n and update existing prototyped objects if desired.\n |wprototype_desc|n - desc of this prototype. Used in listings\n |wprototype_locks|n - locks of this prototype. Limits who may use prototype\n |wprototype_tags|n - tags of this prototype. Used to find prototype\n\n any other keywords are interpreted as Attributes and their values.\n\n The available prototypes are defined globally in modules set in\n settings.PROTOTYPE_MODULES. If spawn is used without arguments it\n displays a list of available prototypes.\n\n '}¶
+
+
diff --git a/docs/0.9.5/api/evennia.commands.default.comms.html b/docs/0.9.5/api/evennia.commands.default.comms.html
index 728dd26ab2..d179a186d2 100644
--- a/docs/0.9.5/api/evennia.commands.default.comms.html
+++ b/docs/0.9.5/api/evennia.commands.default.comms.html
@@ -63,7 +63,7 @@ aliases to an already joined channel.
@@ -92,6 +92,11 @@ aliases to an already joined channel.
lock_storage = 'cmd:not pperm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'tags': '', 'text': '\n add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}¶
+
+
@@ -144,6 +149,11 @@ for that channel.
lock_storage = 'cmd:not perm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}¶
+
+
@@ -195,6 +205,11 @@ channels that you control.
lock_storage = 'cmd: not pperm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'allcom', 'tags': '', 'text': "\n perform admin operations on all channels\n\n Usage:\n allcom [on | off | who | destroy]\n\n Allows the user to universally turn off or on all channels they are on, as\n well as perform a 'who' for all channels they are on. Destroy deletes all\n channels that you control.\n\n Without argument, works like comlist.\n "}¶
+
+
@@ -218,7 +233,7 @@ Use addcom/delcom to join and leave channels
-
-
aliases = ['comlist', 'clist', 'all channels', 'channellist', 'chanlist']¶
+aliases = ['comlist', 'chanlist', 'channellist', 'clist', 'all channels']¶
@@ -247,6 +262,11 @@ Use addcom/delcom to join and leave channels
lock_storage = 'cmd: not pperm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': 'comlist chanlist channellist clist all channels', 'category': 'comms', 'key': 'channels', 'tags': '', 'text': "\n list all channels available to you\n\n Usage:\n channels\n clist\n comlist\n\n Lists all channels available to you, whether you listen to them or not.\n Use 'comlist' to only view your current channel subscriptions.\n Use addcom/delcom to join and leave channels\n "}¶
+
+
@@ -295,6 +315,11 @@ Use addcom/delcom to join and leave channels
lock_storage = 'cmd: not pperm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cdestroy', 'tags': '', 'text': '\n destroy a channel you created\n\n Usage:\n cdestroy <channel>\n\n Destroys a channel that you control.\n '}¶
+
+
@@ -350,6 +375,11 @@ Use addcom/delcom to join and leave channels
lock_storage = 'cmd: not pperm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cboot', 'tags': '', 'text': "\n kick an account from a channel you control\n\n Usage:\n cboot[/quiet] <channel> = <account> [:reason]\n\n Switch:\n quiet - don't notify the channel\n\n Kicks an account or object from a channel you control.\n\n "}¶
+
+
@@ -408,6 +438,11 @@ provide the /sendername switch.
lock_storage = 'cmd: not pperm(channel_banned) and pperm(Player)'¶
+
+-
+
search_index_entry = {'aliases': 'cmsg', 'category': 'comms', 'key': 'cemit', 'tags': '', 'text': "\n send an admin message to a channel you control\n\n Usage:\n cemit[/switches] <channel> = <message>\n\n Switches:\n sendername - attach the sender's name before the message\n quiet - don't echo the message back to sender\n\n Allows the user to broadcast a message over a channel as long as\n they control it. It does not show the user's name unless they\n provide the /sendername switch.\n\n "}¶
+
+
@@ -456,6 +491,11 @@ provide the /sendername switch.
lock_storage = 'cmd: not pperm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cwho', 'tags': '', 'text': '\n show who is listening to a channel\n\n Usage:\n cwho <channel>\n\n List who is connected to a given channel you have access to.\n '}¶
+
+
@@ -504,6 +544,11 @@ provide the /sendername switch.
lock_storage = 'cmd:not pperm(channel_banned) and pperm(Player)'¶
+
+-
+
search_index_entry = {'aliases': 'channelcreate', 'category': 'comms', 'key': 'ccreate', 'tags': '', 'text': '\n create a new channel\n\n Usage:\n ccreate <new channel>[;alias;alias...] = description\n\n Creates a new channel owned by you.\n '}¶
+
+
@@ -553,6 +598,11 @@ lockstring was given, view the current lock definitions.
lock_storage = 'cmd:not pperm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'clock', 'tags': '', 'text': '\n change channel locks of a channel you control\n\n Usage:\n clock <channel> [= <lockstring>]\n\n Changes the lock access restrictions of a channel. If no\n lockstring was given, view the current lock definitions.\n '}¶
+
+
@@ -602,6 +652,11 @@ channel lists.
lock_storage = 'cmd:not pperm(channel_banned)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'cdesc', 'tags': '', 'text': '\n describe a channel you control\n\n Usage:\n cdesc <channel> = <description>\n\n Changes the description of the channel as shown in\n channel lists.\n '}¶
+
+
@@ -661,6 +716,11 @@ argument is given, you will get a list of your latest messages.
lock_storage = 'cmd:not pperm(page_banned)'¶
+
+-
+
search_index_entry = {'aliases': 'tell', 'category': 'comms', 'key': 'page', 'tags': '', 'text': "\n send a private message to another account\n\n Usage:\n page[/switches] [<account>,<account>,... = <message>]\n tell ''\n page <number>\n\n Switch:\n last - shows who you last messaged\n list - show your last <number> of tells/pages (default)\n\n Send a message to target user (if online). If no\n argument is given, you will get a list of your latest messages.\n "}¶
+
+
@@ -738,6 +798,11 @@ Provide an optional bot class path to use a custom bot.
lock_storage = 'cmd:serversetting(IRC_ENABLED) and pperm(Developer)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'irc2chan', 'tags': '', 'text': '\n Link an evennia channel to an external IRC channel\n\n Usage:\n irc2chan[/switches] <evennia_channel> = <ircnetwork> <port> <#irchannel> <botname>[:typeclass]\n irc2chan/delete botname|#dbid\n\n Switches:\n /delete - this will delete the bot and remove the irc connection\n to the channel. Requires the botname or #dbid as input.\n /remove - alias to /delete\n /disconnect - alias to /delete\n /list - show all irc<->evennia mappings\n /ssl - use an SSL-encrypted connection\n\n Example:\n irc2chan myircchan = irc.dalnet.net 6667 #mychannel evennia-bot\n irc2chan public = irc.freenode.net 6667 #evgaming #evbot:accounts.mybot.MyBot\n\n This creates an IRC bot that connects to a given IRC network and\n channel. If a custom typeclass path is given, this will be used\n instead of the default bot class.\n The bot will relay everything said in the evennia channel to the\n IRC channel and vice versa. The bot will automatically connect at\n server start, so this command need only be given once. The\n /disconnect switch will permanently delete the bot. To only\n temporarily deactivate it, use the |wservices|n command instead.\n Provide an optional bot class path to use a custom bot.\n '}¶
+
+
@@ -789,6 +854,11 @@ messages sent to either channel will be lost.
lock_storage = 'cmd:serversetting(IRC_ENABLED) and perm(ircstatus) or perm(Builder))'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'ircstatus', 'tags': '', 'text': "\n Check and reboot IRC bot.\n\n Usage:\n ircstatus [#dbref ping||nicklist||reconnect]\n\n If not given arguments, will return a list of all bots (like\n irc2chan/list). The 'ping' argument will ping the IRC network to\n see if the connection is still responsive. The 'nicklist' argument\n (aliases are 'who' and 'users') will return a list of users on the\n remote IRC channel. Finally, 'reconnect' will force the client to\n disconnect and reconnect again. This may be a last resort if the\n client has silently lost connection (this may happen if the remote\n network experience network issues). During the reconnection\n messages sent to either channel will be lost.\n\n "}¶
+
+
@@ -861,6 +931,11 @@ to identify the connection uniquely.
lock_storage = 'cmd:serversetting(RSS_ENABLED) and pperm(Developer)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'rss2chan', 'tags': '', 'text': '\n link an evennia channel to an external RSS feed\n\n Usage:\n rss2chan[/switches] <evennia_channel> = <rss_url>\n\n Switches:\n /disconnect - this will stop the feed and remove the connection to the\n channel.\n /remove - "\n /list - show all rss->evennia mappings\n\n Example:\n rss2chan rsschan = http://code.google.com/feeds/p/evennia/updates/basic\n\n This creates an RSS reader that connects to a given RSS feed url. Updates\n will be echoed as a title and news link to the given channel. The rate of\n updating is set with the RSS_UPDATE_INTERVAL variable in settings (default\n is every 10 minutes).\n\n When disconnecting you need to supply both the channel and url again so as\n to identify the connection uniquely.\n '}¶
+
+
@@ -934,6 +1009,11 @@ must be added to game settings.
lock_storage = 'cmd:serversetting(GRAPEVINE_ENABLED) and pperm(Developer)'¶
+
+-
+
search_index_entry = {'aliases': '', 'category': 'comms', 'key': 'grapevine2chan', 'tags': '', 'text': '\n Link an Evennia channel to an exteral Grapevine channel\n\n Usage:\n grapevine2chan[/switches] <evennia_channel> = <grapevine_channel>\n grapevine2chan/disconnect <connection #id>\n\n Switches:\n /list - (or no switch): show existing grapevine <-> Evennia\n mappings and available grapevine chans\n /remove - alias to disconnect\n /delete - alias to disconnect\n\n Example:\n grapevine2chan mygrapevine = gossip\n\n This creates a link between an in-game Evennia channel and an external\n Grapevine channel. The game must be registered with the Grapevine network\n (register at https://grapevine.haus) and the GRAPEVINE_* auth information\n must be added to game settings.\n '}¶
+
+
diff --git a/docs/0.9.5/api/evennia.commands.default.general.html b/docs/0.9.5/api/evennia.commands.default.general.html
index 1855adb271..b4504174b6 100644
--- a/docs/0.9.5/api/evennia.commands.default.general.html
+++ b/docs/0.9.5/api/evennia.commands.default.general.html
@@ -85,6 +85,11 @@
lock_storage = 'cmd:perm(home) or perm(Builder)'¶
+-
+
-
+
search_index_entry= {'aliases': '', 'category': 'general', 'key': 'home', 'tags': '', 'text': "\n move to your character's home location\n\n Usage:\n home\n\n Teleports you to your home location.\n "}¶
+
-
+
-
+
search_index_entry= {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶
+
-
@@ -224,6 +234,11 @@ for everyone to use, you need build privileges and the alias command.
lock_storage = 'cmd:all()'¶
-
+
-
+
search_index_entry= {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}¶
+
-
@@ -244,7 +259,7 @@ inv
-
+
search_index_entry= {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶
+
-
@@ -273,6 +288,11 @@ inv
lock_storage = 'cmd:all()'¶
-
+
-
@@ -323,6 +343,11 @@ look at you.
lock_storage = 'cmd:all()'¶
-
+
-
+
search_index_entry= {'aliases': '', 'category': 'general', 'key': 'setdesc', 'tags': '', 'text': '\n describe yourself\n\n Usage:\n setdesc <description>\n\n Add a description to yourself. This\n will be visible to people when they\n look at you.\n '}¶
+
-
@@ -372,6 +397,11 @@ your inventory.
lock_storage = 'cmd:all()'¶
-
+
-
+
search_index_entry= {'aliases': 'grab', 'category': 'general', 'key': 'get', 'tags': '', 'text': '\n pick up something\n\n Usage:\n get <obj>\n\n Picks up an object from your location and puts it in\n your inventory.\n '}¶
+
-
@@ -421,6 +451,11 @@ location you are currently in.
lock_storage = 'cmd:all()'¶
-
+
-
+
search_index_entry= {'aliases': '', 'category': 'general', 'key': 'drop', 'tags': '', 'text': '\n drop something\n\n Usage:\n drop <obj>\n\n Lets you drop an object from your inventory into the\n location you are currently in.\n '}¶
+
-
@@ -475,6 +510,11 @@ placing it in their inventory.
lock_storage = 'cmd:all()'¶
-
+
-
+
search_index_entry= {'aliases': '', 'category': 'general', 'key': 'give', 'tags': '', 'text': '\n give away something to someone\n\n Usage:\n give <inventory obj> <to||=> <target>\n\n Gives an items from your inventory to another character,\n placing it in their inventory.\n '}¶
+
-
@@ -518,6 +558,11 @@ placing it in their inventory.
lock_storage = 'cmd:all()'¶
-
+
-
+
search_index_entry= {'aliases': '" \'', 'category': 'general', 'key': 'say', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}¶
+
-
@@ -563,6 +608,11 @@ others in the room being informed.
lock_storage = 'cmd:all()'¶
-
+
-
+
search_index_entry= {'aliases': '', 'category': 'general', 'key': 'whisper', 'tags': '', 'text': '\n Speak privately as your character to another\n\n Usage:\n whisper <character> = <message>\n whisper <char1>, <char2> = <message>\n\n Talk privately to one or more characters in your current location, without\n others in the room being informed.\n '}¶
+
-
@@ -590,7 +640,7 @@ automatically begin with your name.
-
+
search_index_entry= {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶
+
-
@@ -624,6 +674,11 @@ space.
lock_storage = 'cmd:all()'¶
-
+
-
@@ -673,6 +728,11 @@ which permission groups you are a member of.
lock_storage = 'cmd:all()'¶
-
+
-
+
search_index_entry= {'aliases': 'hierarchy groups', 'category': 'general', 'key': 'access', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}¶
+
-
-static
format_help_list(hdict_cmds, hdict_db)[source]¶
+ Output a category-ordered list. The input are the pre-loaded help files for commands and database-helpfiles respectively. You can override this method to return a @@ -199,6 +199,11 @@ False: the command shouldn’t appear in the table.
lock_storage= 'cmd:all()'¶
format_help_list(hdict_cmds, hdict_db)[source]¶
-
+
-
+
search_index_entry= {'aliases': '?', 'category': 'general', 'key': 'help', 'tags': '', 'text': '\n View help or a list of topics\n\n Usage:\n help <topic or command>\n help list\n help all\n\n This will search for help on commands and other\n topics related to the game.\n '}¶
+
-
@@ -261,6 +266,11 @@ is to let everyone read the help file.
lock_storage = 'cmd:perm(Helper)'¶
-
+
-
+
search_index_entry= {'aliases': '', 'category': 'building', 'key': 'sethelp', 'tags': '', 'text': '\n Edit the help database.\n\n Usage:\n help[/switches] <topic>[[;alias;alias][,category[,locks]] [= <text>]\n\n Switches:\n edit - open a line editor to edit the topic\'s help text.\n replace - overwrite existing help topic.\n append - add text to the end of existing topic with a newline between.\n extend - as append, but don\'t add a newline.\n delete - remove help topic.\n\n Examples:\n sethelp throw = This throws something at ...\n sethelp/append pickpocketing,Thievery = This steals ...\n sethelp/replace pickpocketing, ,attr(is_thief) = This steals ...\n sethelp/edit thievery\n\n This command manipulates the help database. A help entry can be created,\n appended/merged to and deleted. If you don\'t assign a category, the\n "General" category will be used. If no lockstring is specified, default\n is to let everyone read the help file.\n\n '}¶
+

+
+
+