Python MUD/MUX/MUSH/MU* development system http://www.evennia.com
Find a file
loki77 ad009e20ab basicobject.py
---------------
  - Checks for NULL description on objects- if Null, it doesn't print the extra line any more.
  - Made the checks for contents a little less ambiguous

cmdhandler.py
--------------
  - Added new method 'parse_command' which takes a command string and tries to break it up based on common command parsing rules.  Mostly complete, but could use some work on the edge cases.  Check out the docstring on the function- I tried to make it fairly well documented.
  - Changed the check for 'non-standard characters' to just return, rather than throw an Exception.  Not sure if this causes any issues, but I noticed that when you hit enter without entering a command it would trigger this code.  Now it just fails silently.
  - The handle function now calls the parse_command function now and stores the results in parsed_input['parsed_command'].  This then gets put into cdat['uinput'] at the end of handle() like before.  The old data in parsed_input is still there, this is just a new field.
  - Added cdat['raw_input'] to pass the full, untouched command string on.  This is also stored in parsed_input['parsed_command']['raw_command'] so not sure fi this is necessary any longer, probably not.

cmdtable.py
------------
  - Just cleaned it up a bit and straightened out the columns after changing 3-4 space indentation.

apps/objects/models.py
-----------------------
  - set_description now sets the description attribute to 'None' (or Null in the db) when given a blank description.  This is used for the change mentioned above in basicobject.py
  - get_description now returns None if self.description is None
  - used defines_global in the comparison methods like is_player

functions_db.py
----------------
  - Changed import defines_global as defines_global to just 'import defines_global'- wasn't sure why this was this way, if I broke something (I didn't seem to) let me know.
  - renamed player_search to player_name_search.  Removed the use of local_and_global_search inside of it.  local_and_global_search now calls it when it receives a search_string that starts with *.
  - alias_search now only looks at attributes with attr_name == ALIAS.  It used to just look at attr_value, which could match anything, it seemed.
  - added 'dbref_search'
  - local_and_global_search changes:
    - Now uses dbref_search & player_search if the string starts with "#" or "*" respectively
    - Changed when it uses dbref_search to whenever the search_string is a dbref.  It used to check that it was a dbref, and that search_contents & search_location were set, but I *believe* in most MU*'s when you supply a dbref it never fails to find the object.

commands/unloggedin.py
-----------------------
  - removed hardcoded object type #'s and started using defines_global instead
  - when creating a new account, made sure that no object with an alias matching the player name requested exists.  This is behavior from TinyMUSH, and I think most MUSHs follow this, but if not this is easy enough to change back.

commands/general.py
--------------------
  - Rewrote cmd_page:
    - New Features
      - Page by dbref
      - Page multiple people
      - pose (:) and no space pose (;) pages
      - When someone hits page without a target or data, it now will tell the player who they last paged, or say they haven't paged anyone if they don't have a LASTPAGED
    - uses parse_command, made it a lot easier to work through the extra functionality added above
    - When there are multiple words in a page target, it first tries to find a player that matches the entire string.  If that fails, then it goes through each word, assuming each is a separate target, and works out paging them.

commands/objmanip.py
---------------------
  - I started to muck with cmd_name & cmd_page, but decided to hold off for now.  Largely, if everyone is cool with the idea that names & aliases should be totally unique, then we need to go ahead and re-write these.  I'll do that if everyone is cool with it.
2008-06-13 18:15:54 +00:00
apps basicobject.py 2008-06-13 18:15:54 +00:00
commands basicobject.py 2008-06-13 18:15:54 +00:00
doxygen Finalizing layout. 2007-04-03 13:43:49 +00:00
media/css Beginnings of the integrated front-end website. 2007-06-05 20:06:21 +00:00
reload Re-tabbed managers.py under reload (was set to 4 spaces) 2007-09-14 17:17:19 +00:00
scripts basicobject.py 2008-06-13 18:15:54 +00:00
webtemplates/prosimii We now have user authentication via the web interface. @whee. 2007-08-02 19:37:16 +00:00
__init__.py Re-organization. 2007-04-03 13:42:51 +00:00
ABOUT Was looking for an excuse to nab revision 100 :) Updated some stuff to reflect our new Google project/code pages. 2007-04-30 20:02:11 +00:00
ansi.py Re-organization. 2007-04-03 13:42:51 +00:00
cmdhandler.py basicobject.py 2008-06-13 18:15:54 +00:00
cmdtable.py basicobject.py 2008-06-13 18:15:54 +00:00
defines_global.py Cleaned up the revision information for aesthetics. 2007-08-07 17:30:35 +00:00
evennia.vhost.apache Re-organization. 2007-04-03 13:42:51 +00:00
events.py Big re-organization of command functions. Introduced the commands directory to hold command modules. This will make it easier to sub-divide stuff as we pile on more commands, and for dropping in new optional command modules. 2007-05-29 03:32:48 +00:00
functions_comsys.py Ok, I really should test this stuff before committing. send_cmessage() should now handle invalid channels. 2007-07-16 19:09:10 +00:00
functions_db.py basicobject.py 2008-06-13 18:15:54 +00:00
functions_general.py Temporarily removing channel emits to avoid circular dependencies. Pfft. 2007-07-25 15:06:04 +00:00
functions_help.py Re-organization. 2007-04-03 13:42:51 +00:00
gameconf.py Make config values not case-sensitive. 2007-07-17 13:26:00 +00:00
initial_setup.py Big re-organization of command functions. Introduced the commands directory to hold command modules. This will make it easier to sub-divide stuff as we pile on more commands, and for dropping in new optional command modules. 2007-05-29 03:32:48 +00:00
INSTALL Update the INSTALL file to include a notice about referring to the web-based documentation. Yes, I'm looking for an excuse to test the commit log :) 2007-05-27 23:20:44 +00:00
LICENSE It's time to take care of the legal mumbo jumbo. We're going with a Modified Clarified Artistic License. Basically, you've got free reign of the software as long as you make any of the changes to the source you make publicly available. 2007-05-18 15:36:28 +00:00
manage.py Re-organization. 2007-04-03 13:42:51 +00:00
mixins.py Did some work on the reload manager, as well as removed 2007-09-06 14:58:18 +00:00
README * Created INSTALL; moved initial installation instructions from README 2007-05-04 16:58:56 +00:00
scheduler.py Some documentation fixups that I noticed off-hand. 2007-05-23 19:52:55 +00:00
scripthandler.py Comment clarification. 2007-07-12 17:44:43 +00:00
server.py Make Evennia start correctly on the latest version of Twisted. There is a logging snafu that exists with the latest Twisted, and it was only dumb luck that the server started on previous versions of the framework. The ticket detailing this problem is at: http://twistedmatrix.com/trac/ticket/3289 2008-06-10 20:46:17 +00:00
session.py Moved the connect screen to the connect_screen config directive. Made the conf_value field on the configvalue model a TextField so we're not getting truncated at 255 as with a CharField. This means you'll need to delete your config tables and re-sync. 2007-10-27 03:25:42 +00:00
session_mgr.py Big re-organization of command functions. Introduced the commands directory to hold command modules. This will make it easier to sub-divide stuff as we pile on more commands, and for dropping in new optional command modules. 2007-05-29 03:32:48 +00:00
settings.py.dist Make Evennia start correctly on the latest version of Twisted. There is a logging snafu that exists with the latest Twisted, and it was only dumb luck that the server started on previous versions of the framework. The ticket detailing this problem is at: http://twistedmatrix.com/trac/ticket/3289 2008-06-10 20:46:17 +00:00
startup.bat Make Evennia start correctly on the latest version of Twisted. There is a logging snafu that exists with the latest Twisted, and it was only dumb luck that the server started on previous versions of the framework. The ticket detailing this problem is at: http://twistedmatrix.com/trac/ticket/3289 2008-06-10 20:46:17 +00:00
startup.sh Make Evennia start correctly on the latest version of Twisted. There is a logging snafu that exists with the latest Twisted, and it was only dumb luck that the server started on previous versions of the framework. The ticket detailing this problem is at: http://twistedmatrix.com/trac/ticket/3289 2008-06-10 20:46:17 +00:00
TODO Movin the TODO list to the google code group page. 2007-04-23 15:57:34 +00:00
urls.py We now have user authentication via the web interface. @whee. 2007-08-02 19:37:16 +00:00

About Evennia
-------------
Evennia is a proof-of-concept MU* server that aims to provide a functional
base for developers. While there are quite a few codebases that do the same
(and very well in many cases), we are taking a unique spin on the problem.
Some of our flagship features include (or will one day include):

* Extensive web integration.
* The ability to build/administer through a web browser.
* Shared accounts between the website and the game.
* Optional web-based character creation.
* Extremely easy-to-manipulate SQL database back-end via Django 
  (djangoproject.com)
* Simple and easily extensible design.
* Very granular permissions. Individual and group based.

The essential points here are the web integration and the SQL backing via
Django. The Django framework has database abstraction abilities that give us
many features free, such as:

* The codebase will run transparently on MySQL, SQLite, or Postgres
* At the time of this document's writing, our SQL-backed application here
  contains 0 lines of SQL. Django's database abstraction layer is absolutely
  simple yet very powerful.
* For any model we outline for the server's use, we have the ability to
  more or less automatically generate a web-based admin interface for it with
  two lines of code. This lets you Create, Update, or Delete entries.
* On the web-based side of things, features such as automatic form validation,
  abstraction of sessions and cookies, and access to whatever game data you
  desire are all attractive.
  
Support and Development
-----------------------
Since we're so early in development, we really can't hope to offer much support.
However, if you'd like to report bugs, make suggestions, or help with the
code work, visit either or both of the following links:

* Evennia Webpage
  http://evennia.com

* Evennia Code Page
  http://code.evennia.com

* Evennia Test Game
  evennia.com port 4000