Griatch
fd9acd6bf9
Fixed website. Fixing references to db_references, not sure how to add the m2m field access to the admin. Fixed wrapper for db_home.
2013-09-23 22:08:14 +02:00
Griatch
06e858b3f6
Moved permissions into a the tag system as a separate handler. Permissions still don't work quite right yet.
2013-08-24 23:57:44 +02:00
Griatch
37886adea1
Added signalhandler in test suite, still issues.
2013-07-13 15:39:16 +02:00
Griatch
c0b5c506a4
Removed a lot of old references to Aliases and Nicks. Still failing on @puppet.
2013-07-12 15:34:54 +02:00
Griatch
46d1c48a38
Working implementation of User->PlayerDB conversion. Superuser must be created separately. The player-create method was corrected, along with the most obvious places where the user-setup was used. One can log in and look around but it's not heavily debugged yet.
2013-07-11 18:03:07 +02:00
Griatch
efdb954491
Fixed a logical error in obj.manager causing it to fail to find arbitrary db_>fieldname>. Resolves Issue 373.
2013-05-21 14:29:50 +02:00
Kelketek
e752c2dd64
Made username creation/login case insensitive.
2013-05-13 12:30:00 -05:00
Griatch
71346dcc67
Merge.
2013-02-14 17:55:35 +01:00
Griatch
a1dc7451ef
Some fixes to the way the admin initiates new player objects.
2013-02-12 19:54:11 +01:00
Griatch
b82a75d816
Fixed initial_setup and set up the _playable_characters attribute on all players, for handling multi-accounts. Still some issues with how the character's permissions is accessed.
2013-02-03 20:04:40 +01:00
Griatch
f1767251c6
Can now log in to a character selection screen. Lots more testing required before one-char-per-session works.
2013-02-03 00:25:06 +01:00
Griatch
9f6e3de637
Various cleanups and fixes found during refurbishing the unittest framework (not pushed yet)
2012-11-05 00:55:25 +01:00
Griatch
6c20987d9a
Added header as keyword to the utils.create.create_message function
2012-11-04 17:39:06 +01:00
Griatch
dcc7f29a91
OBS: run migrations! This changes the Msg model to work with ManyToManyFields rather than with custom string representations for storing multiple receivers or channels. It also expands the Msg object with a "title" field and various filter options. This should make it easier to implement mail-like operations using the comms system.
2012-08-30 00:05:00 +02:00
Griatch
4acfe48d9c
Removed repetitive imports in the utils.create functions. I experimented with making these methods yield more, but it's hard to integrate this behaviour with actual production code.
2012-05-01 22:51:18 +02:00
Griatch
8c3b49e704
Changed how the Typeclass system returns errors. Instead of echoing typeclass erros to the MUD-info channel (which is not only not only very spammy for everyone but also very hard to make clean so as to avoid recursion at a stage of typeclass failing), the system instead stores a property on itself called 'typeclass_last_errmsg' that holds eventual errors. This means that the task of reporting errors does not fall on the typeclass system itself but on the calling methods, as it should be. So src.utils.create.create_* functions now takes a new optional keyword "report_to" that holds an object to receive errors. If this keyword is given, the function msg():es that object with the error and returns None as before. If report_to is not set however, the create_* methods now return an Exception containing the error text. All default commands have been changed to accomodate for this behaviour, which allows for much more control over errors.
...
Also, the default ADMIN_MEDIA static files changed location in Django 1.4. The initial_setup function now accounts for this.
2012-04-21 16:15:37 +02:00
Griatch
b43fb3156a
Added create_* and search_* helper methods directly in the API.
2012-03-25 17:01:27 +02:00
Griatch
4398d42360
Added new templates to gamesrc/*/examples. The old base* modules still in place. Some cleanup of the API.
2012-03-25 16:35:22 +02:00
Griatch
3408f3ca3f
Added alternative function names to create module, for consistency with the search module. This means you can do create.objects() now too.
2012-03-25 14:01:51 +02:00
Griatch
24c4791e9e
Fixed a bug with the updating of the caching.
2012-02-26 01:10:20 +01:00
Griatch
ed00e42762
Made check for PlayerObject more rigorous in create.create_msg, in response to issue 209.
2012-02-20 21:56:11 +01:00
Griatch
a6f3e1f47f
create_script(): Added new keywords for customizing a created script at creation time, overloading what is defined in the script's at_script_creation() hook.
2012-02-15 22:12:50 +01: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
2104fd391b
Adding TTYPE support (allows server to query client for information such as name and capabilities, assuming the client supports ttype).
2011-11-19 19:34:00 +01:00
Griatch
a60cd9bf1f
Fixed User/Player creation in Admin, much more intuitive now. Remains issues with creating attributes since these need to be pickled to/from the database in order to be properly handled.
2011-11-13 18:46:14 +01:00
Griatch
3e8b43d222
More fixes and cleanup in wake of ic/ooc changes.
2011-11-06 23:55:24 +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
aee147102b
Gave better error messages when a player typeclass has bugs and thus won't load. Also made a better solution for hiding new characters from the start room when first being created (also makes sure that character.location never starts as being None, recovering back to home in that case).
2011-10-09 16:32:55 +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
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
b8a13a2389
Migrate. Made Exits work differently, by use of commands directly instead of an exithandler assigning commands on-the-fly. This solution is a lot cleaner and also solves an issue where @reload would kill typeclasses in situations where an exit was painting to an object whose typeclass was reloaded (same issue occured if the exit typeclass itself was reloaded). As part of these fixes I cleaned up the merging of cmdsets to now merge in strict priority order, as one would expect them to do. Many small bug-fixes and cleanups all over. Resolves issue 164. Resolves issue 163.
2011-05-01 18:04:15 +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
0cff54f136
Resolves issue 156.
2011-04-08 20:06:04 +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
bccd84e480
Fixed some bugs in the access system. Changed the "owner" default permission to "control" instead to more general. Added a new hook for setting locks for objects (the suspicion was that this would give lots of grief to newbies otherwise, now we have a lockdown policy in the absence of lock definitions).
2011-03-17 21:43:18 +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
2bdaf034c8
OBS: You need to resync your database! The Nickname system is now a separate database model with the result that also channel nicks are more robust. Also nickname replacement has been adjusted to fix some exceptional circumstances. Fixed a host of issues in the channel and nick handlers and adjoining commands that caused the channel-syscommands to fail in some situations. Resolves issue131. Resolves issue 132. Resolves issue 134.
2011-02-27 22:27:56 +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
b091cde574
Some bugfixes and cleanup.
2010-11-21 20:01:52 +00:00
Griatch
502ebff1a2
Implemented a unit testing framework for Evennia. Unfortunately it seems it is only usable in latest Django SVN, due to a Django bug; Run "manage.py test-evennia" - if you get errors about SUPPORTS_TRANSACTIONS, you are affected by the bug. Since this is only likely to affect evennia devs at this point I added a few base tests in src/objects/tests.py as a template for those willing to help add unit tests.
2010-11-21 19:02:24 +00:00
Griatch
547eb53b32
Made search(*playername) commands correctly return a Player typeclass and not a character. Initial startup/character creation: Default permissions are now assigned on player level rather than character level (this gives more safety to @puppet operations). Made @puppet command work only on Character objects.
2010-10-21 18:58:47 +00:00
Griatch
e125763ea5
Made so the default add_default_cmdset script also removes the added cmdset when stopped. Fixed the function of @delplayer command.
2010-09-05 18:20:39 +00:00
Griatch
142cb00566
Removed spam-possibilities with page command (issue100). Also did several other refinements to the comm system.
2010-09-04 13:52:01 +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