Commit graph

63 commits

Author SHA1 Message Date
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
85d4250f1d Added all functionality for all 3 MULTISESSION_MODEs. 2013-04-03 10:07:01 +02:00
Griatch
11d612a72a Added more permission info to ooclook. 2013-03-12 10:29:21 +01:00
Griatch
7581d65cb3 Made superuser able to have a separate "superuser character" in order to be able to have also test-characters without privileges. 2013-03-11 22:01:52 +01: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
458e3e7599 Added @sessions command for viewing active sessions connected to a given account. 2013-02-17 20:21:23 +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
1f676eda60 Some more fixes to the commands. 2013-02-16 21:26:59 +01:00
Griatch
a84b4f24fc Fixed bugs that now allows multiple sessions to connect through the same player to different characters. Still lots of bugs and inconsistencies, the permissions of superusers don't quite transfer sometimes, for example. 2013-02-04 22:02:04 +01:00
Griatch
ab5b9116df More bugfixes. 2013-02-03 21:38:37 +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
231af4a351 Continued work on multi-char-per-account. Added a new default login point. Still need to add sessid to commands. 2013-02-02 15:55:42 +01:00
Griatch
f8514bb0f1 Added a little more info about the player needing the right permissions to @puppet, not the character. Resolves Issue 340. 2013-01-07 18:35:36 +01:00
Griatch
c615693a2a Added a give command to the default command set. As part of this also fixed some bugs in how object typeclasses were compared. 2012-12-08 17:11:22 +01:00
Griatch
d2d9953f94 Cache changes: Moved all caches (except idmapper) to central caching module. This makes it easier to overview cache memory usage (and clean it) as well as plug-in external cache mechanisms. 2012-11-01 11:20:07 +01:00
Griatch
20d6de5104 Made a better check for cleaning module names, should resolve Issue 319. 2012-10-28 14:38:17 +01:00
Griatch
ec46465656 Implemented ansi-colour backgrounds in webclient. Added a new @color command for displaying colour spaces. Also changed a number of other features outlined in Issue 309. 2012-10-24 21:41:07 +02:00
Griatch
fc4d7c92f9 Cleaned up the drop-command's error messages somewhat. 2012-10-23 20:39:59 +02:00
Griatch
0cf3b42e14 Removed a hard-coded "nicks" alias from CmdNicks for easier overloading. Use nick/list to get the same functionality (or overload func to add it again). Resolves Issue 291. 2012-10-14 16:42:04 +02:00
Griatch
97973dd5f9 Fixed erroneous global_search keyword in a few places in the code due to the API having changed. Resolves issue 276. 2012-10-14 12:06:42 +02:00
Griatch
e874343387 Adjusted search() functionality to handle also a list of location(s) to search. Changed "get" command to not search inventory (which could lead to multimatch errors). 2012-09-21 08:36:59 +02:00
Adam_ASE
e748d6d5ae Addressing original issue 254 - Fixed DROP command multi-match error for similarly or identically
named items when one or more of the items are at the location but not in
character's inventory.
2012-09-20 23:50:34 -04:00
Griatch
5e33690f40 Optimization: Added caching of object contents. This makes obj.contents not have to hit
the database at all. So far there are no regressions from this, but time will tell if
there are any problems.
2012-08-19 18:48:29 +02:00
Griatch
f0f240b7ce Fixed a bug in sessionhandler that erroneously caused Portal sessions to not be deleted properly at user @quit. This caused the session to be copied back to the Server side after a reload (caused "ghost" connections in e.g. the "who" command). Resolves Issue 244. 2012-06-20 23:48:19 +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
21eed74c8d Minor fixes to various default commands. 2012-04-22 23:31:22 +02:00
Griatch
4678234e9a Multiple fixes to ev and utils:
Made utils.variable_from_module more generic (it can now load pretty much any form of module it's given and also supports searching and returning multiple variables).

Removed the variable-load functionality from utils.load_module; this is now purely a loader - use variable_from_module instead.

I found out that one couldn't import from src.commands.default due to the __init__ file being restrictive for the sake of the ev API. Removed that and instead imported the default commands into ev.py with the help of utils.variable_from_module instead. Some more fixes in ev followed on this.
2012-04-22 12:23:42 +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
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
ploosh
f09bfdf1d6 Fixed pose command to echo in room only if a pose is actually struck 2012-03-17 03:22:52 -04: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
9e2380decd Added ' as an alias for the "say" command, common in many muds. 2012-02-22 21:39:27 +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
68f0a236cb Fixed an issue with using WHO when users where OOC. Also made the @ic command able to look for objects globally. 2011-11-14 19:13:30 +01:00
Griatch
3e8b43d222 More fixes and cleanup in wake of ic/ooc changes. 2011-11-06 23:55:24 +01:00
Griatch
703accdd60 Added an error_check_python_modules function to evennia.py. This basically imports a host of critical modules and quits with tracebacks if there are problems. This catches pure python-syntax errors (i.e. cases where the source-file itself is malformed), something which is hard to properly handle in the running server (where there's also an issue as to how to best report it). Best they fail out already at an early stage. 2011-11-06 21:32:00 +01:00
Griatch
ecf11b38cd Fixed an issue with the locks not getting properly set on rooms. 2011-09-20 13:44:26 +02:00
Griatch
bc587dfd0c Fixed bug in get command that let you pick something up several times. 2011-09-04 07:27:11 +00: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
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
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
27809694d7 Migrate. Added the "view" access restriction (to make objects invisible). Also changed the input of ObjectDB.objects.object_search() to not require a caller as an argument (this makes it consistent with other search methods). All default systems should have updated to the new call, but if you have custom calls, you need to change them to fit the new syntax (this is only important if explicitly use ObjectDB.objects.object_search; if you just use caller.search you should be fine) 2011-04-24 11:26:51 +00:00