Griatch
2597df0512
Last commit had a typo leading to startup traceback.
2011-09-20 20:26:35 +02:00
Griatch
18669c8700
Fixing so assigning to a nested attribute value doesn't loose data. It is unfortunately not possible to support direct assignment of deeply nested attributes at this time. So if obj.db.mydict = {1:{2:3}}, then obj.db.mydict[1] = 1 will work just fine, but obj.db.mydict[1][2] = 4 will not. For more advanced manipulation such as the latter case, store the dict in a temporary variable and save it back after changes have been done.
2011-09-20 19:59:08 +02:00
Griatch
058f8a9519
Fixed a bug in creating fresh dict-attributes/lists in the new attribute-save system. Resolves issue 191.
2011-09-20 15:55:58 +02:00
Griatch
475361ad28
Added functionality to Attributes to store and update dicts and lists dynamically. One side effect of this is that dicts and tuples need to be stored as custom object types which means that e.g. isintance(obj.db.mylist) == type(list) will return False. In order to do checks like this, use src.utils.utils.inherits_from() instead. The Attribute system now also supports tuples. All other iterables except dicts, lists and tuples are stored and retrieved as lists, same as before.
...
This fixes issue 189.
2011-09-20 12:37:45 +02:00
Griatch
399919a8a9
Database schema has changed. Run migrations if you use South. Started work on tidying up admin interface.
2011-09-14 22:34:10 +02:00
Griatch
f13e8cdf7c
Trunk: Merged griatch-branch. This implements a new reload mechanism - splitting Evennia into two processes: Server and Portal with different tasks. Also cleans and fixes several bugs in script systems as well as introduces i18n (courtesy of raydeejay).
2011-09-03 10:22:19 +00:00
Griatch
2b4e008d18
Scripts and Exits updated. Fixed some deep issues with Scripts that caused object-based scripts to not properly shut down in some situations, as well as spawn multiple instances of themselves. I think this should resolve all "at_repeat doubling" issues reported. Due to optimizations in the typeclass cache loader in a previous update, the Exit cmdsets were not properly loaded (they were loaded at cache time, which now doesn't happen as often). So Exits instead rely on the new "at_cmdset_get" hook called by the cmdhandler. It allows dynamic modification of cmdsets just before they are accessed. Resolves issue173 (I hope). Resolves issue180. Resolves issue 181.
2011-08-11 21:16:35 +00:00
Griatch
ddfd8120bb
Made scripts and typeclassed objects remember db_typeclass_path at all times - a temporarily faulty typeclass will no longer mess up things forever after. Refined and optimized the way typeclasses are cached and loaded, minimizing db hits. The default result when trying to create an object or script with a typeclass that is faulty/not found is now to fail. The previous way, to create an entity anyway using defaults was hard to debug and caused confusion. Resolves issue 175.
2011-08-06 18:15:04 +00:00
Griatch
6cb2b8b745
Working on cleaning some strange behavior when trying to submitting faulty typeclasses to script system. Also fixing bugs here and there.
2011-07-03 21:01:06 +00:00
Griatch
334c0b1d08
Fixed a bunch of small issues. The RedButton example hasn't been working for a while, should be ok again now - also cleaned it up a bit.
2011-06-24 20:12:59 +00:00
Griatch
d2400a8a6b
Added the ability to give multiple typeclass search-paths to config file. This way you can add a path to your custom directory and don't have to write so much when creating typeclassed objects using e.g. @create.
2011-05-13 22:26:08 +00:00
Griatch
4bcd5239b5
Mixed batch of minor bug fixes and cleanups.
2011-04-30 21:09:19 +00:00
Griatch
28fe2ad3f4
Run Migrate. Implemented a full separation between Player and Character - Players (OOC entities) can now also hold cmdsets and execute commands. This means that "disconnecting" from a Character becomes possible, putting the Player in an "OOC" state outside the game. This overall makes the game much more stable since there used to be issues if the character was destroyed. Having an OOC set also avoids the previous problem of @puppeting into an object that didn't have any cmdset of its own - you couldn't get back out! A new default OOC-Cmdset handles commands available to a player while OOC. Commands in this set are applied with a low priority, allowing "IC" mode to give precedence if desired.
...
This change meant several changes to the lock and permission functionality, since it becomes important if permissions are assigned on the Player or on their Character (lock functions pperm() and pid() etc check on Player rather than Character). This has the boon of allowing Admins to switch and play/test the game as a "Low access" character as they like.
Plenty of bug fixes and adjustments. Migrations should make sure to move over all data properly.
2011-04-23 11:54:08 +00:00
Griatch
6f0d21802b
Debugged and added @cpattr and @mvattr. Added unittest cases for all default commands for which they are suitable. Many small bug fixes as part of that.
2011-04-21 16:45:18 +00:00
Griatch
7f7016ad7d
Run Migrate. Implemented @search functionality with limits as per MUX (as part of the @find command). Added some more channel-related commands and changed locks for channels to have a "control" lock type rather than "admin". The migration converts this in existing channels..
2011-04-20 22:40:27 +00:00
Griatch
7d30b337d9
Cleanups and bug fixes. Fixed the @unlink command and also made it overally more stable. Resolves issue 161. Added more string conversion routines to handle non-ascii variables being stored in an Attribute. Resolves issue 160.
2011-04-16 22:26:22 +00:00
Griatch
6c53ec2bdb
OBS: Run migrate! Made exit's destination into a database field for performance. Fixed a too greedy @reload that caused ContentTypes to loose information. Resolves issue 157.
...
Migrate with: "python manage.py migrate"
2011-04-08 23:10:04 +00:00
Griatch
695317e699
Resolves issue 155. Cleaned up the copy functionality and a few minor bugs at the same time. Copying an active character is somewhat confusing though (and deleting a character will currently make the player unable to log back in).
2011-04-07 22:10:51 +00:00
Griatch
4519169e1c
Fixed a type. See previous commit.
2011-04-05 23:30:32 +00:00
Griatch
6eff51de20
OBS: Migration needed(objects, scripts, players). This resolves issue 136 by allowing database objects to be nested in lists and dictionaries as
...
attributes on objects. Behind the scenes, only the DBREF is stored since storing dbobjects cannot be pickled. One used to be able to store single objects this way, but objects hidden in nested iterable structures were not found. Note that ONLY lists and dictionaries are supported to store on attributes - custom iterables will be stored and retrieved as a generic list instead - this is a tradeoff to be able to store database objects.
To migrate, give the following commands from game/:
migrate.py migrate objects
migrate.py migrate scripts
migrate.py migrate players
2011-04-05 23:28:40 +00:00
Griatch
75956de7d1
Small bugfixes in the wake of the cmdset changes. Resolves issue 148.
2011-03-20 23:14:36 +00:00
Griatch
d73dd65500
Adjusted the way typeclasses are searched. Should correctly find overloaded methods now.
2011-03-20 20:44:48 +00:00
Griatch
126e2ea61f
OBS: You need to resync your database! Moved cmdsets into the database rather than being dependent on scripts. Moved the creation of the cmdset- and cmdset-handlers into ObjectDB.__init__ rather than bootstrapping it from the typeclass. Added some more script functionality for testing, includong the @script command for assigning a script to an object.
2011-03-20 19:45:56 +00:00
Griatch
2f78bacd97
Added a check for multiple connected sessions to avoid moving disconnected object more than once. Resolves issue 145.
2011-03-19 22:17:00 +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
38014eda3c
Resolves issue 138.
2011-02-28 23:43:14 +00:00
Griatch
e094a4d173
Fixed a test suite syntax error in command testing.
2011-02-28 00:34:03 +00:00
Griatch
45941e0c69
Implemented typeclass deleting; you can now do del obj.testval and expect the underlying attribute to be safely deleted from the database. Also fixed some reference errors when assigning to db/ndb properties on objects. Resolves issue 116. Fixed a bug in the command-testing system, so the few command tests that are defined should all work now.
2011-02-05 18:06:18 +00:00
Griatch
8aa22fbec8
Fixed bugs in alias and search system, including properly searching inventory. Expanded @alias command with more functionality.
2010-11-09 14:46:39 +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
19dd476115
Changed object and alias search methods to be more effective. Made aliases a separate model to avoid overhead with large searches. The change of aliases meand you need to resync your database.
2010-10-30 18:42:37 +00:00
Griatch
745df8356f
Added comprehensive encoding handling to support both player-level encoding choices as well as global multiple encodings through the settings file.
2010-10-03 19:11:43 +00:00
Griatch
164eb5b89b
Some command bugfixes. Added some more debug messages for pinning down issue101.
2010-09-19 06:57:08 +00:00
Griatch
8bedd4d793
Fixed and debugged object_search to more generically search for any attribute name except 'key' (issue110). Also included alias-search as a last-resort if normal searches fail. This is now also working for global searches (issue106).
2010-09-12 15:07:12 +00:00
Griatch
a2291953f2
Changed erroneous DateField to DateTimeField in ObjectDB, so you might have to resync your database. Fixed lots of formatting issues in the info and list commands. Resolved issue105.
2010-09-05 14:42:09 +00:00
Griatch
03cc4970d0
Fixed the behaviour of some build commands to match that in wiki build tutorial.
2010-08-31 17:31:48 +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