Commit graph

43 commits

Author SHA1 Message Date
lu yijun
dbbacb4bb3 This fixes issue #569 2014-09-07 02:22:12 +08:00
Griatch
a88afabd60 Added **kwargs to cmdhandler and execute_cmd() methods, to set arbitrary flags on commands at run-time. Unused by default Evennia but may be useful to codedly change operation parameters on commands at run-time. 2014-08-24 09:43:55 +02:00
Griatch
e7d562d2e8 Fixed so the look command is called immediately when connecting also on MULTISESSION_MODE=3 2014-08-07 17:45:16 +02:00
n0q
de6badd709 Fix for empty character sets
Filtering away characters who's type is None, to avoid tracebacks in the
event of a characterless guest.
2014-07-07 22:42:24 -04:00
n0q
757cfded99 Stray bit of code 2014-07-06 16:53:42 -04:00
n0q
b9661c5c96 Guest Functionality
Allows for guest logins by entering 'connect guest' at the login screen.
Cleans up after itself but does not yet clean up stale guests from a
system crash.
2014-07-06 16:46:02 -04:00
Griatch
1874300ad1 Added at_post_disconnect() hook to Player, to allow for clean deletion of players at disconnect (for example for Guest-account implementation) 2014-07-06 16:20:50 +02:00
Griatch
59513e5c00 Fixed player.search() to also move here/me/self wrappers to typeclass. 2014-04-13 10:04:35 +02:00
Griatch
2108506a8a Added new IRC protocol implementation. Not tested yet. 2014-03-08 11:41:23 +01:00
Griatch
87f3093dac Deprecation warning: Added combined hook at_access(result, accessing_obj, access_type, **kwargs) to Objects and Players. This hook replaces at_access_failure and at_access_success, which are now both DEPRECATED and will be removed later. 2014-01-18 23:56:07 +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
Kelketek
851e6d00cc Turned comms into typeclassed objects. 2013-09-28 22:23:30 -05:00
Griatch
e36c7d5cc1 Cleaned up worst instability. Test suite does validate yet. 2013-09-21 17:33:48 +02:00
Griatch
4a5de04956 Changed msg() to work with **kwargs rather than data dicts. Still not fully updated the portal side (also remember that keywords let through to the portal must not contain dbobjs, since the portal has no connection to the database). 2013-09-14 09:10:31 +02:00
Griatch
8bd431b385 Removed deprecated Attribute methods from evennia distro. Removed MUX help files. 2013-08-25 16:41:18 +02:00
Griatch
416d6e14bc Fixing a bug in @ic if trying to puppet while already puppeting. Added sessid keyword to at_post_login hook in order to correctly relay login text only to the correct session. Removed the src.utils.debug module as well as the CmdDebug command which has not been supported for a good while. 2013-04-18 09:13:31 +02:00
Griatch
1aff5f1fd1 Renamed cmdset_ooc -> cmdset_player and settings.CMDSET_OOC -> settings.CMDSET_PLAYER. Also split most of the player-specific commands to a new module player. 2013-04-11 01:02:05 +02:00
Griatch
c967cc7914 MULTISESSION_MODE 0-2 works as they should. Remains some fixes to migrations. 2013-04-09 19:19:53 +02:00
Griatch
1e07b8ca34 After the rework of the many-char mode, mode 0 now works stably and auto-logins correctly it seems. 2013-04-09 17:11:34 +02:00
Griatch
26ced2cb90 Heavily reworked the many-char system, cleaner and more consistent by not having any persistent links on the Object side once a player has unconnected. 2013-04-09 15:59:21 +02:00
Griatch
5100a0561f Some further bug fixes. 2013-04-09 11:14:08 +02:00
Griatch
20a57d4167 Further fixes to the system, still some issues remaining. 2013-04-06 21:36:52 +02:00
Griatch
9eb1903f02 Lots of cleanup and bug fixes. Still some issues with reconnecting to the right location in multisession_mode 0. 2013-04-03 18:31:53 +02:00
Griatch
261363bae7 Moved connect/disconnect messages to be triggered by Player, not by Character. 2013-02-17 14:24:31 +01:00
Griatch
4dea96f5e4 Some further fixes. 2013-02-14 17:55:05 +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
b26c3ab872 Fixed bugs and allowed for logging in using one character. Added a simple command for creating a new character. 2013-02-03 17:00:46 +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
949da47917 Removed some old and now confusing, unsused variables and added some documenting strings. 2012-12-08 15:39:09 +01:00
Griatch
532cbc5fb6 Changed initial look command (at login) to be called from at_post_login hook instead of from the default connect command, supposedly making it easier for those only wanting to change this one line rather than having to re-target connect. The player.at_post_login now also calls look in case no character is defined, for the cases when logging in without having a character selected. Resolves Issue 277. 2012-10-14 12:28:01 +02:00
Griatch
8ad4f4a9fc Changed player.search to only search for players explicitly.
Added a MuxCommandOOC class to handle the OOC commands in a more uniform way.
Fixed the @ic/@ooc and page commands. Resolves issue 233. Resolves issue 234.
2012-05-17 19:42:37 +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
da51cb063f ev-API cleanups. ev can now be imported also from a non-django initiated python interpreter (it initiates itself). Gave some more info text and made sure wrapped db_ methods correctly forward their doc strings for introspection. 2012-03-27 09:59:11 +02:00
Griatch
0d01462077 Adding a new API system to Evennia. This centralizes all access of the evennia driver through a single module "ev". Importing ev one should be able to access (and also importantly, easily explore) Evennia's API much easier. This API goes a long way to "flatten" the structure so that one doesn't need to remember how to find some method in a deeply nested subdirectory.
As part of this work, I have also written full listings of all available properties on Typeclassed objects (including those inherited in various ways). Should hopefully make things easier to find.
One can of course still import things directly from src/ as before. But this is a first step towards removing the "base" objects in game/gamesrc and instead making those accessible through the core API.
2012-03-24 23:02:45 +01:00
Griatch
7a2cdd3842 Moved all command definitions of Typeclassed entities up one level, to Object, Player and Script respectively. The actual code is still on the models (ObjectDB, PlayerDB and ScriptDB), but one should not be able to use the methods without having to dig into the code as far. Also added extensive, up-to-date headers to the inheriting base objects in game/gamesrc. 2012-03-24 18:25:32 +01:00
Griatch
7195e1e773 Minor fixes to create command. 2011-10-16 00:40:11 +02:00
Griatch
6ae1123421 Fixed hook method descriptions. 2011-10-01 22:36:55 +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
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
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
c29649cd53 Made characters disappear from the room when their controlling player logs off. This is a trivial thing to customize, but the old default (leave the character objects in the room, although "headless") confused people. 2010-10-03 19:49: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