Commit graph

38 commits

Author SHA1 Message Date
Griatch
2b3a32e447 Reshuffling the Evennia package into the new template paradigm. 2015-01-06 14:53:45 +01:00
Griatch
8a9e1a9b4b Fixed arg_regex inheritance across child commands. Resolves #601. 2014-10-17 18:28:53 +02:00
Griatch
5b38f27554 Made property assignment go to Typeclass if that property were already defined on typeclass; otherwise relegate to dbobj as before. This fixes issues with property assignments on the Typeclass level. There are no obvious regressions in testing this but it's something to keep an eye out for in case there are any unexpected side effects. 2014-09-30 14:12:58 +02:00
Duarte Cordeiro
48f145031b Corrected command.msg function to work with the changes introducted with MULTISESSION_MODE=3, e.g. the replacement of session id (int) for a session handler object. 2014-09-25 15:50:41 +02:00
Griatch
545804dffe Added ability to abort the command chain by returning a true value from cmd.at_pre_cmd(). 2014-08-26 09:09:55 +02:00
Griatch
e6950aadf2 Changed how lazy-loading of handlers work, using a werkzeug recipe. Much more efficient now. 2014-07-06 13:10:03 +02:00
Griatch
dc2cce5f4f Fixed the Command CmdExample class. 2014-05-10 19:57:59 +02:00
Griatch
0030530021 Added weak reverse references from all handlers. 2014-05-10 17:12:49 +02:00
Griatch
1ae17bcbe4 PEP8 cleanup of the entire codebase. Unchanged are many cases of too-long lines, partly because of the rewrite they would require but also because splitting many lines up would make the code harder to read. Also the third-party libraries (idmapper, prettytable etc) were not cleaned. 2013-11-14 19:31:17 +01:00
Griatch
55423f6a2f Fixed a ZeroDivionError by adjusting what is returned by aliashandler.all() when no aliases are given ([] instead of ['']). Also made sure src.utils.stringsuggestions() don't crash in such a situation. 2013-10-18 16:15:51 +02:00
Griatch
e36c7d5cc1 Cleaned up worst instability. Test suite does validate yet. 2013-09-21 17:33:48 +02:00
Griatch
3cf01ce711 Reverted previous merge, instead solving the issue by the metaclass making sure to add cmd:all() to the exit command only if the object itself does not specify it. 2013-07-02 11:51:04 +02:00
Griatch
5800b960ff Added safety feature to lock handling. 2013-07-02 09:34:35 +02:00
Griatch
92339362ec Changed/fixed some issues with the command priorities that caused a lower-prio dynamically-created command to not properly be accounted for. Also changed the prio order for which of the cmdsets are used for checking the "duplicates" flag - it is now the new set being merged onto the new one (i.e. the priorotized) cmdset that must have this flag set in order for the result to have duplicates. 2013-07-01 14:30:17 +02:00
Griatch
29e313492f Added more session info to ooclook. Working on a bug that causes superuser to not be recognized now and then - this seems to be related to character.player returning None. This revision contains some printout debug messages since that bug is not yet fixed. 2013-03-11 01:32:17 +01:00
Griatch
25505d69a6 Moved login and disconnect from session-level to sessionhandler level to make the process cleaner with hooks rather than direct calls. 2013-02-17 18:48:48 +01:00
Griatch
8966f03713 Merge. Reworked the added Command.__ne__ operator a bit for a tiny speed optimization (it's after all one of the most called methods in Evennia). 2012-11-03 19:21:19 +01:00
lagos
b1f4d9ceaa Adds a __ne__ operator to Command. This is necessary for CmdSet.remove() to behave as expected. 2012-11-02 15:08:59 -07:00
Griatch
a8dcfff248 Fixing the strange edge-case of trying to define a command with the same alias being defined multiple times or aliases being the same as the command key. This is now excluded at the Command metaclass level. 2012-09-29 10:52:31 +02:00
Griatch
4c83d3e7a1 Various speed optimizations in various places, following further profiling. 2012-09-20 00:47:28 +02:00
Griatch
3091587e33 Added a timeout to the attribute caching; the system will now clean cache at regular intervals once it pass a certain size defined in settings. 2012-04-28 00:37:36 +02:00
Griatch
e3ce0a7933 Some fixes to the caching, particularly in set_attribute. 2012-04-27 00:03:31 +02:00
Griatch
a8373c685f Some optimizations in one of the most expensive bits of the server, namely the command handler. 2012-04-25 18:47:03 +02:00
Griatch
c0322c9eae Cleaning some unnecessary whitespace, overall cleanup of various source codes. 2012-03-30 23:47:22 +02:00
Griatch
aae67225a4 Added auto_help as a class property on Commands. This allows to turn on/off auto-help generation on a per-command basis (default is on). 2012-03-13 22:07:51 +01:00
Griatch
690bfadd9d Added arg_regex, an optional Command class-method for customizing how commands are identified by using a regex to enforce a specific look/grammar to the command argument. Discussed and suggested in issue 213. 2012-02-27 20:56:01 +01:00
Griatch
631020d8a2 Some small fixes to the help command. 2012-02-25 18:24:30 +01:00
Griatch
6fdfbe657b Changed the flag save_next to save_for_next, it makes more sense. 2012-02-17 19:02:57 +01:00
Griatch
6e53e6a1fd Added state persistence to commands. For commands that want to, their state will be saved for the next command to access through the self.caller.ndb.last_cmd variable. The state only persists one command before it is cleared or replaced. 2012-02-17 18:53:47 +01:00
Griatch
d36a79b2cc Went over the Command class' basic methods, cleaning up and optimizing while still trying to keep things clean, such as using cleverer loops and try...except instead of if statements. Also cleaned up the way attributes are retrieved. Results in roughly a halving of the time that the code spends in the command.py module. 2012-02-06 00:59:41 +01:00
Griatch
2b2d27ed39 Changed the way unloggedin commands work. Rather than the cmdhander having a special state for unlogged-in commands, the session itself simply stores the cmdset from settings.CMDSET_UNLOGGEDIN. Clean and efficient and also gives a lot more freedom for creating custom login mechanisms (notably it opens the door to using menu systems). 2011-11-06 17:38:29 +01:00
Griatch
95d672763b Multiple fixes and cleanups - command parser excludes inaccessible commands already at parse level now. Fixed the functionality of a few of the lock functions to be more intuitive. Added functionality to the examine command to better show the commands available to an object. 2011-06-26 14:35:02 +00:00
Griatch
b9c1921a0b Added a new 'contrib' folder for optional code snippets not suitable for the server core. Added contrib/menusystem for implementing a multi-choice menu system. Added contrib/lineeditor - a powerful line editor with commands mimicking VI. Also added an example NPC class using the menu system to allow for a conversation. As part of creating these contributions, lots of bugs were found and fixed. A new and more powerful cmdparser was intruduced as a result - this one is much easier to understand than the old one, while being more efficient and versatile. All testsuites were updated. Also: Resolves issue 165. 2011-05-12 21:51:11 +00:00
Griatch
08b3de9e5e OBS: You'll need to resync/rebuild your database!
- This implements an updated, clearer and more robust access system. The policy is now to lock that which is not explicitly left open.
- Permission strings -> Lock strings. Separating permissions and locks makes more sense security-wise
- No more permissiongroup table; permissions instead use a simple tuple PERMISSIONS_HIERARCHY to define an access hierarchy
- Cleaner lock-definition syntax, all based on function calls.
- New objects/players/channels get a default security policy during creation (set through typeclass)

As part of rebuilding and testing the new lock/permission system I got into testing and debugging several other systems, fixing some
outstanding issues:
- @reload now fully updates the database asynchronously. No need to reboot server when changing cmdsets
- Dozens of new test suites added for about 30 commands so far
- Help for channels made more clever and informative.
2011-03-15 16:08:32 +00:00
Griatch
923b9ac2ec Added hooks at_pre_cmd() and at_post_cmd() for easy implementation of stuff like prompts.
Added obj.exit property to objects for easily finding all exits from a room.
2011-02-14 17:18:31 +00:00
Griatch
72d40285b8 After lots of discussions, default commands where moved from game/gamesrc/commands/default to src/commands/default in order to make it clearer which parts are updated as part of evennia and which can be tweaked at heart's content. New templates where left in gamesrc/commands that should hopefully make it clearer how to extend the command system. Also game/web was moved to src/web - we'll likely extend this from game/gamesrc/web in the future. If you already did extensions you should just have to edit your import paths and make use of the new cmdset template supplied.
The unit testing was for commands was split out from src/objects/tests.py into the new src/commands/default/test.py in order to keep the testing modules thematically grouped with the things they are testing.
2010-11-23 01:24:56 +00:00
Griatch
3f703efc2d Made changes to idmapper that might help alleviate issue101 (more people need to run it to make sure). Moved around default command modules to be more logically named and distributed. 2010-10-31 08:10:02 +00:00
Griatch
f83c2bddf8 Trunk: Merged the Devel-branch (branches/griatch) into /trunk. This constitutes a major refactoring of Evennia. Development will now continue in trunk. See the wiki and the past posts to the mailing list for info. /Griatch 2010-08-29 18:46:58 +00:00