Commit graph

40 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
b839614259 Fixed the entire first_init script process with the new typeclass system. 2014-12-26 13:31:23 +01:00
Griatch
9af9f94fa0 Moved Players over to the new proxy system, made the start-hook called by the save-signal system into at_first_save() 2014-12-25 14:43:43 +01:00
Griatch
a93d318121 Starting to remove obj.typeclass references. Server now starts and stops cleanly, but not yet tested with actual gameplay. 2014-12-22 21:46:52 +01:00
Griatch
2ee9e62336 Fixed correct and separate handling of database model bases as compared to its proxy classes using different managers for each type (e.g. ObjectDB.objects.all() will return all ObjectDB instances(including proxy instances) whereas Object.objects.all() will only return Objects) 2014-12-22 08:54:53 +01: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
4e3789cede Added lazy-loading of on-model handlers. 2014-05-10 13:31:50 +02:00
Griatch
792b3c9282 Some cleanup code fixes. 2014-04-20 18:11:41 +02:00
Griatch
7fd47eb386 Re-fixed the special obj/player wrapper for scripts. 2014-04-09 15:31:18 +02:00
Griatch
803af4307b Fixed errors in email_login module. Resolves #439. Also added script.object possibility as well as script.obj. 2014-04-06 12:43:59 +02:00
Griatch
c0417def6d Starting to convert RSS to new system 2014-03-08 11:41:24 +01:00
Griatch
8b52591c2f Run Migrations. Added player field to script model in order to allow Players to be scripted in the same way Objects can. 2014-03-08 11:41:23 +01:00
Griatch
617d0a3252 Added new handler calls to all typeclassed objects 2014-02-16 15:22:43 +01: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
06a0bea8d6 Added fix to object.contents cache as well as reworked the extent of cache hooks on location modification. 2013-10-21 21:17:32 +02:00
Griatch
2a5168ade4 Moved all relevant wrappers into being managed by the metaclass. Noting that there are many inconsistent features into the comm system; m2m fields should be moved into handlers rather than what is now used. Some of the non-typeclassed models also really don't need to be idmapped - will probably not change this before merge. 2013-09-23 23:34:47 +02:00
Griatch
2f5c895f76 Removed LiteAttributes, made Nicks use Attributes. Added category and strvalue fields to Attribute. Made Attributes accessible through an AttributeHandler, like most other advanced properties. 2013-08-24 21:23:43 +02:00
Griatch
73a5800fbf Fixed updates of the contentmanager. Not all command tests run yet. 2013-07-12 22:08:15 +02:00
Griatch
6bc16e46cc Made aliases work with the new handler. The location.contents updated is not working yet - this causes locational information to not be available until objects and manually initialized (e.g. by calling examine #dbref) 2013-07-12 20:21:52 +02:00
Griatch
45706f598a Fixed remaining issues so the login process works. 2013-07-12 15:57:46 +02:00
Griatch
0061f884ae Implemented NickHandler, AliasHandler and TagHandler in the typeclass to replace the old handlers. Some errors during login. 2013-07-12 14:44:49 +02:00
Griatch
9e10a41e18 First version with all caches seemingly working ok. Started to remove the on-model wrappers that are not handled by the idmapper metaclass. 2013-07-11 15:59:03 +02:00
Griatch
2b332c3b9a Attribute cache is working, lots of other updates, but still not a cleanly updatable system. It seems the Attribute-migrations are not coming through properly. Fixed a misnamed table in the comm app. 2013-07-11 09:51:52 +02:00
Griatch
2a7c45d6e8 Run Migrations. Migrated to new Attribute schema, converting old attributes. Not fully tested yet. 2013-07-09 00:09:19 +02:00
Griatch
a1d818f8aa First test with moving Attributes to m2m field. Not working yet. 2013-07-08 18:13:21 +02:00
Griatch
b6383ddab9 Moved attr_cache to new caching system, activated all attribute updating signals. 2013-05-29 18:47:51 +02:00
Griatch
c8df141e89 Further cleanup of source; making class methods _private for clarity in the API. 2012-03-31 15:09:22 +02:00
Griatch
fc156b5a54 Continuing work on API, making local-use class properties _private to make things easier to explore. 2012-03-31 13:06:29 +02:00
Griatch
a32aebaa0e OBS- need to run migrations! Refactored attributes to use a slightly different internal storage format for faster access. Also set up caching of all attribute data, so subsequent reads of an attribute will not hit the database anymore, and writes will re-cache. 2012-02-14 23:40:16 +01:00
Griatch
7b2a4e4467 Cleaned up typeclasses, removing a lot of extranenous and ineffective code from the setattr/getattr methods that are called most often. 2012-02-05 21:04:10 +01:00
Griatch
7f2e6dd4fa Tidying up the admin interface by adding more verbose and helpful names to database fields as well as adding more help texts. The ObjectAdmin still gives tracebacks. 2011-10-02 01:21:03 +02:00
Griatch
23cd9e31b1 Restructured the way typeclasses are loaded. This makes it possible to run at_init() hooks at initiation also for objects without any custom cases for character/players. at_init() hooks are called only when an object is initiated. This means that a room's at_init() hook is only called when someone looks or enters it or a script operates on it, for example, rest of the time these objects are dormant, most efficiently. 2011-10-01 22:00:22 +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
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
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
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
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
251f94aa7a Evennia now runs on its own Twisted webserver (no need for testserver or Apache if you don't want to). Evennia now also has an ajax long-polling web client running from Twisted. The web client requires no extra dependencies beyond jQuery which is included. The src/server structure has been r
cleaned up and rewritten to make it easier to add new protocols in the future - all new protocols need to inherit from server.session.Session, whi
ch implements a set of hooks that Evennia uses to communicate. The current web client protocol is functional but does not implement any of rcaskey
's suggestions as of yet - it uses a separate data object passed through msg() to communicate between the server and the various protocols. Also the client itself could probably need cleanup and 'prettification'. The fact that the system runs a hybrid of Django and Twisted, getting the best of both worlds should allow for many possibilities in the future. /Griatch
2010-12-07 02:34:59 +00:00
Griatch
7eaf3d221c Resolved issue113, avoiding a loophole in which the protection about @reloading a timed script could be circumvented. 2010-10-31 08:34:38 +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