2023-12-20 23:10:55 +01:00
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
2023-12-21 00:12:31 +01:00
< title > evennia — Evennia 3.x documentation< / title >
2023-12-20 23:10:55 +01:00
< link rel = "stylesheet" href = "../_static/nature.css" type = "text/css" / >
< link rel = "stylesheet" href = "../_static/pygments.css" type = "text/css" / >
< script id = "documentation_options" data-url_root = "../" src = "../_static/documentation_options.js" > < / script >
< script src = "../_static/jquery.js" > < / script >
< script src = "../_static/underscore.js" > < / script >
< script src = "../_static/doctools.js" > < / script >
< script src = "../_static/language_data.js" > < / script >
< link rel = "shortcut icon" href = "../_static/favicon.ico" / >
< link rel = "index" title = "Index" href = "../genindex.html" / >
< link rel = "search" title = "Search" href = "../search.html" / >
< / head > < body >
< div class = "admonition important" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > You are reading an old version of the Evennia documentation. < a href = "https://www.evennia.com/docs/latest/index.html" > The latest version is here< / a > < / p > .
< / div >
< div class = "related" role = "navigation" aria-label = "related navigation" >
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
< a href = "../genindex.html" title = "General Index"
accesskey="I">index< / a > < / li >
< li class = "right" >
< a href = "../py-modindex.html" title = "Python Module Index"
>modules< / a > |< / li >
2023-12-21 00:12:31 +01:00
< li class = "nav-item nav-item-0" > < a href = "../index.html" > Evennia 3.x< / a > » < / li >
2023-12-20 23:10:55 +01:00
< li class = "nav-item nav-item-1" > < a href = "index.html" accesskey = "U" > Module code< / a > » < / li >
< li class = "nav-item nav-item-this" > < a href = "" > evennia< / a > < / li >
< / ul >
< / div >
< div class = "document" >
< div class = "documentwrapper" >
< div class = "sphinxsidebar" role = "navigation" aria-label = "main navigation" >
< div class = "sphinxsidebarwrapper" >
< p class = "logo" > < a href = "../index.html" >
< img class = "logo" src = "../_static/evennia_logo.png" alt = "Logo" / >
< / a > < / p >
< div id = "searchbox" style = "display: none" role = "search" >
< h3 id = "searchlabel" > Quick search< / h3 >
< div class = "searchformwrapper" >
< form class = "search" action = "../search.html" method = "get" >
< input type = "text" name = "q" aria-labelledby = "searchlabel" / >
< input type = "submit" value = "Go" / >
< / form >
< / div >
< / div >
< script > $ ( '#searchbox' ) . show ( 0 ) ; < / script > < h3 > Links< / h3 >
< ul >
< li > < a href = "https://www.evennia.com/docs/latest/index.html" > Documentation Top< / a > < / li >
< li > < a href = "https://www.evennia.com" > Evennia Home< / a > < / li >
< li > < a href = "https://github.com/evennia/evennia" > Github< / a > < / li >
< li > < a href = "http://games.evennia.com" > Game Index< / a > < / li >
< li >
< a href = "https://discord.gg/AJJpcRUhtF" > Discord< / a > -
< a href = "https://github.com/evennia/evennia/discussions" > Discussions< / a > -
< a href = "https://evennia.blogspot.com/" > Blog< / a >
< / li >
< / ul >
< / div >
< / div >
< div class = "bodywrapper" >
< div class = "body" role = "main" >
< h1 > Source code for evennia< / h1 > < div class = "highlight" > < pre >
< span > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Evennia MUD/MUX/MU* creation system< / span >
< span class = "sd" > This is the main top-level API for Evennia. You can explore the evennia library< / span >
< span class = "sd" > by accessing evennia.< subpackage> directly. From inside the game you can read< / span >
< span class = "sd" > docs of all object by viewing its `__doc__` string, such as through< / span >
< span class = "sd" > py evennia.ObjectDB.__doc__< / span >
< span class = "sd" > For full functionality you should explore this module via a django-< / span >
< span class = "sd" > aware shell. Go to your game directory and use the command< / span >
< span class = "sd" > evennia shell< / span >
< span class = "sd" > to launch such a shell (using python or ipython depending on your install).< / span >
< span class = "sd" > See www.evennia.com for full documentation.< / span >
< span class = "sd" > " " " < / span >
< span class = "kn" > import< / span > < span class = "nn" > evennia< / span >
< span class = "c1" > # docstring header< / span >
< span class = "n" > DOCSTRING< / span > < span class = "o" > =< / span > < span class = "s2" > " " " < / span >
< span class = "s2" > Evennia MU* creation system.< / span >
< span class = "s2" > Online manual and API docs are found at http://www.evennia.com.< / span >
< span class = "s2" > Flat-API shortcut names:< / span >
< span class = "si" > {}< / span >
< span class = "s2" > " " " < / span >
< span class = "c1" > # Delayed loading of properties< / span >
< span class = "c1" > # Typeclasses< / span >
< span class = "n" > DefaultAccount< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > DefaultGuest< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > DefaultObject< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > DefaultCharacter< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > DefaultRoom< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > DefaultExit< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > DefaultChannel< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > DefaultScript< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # Database models< / span >
< span class = "n" > ObjectDB< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > AccountDB< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > ScriptDB< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > ChannelDB< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > Msg< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > ServerConfig< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # Properties< / span >
< span class = "n" > AttributeProperty< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > TagProperty< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > TagCategoryProperty< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # commands< / span >
< span class = "n" > Command< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > CmdSet< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > default_cmds< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > syscmdkeys< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > InterruptCommand< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # search functions< / span >
< span class = "n" > search_object< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > search_script< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > search_account< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > search_channel< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > search_message< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > search_help< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > search_tag< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # create functions< / span >
< span class = "n" > create_object< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > create_script< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > create_account< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > create_channel< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > create_message< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > create_help_entry< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # utilities< / span >
< span class = "n" > settings< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > lockfuncs< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > inputhandler< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > logger< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > gametime< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > ansi< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > spawn< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > managers< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > contrib< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > EvMenu< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > EvTable< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > EvForm< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > EvEditor< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > EvMore< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > ANSIString< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > signals< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > FuncParser< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # Handlers< / span >
< span class = "n" > SESSION_HANDLER< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > PORTAL_SESSION_HANDLER< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > SERVER_SESSION_HANDLER< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > TASK_HANDLER< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > TICKER_HANDLER< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > MONITOR_HANDLER< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # Containers< / span >
< span class = "n" > GLOBAL_SCRIPTS< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > OPTION_CLASSES< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > PROCESS_ID< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > TWISTED_APPLICATION< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > EVENNIA_PORTAL_SERVICE< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > EVENNIA_SERVER_SERVICE< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "k" > def< / span > < span class = "nf" > _create_version< / span > < span class = "p" > ():< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Helper function for building the version string< / span >
< span class = "sd" > " " " < / span >
< span class = "kn" > import< / span > < span class = "nn" > os< / span >
< span class = "kn" > from< / span > < span class = "nn" > subprocess< / span > < span class = "kn" > import< / span > < span class = "n" > STDOUT< / span > < span class = "p" > ,< / span > < span class = "n" > CalledProcessError< / span > < span class = "p" > ,< / span > < span class = "n" > check_output< / span >
< span class = "n" > version< / span > < span class = "o" > =< / span > < span class = "s2" > " Unknown" < / span >
< span class = "n" > root< / span > < span class = "o" > =< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > dirname< / span > < span class = "p" > (< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > abspath< / span > < span class = "p" > (< / span > < span class = "vm" > __file__< / span > < span class = "p" > ))< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > with< / span > < span class = "nb" > open< / span > < span class = "p" > (< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > join< / span > < span class = "p" > (< / span > < span class = "n" > root< / span > < span class = "p" > ,< / span > < span class = "s2" > " VERSION.txt" < / span > < span class = "p" > ),< / span > < span class = "s2" > " r" < / span > < span class = "p" > )< / span > < span class = "k" > as< / span > < span class = "n" > f< / span > < span class = "p" > :< / span >
< span class = "n" > version< / span > < span class = "o" > =< / span > < span class = "n" > f< / span > < span class = "o" > .< / span > < span class = "n" > read< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > strip< / span > < span class = "p" > ()< / span >
< span class = "k" > except< / span > < span class = "ne" > IOError< / span > < span class = "k" > as< / span > < span class = "n" > err< / span > < span class = "p" > :< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "n" > err< / span > < span class = "p" > )< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > rev< / span > < span class = "o" > =< / span > < span class = "p" > (< / span >
< span class = "n" > check_output< / span > < span class = "p" > (< / span > < span class = "s2" > " git rev-parse --short HEAD" < / span > < span class = "p" > ,< / span > < span class = "n" > shell< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span > < span class = "n" > cwd< / span > < span class = "o" > =< / span > < span class = "n" > root< / span > < span class = "p" > ,< / span > < span class = "n" > stderr< / span > < span class = "o" > =< / span > < span class = "n" > STDOUT< / span > < span class = "p" > )< / span >
< span class = "o" > .< / span > < span class = "n" > strip< / span > < span class = "p" > ()< / span >
< span class = "o" > .< / span > < span class = "n" > decode< / span > < span class = "p" > ()< / span >
< span class = "p" > )< / span >
< span class = "n" > version< / span > < span class = "o" > =< / span > < span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > (rev < / span > < span class = "si" > %s< / span > < span class = "s2" > )" < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "n" > version< / span > < span class = "p" > ,< / span > < span class = "n" > rev< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > IOError< / span > < span class = "p" > ,< / span > < span class = "n" > CalledProcessError< / span > < span class = "p" > ,< / span > < span class = "ne" > OSError< / span > < span class = "p" > ):< / span >
< span class = "c1" > # ignore if we cannot get to git< / span >
< span class = "k" > pass< / span >
< span class = "k" > return< / span > < span class = "n" > version< / span >
< span class = "n" > __version__< / span > < span class = "o" > =< / span > < span class = "n" > _create_version< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > _create_version< / span >
< span class = "n" > _LOADED< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > PORTAL_MODE< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "k" > def< / span > < span class = "nf" > _init< / span > < span class = "p" > (< / span > < span class = "n" > portal_mode< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > This function is called automatically by the launcher only after< / span >
< span class = "sd" > Evennia has fully initialized all its models. It sets up the API< / span >
< span class = "sd" > in a safe environment where all models are available already.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > global< / span > < span class = "n" > _LOADED< / span >
< span class = "k" > if< / span > < span class = "n" > _LOADED< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span >
< span class = "n" > _LOADED< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "k" > global< / span > < span class = "n" > DefaultAccount< / span > < span class = "p" > ,< / span > < span class = "n" > DefaultObject< / span > < span class = "p" > ,< / span > < span class = "n" > DefaultGuest< / span > < span class = "p" > ,< / span > < span class = "n" > DefaultCharacter< / span >
< span class = "k" > global< / span > < span class = "n" > DefaultRoom< / span > < span class = "p" > ,< / span > < span class = "n" > DefaultExit< / span > < span class = "p" > ,< / span > < span class = "n" > DefaultChannel< / span > < span class = "p" > ,< / span > < span class = "n" > DefaultScript< / span >
< span class = "k" > global< / span > < span class = "n" > ObjectDB< / span > < span class = "p" > ,< / span > < span class = "n" > AccountDB< / span > < span class = "p" > ,< / span > < span class = "n" > ScriptDB< / span > < span class = "p" > ,< / span > < span class = "n" > ChannelDB< / span > < span class = "p" > ,< / span > < span class = "n" > Msg< / span >
< span class = "k" > global< / span > < span class = "n" > Command< / span > < span class = "p" > ,< / span > < span class = "n" > CmdSet< / span > < span class = "p" > ,< / span > < span class = "n" > default_cmds< / span > < span class = "p" > ,< / span > < span class = "n" > syscmdkeys< / span > < span class = "p" > ,< / span > < span class = "n" > InterruptCommand< / span >
< span class = "k" > global< / span > < span class = "n" > search_object< / span > < span class = "p" > ,< / span > < span class = "n" > search_script< / span > < span class = "p" > ,< / span > < span class = "n" > search_account< / span > < span class = "p" > ,< / span > < span class = "n" > search_channel< / span >
< span class = "k" > global< / span > < span class = "n" > search_help< / span > < span class = "p" > ,< / span > < span class = "n" > search_tag< / span > < span class = "p" > ,< / span > < span class = "n" > search_message< / span >
< span class = "k" > global< / span > < span class = "n" > create_object< / span > < span class = "p" > ,< / span > < span class = "n" > create_script< / span > < span class = "p" > ,< / span > < span class = "n" > create_account< / span > < span class = "p" > ,< / span > < span class = "n" > create_channel< / span >
< span class = "k" > global< / span > < span class = "n" > create_message< / span > < span class = "p" > ,< / span > < span class = "n" > create_help_entry< / span >
< span class = "k" > global< / span > < span class = "n" > signals< / span >
< span class = "k" > global< / span > < span class = "n" > settings< / span > < span class = "p" > ,< / span > < span class = "n" > lockfuncs< / span > < span class = "p" > ,< / span > < span class = "n" > logger< / span > < span class = "p" > ,< / span > < span class = "n" > utils< / span > < span class = "p" > ,< / span > < span class = "n" > gametime< / span > < span class = "p" > ,< / span > < span class = "n" > ansi< / span > < span class = "p" > ,< / span > < span class = "n" > spawn< / span > < span class = "p" > ,< / span > < span class = "n" > managers< / span >
< span class = "k" > global< / span > < span class = "n" > contrib< / span > < span class = "p" > ,< / span > < span class = "n" > TICKER_HANDLER< / span > < span class = "p" > ,< / span > < span class = "n" > MONITOR_HANDLER< / span > < span class = "p" > ,< / span > < span class = "n" > SESSION_HANDLER< / span > < span class = "p" > ,< / span > < span class = "n" > PROCESS_ID< / span >
< span class = "k" > global< / span > < span class = "n" > TASK_HANDLER< / span > < span class = "p" > ,< / span > < span class = "n" > PORTAL_SESSION_HANDLER< / span > < span class = "p" > ,< / span > < span class = "n" > SERVER_SESSION_HANDLER< / span >
< span class = "k" > global< / span > < span class = "n" > GLOBAL_SCRIPTS< / span > < span class = "p" > ,< / span > < span class = "n" > OPTION_CLASSES< / span > < span class = "p" > ,< / span > < span class = "n" > EVENNIA_PORTAL_SERVICE< / span > < span class = "p" > ,< / span > < span class = "n" > EVENNIA_SERVER_SERVICE< / span > < span class = "p" > ,< / span > < span class = "n" > TWISTED_APPLICATION< / span >
< span class = "k" > global< / span > < span class = "n" > EvMenu< / span > < span class = "p" > ,< / span > < span class = "n" > EvTable< / span > < span class = "p" > ,< / span > < span class = "n" > EvForm< / span > < span class = "p" > ,< / span > < span class = "n" > EvMore< / span > < span class = "p" > ,< / span > < span class = "n" > EvEditor< / span >
< span class = "k" > global< / span > < span class = "n" > ANSIString< / span > < span class = "p" > ,< / span > < span class = "n" > FuncParser< / span >
< span class = "k" > global< / span > < span class = "n" > AttributeProperty< / span > < span class = "p" > ,< / span > < span class = "n" > TagProperty< / span > < span class = "p" > ,< / span > < span class = "n" > TagCategoryProperty< / span > < span class = "p" > ,< / span > < span class = "n" > ServerConfig< / span >
< span class = "k" > global< / span > < span class = "n" > PORTAL_MODE< / span >
< span class = "n" > PORTAL_MODE< / span > < span class = "o" > =< / span > < span class = "n" > portal_mode< / span >
< span class = "c1" > # Parent typeclasses< / span >
< span class = "c1" > # utilities< / span >
< span class = "kn" > import< / span > < span class = "nn" > os< / span >
< span class = "kn" > from< / span > < span class = "nn" > django.conf< / span > < span class = "kn" > import< / span > < span class = "n" > settings< / span >
< span class = "kn" > from< / span > < span class = "nn" > .< / span > < span class = "kn" > import< / span > < span class = "n" > contrib< / span >
< span class = "kn" > from< / span > < span class = "nn" > .accounts.accounts< / span > < span class = "kn" > import< / span > < span class = "n" > DefaultAccount< / span > < span class = "p" > ,< / span > < span class = "n" > DefaultGuest< / span >
< span class = "kn" > from< / span > < span class = "nn" > .accounts.models< / span > < span class = "kn" > import< / span > < span class = "n" > AccountDB< / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands.cmdset< / span > < span class = "kn" > import< / span > < span class = "n" > CmdSet< / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands.command< / span > < span class = "kn" > import< / span > < span class = "n" > Command< / span > < span class = "p" > ,< / span > < span class = "n" > InterruptCommand< / span >
< span class = "kn" > from< / span > < span class = "nn" > .comms.comms< / span > < span class = "kn" > import< / span > < span class = "n" > DefaultChannel< / span >
< span class = "kn" > from< / span > < span class = "nn" > .comms.models< / span > < span class = "kn" > import< / span > < span class = "n" > ChannelDB< / span > < span class = "p" > ,< / span > < span class = "n" > Msg< / span >
< span class = "kn" > from< / span > < span class = "nn" > .locks< / span > < span class = "kn" > import< / span > < span class = "n" > lockfuncs< / span >
< span class = "kn" > from< / span > < span class = "nn" > .objects.models< / span > < span class = "kn" > import< / span > < span class = "n" > ObjectDB< / span >
< span class = "kn" > from< / span > < span class = "nn" > .objects.objects< / span > < span class = "kn" > import< / span > < span class = "p" > (< / span >
< span class = "n" > DefaultCharacter< / span > < span class = "p" > ,< / span >
< span class = "n" > DefaultExit< / span > < span class = "p" > ,< / span >
< span class = "n" > DefaultObject< / span > < span class = "p" > ,< / span >
< span class = "n" > DefaultRoom< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "kn" > from< / span > < span class = "nn" > .prototypes.spawner< / span > < span class = "kn" > import< / span > < span class = "n" > spawn< / span >
< span class = "kn" > from< / span > < span class = "nn" > .scripts.models< / span > < span class = "kn" > import< / span > < span class = "n" > ScriptDB< / span >
< span class = "kn" > from< / span > < span class = "nn" > .scripts.monitorhandler< / span > < span class = "kn" > import< / span > < span class = "n" > MONITOR_HANDLER< / span >
< span class = "kn" > from< / span > < span class = "nn" > .scripts.scripts< / span > < span class = "kn" > import< / span > < span class = "n" > DefaultScript< / span >
< span class = "kn" > from< / span > < span class = "nn" > .scripts.taskhandler< / span > < span class = "kn" > import< / span > < span class = "n" > TASK_HANDLER< / span >
< span class = "kn" > from< / span > < span class = "nn" > .scripts.tickerhandler< / span > < span class = "kn" > import< / span > < span class = "n" > TICKER_HANDLER< / span >
< span class = "kn" > from< / span > < span class = "nn" > .server< / span > < span class = "kn" > import< / span > < span class = "n" > signals< / span >
< span class = "kn" > from< / span > < span class = "nn" > .server.models< / span > < span class = "kn" > import< / span > < span class = "n" > ServerConfig< / span >
< span class = "kn" > from< / span > < span class = "nn" > .typeclasses.attributes< / span > < span class = "kn" > import< / span > < span class = "n" > AttributeProperty< / span >
< span class = "kn" > from< / span > < span class = "nn" > .typeclasses.tags< / span > < span class = "kn" > import< / span > < span class = "n" > TagCategoryProperty< / span > < span class = "p" > ,< / span > < span class = "n" > TagProperty< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils< / span > < span class = "kn" > import< / span > < span class = "n" > ansi< / span > < span class = "p" > ,< / span > < span class = "n" > class_from_module< / span > < span class = "p" > ,< / span > < span class = "n" > gametime< / span > < span class = "p" > ,< / span > < span class = "n" > logger< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.ansi< / span > < span class = "kn" > import< / span > < span class = "n" > ANSIString< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > PORTAL_MODE< / span > < span class = "p" > :< / span >
< span class = "c1" > # containers< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.containers< / span > < span class = "kn" > import< / span > < span class = "n" > GLOBAL_SCRIPTS< / span > < span class = "p" > ,< / span > < span class = "n" > OPTION_CLASSES< / span >
< span class = "c1" > # create functions< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.create< / span > < span class = "kn" > import< / span > < span class = "p" > (< / span >
< span class = "n" > create_account< / span > < span class = "p" > ,< / span >
< span class = "n" > create_channel< / span > < span class = "p" > ,< / span >
< span class = "n" > create_help_entry< / span > < span class = "p" > ,< / span >
< span class = "n" > create_message< / span > < span class = "p" > ,< / span >
< span class = "n" > create_object< / span > < span class = "p" > ,< / span >
< span class = "n" > create_script< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.eveditor< / span > < span class = "kn" > import< / span > < span class = "n" > EvEditor< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.evform< / span > < span class = "kn" > import< / span > < span class = "n" > EvForm< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.evmenu< / span > < span class = "kn" > import< / span > < span class = "n" > EvMenu< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.evmore< / span > < span class = "kn" > import< / span > < span class = "n" > EvMore< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.evtable< / span > < span class = "kn" > import< / span > < span class = "n" > EvTable< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.funcparser< / span > < span class = "kn" > import< / span > < span class = "n" > FuncParser< / span >
< span class = "c1" > # search functions< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.search< / span > < span class = "kn" > import< / span > < span class = "p" > (< / span >
< span class = "n" > search_account< / span > < span class = "p" > ,< / span >
< span class = "n" > search_channel< / span > < span class = "p" > ,< / span >
< span class = "n" > search_help< / span > < span class = "p" > ,< / span >
< span class = "n" > search_message< / span > < span class = "p" > ,< / span >
< span class = "n" > search_object< / span > < span class = "p" > ,< / span >
< span class = "n" > search_script< / span > < span class = "p" > ,< / span >
< span class = "n" > search_tag< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "kn" > from< / span > < span class = "nn" > .utils.utils< / span > < span class = "kn" > import< / span > < span class = "n" > class_from_module< / span >
< span class = "n" > PROCESS_ID< / span > < span class = "o" > =< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > getpid< / span > < span class = "p" > ()< / span >
< span class = "kn" > from< / span > < span class = "nn" > twisted.application.service< / span > < span class = "kn" > import< / span > < span class = "n" > Application< / span >
< span class = "n" > TWISTED_APPLICATION< / span > < span class = "o" > =< / span > < span class = "n" > Application< / span > < span class = "p" > (< / span > < span class = "s2" > " Evennia" < / span > < span class = "p" > )< / span >
< span class = "n" > _evennia_service_class< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "n" > portal_mode< / span > < span class = "p" > :< / span >
< span class = "c1" > # Set up the PortalSessionHandler< / span >
< span class = "kn" > from< / span > < span class = "nn" > evennia.server.portal< / span > < span class = "kn" > import< / span > < span class = "n" > portalsessionhandler< / span >
< span class = "n" > portal_sess_handler_class< / span > < span class = "o" > =< / span > < span class = "n" > class_from_module< / span > < span class = "p" > (< / span > < span class = "n" > settings< / span > < span class = "o" > .< / span > < span class = "n" > PORTAL_SESSION_HANDLER_CLASS< / span > < span class = "p" > )< / span >
< span class = "n" > portalsessionhandler< / span > < span class = "o" > .< / span > < span class = "n" > PORTAL_SESSIONS< / span > < span class = "o" > =< / span > < span class = "n" > portal_sess_handler_class< / span > < span class = "p" > ()< / span >
< span class = "n" > SESSION_HANDLER< / span > < span class = "o" > =< / span > < span class = "n" > portalsessionhandler< / span > < span class = "o" > .< / span > < span class = "n" > PORTAL_SESSIONS< / span >
< span class = "n" > evennia< / span > < span class = "o" > .< / span > < span class = "n" > PORTAL_SESSION_HANDLER< / span > < span class = "o" > =< / span > < span class = "n" > evennia< / span > < span class = "o" > .< / span > < span class = "n" > SESSION_HANDLER< / span >
< span class = "n" > _evennia_service_class< / span > < span class = "o" > =< / span > < span class = "n" > class_from_module< / span > < span class = "p" > (< / span > < span class = "n" > settings< / span > < span class = "o" > .< / span > < span class = "n" > EVENNIA_PORTAL_SERVICE_CLASS< / span > < span class = "p" > )< / span >
< span class = "n" > EVENNIA_PORTAL_SERVICE< / span > < span class = "o" > =< / span > < span class = "n" > _evennia_service_class< / span > < span class = "p" > ()< / span >
< span class = "n" > EVENNIA_PORTAL_SERVICE< / span > < span class = "o" > .< / span > < span class = "n" > setServiceParent< / span > < span class = "p" > (< / span > < span class = "n" > TWISTED_APPLICATION< / span > < span class = "p" > )< / span >
< span class = "kn" > from< / span > < span class = "nn" > django.db< / span > < span class = "kn" > import< / span > < span class = "n" > connection< / span >
< span class = "c1" > # we don' t need a connection to the database so close it right away< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > close< / span > < span class = "p" > ()< / span >
< span class = "k" > except< / span > < span class = "ne" > Exception< / span > < span class = "p" > :< / span >
< span class = "k" > pass< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "c1" > # Create the ServerSesssionHandler< / span >
< span class = "kn" > from< / span > < span class = "nn" > evennia.server< / span > < span class = "kn" > import< / span > < span class = "n" > sessionhandler< / span >
< span class = "n" > sess_handler_class< / span > < span class = "o" > =< / span > < span class = "n" > class_from_module< / span > < span class = "p" > (< / span > < span class = "n" > settings< / span > < span class = "o" > .< / span > < span class = "n" > SERVER_SESSION_HANDLER_CLASS< / span > < span class = "p" > )< / span >
< span class = "n" > sessionhandler< / span > < span class = "o" > .< / span > < span class = "n" > SESSIONS< / span > < span class = "o" > =< / span > < span class = "n" > sess_handler_class< / span > < span class = "p" > ()< / span >
< span class = "n" > sessionhandler< / span > < span class = "o" > .< / span > < span class = "n" > SESSION_HANDLER< / span > < span class = "o" > =< / span > < span class = "n" > sessionhandler< / span > < span class = "o" > .< / span > < span class = "n" > SESSIONS< / span >
< span class = "n" > SESSION_HANDLER< / span > < span class = "o" > =< / span > < span class = "n" > sessionhandler< / span > < span class = "o" > .< / span > < span class = "n" > SESSIONS< / span >
< span class = "n" > SERVER_SESSION_HANDLER< / span > < span class = "o" > =< / span > < span class = "n" > SESSION_HANDLER< / span >
< span class = "n" > _evennia_service_class< / span > < span class = "o" > =< / span > < span class = "n" > class_from_module< / span > < span class = "p" > (< / span > < span class = "n" > settings< / span > < span class = "o" > .< / span > < span class = "n" > EVENNIA_SERVER_SERVICE_CLASS< / span > < span class = "p" > )< / span >
< span class = "n" > EVENNIA_SERVER_SERVICE< / span > < span class = "o" > =< / span > < span class = "n" > _evennia_service_class< / span > < span class = "p" > ()< / span >
< span class = "n" > EVENNIA_SERVER_SERVICE< / span > < span class = "o" > .< / span > < span class = "n" > setServiceParent< / span > < span class = "p" > (< / span > < span class = "n" > TWISTED_APPLICATION< / span > < span class = "p" > )< / span >
< span class = "c1" > # API containers< / span >
< span class = "k" > class< / span > < span class = "nc" > _EvContainer< / span > < span class = "p" > (< / span > < span class = "nb" > object< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Parent for other containers< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > def< / span > < span class = "nf" > _help< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s2" > " Returns list of contents" < / span >
< span class = "n" > names< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > name< / span > < span class = "k" > for< / span > < span class = "n" > name< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > name< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " _" < / span > < span class = "p" > )]< / span >
< span class = "n" > names< / span > < span class = "o" > +=< / span > < span class = "p" > [< / span > < span class = "n" > name< / span > < span class = "k" > for< / span > < span class = "n" > name< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > name< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " _" < / span > < span class = "p" > )]< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __doc__< / span > < span class = "o" > +< / span > < span class = "s2" > " -" < / span > < span class = "o" > *< / span > < span class = "mi" > 60< / span > < span class = "o" > +< / span > < span class = "s2" > " < / span > < span class = "se" > \n< / span > < span class = "s2" > " < / span > < span class = "o" > +< / span > < span class = "s2" > " , " < / span > < span class = "o" > .< / span > < span class = "n" > join< / span > < span class = "p" > (< / span > < span class = "n" > names< / span > < span class = "p" > ))< / span >
< span class = "n" > help< / span > < span class = "o" > =< / span > < span class = "nb" > property< / span > < span class = "p" > (< / span > < span class = "n" > _help< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "nc" > DBmanagers< / span > < span class = "p" > (< / span > < span class = "n" > _EvContainer< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Links to instantiated Django database managers. These are used< / span >
< span class = "sd" > to perform more advanced custom database queries than the standard< / span >
< span class = "sd" > search functions allow.< / span >
< span class = "sd" > helpentries - HelpEntry.objects< / span >
< span class = "sd" > accounts - AccountDB.objects< / span >
< span class = "sd" > scripts - ScriptDB.objects< / span >
< span class = "sd" > msgs - Msg.objects< / span >
< span class = "sd" > channels - Channel.objects< / span >
< span class = "sd" > objects - ObjectDB.objects< / span >
< span class = "sd" > serverconfigs - ServerConfig.objects< / span >
< span class = "sd" > tags - Tags.objects< / span >
< span class = "sd" > attributes - Attributes.objects< / span >
< span class = "sd" > " " " < / span >
< span class = "kn" > from< / span > < span class = "nn" > .accounts.models< / span > < span class = "kn" > import< / span > < span class = "n" > AccountDB< / span >
< span class = "kn" > from< / span > < span class = "nn" > .comms.models< / span > < span class = "kn" > import< / span > < span class = "n" > ChannelDB< / span > < span class = "p" > ,< / span > < span class = "n" > Msg< / span >
< span class = "kn" > from< / span > < span class = "nn" > .help.models< / span > < span class = "kn" > import< / span > < span class = "n" > HelpEntry< / span >
< span class = "kn" > from< / span > < span class = "nn" > .objects.models< / span > < span class = "kn" > import< / span > < span class = "n" > ObjectDB< / span >
< span class = "kn" > from< / span > < span class = "nn" > .scripts.models< / span > < span class = "kn" > import< / span > < span class = "n" > ScriptDB< / span >
< span class = "kn" > from< / span > < span class = "nn" > .server.models< / span > < span class = "kn" > import< / span > < span class = "n" > ServerConfig< / span >
< span class = "kn" > from< / span > < span class = "nn" > .typeclasses.attributes< / span > < span class = "kn" > import< / span > < span class = "n" > Attribute< / span >
< span class = "kn" > from< / span > < span class = "nn" > .typeclasses.tags< / span > < span class = "kn" > import< / span > < span class = "n" > Tag< / span >
< span class = "c1" > # create container' s properties< / span >
< span class = "n" > helpentries< / span > < span class = "o" > =< / span > < span class = "n" > HelpEntry< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "n" > accounts< / span > < span class = "o" > =< / span > < span class = "n" > AccountDB< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "n" > scripts< / span > < span class = "o" > =< / span > < span class = "n" > ScriptDB< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "n" > msgs< / span > < span class = "o" > =< / span > < span class = "n" > Msg< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "n" > channels< / span > < span class = "o" > =< / span > < span class = "n" > ChannelDB< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "n" > objects< / span > < span class = "o" > =< / span > < span class = "n" > ObjectDB< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "n" > serverconfigs< / span > < span class = "o" > =< / span > < span class = "n" > ServerConfig< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "n" > attributes< / span > < span class = "o" > =< / span > < span class = "n" > Attribute< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "n" > tags< / span > < span class = "o" > =< / span > < span class = "n" > Tag< / span > < span class = "o" > .< / span > < span class = "n" > objects< / span >
< span class = "c1" > # remove these so they are not visible as properties< / span >
< span class = "k" > del< / span > < span class = "n" > HelpEntry< / span > < span class = "p" > ,< / span > < span class = "n" > AccountDB< / span > < span class = "p" > ,< / span > < span class = "n" > ScriptDB< / span > < span class = "p" > ,< / span > < span class = "n" > Msg< / span > < span class = "p" > ,< / span > < span class = "n" > ChannelDB< / span >
< span class = "c1" > # del ExternalChannelConnection< / span >
< span class = "k" > del< / span > < span class = "n" > ObjectDB< / span > < span class = "p" > ,< / span > < span class = "n" > ServerConfig< / span > < span class = "p" > ,< / span > < span class = "n" > Tag< / span > < span class = "p" > ,< / span > < span class = "n" > Attribute< / span >
< span class = "n" > managers< / span > < span class = "o" > =< / span > < span class = "n" > DBmanagers< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > DBmanagers< / span >
< span class = "k" > class< / span > < span class = "nc" > DefaultCmds< / span > < span class = "p" > (< / span > < span class = "n" > _EvContainer< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > This container holds direct shortcuts to all default commands in Evennia.< / span >
< span class = "sd" > To access in code, do ' from evennia import default_cmds' then< / span >
< span class = "sd" > access the properties on the imported default_cmds object.< / span >
< span class = "sd" > " " " < / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands.default.cmdset_account< / span > < span class = "kn" > import< / span > < span class = "n" > AccountCmdSet< / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands.default.cmdset_character< / span > < span class = "kn" > import< / span > < span class = "n" > CharacterCmdSet< / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands.default.cmdset_session< / span > < span class = "kn" > import< / span > < span class = "n" > SessionCmdSet< / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands.default.cmdset_unloggedin< / span > < span class = "kn" > import< / span > < span class = "n" > UnloggedinCmdSet< / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands.default.muxcommand< / span > < span class = "kn" > import< / span > < span class = "n" > MuxAccountCommand< / span > < span class = "p" > ,< / span > < span class = "n" > MuxCommand< / span >
< span class = "k" > def< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s2" > " populate the object with commands" < / span >
< span class = "k" > def< / span > < span class = "nf" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > module< / span > < span class = "p" > ):< / span >
< span class = "s2" > " helper method for populating this object with cmds" < / span >
< span class = "kn" > from< / span > < span class = "nn" > evennia.utils< / span > < span class = "kn" > import< / span > < span class = "n" > utils< / span >
< span class = "n" > cmdlist< / span > < span class = "o" > =< / span > < span class = "n" > utils< / span > < span class = "o" > .< / span > < span class = "n" > variable_from_module< / span > < span class = "p" > (< / span > < span class = "n" > module< / span > < span class = "p" > ,< / span > < span class = "n" > module< / span > < span class = "o" > .< / span > < span class = "n" > __all__< / span > < span class = "p" > )< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "o" > .< / span > < span class = "n" > update< / span > < span class = "p" > (< / span > < span class = "nb" > dict< / span > < span class = "p" > ([(< / span > < span class = "n" > c< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "p" > ,< / span > < span class = "n" > c< / span > < span class = "p" > )< / span > < span class = "k" > for< / span > < span class = "n" > c< / span > < span class = "ow" > in< / span > < span class = "n" > cmdlist< / span > < span class = "p" > ]))< / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands.default< / span > < span class = "kn" > import< / span > < span class = "p" > (< / span >
< span class = "n" > account< / span > < span class = "p" > ,< / span >
< span class = "n" > admin< / span > < span class = "p" > ,< / span >
< span class = "n" > batchprocess< / span > < span class = "p" > ,< / span >
< span class = "n" > building< / span > < span class = "p" > ,< / span >
< span class = "n" > comms< / span > < span class = "p" > ,< / span >
< span class = "n" > general< / span > < span class = "p" > ,< / span >
< span class = "n" > help< / span > < span class = "p" > ,< / span >
< span class = "n" > system< / span > < span class = "p" > ,< / span >
< span class = "n" > unloggedin< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > admin< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > building< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > batchprocess< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > building< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > comms< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > general< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > account< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > help< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > system< / span > < span class = "p" > )< / span >
< span class = "n" > add_cmds< / span > < span class = "p" > (< / span > < span class = "n" > unloggedin< / span > < span class = "p" > )< / span >
< span class = "n" > default_cmds< / span > < span class = "o" > =< / span > < span class = "n" > DefaultCmds< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > DefaultCmds< / span >
< span class = "k" > class< / span > < span class = "nc" > SystemCmds< / span > < span class = "p" > (< / span > < span class = "n" > _EvContainer< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Creating commands with keys set to these constants will make< / span >
< span class = "sd" > them system commands called as a replacement by the parser when< / span >
< span class = "sd" > special situations occur. If not defined, the hard-coded< / span >
< span class = "sd" > responses in the server are used.< / span >
< span class = "sd" > CMD_NOINPUT - no input was given on command line< / span >
< span class = "sd" > CMD_NOMATCH - no valid command key was found< / span >
< span class = "sd" > CMD_MULTIMATCH - multiple command matches were found< / span >
< span class = "sd" > CMD_LOGINSTART - this command will be called as the very< / span >
< span class = "sd" > first command when an account connects to< / span >
< span class = "sd" > the server.< / span >
< span class = "sd" > To access in code, do ' from evennia import syscmdkeys' then< / span >
< span class = "sd" > access the properties on the imported syscmdkeys object.< / span >
< span class = "sd" > " " " < / span >
< span class = "kn" > from< / span > < span class = "nn" > .commands< / span > < span class = "kn" > import< / span > < span class = "n" > cmdhandler< / span >
< span class = "n" > CMD_NOINPUT< / span > < span class = "o" > =< / span > < span class = "n" > cmdhandler< / span > < span class = "o" > .< / span > < span class = "n" > CMD_NOINPUT< / span >
< span class = "n" > CMD_NOMATCH< / span > < span class = "o" > =< / span > < span class = "n" > cmdhandler< / span > < span class = "o" > .< / span > < span class = "n" > CMD_NOMATCH< / span >
< span class = "n" > CMD_MULTIMATCH< / span > < span class = "o" > =< / span > < span class = "n" > cmdhandler< / span > < span class = "o" > .< / span > < span class = "n" > CMD_MULTIMATCH< / span >
< span class = "n" > CMD_LOGINSTART< / span > < span class = "o" > =< / span > < span class = "n" > cmdhandler< / span > < span class = "o" > .< / span > < span class = "n" > CMD_LOGINSTART< / span >
< span class = "k" > del< / span > < span class = "n" > cmdhandler< / span >
< span class = "n" > syscmdkeys< / span > < span class = "o" > =< / span > < span class = "n" > SystemCmds< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > SystemCmds< / span >
< span class = "k" > del< / span > < span class = "n" > _EvContainer< / span >
< div class = "viewcode-block" id = "set_trace" > < a class = "viewcode-back" href = "../api/evennia.html#evennia.set_trace" > [docs]< / a > < span class = "k" > def< / span > < span class = "nf" > set_trace< / span > < span class = "p" > (< / span > < span class = "n" > term_size< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "mi" > 140< / span > < span class = "p" > ,< / span > < span class = "mi" > 80< / span > < span class = "p" > ),< / span > < span class = "n" > debugger< / span > < span class = "o" > =< / span > < span class = "s2" > " auto" < / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Helper function for running a debugger inside the Evennia event loop.< / span >
< span class = "sd" > Args:< / span >
< span class = "sd" > term_size (tuple, optional): Only used for Pudb and defines the size of the terminal< / span >
< span class = "sd" > (width, height) in number of characters.< / span >
< span class = "sd" > debugger (str, optional): One of ' auto' , ' pdb' or ' pudb' . Pdb is the standard debugger. Pudb< / span >
< span class = "sd" > is an external package with a different, more ' graphical' , ncurses-based UI. With< / span >
< span class = "sd" > ' auto' , will use pudb if possible, otherwise fall back to pdb. Pudb is available through< / span >
< span class = "sd" > `pip install pudb`.< / span >
< span class = "sd" > Notes:< / span >
< span class = "sd" > To use:< / span >
< span class = "sd" > 1) add this to a line to act as a breakpoint for entering the debugger:< / span >
< span class = "sd" > from evennia import set_trace; set_trace()< / span >
< span class = "sd" > 2) restart evennia in interactive mode< / span >
< span class = "sd" > evennia istart< / span >
< span class = "sd" > 3) debugger will appear in the interactive terminal when breakpoint is reached. Exit< / span >
< span class = "sd" > with ' q' , remove the break line and restart server when finished.< / span >
< span class = "sd" > " " " < / span >
< span class = "kn" > import< / span > < span class = "nn" > sys< / span >
< span class = "n" > dbg< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "n" > debugger< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "s2" > " auto" < / span > < span class = "p" > ,< / span > < span class = "s2" > " pudb" < / span > < span class = "p" > ):< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "kn" > from< / span > < span class = "nn" > pudb< / span > < span class = "kn" > import< / span > < span class = "n" > debugger< / span >
< span class = "n" > dbg< / span > < span class = "o" > =< / span > < span class = "n" > debugger< / span > < span class = "o" > .< / span > < span class = "n" > Debugger< / span > < span class = "p" > (< / span > < span class = "n" > stdout< / span > < span class = "o" > =< / span > < span class = "n" > sys< / span > < span class = "o" > .< / span > < span class = "n" > __stdout__< / span > < span class = "p" > ,< / span > < span class = "n" > term_size< / span > < span class = "o" > =< / span > < span class = "n" > term_size< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "ne" > ImportError< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > debugger< / span > < span class = "o" > ==< / span > < span class = "s2" > " pudb" < / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span >
< span class = "k" > pass< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > dbg< / span > < span class = "p" > :< / span >
< span class = "kn" > import< / span > < span class = "nn" > pdb< / span >
< span class = "n" > dbg< / span > < span class = "o" > =< / span > < span class = "n" > pdb< / span > < span class = "o" > .< / span > < span class = "n" > Pdb< / span > < span class = "p" > (< / span > < span class = "n" > stdout< / span > < span class = "o" > =< / span > < span class = "n" > sys< / span > < span class = "o" > .< / span > < span class = "n" > __stdout__< / span > < span class = "p" > )< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "c1" > # Start debugger, forcing it up one stack frame (otherwise `set_trace`< / span >
< span class = "c1" > # will start debugger this point, not the actual code location)< / span >
< span class = "n" > dbg< / span > < span class = "o" > .< / span > < span class = "n" > set_trace< / span > < span class = "p" > (< / span > < span class = "n" > sys< / span > < span class = "o" > .< / span > < span class = "n" > _getframe< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > f_back< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "ne" > Exception< / span > < span class = "p" > :< / span >
< span class = "c1" > # Stopped at breakpoint. Press ' n' to continue into the code.< / span >
< span class = "n" > dbg< / span > < span class = "o" > .< / span > < span class = "n" > set_trace< / span > < span class = "p" > ()< / span > < / div >
< span class = "c1" > # initialize the doc string< / span >
< span class = "k" > global< / span > < span class = "vm" > __doc__< / span >
< span class = "vm" > __doc__< / span > < span class = "o" > =< / span > < span class = "n" > DOCSTRING< / span > < span class = "o" > .< / span > < span class = "n" > format< / span > < span class = "p" > (< / span >
< span class = "s2" > " < / span > < span class = "se" > \n< / span > < span class = "s2" > - " < / span >
< span class = "o" > +< / span > < span class = "s2" > " < / span > < span class = "se" > \n< / span > < span class = "s2" > - " < / span > < span class = "o" > .< / span > < span class = "n" > join< / span > < span class = "p" > (< / span >
< span class = "sa" > f< / span > < span class = "s2" > " evennia.< / span > < span class = "si" > {< / span > < span class = "n" > key< / span > < span class = "si" > }< / span > < span class = "s2" > " < / span >
< span class = "k" > for< / span > < span class = "n" > key< / span > < span class = "ow" > in< / span > < span class = "nb" > sorted< / span > < span class = "p" > (< / span > < span class = "nb" > globals< / span > < span class = "p" > ())< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > key< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " _" < / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "n" > key< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "s2" > " DOCSTRING" < / span > < span class = "p" > ,)< / span >
< span class = "p" > )< / span >
< span class = "p" > )< / span >
< / pre > < / div >
< / div >
< / div >
< / div >
< / div >
< div class = "related" role = "navigation" aria-label = "related navigation" >
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
< a href = "../genindex.html" title = "General Index"
>index< / a > < / li >
< li class = "right" >
< a href = "../py-modindex.html" title = "Python Module Index"
>modules< / a > |< / li >
2023-12-21 00:12:31 +01:00
< li class = "nav-item nav-item-0" > < a href = "../index.html" > Evennia 3.x< / a > » < / li >
2023-12-20 23:10:55 +01:00
< li class = "nav-item nav-item-1" > < a href = "index.html" > Module code< / a > » < / li >
< li class = "nav-item nav-item-this" > < a href = "" > evennia< / a > < / li >
< / ul >
< / div >
< div class = "admonition important" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > You are reading an old version of the Evennia documentation. < a href = "https://www.evennia.com/docs/latest/index.html" > The latest version is here< / a > < / p > .
< / div >
< div class = "footer" role = "contentinfo" >
© Copyright 2023, The Evennia developer community.
Created using < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > 3.2.1.
< / div >
< / body >
< / html >