From 89a676f0ad9800ce74e856df1e58c95a1130169a Mon Sep 17 00:00:00 2001
From: Griatch
obj.at_before_move(destination) - if this returns False, move is aborted.
origin.at_before_leave(obj, destination)
origin.at_object_leave(obj, destination)
obj.announce_move_from(destination)
Move is performed by changing obj.location from source location to destination.
obj.announce_move_to(source)
aliases = ['delete', 'del']¶aliases = ['del', 'delete']¶
aliases = ['update', 'type', 'swap', 'parent']¶aliases = ['swap', 'parent', 'update', 'type']¶
aliases = ['ex', 'exam']¶aliases = ['exam', 'ex']¶
aliases = ['locate', 'search']¶aliases = ['search', 'locate']¶
aliases = ['aliaschan', 'chanalias']¶aliases = ['chanalias', 'aliaschan']¶
aliases = ['comlist', 'clist', 'all channels', 'channellist', 'chanlist']¶aliases = ['all channels', 'channellist', 'clist', 'chanlist', 'comlist']¶
aliases = ['i', 'inv']¶aliases = ['inv', 'i']¶
aliases = ['"', "'"]¶aliases = ["'", '"']¶
aliases = ['emote', ':']¶aliases = [':', 'emote']¶
aliases = ['listobjs', 'listobjects', 'stats', 'db']¶aliases = ['listobjects', 'listobjs', 'stats', 'db']¶
aliases = ['serverprocess', 'serverload']¶aliases = ['serverload', 'serverprocess']¶
aliases = ['con', 'co', 'conn']¶aliases = ['co', 'conn', 'con']¶
aliases = ['cr', 'cre']¶aliases = ['cre', 'cr']¶
aliases = ['i', 'inv']¶aliases = ['inv', 'i']¶
aliases = ['con', 'co', 'conn']¶aliases = ['co', 'conn', 'con']¶
aliases = ['cr', 'cre']¶aliases = ['cre', 'cr']¶
aliases = ['@calls', '@callbacks', '@callback']¶aliases = ['@callback', '@calls', '@callbacks']¶
aliases = ['"', "'"]¶aliases = ["'", '"']¶
aliases = ['recognize', 'forget']¶aliases = ['forget', 'recognize']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['press button', 'push', 'press']¶
aliases = ['l', 'get', 'examine', 'listen', 'ex', 'feel']¶
aliases = ['shiftroot', 'push', 'move', 'pull']¶aliases = ['push', 'move', 'shiftroot', 'pull']¶
aliases = ['button', 'press button', 'push button']¶aliases = ['press button', 'push button', 'button']¶
aliases = ['thrust', 'bash', 'stab', 'pierce', 'kill', 'hit', 'fight', 'chop', 'parry', 'defend', 'slash']¶aliases = ['chop', 'slash', 'fight', 'pierce', 'bash', 'parry', 'defend', 'stab', 'hit', 'thrust', 'kill']¶
aliases = ['search', 'feel around', 'fiddle', 'l', 'feel']¶aliases = ['l', 'fiddle', 'search', 'feel', 'feel around']¶
evennia.ANSIString
evennia.AccountDB
evennia.BASE_ACCOUNT_TYPECLASS
evennia.BASE_CHANNEL_TYPECLASS
evennia.BASE_CHARACTER_TYPECLASS
evennia.BASE_EXIT_TYPECLASS
evennia.BASE_GUEST_TYPECLASS
evennia.BASE_OBJECT_TYPECLASS
evennia.BASE_ROOM_TYPECLASS
evennia.BASE_SCRIPT_TYPECLASS
evennia.CHANNEL_HANDLER
evennia.ChannelDB
evennia.CmdSet
aliases = [':<', ':y', ':p', ':j', ':s', ':f', ':echo', ':dd', ':u', '::', ':=', ':', ':fi', ':wq', ':::', ':S', ':r', ':i', ':h', ':uu', ':!', ':I', ':w', ':UU', ':q!', ':q', ':dw', ':A', ':>', ':DD', ':x', ':fd']¶aliases = ['::', ':fd', ':dd', ':<', ':fi', ':!', ':y', ':A', ':q', ':r', ':echo', ':=', ':u', ':j', ':::', ':w', ':x', ':h', ':q!', ':f', ':', ':UU', ':dw', ':p', ':i', ':I', ':DD', ':S', ':>', ':wq', ':uu', ':s']¶
aliases = ['n', 't', 'back', 'e', 'next', 'end', 'b', 'quit', 'abort', 'top', 'q', 'a']¶aliases = ['top', 't', 'e', 'b', 'quit', 'abort', 'back', 'end', 'next', 'q', 'a', 'n']¶
aliases = ['type', 'swap', 'update', 'parent']¶aliases = ['swap', 'type', 'parent', 'update']¶
search_index_entry = {'aliases': 'type swap update parent', 'category': 'building', 'key': 'typeclass', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object.\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶search_index_entry = {'aliases': 'swap type parent update', 'category': 'building', 'key': 'typeclass', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object.\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶
aliases = ['locate', 'search']¶aliases = ['search', 'locate']¶
search_index_entry = {'aliases': 'locate search', 'category': 'building', 'key': 'find', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}¶search_index_entry = {'aliases': 'search locate', 'category': 'building', 'key': 'find', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}¶
aliases = ['aliaschan', 'chanalias']¶aliases = ['chanalias', 'aliaschan']¶
search_index_entry = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'tags': '', 'text': '\n add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}¶search_index_entry = {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'tags': '', 'text': '\n add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}¶
aliases = ['comlist', 'clist', 'channellist', 'all channels', 'chanlist']¶aliases = ['channellist', 'chanlist', 'comlist', 'all channels', 'clist']¶
search_index_entry = {'aliases': 'comlist clist channellist all channels chanlist', 'category': 'comms', 'key': 'channels', 'tags': '', 'text': "\n list all channels available to you\n\n Usage:\n channels\n clist\n comlist\n\n Lists all channels available to you, whether you listen to them or not.\n Use 'comlist' to only view your current channel subscriptions.\n Use addcom/delcom to join and leave channels\n "}¶search_index_entry = {'aliases': 'channellist chanlist comlist all channels clist', 'category': 'comms', 'key': 'channels', 'tags': '', 'text': "\n list all channels available to you\n\n Usage:\n channels\n clist\n comlist\n\n Lists all channels available to you, whether you listen to them or not.\n Use 'comlist' to only view your current channel subscriptions.\n Use addcom/delcom to join and leave channels\n "}¶
aliases = ['nicks', 'nickname']¶aliases = ['nickname', 'nicks']¶
search_index_entry = {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}¶search_index_entry = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}¶
aliases = ['i', 'inv']¶aliases = ['inv', 'i']¶
search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶
aliases = [':', 'emote']¶aliases = ['emote', ':']¶
search_index_entry = {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶
aliases = ['stats', 'listobjs', 'listobjects', 'db']¶aliases = ['stats', 'listobjects', 'db', 'listobjs']¶
search_index_entry = {'aliases': 'stats listobjs listobjects db', 'category': 'system', 'key': 'objects', 'tags': '', 'text': '\n statistics on objects in the database\n\n Usage:\n objects [<nr>]\n\n Gives statictics on objects in database as well as\n a list of <nr> latest objects in database. If not\n given, <nr> defaults to 10.\n '}¶search_index_entry = {'aliases': 'stats listobjects db listobjs', 'category': 'system', 'key': 'objects', 'tags': '', 'text': '\n statistics on objects in the database\n\n Usage:\n objects [<nr>]\n\n Gives statictics on objects in database as well as\n a list of <nr> latest objects in database. If not\n given, <nr> defaults to 10.\n '}¶
aliases = ['serverload', 'serverprocess']¶aliases = ['serverprocess', 'serverload']¶
search_index_entry = {'aliases': 'serverload serverprocess', 'category': 'system', 'key': 'server', 'tags': '', 'text': "\n show server load and memory statistics\n\n Usage:\n server[/mem]\n\n Switches:\n mem - return only a string of the current memory usage\n flushmem - flush the idmapper cache\n\n This command shows server load statistics and dynamic memory\n usage. It also allows to flush the cache of accessed database\n objects.\n\n Some Important statistics in the table:\n\n |wServer load|n is an average of processor usage. It's usually\n between 0 (no usage) and 1 (100% usage), but may also be\n temporarily higher if your computer has multiple CPU cores.\n\n The |wResident/Virtual memory|n displays the total memory used by\n the server process.\n\n Evennia |wcaches|n all retrieved database entities when they are\n loaded by use of the idmapper functionality. This allows Evennia\n to maintain the same instances of an entity and allowing\n non-persistent storage schemes. The total amount of cached objects\n are displayed plus a breakdown of database object types.\n\n The |wflushmem|n switch allows to flush the object cache. Please\n note that due to how Python's memory management works, releasing\n caches may not show you a lower Residual/Virtual memory footprint,\n the released memory will instead be re-used by the program.\n\n "}¶search_index_entry = {'aliases': 'serverprocess serverload', 'category': 'system', 'key': 'server', 'tags': '', 'text': "\n show server load and memory statistics\n\n Usage:\n server[/mem]\n\n Switches:\n mem - return only a string of the current memory usage\n flushmem - flush the idmapper cache\n\n This command shows server load statistics and dynamic memory\n usage. It also allows to flush the cache of accessed database\n objects.\n\n Some Important statistics in the table:\n\n |wServer load|n is an average of processor usage. It's usually\n between 0 (no usage) and 1 (100% usage), but may also be\n temporarily higher if your computer has multiple CPU cores.\n\n The |wResident/Virtual memory|n displays the total memory used by\n the server process.\n\n Evennia |wcaches|n all retrieved database entities when they are\n loaded by use of the idmapper functionality. This allows Evennia\n to maintain the same instances of an entity and allowing\n non-persistent storage schemes. The total amount of cached objects\n are displayed plus a breakdown of database object types.\n\n The |wflushmem|n switch allows to flush the object cache. Please\n note that due to how Python's memory management works, releasing\n caches may not show you a lower Residual/Virtual memory footprint,\n the released memory will instead be re-used by the program.\n\n "}¶
evennia.commands.default.tests.CommandTest(methodName='runTest')[source]¶Bases: evennia.utils.test_resources.EvenniaTest
Tests a command
+Tests a Command by running it and comparing what messages it sends with +expected values. This tests without actually spinning up the cmdhandler +for every test, which is more controlled.
+Example:
+from commands.echo import CmdEcho
+
+class MyCommandTest(CommandTest):
+
+ def test_echo(self):
+ '''
+ Test that the echo command really returns
+ what you pass into it.
+ '''
+ self.call(MyCommand(), "hello world!",
+ "You hear your echo: 'Hello world!'")
+call(cmdobj, args, msg=None, cmdset=None, noansi=True, caller=None, receiver=None, cmdstring=None, obj=None, inputs=None, raw_string=None)[source]¶Test a command by assigning all the needed -properties to cmdobj and running
---cmdobj.at_pre_cmd() -cmdobj.parse() -cmdobj.func() -cmdobj.at_post_cmd()
-
The msgreturn value is compared to eventual -output sent to caller.msg in the game
+call(cmdobj, input_args, msg=None, cmdset=None, noansi=True, caller=None, receiver=None, cmdstring=None, obj=None, inputs=None, raw_string=None)[source]¶
+Test a command by assigning all the needed properties to a cmdobj and +running the sequence. The resulting .msg calls will be mocked and +the text= calls to them compared to a expected output.
msg (str) – The received message that was sent to the caller.
+cmdobj (Command) – The command object to use.
input_args (str) – This should be the full input the Command should +see, such as ‘look here’. This will become .args for the Command +instance to parse.
msg (str or dict, optional) – This is the expected return value(s) +returned through caller.msg(text=…) calls in the command. If a string, the +receiver is controlled with the receiver kwarg (defaults to caller). +If this is a dict, it is a mapping +{receiver1: “expected1”, receiver2: “expected2”,…} and receiver is +ignored. The message(s) are compared with the actual messages returned +to the receiver(s) as the Command runs. Each check uses .startswith, +so you can choose to only include the first part of the +returned message if that’s enough to verify a correct result. EvMenu +decorations (like borders) are stripped and should not be included. This +should also not include color tags unless noansi=False. +If the command returns texts in multiple separate .msg- +calls to a receiver, separate these with | if noansi=True +(default) and || if noansi=False. If no msg is given (None), +then no automatic comparison will be done.
cmdset (str, optional) – If given, make .cmdset available on the Command +instance as it runs. While .cmdset is normally available on the +Command instance by default, this is usually only used by +commands that explicitly operates/displays cmdsets, like +examine.
noansi (str, optional) – By default the color tags of the msg is +ignored, this makes them significant. If unset, msg must contain +the same color tags as the actual return message.
caller (Object or Account, optional) – By default self.char1 is used as the +command-caller (the .caller property on the Command). This allows to +execute with another caller, most commonly an Account.
receiver (Object or Account, optional) – This is the object to receive the +return messages we want to test. By default this is the same as caller +(which in turn defaults to is self.char1). Note that if msg is +a dict, this is ignored since the receiver is already specified there.
cmdstring (str, optional) – Normally this is the Command’s key. +This allows for tweaking the .cmdname property of the +Command**. This isb used for commands with multiple aliases, +where the command explicitly checs which alias was used to +determine its functionality.
obj (str, optional) – This sets the .obj property of the Command - the +object on which the Command ‘sits’. By default this is the same as caller. +This can be used for testing on-object Command interactions.
inputs (list, optional) – A list of strings to pass to functions that pause to +take input from the user (normally using @interactive and +ret = yield(question) or evmenu.get_input). Each element of the +list will be passed into the command as if the user wrote that at the prompt.
raw_string (str, optional) – Normally the .raw_string property is set as +a combination of your key/cmdname and input_args. This allows +direct control of what this is, for example for testing edge cases +or malformed inputs.
str or dict –
+{receiver: “msg”, …} if multiple are given. This is usually +only used with msg=None to do the validation externally.
AssertionError – If the returns of .msg calls (tested with .startswith) does not +match expected_input.
+Notes
+As part of the tests, all methods of the Command will be called in +the proper order:
+cmdobj.at_pre_cmd()
cmdobj.parse()
cmdobj.func()
cmdobj.at_post_cmd()
aliases = ['conn', 'co', 'con']¶aliases = ['co', 'conn', 'con']¶
search_index_entry = {'aliases': 'conn co con', 'category': 'general', 'key': 'connect', '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', '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 '}¶
aliases = ['offers', 'deal']¶aliases = ['deal', 'offers']¶
search_index_entry = {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', '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', '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 "}¶
aliases = ['i', 'inv']¶aliases = ['inv', 'i']¶
search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶
aliases = ['conn', 'co', 'con']¶aliases = ['co', 'conn', 'con']¶
search_index_entry = {'aliases': 'conn co con', 'category': 'general', 'key': 'connect', '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', '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 '}¶
aliases = ['q', 'abort', 'chicken out', 'quit']¶aliases = ['q', 'quit', 'abort', 'chicken out']¶
search_index_entry = {'aliases': 'q abort chicken out quit', 'category': 'evscaperoom', 'key': 'give up', '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': 'q quit abort chicken out', 'category': 'evscaperoom', 'key': 'give up', '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 '}¶
aliases = ['whisper', ';', 'shout']¶aliases = ['shout', ';', 'whisper']¶
search_index_entry = {'aliases': 'whisper ; shout', 'category': 'general', 'key': 'say', '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', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶
aliases = [':', 'pose']¶aliases = ['pose', ':']¶
search_index_entry = {'aliases': ': pose', 'category': 'general', 'key': 'emote', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}¶search_index_entry = {'aliases': 'pose :', 'category': 'general', 'key': 'emote', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}¶
aliases = ['e', 'ex', 'examine', 'unfocus']¶aliases = ['examine', 'ex', 'e', 'unfocus']¶
search_index_entry = {'aliases': 'e ex examine unfocus', 'category': 'evscaperoom', 'key': 'focus', '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': 'examine ex e unfocus', 'category': 'evscaperoom', 'key': 'focus', '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 '}¶
aliases = ['i', 'inv', 'inventory', 'give']¶aliases = ['give', 'inventory', 'inv', 'i']¶
search_index_entry = {'aliases': 'i inv inventory give', 'category': 'evscaperoom', 'key': 'get', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶search_index_entry = {'aliases': 'give inventory inv i', 'category': 'evscaperoom', 'key': 'get', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶
aliases = ['@callback', '@callbacks', '@calls']¶aliases = ['@callbacks', '@calls', '@callback']¶
search_index_entry = {'aliases': '@callback @callbacks @calls', 'category': 'building', 'key': '@call', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶search_index_entry = {'aliases': '@callbacks @calls @callback', 'category': 'building', 'key': '@call', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶
aliases = ['recognize', 'forget']¶aliases = ['forget', 'recognize']¶
search_index_entry = {'aliases': 'recognize forget', 'category': 'general', 'key': 'recog', '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', '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 '}¶
aliases = ['push', 'press button', 'press']¶
search_index_entry = {'aliases': 'push press button press', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}¶
aliases = ['push', 'press button', 'press']¶
search_index_entry = {'aliases': 'push press button press', 'category': 'general', 'key': 'push button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}¶
aliases = ['listen', 'examine', 'feel', 'ex', 'l', 'get']¶
search_index_entry = {'aliases': 'listen examine feel ex l get', 'category': 'general', 'key': 'look', '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 "}¶
aliases = ['pull', 'shiftroot', 'push', 'move']¶aliases = ['shiftroot', 'move', 'push', 'pull']¶
search_index_entry = {'aliases': 'pull shiftroot push move', 'category': 'tutorialworld', 'key': 'shift', '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': 'shiftroot move push pull', 'category': 'tutorialworld', 'key': 'shift', '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 '}¶
aliases = ['press button', 'button', 'push button']¶aliases = ['push button', 'button', 'press button']¶
search_index_entry = {'aliases': 'press button button push button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}¶search_index_entry = {'aliases': 'push button button press button', 'category': 'tutorialworld', 'key': 'press', 'tags': '', 'text': '\n Presses a button.\n '}¶
aliases = ['stab', 'chop', 'pierce', 'bash', 'hit', 'parry', 'kill', 'fight', 'thrust', 'defend', 'slash']¶aliases = ['stab', 'slash', 'fight', 'defend', 'hit', 'kill', 'thrust', 'pierce', 'chop', 'parry', 'bash']¶
search_index_entry = {'aliases': 'stab chop pierce bash hit parry kill fight thrust defend slash', 'category': 'tutorialworld', 'key': 'attack', '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': 'stab slash fight defend hit kill thrust pierce chop parry bash', 'category': 'tutorialworld', 'key': 'attack', '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 '}¶
aliases = ['search', 'fiddle', 'feel', 'feel around', 'l']¶aliases = ['feel', 'feel around', 'search', 'l', 'fiddle']¶
search_index_entry = {'aliases': 'search fiddle feel feel around l', 'category': 'tutorialworld', 'key': 'look', '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 l fiddle', 'category': 'tutorialworld', 'key': 'look', '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 '}¶
aliases = [':=', ':y', ':wq', ':i', ':A', ':<', ':dw', ':UU', ':s', ':uu', ':fd', ':q!', ':p', ':h', ':j', ':I', ':f', ':u', ':!', ':::', ':q', ':S', ':x', ':', ':w', ':>', ':DD', ':r', ':echo', ':dd', ':fi', '::']¶aliases = [':echo', ':dw', ':<', ':q', ':', ':=', ':y', ':x', ':j', '::', ':q!', ':S', ':r', ':fi', ':h', ':f', ':s', ':DD', ':u', ':uu', ':w', ':i', ':UU', ':A', ':dd', ':>', ':::', ':wq', ':p', ':I', ':!', ':fd']¶
search_index_entry = {'aliases': ':= :y :wq :i :A :< :dw :UU :s :uu :fd :q! :p :h :j :I :f :u :! ::: :q :S :x : :w :> :DD :r :echo :dd :fi ::', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}¶search_index_entry = {'aliases': ':echo :dw :< :q : := :y :x :j :: :q! :S :r :fi :h :f :s :DD :u :uu :w :i :UU :A :dd :> ::: :wq :p :I :! :fd', 'category': 'general', 'key': ':editor_command_group', 'tags': '', 'text': '\n Commands for the editor\n '}¶
aliases = ['q', 'b', 't', 'e', 'a', 'back', 'end', 'next', 'n', 'top', 'quit', 'abort']¶aliases = ['a', 'n', 'next', 'end', 'quit', 't', 'q', 'back', 'e', 'top', 'b', 'abort']¶
search_index_entry = {'aliases': 'q b t e a back end next n top quit abort', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Manipulate the text paging\n '}¶search_index_entry = {'aliases': 'a n next end quit t q back e top b abort', 'category': 'general', 'key': '__noinput_command', 'tags': '', 'text': '\n Manipulate the text paging\n '}¶