From d91704d20015d443529a27114afc92271164de97 Mon Sep 17 00:00:00 2001 From: Evennia docbuilder action Date: Fri, 25 Nov 2022 11:11:55 +0000 Subject: [PATCH] Updated HTML docs. --- docs/1.0-dev/.buildinfo | 2 +- docs/1.0-dev/Contribs/Contrib-Clothing.html | 56 +- .../game_systems/clothing/clothing.html | 554 ++++++++---------- .../contrib/game_systems/clothing/tests.html | 149 +++-- .../_sources/Contribs/Contrib-Clothing.md.txt | 53 +- .../api/evennia.commands.default.account.html | 4 +- ...evennia.commands.default.batchprocess.html | 4 +- .../evennia.commands.default.building.html | 12 +- .../api/evennia.commands.default.comms.html | 8 +- .../api/evennia.commands.default.general.html | 12 +- .../api/evennia.commands.default.tests.html | 2 +- .../evennia.commands.default.unloggedin.html | 12 +- ....base_systems.email_login.email_login.html | 12 +- ...b.base_systems.ingame_python.commands.html | 4 +- ...systems.mux_comms_cmds.mux_comms_cmds.html | 4 +- ...rib.full_systems.evscaperoom.commands.html | 24 +- ...ia.contrib.game_systems.barter.barter.html | 4 +- ...ontrib.game_systems.clothing.clothing.html | 186 ++---- ...a.contrib.game_systems.clothing.tests.html | 12 + ...trib.game_systems.turnbattle.tb_basic.html | 4 +- ...trib.game_systems.turnbattle.tb_equip.html | 4 +- ...trib.game_systems.turnbattle.tb_items.html | 4 +- ...trib.game_systems.turnbattle.tb_magic.html | 4 +- ...trib.game_systems.turnbattle.tb_range.html | 4 +- ...trib.grid.extended_room.extended_room.html | 4 +- .../api/evennia.contrib.rpg.dice.dice.html | 4 +- ...evennia.contrib.rpg.rpsystem.rpsystem.html | 8 +- ...ontrib.tutorials.evadventure.commands.html | 4 +- ...ntrib.tutorials.red_button.red_button.html | 16 +- ...trib.tutorials.tutorial_world.objects.html | 12 +- ...ontrib.tutorials.tutorial_world.rooms.html | 12 +- ...utils.git_integration.git_integration.html | 4 +- docs/1.0-dev/api/evennia.utils.eveditor.html | 4 +- docs/1.0-dev/api/evennia.utils.evmenu.html | 4 +- docs/1.0-dev/api/evennia.utils.evmore.html | 4 +- docs/1.0-dev/genindex.html | 70 +-- docs/1.0-dev/objects.inv | Bin 158462 -> 158461 bytes docs/1.0-dev/searchindex.js | 2 +- 38 files changed, 627 insertions(+), 655 deletions(-) diff --git a/docs/1.0-dev/.buildinfo b/docs/1.0-dev/.buildinfo index d2e6e4a9ec..d502df009e 100644 --- a/docs/1.0-dev/.buildinfo +++ b/docs/1.0-dev/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 8a5b5309aee6fce99ba1112f76e5cafa +config: 6bbb1b28a250fc681109e9280ca31eb9 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/1.0-dev/Contribs/Contrib-Clothing.html b/docs/1.0-dev/Contribs/Contrib-Clothing.html index 13b91f6ee0..3ce83be275 100644 --- a/docs/1.0-dev/Contribs/Contrib-Clothing.html +++ b/docs/1.0-dev/Contribs/Contrib-Clothing.html @@ -64,6 +64,8 @@ @@ -136,19 +138,22 @@ inherit from ClothedCharacter in your game’s And then add ClothedCharacterCmdSet in your character set in mygame/commands/default_cmdsets.py:


-from evennia.contrib.game_systems.clothing import ClothedCharacterCmdSet <--
+from evennia.contrib.game_systems.clothing import ClothedCharacterCmdSet # <--
 
 class CharacterCmdSet(default_cmds.CharacterCmdSet):
      # ...
      at_cmdset_creation(self):
 
          super().at_cmdset_creation()
-         ...
+         # ...
          self.add(ClothedCharacterCmdSet)    # <--
 
 
-

From here, you can use the default builder commands to create clothes + +

+

Usage

+

Once installed, you can use the default builder commands to create clothes with which to test the system:

create a pretty shirt : evennia.contrib.game_systems.clothing.Clothing
 set shirt/clothing_type = 'top'
@@ -186,6 +191,51 @@ that can be worn. The system as-is is fairly freeform - you
 can cover any garment with almost any other, for example - but it
 can easily be made more restrictive, and can even be tied into a
 system for armor or other equipment.

+
+
+

Configuration

+

The contrib has several optional configurations which you can define in your settings.py +Here are the settings and their default values.

+
# Maximum character length of 'wear style' strings, or None for unlimited.
+CLOTHING_WEARSTYLE_MAXLENGTH = 50
+
+# The order in which clothing types appear on the description.
+# Untyped clothing or clothing with a type not in this list goes last.
+CLOTHING_TYPE_ORDERED = [
+        "hat",
+        "jewelry",
+        "top",
+        "undershirt",
+        "gloves",
+        "fullbody",
+        "bottom",
+        "underpants",
+        "socks",
+        "shoes",
+        "accessory",
+    ]
+
+# The maximum number of clothing items that can be worn, or None for unlimited.
+CLOTHING_OVERALL_LIMIT = 20
+
+# The maximum number for specific clothing types that can be worn.
+# If the clothing item has no type or is not specified here, the only maximum is the overall limit.
+CLOTHING_TYPE_LIMIT = {"hat": 1, "gloves": 1, "socks": 1, "shoes": 1}
+
+# What types of clothes will automatically cover what other types of clothes when worn.
+# Note that clothing only gets auto-covered if it's already being worn. It's perfectly possible
+# to have your underpants showing if you put them on after your pants!
+CLOTHING_TYPE_AUTOCOVER = {
+        "top": ["undershirt"],
+        "bottom": ["underpants"],
+        "fullbody": ["undershirt", "underpants"],
+        "shoes": ["socks"],
+    }
+
+# Any types of clothes that can't be used to cover other clothes at all.
+CLOTHING_TYPE_CANT_COVER_WITH = ["jewelry"]
+
+

This document page is generated from evennia/contrib/game_systems/clothing/README.md. Changes to this file will be overwritten, so edit that file rather than this one.

diff --git a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html index bf67ecf55a..7831ae7122 100644 --- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html +++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html @@ -150,14 +150,15 @@ wear shirt """ - +from collections import defaultdict +from django.conf import settings from evennia import DefaultCharacter, DefaultObject, default_cmds from evennia.commands.default.muxcommand import MuxCommand -from evennia.utils import evtable, list_to_string +from evennia.utils import at_search_result, evtable, inherits_from, iter_to_str # Options start here. # Maximum character length of 'wear style' strings, or None for unlimited. -WEARSTYLE_MAXLENGTH = 50 +WEARSTYLE_MAXLENGTH = getattr(settings, "CLOTHING_WEARSTYLE_MAXLENGTH", 50) # The rest of these options have to do with clothing types. ContribClothing types are optional, # but can be used to give better control over how different items of clothing behave. You @@ -166,40 +167,48 @@ # The order in which clothing types appear on the description. Untyped clothing or clothing # with a type not given in this list goes last. -CLOTHING_TYPE_ORDER = [ - "hat", - "jewelry", - "top", - "undershirt", - "gloves", - "fullbody", - "bottom", - "underpants", - "socks", - "shoes", - "accessory", -] +CLOTHING_TYPE_ORDER = getattr( + settings, + "CLOTHING_TYPE_ORDERED", + [ + "hat", + "jewelry", + "top", + "undershirt", + "gloves", + "fullbody", + "bottom", + "underpants", + "socks", + "shoes", + "accessory", + ], +) # The maximum number of each type of clothes that can be worn. Unlimited if untyped or not specified. -CLOTHING_TYPE_LIMIT = {"hat": 1, "gloves": 1, "socks": 1, "shoes": 1} +CLOTHING_TYPE_LIMIT = getattr( + settings, "CLOTHING_TYPE_LIMIT", {"hat": 1, "gloves": 1, "socks": 1, "shoes": 1} +) # The maximum number of clothing items that can be worn, or None for unlimited. -CLOTHING_OVERALL_LIMIT = 20 +CLOTHING_OVERALL_LIMIT = getattr(settings, "CLOTHING_OVERALL_LIMIT", 20) # What types of clothes will automatically cover what other types of clothes when worn. # Note that clothing only gets auto-covered if it's already worn when you put something # on that auto-covers it - for example, it's perfectly possible to have your underpants # showing if you put them on after your pants! -CLOTHING_TYPE_AUTOCOVER = { - "top": ["undershirt"], - "bottom": ["underpants"], - "fullbody": ["undershirt", "underpants"], - "shoes": ["socks"], -} +CLOTHING_TYPE_AUTOCOVER = getattr( + settings, + "CLOTHING_TYPE_AUTOCOVER", + { + "top": ["undershirt"], + "bottom": ["underpants"], + "fullbody": ["undershirt", "underpants"], + "shoes": ["socks"], + }, +) # Types of clothes that can't be used to cover other clothes. -CLOTHING_TYPE_CANT_COVER_WITH = ["jewelry"] +CLOTHING_TYPE_CANT_COVER_WITH = getattr(settings, "CLOTHING_TYPE_AUTOCOVER", ["jewelry"]) # HELPER FUNCTIONS START HERE - -
[docs]def order_clothes_list(clothes_list): """ Orders a given clothes list by the order specified in CLOTHING_TYPE_ORDER. @@ -323,26 +332,29 @@ """ # Set clothing as worn self.db.worn = wearstyle - # Auto-cover appropirate clothing types, as specified above + # Auto-cover appropriate clothing types to_cover = [] - if self.db.clothing_type and self.db.clothing_type in CLOTHING_TYPE_AUTOCOVER: - for garment in get_worn_clothes(wearer): - if ( - garment.db.clothing_type - and garment.db.clothing_type in CLOTHING_TYPE_AUTOCOVER[self.db.clothing_type] - ): - to_cover.append(garment) - garment.db.covered_by = self - # Return if quiet - if quiet: - return + if clothing_type := self.db.clothing_type: + if autocover_types := CLOTHING_TYPE_AUTOCOVER.get(clothing_type): + to_cover.extend( + [ + garment + for garment in get_worn_clothes(wearer) + if garment.db.clothing_type in autocover_types + ] + ) + for garment in to_cover: + garment.db.covered_by = self + # Echo a message to the room - message = "%s puts on %s" % (wearer, self.name) - if wearstyle is not True: - message = "%s wears %s %s" % (wearer, self.name, wearstyle) - if to_cover: - message = message + ", covering %s" % list_to_string(to_cover) - wearer.location.msg_contents(message + ".")
+ if not quiet: + if type(wearstyle) is str: + message = f"$You() $conj(wear) {self.name} {wearstyle}" + else: + message = f"$You() $conj(put) on {self.name}" + if to_cover: + message += ", covering {iter_to_str(to_cover)}" + wearer.location.msg_contents(message + ".", from_obj=wearer)
[docs] def remove(self, wearer, quiet=False): """ @@ -355,24 +367,19 @@ quiet (bool): If false, does not message the room """ self.db.worn = False - remove_message = "%s removes %s." % (wearer, self.name) uncovered_list = [] # Check to see if any other clothes are covered by this object. for thing in wearer.contents: - # If anything is covered by if thing.db.covered_by == self: thing.db.covered_by = False uncovered_list.append(thing.name) - if len(uncovered_list) > 0: - remove_message = "%s removes %s, revealing %s." % ( - wearer, - self.name, - list_to_string(uncovered_list), - ) # Echo a message to the room if not quiet: - wearer.location.msg_contents(remove_message)
+ remove_message = f"$You() $conj(remove) {self.name}" + if len(uncovered_list) > 0: + remove_message += f", revealing {iter_to_str(uncovered_list)}" + wearer.location.msg_contents(remove_message + ".", from_obj=wearer)
[docs] def at_get(self, getter): """ @@ -380,7 +387,21 @@ when they're picked up, in case they've somehow had their location changed without getting removed. """ - self.db.worn = False
+ self.db.worn = False + +
[docs] def at_pre_move(self, destination, **kwargs): + """ + Called just before starting to move this object to + destination. Return False to abort move. + + Notes: + If this method returns False/None, the move is cancelled + before it is even started. + """ + # Covered clothing cannot be removed, dropped, or otherwise relocated + if self.db.covered_by: + return False + return True
[docs]class ClothedCharacter(DefaultCharacter): @@ -390,44 +411,80 @@ character typeclass. """ -
[docs] def return_appearance(self, looker): +
[docs] def get_display_desc(self, looker, **kwargs): """ - This formats a description. It is the hook a 'look' command - should call. + Get the 'desc' component of the object description. Called by `return_appearance`. Args: looker (Object): Object doing the looking. - - Notes: - The name of every clothing item carried and worn by the character - is appended to their description. If the clothing's db.worn value - is set to True, only the name is appended, but if the value is a - string, the string is appended to the end of the name, to allow - characters to specify how clothing is worn. + **kwargs: Arbitrary data for use when overriding. + Returns: + str: The desc display string. """ - if not looker: - return "" - # get description, build string - string = "|c%s|n\n" % self.get_display_name(looker) desc = self.db.desc - worn_string_list = [] - clothes_list = get_worn_clothes(self, exclude_covered=True) + + outfit_list = [] # Append worn, uncovered clothing to the description - for garment in clothes_list: - # If 'worn' is True, just append the name - if garment.db.worn is True: - worn_string_list.append(garment.name) - # Otherwise, append the name and the string value of 'worn' - elif garment.db.worn: - worn_string_list.append("%s %s" % (garment.name, garment.db.worn)) - if desc: - string += "%s" % desc - # Append worn clothes. - if worn_string_list: - string += "|/|/%s is wearing %s." % (self, list_to_string(worn_string_list)) + for garment in get_worn_clothes(self, exclude_covered=True): + wearstyle = garment.db.worn + if type(wearstyle) is str: + outfit_list.append(f"{garment.name} {wearstyle}") + else: + outfit_list.append(garment.name) + + # Create outfit string + if outfit_list: + outfit = ( + f"{self.get_display_name(looker, **kwargs)} is wearing {iter_to_str(outfit_list)}." + ) else: - string += "|/|/%s is not wearing anything." % self - return string
+ outfit = f"{self.get_display_name(looker, **kwargs)} is wearing nothing." + + # Add on to base description + if desc: + desc += f"\n\n{outfit}" + else: + desc = outfit + + return desc
+ +
[docs] def get_display_things(self, looker, **kwargs): + """ + Get the 'things' component of the object's contents. Called by `return_appearance`. + + Args: + looker (Object): Object doing the looking. + **kwargs: Arbitrary data for use when overriding. + Returns: + str: A string describing the things in object. + """ + + def _filter_visible(obj_list): + return ( + obj + for obj in obj_list + if obj != looker and obj.access(looker, "view") and not obj.db.worn + ) + + # sort and handle same-named things + things = _filter_visible(self.contents_get(content_type="object")) + + grouped_things = defaultdict(list) + for thing in things: + grouped_things[thing.get_display_name(looker, **kwargs)].append(thing) + + thing_names = [] + for thingname, thinglist in sorted(grouped_things.items()): + nthings = len(thinglist) + thing = thinglist[0] + singular, plural = thing.get_numbered_name(nthings, looker, key=thingname) + thing_names.append(singular if nthings == 1 else plural) + thing_names = iter_to_str(thing_names) + return ( + f"\n{self.get_display_name(looker, **kwargs)} is carrying {thing_names}" + if thing_names + else "" + )
# COMMANDS START HERE @@ -438,11 +495,12 @@ Puts on an item of clothing you are holding. Usage: - wear <obj> [wear style] + wear <obj> [=] [wear style] Examples: - wear shirt + wear red shirt wear scarf wrapped loosely about the shoulders + wear blue hat = at a jaunty angle All the clothes you are wearing are appended to your description. If you provide a 'wear style' after the command, the message you @@ -453,55 +511,68 @@ help_category = "clothing"
[docs] def func(self): - """ - This performs the actual command. - """ if not self.args: - self.caller.msg("Usage: wear <obj> [wear style]") + self.caller.msg("Usage: wear <obj> [=] [wear style]") return - clothing = self.caller.search(self.arglist[0], candidates=self.caller.contents) - wearstyle = True + if not self.rhs: + # check if the whole string is an object + clothing = self.caller.search(self.lhs, candidates=self.caller.contents, quiet=True) + if not clothing: + # split out the first word as the object and the rest as the wearstyle + argslist = self.lhs.split() + self.lhs = argslist[0] + self.rhs = " ".join(argslist[1:]) + clothing = self.caller.search(self.lhs, candidates=self.caller.contents) + else: + # pass the result through the search-result hook + clothing = at_search_result(clothing, self.caller, self.lhs) + + else: + # it had an explicit separator - just do a normal search for the lhs + clothing = self.caller.search(self.lhs, candidates=self.caller.contents) + if not clothing: - self.caller.msg("Thing to wear must be in your inventory.") return - if not clothing.is_typeclass(ContribClothing, exact=False): - self.caller.msg("That's not clothes!") + if not inherits_from(clothing, ContribClothing): + self.caller.msg(f"{clothing.name} isn't something you can wear.") return + if clothing.db.worn: + if not self.rhs: + # If no wearstyle was provided and the clothing is already being worn, do nothing + self.caller.msg(f"You're already wearing your {clothing.name}.") + return + elif len(self.rhs) > WEARSTYLE_MAXLENGTH: + self.caller.msg( + f"Please keep your wear style message to less than {WEARSTYLE_MAXLENGTH} characters." + ) + return + else: + # Adjust the wearstyle + clothing.db.worn = self.rhs + self.caller.location.msg_contents( + f"$You() $conj(wear) {clothing.name} {self.rhs}.", from_obj=self.caller + ) + return + + already_worn = get_worn_clothes(self.caller) + # Enforce overall clothing limit. - if CLOTHING_OVERALL_LIMIT and len(get_worn_clothes(self.caller)) >= CLOTHING_OVERALL_LIMIT: + if CLOTHING_OVERALL_LIMIT and len(already_worn) >= CLOTHING_OVERALL_LIMIT: self.caller.msg("You can't wear any more clothes.") return # Apply individual clothing type limits. - if clothing.db.clothing_type and not clothing.db.worn: - type_count = single_type_count(get_worn_clothes(self.caller), clothing.db.clothing_type) - if clothing.db.clothing_type in list(CLOTHING_TYPE_LIMIT.keys()): - if type_count >= CLOTHING_TYPE_LIMIT[clothing.db.clothing_type]: + if clothing_type := clothing.db.type: + if clothing_type in CLOTHING_TYPE_LIMIT: + type_count = single_type_count(already_worn, clothing_type) + if type_count >= CLOTHING_TYPE_LIMIT[clothing_type]: self.caller.msg( - "You can't wear any more clothes of the type '%s'." - % clothing.db.clothing_type + "You can't wear any more clothes of the type '{clothing_type}'." ) return - if clothing.db.worn and len(self.arglist) == 1: - self.caller.msg("You're already wearing %s!" % clothing.name) - return - if len(self.arglist) > 1: # If wearstyle arguments given - wearstyle_list = self.arglist # Split arguments into a list of words - del wearstyle_list[0] # Leave first argument (the clothing item) out of the wearstyle - wearstring = " ".join( - str(e) for e in wearstyle_list - ) # Join list of args back into one string - if ( - WEARSTYLE_MAXLENGTH and len(wearstring) > WEARSTYLE_MAXLENGTH - ): # If length of wearstyle exceeds limit - self.caller.msg( - "Please keep your wear style message to less than %i characters." - % WEARSTYLE_MAXLENGTH - ) - else: - wearstyle = wearstring + wearstyle = self.rhs or True clothing.wear(self.caller, wearstyle)
@@ -521,18 +592,15 @@ help_category = "clothing"
[docs] def func(self): - """ - This performs the actual command. - """ clothing = self.caller.search(self.args, candidates=self.caller.contents) if not clothing: - self.caller.msg("Thing to remove must be carried or worn.") + self.caller.msg("You don't have anything like that.") return if not clothing.db.worn: self.caller.msg("You're not wearing that!") return - if clothing.db.covered_by: - self.caller.msg("You have to take off %s first." % clothing.db.covered_by.name) + if covered := clothing.db.covered_by: + self.caller.msg(f"You have to take off {covered} first.") return clothing.remove(self.caller)
@@ -542,7 +610,7 @@ Covers a worn item of clothing with another you're holding or wearing. Usage: - cover <obj> [with] <obj> + cover <worn obj> with <obj> When you cover a clothing item, it is hidden and no longer appears in your description until it's uncovered or the item covering it is removed. @@ -551,54 +619,44 @@ key = "cover" help_category = "clothing" + rhs_split = (" with ", "=")
[docs] def func(self): - """ - This performs the actual command. - """ + if not len(self.args) or not self.rhs: + self.caller.msg("Usage: cover <worn clothing> with <clothing object>") + return - if len(self.arglist) < 2: - self.caller.msg("Usage: cover <worn clothing> [with] <clothing object>") - return - # Get rid of optional 'with' syntax - if self.arglist[1].lower() == "with" and len(self.arglist) > 2: - del self.arglist[1] - to_cover = self.caller.search(self.arglist[0], candidates=self.caller.contents) - cover_with = self.caller.search(self.arglist[1], candidates=self.caller.contents) + to_cover = self.caller.search(self.lhs, candidates=get_worn_clothes(self.caller)) + cover_with = self.caller.search(self.rhs, candidates=self.caller.contents) if not to_cover or not cover_with: return - if not to_cover.is_typeclass(ContribClothing, exact=False): - self.caller.msg("%s isn't clothes!" % to_cover.name) - return - if not cover_with.is_typeclass(ContribClothing, exact=False): - self.caller.msg("%s isn't clothes!" % cover_with.name) - return - if cover_with.db.clothing_type: - if cover_with.db.clothing_type in CLOTHING_TYPE_CANT_COVER_WITH: - self.caller.msg("You can't cover anything with that!") - return - if not to_cover.db.worn: - self.caller.msg("You're not wearing %s!" % to_cover.name) - return if to_cover == cover_with: self.caller.msg("You can't cover an item with itself!") return - if cover_with.db.covered_by: - self.caller.msg("%s is covered by something else!" % cover_with.name) + + if not inherits_from(cover_with, ContribClothing): + self.caller.msg(f"{cover_with.name} isn't something you can wear.") + rturn + + if cover_with.db.clothing_type in CLOTHING_TYPE_CANT_COVER_WITH: + self.caller.msg(f"You can't cover anything with {cover_with.name}.") return - if to_cover.db.covered_by: - self.caller.msg( - "%s is already covered by %s." % (cover_with.name, to_cover.db.covered_by.name) - ) + + if covered_by := cover_with.db.covered_by: + self.caller.msg(f"{cover_with.name} is already covered by {covered_by.name}.") return + if covered_by := to_cover.db.covered_by: + self.caller.msg(f"{to_cover.name} is already covered by {covered_by.name}.") + return + + # Put on the item to cover with if it's not on already if not cover_with.db.worn: - cover_with.wear( - self.caller, True - ) # Put on the item to cover with if it's not on already + cover_with.wear(self.caller, True) + to_cover.db.covered_by = cover_with + self.caller.location.msg_contents( - "%s covers %s with %s." % (self.caller, to_cover.name, cover_with.name) - ) - to_cover.db.covered_by = cover_with
+ f"$You() $conj(cover) {to_cover.name} with {cover_with.name}.", from_obj=self.caller + )
[docs]class CmdUncover(MuxCommand): @@ -626,126 +684,21 @@ self.caller.msg("Usage: uncover <worn clothing object>") return - to_uncover = self.caller.search(self.args, candidates=self.caller.contents) - if not to_uncover: + clothing = self.caller.search(self.args, candidates=get_worn_clothes(self.caller)) + if not clothing: return - if not to_uncover.db.worn: - self.caller.msg("You're not wearing %s!" % to_uncover.name) - return - if not to_uncover.db.covered_by: - self.caller.msg("%s isn't covered by anything!" % to_uncover.name) - return - covered_by = to_uncover.db.covered_by - if covered_by.db.covered_by: - self.caller.msg("%s is under too many layers to uncover." % (to_uncover.name)) - return - self.caller.location.msg_contents("%s uncovers %s." % (self.caller, to_uncover.name)) - to_uncover.db.covered_by = None
- - -
[docs]class CmdDrop(MuxCommand): - """ - drop something - - Usage: - drop <obj> - - Lets you drop an object from your inventory into the - location you are currently in. - """ - - key = "drop" - locks = "cmd:all()" - arg_regex = r"\s|$" - -
[docs] def func(self): - """Implement command""" - - caller = self.caller - if not self.args: - caller.msg("Drop what?") - return - - # Because the DROP command by definition looks for items - # in inventory, call the search function using location = caller - obj = caller.search( - self.args, - location=caller, - nofound_string="You aren't carrying %s." % self.args, - multimatch_string="You carry more than one %s:" % self.args, - ) - if not obj: - return - - # This part is new! - # You can't drop clothing items that are covered. - if obj.db.covered_by: - caller.msg("You can't drop that because it's covered by %s." % obj.db.covered_by) - return - # Remove clothes if they're dropped. - if obj.db.worn: - obj.remove(caller, quiet=True) - - obj.move_to(caller.location, quiet=True, move_type="drop") - caller.msg("You drop %s." % (obj.name,)) - caller.location.msg_contents("%s drops %s." % (caller.name, obj.name), exclude=caller) - # Call the object script's at_drop() method. - obj.at_drop(caller)
- - -
[docs]class CmdGive(MuxCommand): - """ - give away something to someone - - Usage: - give <inventory obj> = <target> - - Gives an items from your inventory to another character, - placing it in their inventory. - """ - - key = "give" - locks = "cmd:all()" - arg_regex = r"\s|$" - -
[docs] def func(self): - """Implement give""" - - caller = self.caller - if not self.args or not self.rhs: - caller.msg("Usage: give <inventory object> = <target>") - return - to_give = caller.search( - self.lhs, - location=caller, - nofound_string="You aren't carrying %s." % self.lhs, - multimatch_string="You carry more than one %s:" % self.lhs, - ) - target = caller.search(self.rhs) - if not (to_give and target): - return - if target == caller: - caller.msg("You keep %s to yourself." % to_give.key) - return - if not to_give.location == caller: - caller.msg("You are not holding %s." % to_give.key) - return - # This is new! Can't give away something that's worn. - if to_give.db.covered_by: - caller.msg( - "You can't give that away because it's covered by %s." % to_give.db.covered_by + if covered_by := clothing.db.covered_by: + if covered_by.db.covered_by: + self.caller.msg(f"{clothing.name} is under too many layers to uncover.") + return + clothing.db.covered_by = None + self.caller.location.msg_contents( + f"$You() $conj(uncover) {clothing.name}.", from_obj=self.caller ) - return - # Remove clothes if they're given. - if to_give.db.worn: - to_give.remove(caller) - to_give.move_to(caller.location, quiet=True, move_type="remove") - # give object - caller.msg("You give %s to %s." % (to_give.key, target.key)) - to_give.move_to(target, quiet=True, move_type="give") - target.msg("%s gives you %s." % (caller.key, to_give.key)) - # Call the object script's at_give() method. - to_give.at_give(caller, target)
+ + else: + self.caller.msg(f"{clothing.name} isn't covered by anything.") + return
[docs]class CmdInventory(MuxCommand): @@ -773,23 +726,36 @@ self.caller.msg("You are not carrying or wearing anything.") return + message_list = [] + items = self.caller.contents carry_table = evtable.EvTable(border="header") wear_table = evtable.EvTable(border="header") - for item in items: - if not item.db.worn: - carry_table.add_row("|C%s|n" % item.name, item.db.desc or "") + + carried = [obj for obj in items if not obj.db.worn] + worn = [obj for obj in items if obj.db.worn] + + message_list.append("|wYou are carrying:|n") + for item in carried: + carry_table.add_row( + item.get_display_name(self.caller), item.get_display_desc(self.caller) + ) if carry_table.nrows == 0: - carry_table.add_row("|CNothing.|n", "") - string = "|wYou are carrying:\n%s" % carry_table - for item in items: - if item.db.worn: - wear_table.add_row("|C%s|n" % item.name, item.db.desc or "") + carry_table.add_row("Nothing.", "") + message_list.append(str(carry_table)) + + message_list.append("|wYou are wearing:|n") + for item in worn: + item_name = item.get_display_name(self.caller) + if item.db.covered_by: + item_name += " (hidden)" + wear_table.add_row(item_name, item.get_display_desc(self.caller)) if wear_table.nrows == 0: - wear_table.add_row("|CNothing.|n", "") - string += "|/|wYou are wearing:\n%s" % wear_table - self.caller.msg(string)
+ wear_table.add_row("Nothing.", "") + message_list.append(str(wear_table)) + + self.caller.msg("\n".join(message_list))
[docs]class ClothedCharacterCmdSet(default_cmds.CharacterCmdSet): @@ -814,8 +780,6 @@ self.add(CmdRemove()) self.add(CmdCover()) self.add(CmdUncover()) - self.add(CmdGive()) - self.add(CmdDrop()) self.add(CmdInventory())
diff --git a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/tests.html index cb60725bf5..49b2248a22 100644 --- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/tests.html +++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/tests.html @@ -90,120 +90,117 @@
[docs]class TestClothingCmd(BaseEvenniaCommandTest): -
[docs] def test_clothingcommands(self): - wearer = create_object(clothing.ClothedCharacter, key="Wearer") - friend = create_object(clothing.ClothedCharacter, key="Friend") - room = create_object(DefaultRoom, key="room") - wearer.location = room - friend.location = room +
[docs] def setUp(self): + super().setUp() + self.room = create_object(DefaultRoom, key="Room") + self.wearer = create_object(clothing.ClothedCharacter, key="Wearer") + self.wearer.location = self.room # Make a test hat - test_hat = create_object(clothing.ContribClothing, key="test hat") - test_hat.db.clothing_type = "hat" - test_hat.location = wearer + self.test_hat = create_object(clothing.ContribClothing, key="test hat") + self.test_hat.db.clothing_type = "hat" # Make a test scarf - test_scarf = create_object(clothing.ContribClothing, key="test scarf") - test_scarf.db.clothing_type = "accessory" - test_scarf.location = wearer + self.test_scarf = create_object(clothing.ContribClothing, key="test scarf") + self.test_scarf.db.clothing_type = "accessory"
+ +
[docs] def test_clothingcommands(self): + # Test inventory command. + self.call( + clothing.CmdInventory(), + "", + "You are not carrying or wearing anything.", + caller=self.wearer, + ) + # Test wear command - self.call(clothing.CmdWear(), "", "Usage: wear <obj> [wear style]", caller=wearer) - self.call(clothing.CmdWear(), "hat", "Wearer puts on test hat.", caller=wearer) + self.test_scarf.location = self.wearer + self.test_hat.location = self.wearer + self.call(clothing.CmdWear(), "", "Usage: wear <obj> [=] [wear style]", caller=self.wearer) + self.call(clothing.CmdWear(), "hat", "You put on test hat.", caller=self.wearer) self.call( clothing.CmdWear(), "scarf stylishly", - "Wearer wears test scarf stylishly.", - caller=wearer, + "You wear test scarf stylishly.", + caller=self.wearer, ) # Test cover command. self.call( clothing.CmdCover(), "", - "Usage: cover <worn clothing> [with] <clothing object>", - caller=wearer, + "Usage: cover <worn clothing> with <clothing object>", + caller=self.wearer, ) self.call( clothing.CmdCover(), "hat with scarf", - "Wearer covers test hat with test scarf.", - caller=wearer, + "You cover test hat with test scarf.", + caller=self.wearer, ) # Test remove command. - self.call(clothing.CmdRemove(), "", "Could not find ''.", caller=wearer) + self.call(clothing.CmdRemove(), "", "Could not find ''.", caller=self.wearer) self.call( - clothing.CmdRemove(), "hat", "You have to take off test scarf first.", caller=wearer + clothing.CmdRemove(), + "hat", + "You have to take off test scarf first.", + caller=self.wearer, ) self.call( clothing.CmdRemove(), "scarf", - "Wearer removes test scarf, revealing test hat.", - caller=wearer, + "You remove test scarf, revealing test hat.", + caller=self.wearer, ) # Test uncover command. - test_scarf.wear(wearer, True) - test_hat.db.covered_by = test_scarf - self.call(clothing.CmdUncover(), "", "Usage: uncover <worn clothing object>", caller=wearer) - self.call(clothing.CmdUncover(), "hat", "Wearer uncovers test hat.", caller=wearer) - # Test drop command. - test_hat.db.covered_by = test_scarf - self.call(clothing.CmdDrop(), "", "Drop what?", caller=wearer) + self.test_scarf.wear(self.wearer, True) + self.test_hat.db.covered_by = self.test_scarf self.call( - clothing.CmdDrop(), - "hat", - "You can't drop that because it's covered by test scarf.", - caller=wearer, + clothing.CmdUncover(), "", "Usage: uncover <worn clothing object>", caller=self.wearer ) - self.call(clothing.CmdDrop(), "scarf", "You drop test scarf.", caller=wearer) - # Test give command. - self.call( - clothing.CmdGive(), "", "Usage: give <inventory object> = <target>", caller=wearer - ) - self.call( - clothing.CmdGive(), - "hat = Friend", - "Wearer removes test hat.|You give test hat to Friend.", - caller=wearer, - ) - # Test inventory command. - self.call( - clothing.CmdInventory(), "", "You are not carrying or wearing anything.", caller=wearer - )
+ self.call(clothing.CmdUncover(), "hat", "You uncover test hat.", caller=self.wearer)
[docs]class TestClothingFunc(BaseEvenniaTest): -
[docs] def test_clothingfunctions(self): - wearer = create_object(clothing.ClothedCharacter, key="Wearer") - room = create_object(DefaultRoom, key="room") - wearer.location = room +
[docs] def setUp(self): + super().setUp() + self.room = create_object(DefaultRoom, key="Room") + self.wearer = create_object(clothing.ClothedCharacter, key="Wearer") + self.wearer.location = self.room # Make a test hat - test_hat = create_object(clothing.ContribClothing, key="test hat") - test_hat.db.clothing_type = "hat" - test_hat.location = wearer + self.test_hat = create_object(clothing.ContribClothing, key="test hat") + self.test_hat.db.clothing_type = "hat" + self.test_hat.location = self.wearer # Make a test shirt - test_shirt = create_object(clothing.ContribClothing, key="test shirt") - test_shirt.db.clothing_type = "top" - test_shirt.location = wearer - # Make a test pants - test_pants = create_object(clothing.ContribClothing, key="test pants") - test_pants.db.clothing_type = "bottom" - test_pants.location = wearer + self.test_shirt = create_object(clothing.ContribClothing, key="test shirt") + self.test_shirt.db.clothing_type = "top" + self.test_shirt.location = self.wearer + # Make test pants + self.test_pants = create_object(clothing.ContribClothing, key="test pants") + self.test_pants.db.clothing_type = "bottom" + self.test_pants.location = self.wearer
- test_hat.wear(wearer, "on the head") - self.assertEqual(test_hat.db.worn, "on the head") +
[docs] def test_clothingfunctions(self): + self.test_hat.wear(self.wearer, "on the head") + self.assertEqual(self.test_hat.db.worn, "on the head") - test_hat.remove(wearer) - self.assertEqual(test_hat.db.worn, False) + self.test_hat.remove(self.wearer) + self.assertFalse(self.test_hat.db.worn) - test_hat.worn = True - test_hat.at_get(wearer) - self.assertEqual(test_hat.db.worn, False) + self.test_hat.db.worn = True + self.test_hat.at_get(self.wearer) + self.assertFalse(self.test_hat.db.worn) - clothes_list = [test_shirt, test_hat, test_pants] + self.test_hat.db.covered_by = self.test_shirt + can_move = self.test_hat.at_pre_move(self.room) + self.assertFalse(can_move) + + clothes_list = [self.test_shirt, self.test_hat, self.test_pants] self.assertEqual( - clothing.order_clothes_list(clothes_list), [test_hat, test_shirt, test_pants] + clothing.order_clothes_list(clothes_list), + [self.test_hat, self.test_shirt, self.test_pants], ) - test_hat.wear(wearer, True) - test_pants.wear(wearer, True) - self.assertEqual(clothing.get_worn_clothes(wearer), [test_hat, test_pants]) + self.test_hat.wear(self.wearer, True) + self.test_pants.wear(self.wearer, True) + self.assertEqual(clothing.get_worn_clothes(self.wearer), [self.test_hat, self.test_pants]) self.assertEqual( clothing.clothing_type_count(clothes_list), {"hat": 1, "top": 1, "bottom": 1} diff --git a/docs/1.0-dev/_sources/Contribs/Contrib-Clothing.md.txt b/docs/1.0-dev/_sources/Contribs/Contrib-Clothing.md.txt index 21addd6ecb..c5e89dca34 100644 --- a/docs/1.0-dev/_sources/Contribs/Contrib-Clothing.md.txt +++ b/docs/1.0-dev/_sources/Contribs/Contrib-Clothing.md.txt @@ -36,19 +36,21 @@ And then add `ClothedCharacterCmdSet` in your character set in ```python -from evennia.contrib.game_systems.clothing import ClothedCharacterCmdSet <-- +from evennia.contrib.game_systems.clothing import ClothedCharacterCmdSet # <-- class CharacterCmdSet(default_cmds.CharacterCmdSet): # ... at_cmdset_creation(self): super().at_cmdset_creation() - ... + # ... self.add(ClothedCharacterCmdSet) # <-- ``` -From here, you can use the default builder commands to create clothes +## Usage + +Once installed, you can use the default builder commands to create clothes with which to test the system: create a pretty shirt : evennia.contrib.game_systems.clothing.Clothing @@ -87,6 +89,51 @@ can cover any garment with almost any other, for example - but it can easily be made more restrictive, and can even be tied into a system for armor or other equipment. +## Configuration + +The contrib has several optional configurations which you can define in your `settings.py` +Here are the settings and their default values. + +```python +# Maximum character length of 'wear style' strings, or None for unlimited. +CLOTHING_WEARSTYLE_MAXLENGTH = 50 + +# The order in which clothing types appear on the description. +# Untyped clothing or clothing with a type not in this list goes last. +CLOTHING_TYPE_ORDERED = [ + "hat", + "jewelry", + "top", + "undershirt", + "gloves", + "fullbody", + "bottom", + "underpants", + "socks", + "shoes", + "accessory", + ] + +# The maximum number of clothing items that can be worn, or None for unlimited. +CLOTHING_OVERALL_LIMIT = 20 + +# The maximum number for specific clothing types that can be worn. +# If the clothing item has no type or is not specified here, the only maximum is the overall limit. +CLOTHING_TYPE_LIMIT = {"hat": 1, "gloves": 1, "socks": 1, "shoes": 1} + +# What types of clothes will automatically cover what other types of clothes when worn. +# Note that clothing only gets auto-covered if it's already being worn. It's perfectly possible +# to have your underpants showing if you put them on after your pants! +CLOTHING_TYPE_AUTOCOVER = { + "top": ["undershirt"], + "bottom": ["underpants"], + "fullbody": ["undershirt", "underpants"], + "shoes": ["socks"], + } + +# Any types of clothes that can't be used to cover other clothes at all. +CLOTHING_TYPE_CANT_COVER_WITH = ["jewelry"] +``` ---- diff --git a/docs/1.0-dev/api/evennia.commands.default.account.html b/docs/1.0-dev/api/evennia.commands.default.account.html index b8c1c7e5ff..e271df0c7e 100644 --- a/docs/1.0-dev/api/evennia.commands.default.account.html +++ b/docs/1.0-dev/api/evennia.commands.default.account.html @@ -133,7 +133,7 @@ method. Otherwise all text will be returned to all connected sessions.

-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -164,7 +164,7 @@ method. Otherwise all text will be returned to all connected sessions.

-search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.batchprocess.html b/docs/1.0-dev/api/evennia.commands.default.batchprocess.html index ffa29ad410..b7288acdff 100644 --- a/docs/1.0-dev/api/evennia.commands.default.batchprocess.html +++ b/docs/1.0-dev/api/evennia.commands.default.batchprocess.html @@ -138,7 +138,7 @@ skipping, reloading etc.

-aliases = ['batchcommand', 'batchcmd']
+aliases = ['batchcmd', 'batchcommand']
@@ -169,7 +169,7 @@ skipping, reloading etc.

-search_index_entry = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcommand batchcmd', '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 '}
+search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcmd batchcommand', '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 '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.building.html b/docs/1.0-dev/api/evennia.commands.default.building.html index fce75df229..79522bce3d 100644 --- a/docs/1.0-dev/api/evennia.commands.default.building.html +++ b/docs/1.0-dev/api/evennia.commands.default.building.html @@ -592,7 +592,7 @@ You can specify the /force switch to bypass this confirmation.

-aliases = ['@delete', '@del']
+aliases = ['@del', '@delete']
@@ -633,7 +633,7 @@ You can specify the /force switch to bypass this confirmation.

-search_index_entry = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', '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 '}
+search_index_entry = {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', '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 '}
@@ -1345,7 +1345,7 @@ server settings.

-aliases = ['@type', '@parent', '@update', '@swap', '@typeclasses']
+aliases = ['@update', '@typeclasses', '@type', '@parent', '@swap']
@@ -1376,7 +1376,7 @@ server settings.

-search_index_entry = {'aliases': '@type @parent @update @swap @typeclasses', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type parent update swap typeclasses', '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 typeclasses or 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. This will also\n reset cmdsets!\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 "}
+search_index_entry = {'aliases': '@update @typeclasses @type @parent @swap', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass update typeclasses type parent swap', '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 typeclasses or 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. This will also\n reset cmdsets!\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 "}
@@ -1833,7 +1833,7 @@ one is given.

-aliases = ['@locate', '@search']
+aliases = ['@search', '@locate']
@@ -1864,7 +1864,7 @@ one is given.

-search_index_entry = {'aliases': '@locate @search', 'category': 'building', 'key': '@find', 'no_prefix': 'find locate search', '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 '}
+search_index_entry = {'aliases': '@search @locate', 'category': 'building', 'key': '@find', 'no_prefix': 'find search locate', '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 '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.comms.html b/docs/1.0-dev/api/evennia.commands.default.comms.html index c2f746c095..c78ef6328f 100644 --- a/docs/1.0-dev/api/evennia.commands.default.comms.html +++ b/docs/1.0-dev/api/evennia.commands.default.comms.html @@ -256,7 +256,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

-aliases = ['@channels', '@chan']
+aliases = ['@chan', '@channels']
@@ -782,7 +782,7 @@ don’t actually sub to yet.

-search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
+search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
@@ -935,7 +935,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

-aliases = ['@channels', '@chan']
+aliases = ['@chan', '@channels']
@@ -955,7 +955,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

-search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
+search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
diff --git a/docs/1.0-dev/api/evennia.commands.default.general.html b/docs/1.0-dev/api/evennia.commands.default.general.html index e6a247054c..375ed175e1 100644 --- a/docs/1.0-dev/api/evennia.commands.default.general.html +++ b/docs/1.0-dev/api/evennia.commands.default.general.html @@ -175,7 +175,7 @@ look *<account&g
-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -206,7 +206,7 @@ look *<account&g
-search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', '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 '}
+search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', '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 '}
@@ -268,7 +268,7 @@ for everyone to use, you need build privileges and the alias command.

-aliases = ['nickname', 'nicks']
+aliases = ['nicks', 'nickname']
@@ -300,7 +300,7 @@ for everyone to use, you need build privileges and the alias command.

-search_index_entry = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'no_prefix': ' nickname nicks', '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 '}
+search_index_entry = {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'no_prefix': ' nicks nickname', '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 '}
@@ -598,7 +598,7 @@ placing it in their inventory.

-aliases = ['"', "'"]
+aliases = ["'", '"']
@@ -629,7 +629,7 @@ placing it in their inventory.

-search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' " \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
+search_index_entry = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'no_prefix': ' \' "', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
diff --git a/docs/1.0-dev/api/evennia.commands.default.tests.html b/docs/1.0-dev/api/evennia.commands.default.tests.html index ed996db472..47fe8d05b7 100644 --- a/docs/1.0-dev/api/evennia.commands.default.tests.html +++ b/docs/1.0-dev/api/evennia.commands.default.tests.html @@ -902,7 +902,7 @@ main test suite started with

Test the batch processor.

-red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpow8mwbfw/c1a41b6aa316d4c76e35bfe5ee152d09b28a23a8/evennia/contrib/tutorials/red_button/red_button.py'>
+red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmp_vqcsnlo/8678cb1aa20923a4eb35262da4b62442c49bb3cd/evennia/contrib/tutorials/red_button/red_button.py'>
diff --git a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html index bfca4ebc07..e169ed3cf9 100644 --- a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html +++ b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html @@ -122,7 +122,7 @@ connect “account name” “pass word”

-aliases = ['con', 'conn', 'co']
+aliases = ['co', 'conn', 'con']
@@ -157,7 +157,7 @@ there is no object yet before the account has logged in)

-search_index_entry = {'aliases': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
+search_index_entry = {'aliases': 'co conn con', 'category': 'general', 'key': 'connect', 'no_prefix': ' co conn con', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
@@ -286,7 +286,7 @@ All it does is display the connect screen.

-aliases = ['l', 'look']
+aliases = ['look', 'l']
@@ -312,7 +312,7 @@ All it does is display the connect screen.

-search_index_entry = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
+search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
@@ -335,7 +335,7 @@ for simplicity. It shows a pane of info.

-aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -361,7 +361,7 @@ for simplicity. It shows a pane of info.

-search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
+search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html b/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html index 41f84f7ab3..20c427f149 100644 --- a/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html +++ b/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html @@ -139,7 +139,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.

-aliases = ['con', 'conn', 'co']
+aliases = ['co', 'conn', 'con']
@@ -169,7 +169,7 @@ there is no object yet before the account has logged in)

-search_index_entry = {'aliases': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}
+search_index_entry = {'aliases': 'co conn con', 'category': 'general', 'key': 'connect', 'no_prefix': ' co conn con', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}
@@ -291,7 +291,7 @@ All it does is display the connect screen.

-aliases = ['l', 'look']
+aliases = ['look', 'l']
@@ -317,7 +317,7 @@ All it does is display the connect screen.

-search_index_entry = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
+search_index_entry = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}
@@ -335,7 +335,7 @@ for simplicity. It shows a pane of info.

-aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -361,7 +361,7 @@ for simplicity. It shows a pane of info.

-search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
+search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html b/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html index e4e89477ad..bb080d9107 100644 --- a/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html +++ b/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html @@ -116,7 +116,7 @@
-aliases = ['@callback', '@callbacks', '@calls']
+aliases = ['@calls', '@callback', '@callbacks']
@@ -197,7 +197,7 @@ on user permission.

-search_index_entry = {'aliases': '@callback @callbacks @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback callbacks calls', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
+search_index_entry = {'aliases': '@calls @callback @callbacks', 'category': 'building', 'key': '@call', 'no_prefix': 'call calls callback callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html b/docs/1.0-dev/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html index 6f256818e3..4a6704c4be 100644 --- a/docs/1.0-dev/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html +++ b/docs/1.0-dev/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html @@ -160,7 +160,7 @@ aliases to an already joined channel.

-aliases = ['chanalias', 'aliaschan']
+aliases = ['aliaschan', 'chanalias']
@@ -191,7 +191,7 @@ aliases to an already joined channel.

-search_index_entry = {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' chanalias aliaschan', '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 '}
+search_index_entry = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' aliaschan chanalias', '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 '}
diff --git a/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.commands.html b/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.commands.html index b33ae4461e..a86e395b3f 100644 --- a/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.commands.html +++ b/docs/1.0-dev/api/evennia.contrib.full_systems.evscaperoom.commands.html @@ -211,7 +211,7 @@ the operation will be general or on the room.

-aliases = ['abort', 'chicken out', 'q', 'quit']
+aliases = ['chicken out', 'abort', 'q', 'quit']
@@ -235,7 +235,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'abort chicken out q quit', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort chicken out q quit', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}
+search_index_entry = {'aliases': 'chicken out abort q quit', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' chicken out abort q quit', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}
@@ -256,7 +256,7 @@ set in self.parse())

-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -290,7 +290,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'l ls', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
@@ -371,7 +371,7 @@ shout

-aliases = [';', 'shout', 'whisper']
+aliases = ['shout', 'whisper', ';']
@@ -400,7 +400,7 @@ set in self.parse())

-search_index_entry = {'aliases': '; shout whisper', 'category': 'general', 'key': 'say', 'no_prefix': ' ; shout whisper', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
+search_index_entry = {'aliases': 'shout whisper ;', 'category': 'general', 'key': 'say', 'no_prefix': ' shout whisper ;', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
@@ -490,7 +490,7 @@ looks and what actions is available.

-aliases = ['e', 'unfocus', 'examine', 'ex']
+aliases = ['unfocus', 'examine', 'ex', 'e']
@@ -519,7 +519,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'e unfocus examine ex', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' e unfocus examine ex', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}
+search_index_entry = {'aliases': 'unfocus examine ex e', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' unfocus examine ex e', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}
@@ -581,7 +581,7 @@ set in self.parse())

-aliases = ['give', 'inventory', 'i', 'inv']
+aliases = ['inv', 'give', 'i', 'inventory']
@@ -605,7 +605,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'give inventory i inv', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' give inventory i inv', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
+search_index_entry = {'aliases': 'inv give i inventory', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv give i inventory', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
@@ -626,7 +626,7 @@ set in self.parse())

-aliases = ['@dig', '@open']
+aliases = ['@open', '@dig']
@@ -649,7 +649,7 @@ to all the variables defined therein.

-search_index_entry = {'aliases': '@dig @open', 'category': 'general', 'key': 'open', 'no_prefix': ' dig open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}
+search_index_entry = {'aliases': '@open @dig', 'category': 'general', 'key': 'open', 'no_prefix': ' open dig', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.barter.barter.html b/docs/1.0-dev/api/evennia.contrib.game_systems.barter.barter.html index 60f08ffd36..2be2efb51c 100644 --- a/docs/1.0-dev/api/evennia.contrib.game_systems.barter.barter.html +++ b/docs/1.0-dev/api/evennia.contrib.game_systems.barter.barter.html @@ -745,7 +745,7 @@ try to influence the other part in the deal.

-aliases = ['offers', 'deal']
+aliases = ['deal', 'offers']
@@ -771,7 +771,7 @@ try to influence the other part in the deal.

-search_index_entry = {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', 'no_prefix': ' offers deal', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
+search_index_entry = {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'no_prefix': ' deal offers', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.clothing.html b/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.clothing.html index 669695bb9f..9be6838d90 100644 --- a/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.clothing.html +++ b/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.clothing.html @@ -309,6 +309,16 @@ when they’re picked up, in case they’ve somehow had their location changed without getting removed.

+
+
+at_pre_move(destination, **kwargs)[source]
+

Called just before starting to move this object to +destination. Return False to abort move.

+

Notes

+

If this method returns False/None, the move is cancelled +before it is even started.

+
+
exception DoesNotExist
@@ -341,21 +351,37 @@ location changed without getting removed.

just copy the return_appearance hook defined below to your own game’s character typeclass.

-
-return_appearance(looker)[source]
-

This formats a description. It is the hook a ‘look’ command -should call.

+
+get_display_desc(looker, **kwargs)[source]
+

Get the ‘desc’ component of the object description. Called by return_appearance.

Parameters
-

looker (Object) – Object doing the looking.

+
    +
  • looker (Object) – Object doing the looking.

  • +
  • **kwargs – Arbitrary data for use when overriding.

  • +
+
+
Returns
+

str – The desc display string.

+
+
+
+ +
+
+get_display_things(looker, **kwargs)[source]
+

Get the ‘things’ component of the object’s contents. Called by return_appearance.

+
+
Parameters
+
    +
  • looker (Object) – Object doing the looking.

  • +
  • **kwargs – Arbitrary data for use when overriding.

  • +
+
+
Returns
+

str – A string describing the things in object.

-

Notes

-

The name of every clothing item carried and worn by the character -is appended to their description. If the clothing’s db.worn value -is set to True, only the name is appended, but if the value is a -string, the string is appended to the end of the name, to allow -characters to specify how clothing is worn.

@@ -388,12 +414,13 @@ characters to specify how clothing is worn.

Bases: evennia.commands.default.muxcommand.MuxCommand

Puts on an item of clothing you are holding.

-
Usage:

wear <obj> [wear style]

+
Usage:

wear <obj> [=] [wear style]

Examples

-

wear shirt -wear scarf wrapped loosely about the shoulders

+

wear red shirt +wear scarf wrapped loosely about the shoulders +wear blue hat = at a jaunty angle

All the clothes you are wearing are appended to your description. If you provide a ‘wear style’ after the command, the message you provide will be displayed after the clothing’s name.

@@ -410,7 +437,9 @@ provide will be displayed after the clothing’s name.

func()[source]
-

This performs the actual command.

+

This is the hook function that actually does all the work. It is called +by the cmdhandler right after self.parser() finishes, and so has access +to all the variables defined therein.

@@ -425,7 +454,7 @@ provide will be displayed after the clothing’s name.

-search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'wear', 'no_prefix': ' ', 'tags': '', 'text': "\n Puts on an item of clothing you are holding.\n\n Usage:\n wear <obj> [wear style]\n\n Examples:\n wear shirt\n wear scarf wrapped loosely about the shoulders\n\n All the clothes you are wearing are appended to your description.\n If you provide a 'wear style' after the command, the message you\n provide will be displayed after the clothing's name.\n "}
+search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'wear', 'no_prefix': ' ', 'tags': '', 'text': "\n Puts on an item of clothing you are holding.\n\n Usage:\n wear <obj> [=] [wear style]\n\n Examples:\n wear red shirt\n wear scarf wrapped loosely about the shoulders\n wear blue hat = at a jaunty angle\n\n All the clothes you are wearing are appended to your description.\n If you provide a 'wear style' after the command, the message you\n provide will be displayed after the clothing's name.\n "}
@@ -455,7 +484,9 @@ off the covering item first.

func()[source]
-

This performs the actual command.

+

This is the hook function that actually does all the work. It is called +by the cmdhandler right after self.parser() finishes, and so has access +to all the variables defined therein.

@@ -481,7 +512,7 @@ off the covering item first.

Bases: evennia.commands.default.muxcommand.MuxCommand

Covers a worn item of clothing with another you’re holding or wearing.

-
Usage:

cover <obj> [with] <obj>

+
Usage:

cover <worn obj> with <obj>

When you cover a clothing item, it is hidden and no longer appears in @@ -497,10 +528,17 @@ You can’t remove an item of clothing if it’s covered.

help_category = 'clothing'
+
+
+rhs_split = (' with ', '=')
+
+
func()[source]
-

This performs the actual command.

+

This is the hook function that actually does all the work. It is called +by the cmdhandler right after self.parser() finishes, and so has access +to all the variables defined therein.

@@ -515,7 +553,7 @@ You can’t remove an item of clothing if it’s covered.

-search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'cover', 'no_prefix': ' ', 'tags': '', 'text': "\n Covers a worn item of clothing with another you're holding or wearing.\n\n Usage:\n cover <obj> [with] <obj>\n\n When you cover a clothing item, it is hidden and no longer appears in\n your description until it's uncovered or the item covering it is removed.\n You can't remove an item of clothing if it's covered.\n "}
+search_index_entry = {'aliases': '', 'category': 'clothing', 'key': 'cover', 'no_prefix': ' ', 'tags': '', 'text': "\n Covers a worn item of clothing with another you're holding or wearing.\n\n Usage:\n cover <worn obj> with <obj>\n\n When you cover a clothing item, it is hidden and no longer appears in\n your description until it's uncovered or the item covering it is removed.\n You can't remove an item of clothing if it's covered.\n "}
@@ -566,114 +604,6 @@ it is also covered by something else.

-
-
-class evennia.contrib.game_systems.clothing.clothing.CmdDrop(**kwargs)[source]
-

Bases: evennia.commands.default.muxcommand.MuxCommand

-

drop something

-
-
Usage:

drop <obj>

-
-
-

Lets you drop an object from your inventory into the -location you are currently in.

-
-
-key = 'drop'
-
- -
-
-locks = 'cmd:all()'
-
- -
-
-arg_regex = re.compile('\\s|$', re.IGNORECASE)
-
- -
-
-func()[source]
-

Implement command

-
- -
-
-aliases = []
-
- -
-
-help_category = 'general'
-
- -
-
-lock_storage = 'cmd:all()'
-
- -
-
-search_index_entry = {'aliases': '', 'category': 'general', 'key': 'drop', 'no_prefix': ' ', '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 '}
-
- -
- -
-
-class evennia.contrib.game_systems.clothing.clothing.CmdGive(**kwargs)[source]
-

Bases: evennia.commands.default.muxcommand.MuxCommand

-

give away something to someone

-
-
Usage:

give <inventory obj> = <target>

-
-
-

Gives an items from your inventory to another character, -placing it in their inventory.

-
-
-key = 'give'
-
- -
-
-locks = 'cmd:all()'
-
- -
-
-arg_regex = re.compile('\\s|$', re.IGNORECASE)
-
- -
-
-func()[source]
-

Implement give

-
- -
-
-aliases = []
-
- -
-
-help_category = 'general'
-
- -
-
-lock_storage = 'cmd:all()'
-
- -
-
-search_index_entry = {'aliases': '', 'category': 'general', 'key': 'give', 'no_prefix': ' ', 'tags': '', 'text': '\n give away something to someone\n\n Usage:\n give <inventory obj> = <target>\n\n Gives an items from your inventory to another character,\n placing it in their inventory.\n '}
-
- -
-
class evennia.contrib.game_systems.clothing.clothing.CmdInventory(**kwargs)[source]
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.tests.html b/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.tests.html index 0bf6cede7c..327c57d26b 100644 --- a/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.tests.html +++ b/docs/1.0-dev/api/evennia.contrib.game_systems.clothing.tests.html @@ -108,6 +108,12 @@
class evennia.contrib.game_systems.clothing.tests.TestClothingCmd(methodName='runTest')[source]

Bases: evennia.utils.test_resources.BaseEvenniaCommandTest

+
+
+setUp()[source]
+

Sets up testing environment

+
+
test_clothingcommands()[source]
@@ -119,6 +125,12 @@
class evennia.contrib.game_systems.clothing.tests.TestClothingFunc(methodName='runTest')[source]

Bases: evennia.utils.test_resources.BaseEvenniaTest

+
+
+setUp()[source]
+

Sets up testing environment

+
+
test_clothingfunctions()[source]
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_basic.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_basic.html index 28d785b62d..25ebb9630c 100644 --- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_basic.html +++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_basic.html @@ -672,7 +672,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -698,7 +698,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_equip.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_equip.html index 85e1ac5c29..0fb36afa54 100644 --- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_equip.html +++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_equip.html @@ -567,7 +567,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -587,7 +587,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_items.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_items.html index 1228c03d81..b491101cea 100644 --- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_items.html +++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_items.html @@ -690,7 +690,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -710,7 +710,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_magic.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_magic.html index 3bfc041b0b..41ea08d804 100644 --- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_magic.html +++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_magic.html @@ -469,7 +469,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -489,7 +489,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_range.html b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_range.html index 80df9f0e01..eca07b30fa 100644 --- a/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_range.html +++ b/docs/1.0-dev/api/evennia.contrib.game_systems.turnbattle.tb_range.html @@ -929,7 +929,7 @@ if there are still any actions you can take.

-aliases = ['wait', 'hold']
+aliases = ['hold', 'wait']
@@ -949,7 +949,7 @@ if there are still any actions you can take.

-search_index_entry = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
+search_index_entry = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.grid.extended_room.extended_room.html b/docs/1.0-dev/api/evennia.contrib.grid.extended_room.extended_room.html index 9d99bb9288..d90f992bc4 100644 --- a/docs/1.0-dev/api/evennia.contrib.grid.extended_room.extended_room.html +++ b/docs/1.0-dev/api/evennia.contrib.grid.extended_room.extended_room.html @@ -340,7 +340,7 @@ look *<account&g
-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -360,7 +360,7 @@ look *<account&g
-search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.rpg.dice.dice.html b/docs/1.0-dev/api/evennia.contrib.rpg.dice.dice.html index c485bd9dc5..f934d57a9e 100644 --- a/docs/1.0-dev/api/evennia.contrib.rpg.dice.dice.html +++ b/docs/1.0-dev/api/evennia.contrib.rpg.dice.dice.html @@ -305,7 +305,7 @@ everyone but the person rolling.

-aliases = ['@dice', 'roll']
+aliases = ['roll', '@dice']
@@ -331,7 +331,7 @@ everyone but the person rolling.

-search_index_entry = {'aliases': '@dice roll', 'category': 'general', 'key': 'dice', 'no_prefix': ' dice roll', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}
+search_index_entry = {'aliases': 'roll @dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll dice', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}
diff --git a/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.rpsystem.html b/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.rpsystem.html index 6fbbaf97fa..e61d50b913 100644 --- a/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.rpsystem.html +++ b/docs/1.0-dev/api/evennia.contrib.rpg.rpsystem.rpsystem.html @@ -695,7 +695,7 @@ a different language.

-aliases = ['"', "'"]
+aliases = ["'", '"']
@@ -726,7 +726,7 @@ a different language.

-search_index_entry = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' " \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
+search_index_entry = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'no_prefix': ' \' "', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}
@@ -865,7 +865,7 @@ Using the command without arguments will list all current recogs.

-aliases = ['recognize', 'forget']
+aliases = ['forget', 'recognize']
@@ -892,7 +892,7 @@ Using the command without arguments will list all current recogs.

-search_index_entry = {'aliases': 'recognize forget', 'category': 'general', 'key': 'recog', 'no_prefix': ' recognize forget', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}
+search_index_entry = {'aliases': 'forget recognize', 'category': 'general', 'key': 'recog', 'no_prefix': ' forget recognize', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.tutorials.evadventure.commands.html b/docs/1.0-dev/api/evennia.contrib.tutorials.evadventure.commands.html index 86b5f2e8c6..a15639e603 100644 --- a/docs/1.0-dev/api/evennia.contrib.tutorials.evadventure.commands.html +++ b/docs/1.0-dev/api/evennia.contrib.tutorials.evadventure.commands.html @@ -357,7 +357,7 @@ unwear <item>

-aliases = ['unwear', 'unwield']
+aliases = ['unwield', 'unwear']
@@ -381,7 +381,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'unwear unwield', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwear unwield', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}
+search_index_entry = {'aliases': 'unwield unwear', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwield unwear', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.tutorials.red_button.red_button.html b/docs/1.0-dev/api/evennia.contrib.tutorials.red_button.red_button.html index 8f8ab6fe12..c990dead74 100644 --- a/docs/1.0-dev/api/evennia.contrib.tutorials.red_button.red_button.html +++ b/docs/1.0-dev/api/evennia.contrib.tutorials.red_button.red_button.html @@ -153,7 +153,7 @@ such as when closing the lid and un-blinding a character.

-aliases = ['push', 'press', 'press button']
+aliases = ['press', 'push', 'press button']
@@ -182,7 +182,7 @@ check if the lid is open or closed.

-search_index_entry = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press press button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'press push press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' press push press button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
@@ -252,7 +252,7 @@ check if the lid is open or closed.

-aliases = ['break lid', 'smash', 'smash lid']
+aliases = ['break lid', 'smash lid', 'smash']
@@ -279,7 +279,7 @@ break.

-search_index_entry = {'aliases': 'break lid smash smash lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash smash lid', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
+search_index_entry = {'aliases': 'break lid smash lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash lid smash', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
@@ -379,7 +379,7 @@ be mutually exclusive.

-aliases = ['push', 'press', 'press button']
+aliases = ['press', 'push', 'press button']
@@ -408,7 +408,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press press button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'press push press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' press push press button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
@@ -506,7 +506,7 @@ be mutually exclusive.

-aliases = ['l', 'ex', 'get', 'feel', 'listen', 'examine']
+aliases = ['examine', 'feel', 'listen', 'get', 'ex', 'l']
@@ -532,7 +532,7 @@ be mutually exclusive.

-search_index_entry = {'aliases': 'l ex get feel listen examine', 'category': 'general', 'key': 'look', 'no_prefix': ' l ex get feel listen examine', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}
+search_index_entry = {'aliases': 'examine feel listen get ex l', 'category': 'general', 'key': 'look', 'no_prefix': ' examine feel listen get ex l', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}
diff --git a/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.objects.html b/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.objects.html index c1020ee1c0..9b89a74ce7 100644 --- a/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.objects.html +++ b/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.objects.html @@ -425,7 +425,7 @@ of the object. We overload it with our own version.

-aliases = ['light', 'burn']
+aliases = ['burn', 'light']
@@ -452,7 +452,7 @@ to sit on a “lightable” object, we operate only on self.obj.

-search_index_entry = {'aliases': 'light burn', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' light burn', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}
+search_index_entry = {'aliases': 'burn light', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' burn light', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}
@@ -556,7 +556,7 @@ shift green root up/down

-aliases = ['push', 'shiftroot', 'pull', 'move']
+aliases = ['move', 'shiftroot', 'push', 'pull']
@@ -592,7 +592,7 @@ yellow/green - horizontal roots

-search_index_entry = {'aliases': 'push shiftroot pull move', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' push shiftroot pull move', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}
+search_index_entry = {'aliases': 'move shiftroot push pull', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' move shiftroot push pull', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}
@@ -779,7 +779,7 @@ parry - forgoes your attack but will make you harder to hit on next

-aliases = ['kill', 'slash', 'hit', 'fight', 'stab', 'parry', 'defend', 'pierce', 'bash', 'thrust', 'chop']
+aliases = ['pierce', 'bash', 'fight', 'parry', 'defend', 'chop', 'stab', 'hit', 'thrust', 'kill', 'slash']
@@ -805,7 +805,7 @@ parry - forgoes your attack but will make you harder to hit on next

-search_index_entry = {'aliases': 'kill slash hit fight stab parry defend pierce bash thrust chop', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' kill slash hit fight stab parry defend pierce bash thrust chop', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}
+search_index_entry = {'aliases': 'pierce bash fight parry defend chop stab hit thrust kill slash', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' pierce bash fight parry defend chop stab hit thrust kill slash', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.rooms.html b/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.rooms.html index 2a0e1a72f8..eac103d9a6 100644 --- a/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.rooms.html +++ b/docs/1.0-dev/api/evennia.contrib.tutorials.tutorial_world.rooms.html @@ -248,7 +248,7 @@ code except for adding in the details.

-aliases = ['l', 'ls']
+aliases = ['ls', 'l']
@@ -263,7 +263,7 @@ code except for adding in the details.

-search_index_entry = {'aliases': 'l ls', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}
+search_index_entry = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}
@@ -816,7 +816,7 @@ if they fall off the bridge.

-aliases = ['?', 'h']
+aliases = ['h', '?']
@@ -842,7 +842,7 @@ if they fall off the bridge.

-search_index_entry = {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
+search_index_entry = {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}
@@ -968,7 +968,7 @@ to find something.

-aliases = ['l', 'fiddle', 'feel', 'search', 'feel around']
+aliases = ['feel', 'feel around', 'search', 'fiddle', 'l']
@@ -996,7 +996,7 @@ random chance of eventually finding a light source.

-search_index_entry = {'aliases': 'l fiddle feel search feel around', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l fiddle feel search feel around', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}
+search_index_entry = {'aliases': 'feel feel around search fiddle l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel feel around search fiddle l', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}
diff --git a/docs/1.0-dev/api/evennia.contrib.utils.git_integration.git_integration.html b/docs/1.0-dev/api/evennia.contrib.utils.git_integration.git_integration.html index 0a289a2584..8ed7b1354f 100644 --- a/docs/1.0-dev/api/evennia.contrib.utils.git_integration.git_integration.html +++ b/docs/1.0-dev/api/evennia.contrib.utils.git_integration.git_integration.html @@ -208,7 +208,7 @@ git evennia pull - Pull the latest evennia code.

-directory = '/tmp/tmpow8mwbfw/c1a41b6aa316d4c76e35bfe5ee152d09b28a23a8/evennia'
+directory = '/tmp/tmp_vqcsnlo/8678cb1aa20923a4eb35262da4b62442c49bb3cd/evennia'
@@ -269,7 +269,7 @@ git pull - Pull the latest code from your current branch.

-directory = '/tmp/tmpow8mwbfw/c1a41b6aa316d4c76e35bfe5ee152d09b28a23a8/evennia/game_template'
+directory = '/tmp/tmp_vqcsnlo/8678cb1aa20923a4eb35262da4b62442c49bb3cd/evennia/game_template'
diff --git a/docs/1.0-dev/api/evennia.utils.eveditor.html b/docs/1.0-dev/api/evennia.utils.eveditor.html index 9e4641f00d..c69ae3bd06 100644 --- a/docs/1.0-dev/api/evennia.utils.eveditor.html +++ b/docs/1.0-dev/api/evennia.utils.eveditor.html @@ -336,7 +336,7 @@ indentation.

-aliases = [':j', ':A', '::', ':fi', ':!', ':q', ':u', ':echo', ':s', ':h', ':<', ':DD', ':>', ':wq', ':p', ':r', ':y', ':q!', ':UU', ':fd', ':x', ':dw', ':i', ':uu', ':=', ':I', ':dd', ':w', ':::', ':S', ':f', ':']
+aliases = [':echo', ':S', ':=', ':dw', ':i', ':p', ':s', ':>', ':w', ':q', ':q!', ':j', ':dd', ':UU', ':!', ':x', ':<', ':A', ':fd', ':y', '::', ':wq', ':r', ':::', ':I', ':uu', ':f', ':h', ':u', ':fi', ':', ':DD']
@@ -364,7 +364,7 @@ efficient presentation.

-search_index_entry = {'aliases': ':j :A :: :fi :! :q :u :echo :s :h :< :DD :> :wq :p :r :y :q! :UU :fd :x :dw :i :uu := :I :dd :w ::: :S :f :', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :j :A :: :fi :! :q :u :echo :s :h :< :DD :> :wq :p :r :y :q! :UU :fd :x :dw :i :uu := :I :dd :w ::: :S :f :', 'tags': '', 'text': '\n Commands for the editor\n '}
+search_index_entry = {'aliases': ':echo :S := :dw :i :p :s :> :w :q :q! :j :dd :UU :! :x :< :A :fd :y :: :wq :r ::: :I :uu :f :h :u :fi : :DD', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :echo :S := :dw :i :p :s :> :w :q :q! :j :dd :UU :! :x :< :A :fd :y :: :wq :r ::: :I :uu :f :h :u :fi : :DD', 'tags': '', 'text': '\n Commands for the editor\n '}
diff --git a/docs/1.0-dev/api/evennia.utils.evmenu.html b/docs/1.0-dev/api/evennia.utils.evmenu.html index 4d6bf344ef..6df0f89e32 100644 --- a/docs/1.0-dev/api/evennia.utils.evmenu.html +++ b/docs/1.0-dev/api/evennia.utils.evmenu.html @@ -931,7 +931,7 @@ single question.

-aliases = ['abort', 'a', 'yes', 'no', '__nomatch_command', 'y', 'n']
+aliases = ['a', 'abort', '__nomatch_command', 'no', 'n', 'yes', 'y']
@@ -957,7 +957,7 @@ single question.

-search_index_entry = {'aliases': 'abort a yes no __nomatch_command y n', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' abort a yes no __nomatch_command y n', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
+search_index_entry = {'aliases': 'a abort __nomatch_command no n yes y', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' a abort __nomatch_command no n yes y', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
diff --git a/docs/1.0-dev/api/evennia.utils.evmore.html b/docs/1.0-dev/api/evennia.utils.evmore.html index d33eb8d3b9..ab5074094c 100644 --- a/docs/1.0-dev/api/evennia.utils.evmore.html +++ b/docs/1.0-dev/api/evennia.utils.evmore.html @@ -137,7 +137,7 @@ the caller.msg() construct every time the page is updated.

-aliases = ['end', 'p', 'abort', 'e', 'a', 'previous', 'q', 'quit', 'next', 't', 'top', 'n']
+aliases = ['a', 'abort', 'p', 'end', 'previous', 'q', 'quit', 'e', 't', 'n', 'top', 'next']
@@ -163,7 +163,7 @@ the caller.msg() construct every time the page is updated.

-search_index_entry = {'aliases': 'end p abort e a previous q quit next t top n', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' end p abort e a previous q quit next t top n', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
+search_index_entry = {'aliases': 'a abort p end previous q quit e t n top next', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' a abort p end previous q quit e t n top next', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
diff --git a/docs/1.0-dev/genindex.html b/docs/1.0-dev/genindex.html index 6e0ecf323b..1f11e30b44 100644 --- a/docs/1.0-dev/genindex.html +++ b/docs/1.0-dev/genindex.html @@ -1039,10 +1039,6 @@
  • (evennia.contrib.game_systems.barter.barter.CmdTradeHelp attribute)
  • (evennia.contrib.game_systems.clothing.clothing.CmdCover attribute) -
  • -
  • (evennia.contrib.game_systems.clothing.clothing.CmdDrop attribute) -
  • -
  • (evennia.contrib.game_systems.clothing.clothing.CmdGive attribute)
  • (evennia.contrib.game_systems.clothing.clothing.CmdInventory attribute)
  • @@ -1575,10 +1571,6 @@
  • (evennia.contrib.full_systems.evscaperoom.commands.CmdEvscapeRoom attribute)
  • (evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak attribute) -
  • -
  • (evennia.contrib.game_systems.clothing.clothing.CmdDrop attribute) -
  • -
  • (evennia.contrib.game_systems.clothing.clothing.CmdGive attribute)
  • (evennia.contrib.game_systems.clothing.clothing.CmdInventory attribute)
  • @@ -2385,9 +2377,11 @@
  • at_pre_loot() (evennia.contrib.tutorials.evadventure.characters.EvAdventureCharacter method)
  • -
  • at_pre_move() (evennia.contrib.game_systems.turnbattle.tb_basic.TBBasicCharacter method) +
  • at_pre_move() (evennia.contrib.game_systems.clothing.clothing.ContribClothing method)
  • @@ -3662,11 +3656,7 @@
  • CmdDon (class in evennia.contrib.game_systems.turnbattle.tb_equip)
  • CmdDrop (class in evennia.commands.default.general) - -
  • CmdDummy (class in evennia.contrib.base_systems.unixcommand.tests)
  • CmdDummyRunnerEchoResponse (class in evennia.server.profiling.dummyrunner) @@ -3746,8 +3736,6 @@
  • CmdGive (class in evennia.commands.default.general)
  • @@ -3853,10 +3841,10 @@
  • CmdOffer (class in evennia.contrib.game_systems.barter.barter)
  • - - + -
  • get_display_desc() (evennia.contrib.grid.wilderness.wilderness.WildernessRoom method) +
  • get_display_desc() (evennia.contrib.game_systems.clothing.clothing.ClothedCharacter method)
  • -
  • get_display_things() (evennia.contrib.rpg.rpsystem.rpsystem.ContribRPObject method) +
  • get_display_things() (evennia.contrib.game_systems.clothing.clothing.ClothedCharacter method)
  • @@ -10206,11 +10194,11 @@
  • get_evennia_version() (in module evennia.utils.utils)
  • get_event_handler() (in module evennia.contrib.base_systems.ingame_python.utils) -
  • -
  • get_events() (evennia.contrib.base_systems.ingame_python.scripts.EventHandler method)
  • - +