Griatch
641d829154
Added inlineCallback operator for cmdhandler, allowing the system to yield more often.
2012-02-20 21:40:28 +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
8b5f3628ab
Added info about creating the tutorial world to the Limbo desc. Also refactored some of the lock functions a bit for efficiency.
2012-02-06 21:48:50 +01:00
Griatch
cdab5a240b
Added RSS feed support to Evennia. This uses the @rss2chan command to tie a feed to an in-game channel. Updates to the feed will henceforth be echoed to the channel. The reader requires the python-feedreader package to be installed.
2012-01-28 20:12:59 +01:00
Griatch
ae251d3892
Fixed an error in the help for @ban.
2012-01-27 23:56:17 +01:00
Griatch
1d40f688e5
Added the @ban and @unban commands to the default command sets, allowing an admin to filter access from users without outright deleting their accounts. The ban list is stored in the database, but the checking is not hard-coded in the server/portal, but done in the normal login command(s), meaning it can be customized easily. Also contrib/menu_login has been updated to check for banned connections.
2012-01-27 23:53:03 +01:00
Griatch
fb78758356
Implemented working MCCP (data compression) and MSSP (mud-listing crawler support). Moved all user-level customization modules from gamesrc/world to gamesrc/conf to reduce clutter.
2011-11-20 11:52:01 +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
a3e4e44a61
Fixed a bug in the creation mechanism.
2011-11-09 09:11:56 +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
55f6f5b713
Contrib: Added a new, alternative login system, using menus. Also edited the ways unlogged commands are started by the engine, by using a standardized system command name (it does not need to be "look" anymore).
2011-11-06 18:53:10 +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
7195e1e773
Minor fixes to create command.
2011-10-16 00:40:11 +02:00
Griatch
70b4b559a5
Fixed a typeclass access bug in @find. Resolves issue 199.
2011-10-10 09:14:50 +02: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
2c4af9076d
Made some commands sensible to the new form of obj.typeclass (it's not a typeclass instance, not a class). Changed the way TypedObject.swap_typeclass works, so as to properly manage failures.
2011-10-03 23:53:23 +02:00
Griatch
bc0195bbaa
Worked with admin interface, cleaning up and adding functionality. There are still some strange behaviour that makes e.g. the presence of inlines to auto-create empty database objects for some strange reason. Inlines are turned off at the moment (so there is no convenient way to add attributes from the admin interface at this time). Creating players now work, but one needs to create all three components (User, Player, Character) in one go and tie them together. The User-admin form was changed to also support multi-word usernames (django default didn't allow spaces).
2011-10-02 22:37:07 +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
c8d2e3d6a2
Fixed some issues with the @script command.
2011-10-01 13:13:48 +02:00
Griatch
ecf11b38cd
Fixed an issue with the locks not getting properly set on rooms.
2011-09-20 13:44:26 +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
1995f61d46
Put up a warning about not using BaseObject.at_init() at this time (it's not called, as per issue 188). Also removed the deprecated at_cache() hook (it doesn't work anymore now that the caching system is much more efficient and only caches once).
2011-09-15 10:46:41 +02:00
Griatch
5a2b9e27a0
Resolves issue 187.
2011-09-09 23:58:51 +02:00
Griatch
7237be87c6
Fixing typo in lock definitions for @dig as well as docstrings. Patch by sergi.reyner. Resolves issue 186.
2011-09-08 10:41:55 +00: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
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
16affc284b
Allow for changing the home location of new characters by changing a setting. The given location must exist and is given as a dbref. If one wants more advanced control over start locations, one needs to customize the unloggedin/create command to match the particular game. Resolves issue 178.
2011-08-06 19:39:06 +00:00
Griatch
2059fd9701
Fixed a bug that had global scripts think they were already running. Resolves issue 176. Made the @time command a tad more useful by having it report uptime also in seconds.
2011-08-06 18:56:05 +00:00
Griatch
d466d8325f
Added missing call argument. Resolves issue 177.
2011-08-06 18:18:42 +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
8770a263ac
Fixes, cleanups and bugfixes in various systems.
2011-06-26 22:03:09 +00:00
Griatch
1565ac3a72
Fixed a rare conditional bug affecting Exits with custom cmdsets on them.
2011-06-26 15:36:49 +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
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
1d93d8295f
Added ability to login directly using SSH auth; based on patch by hagna.
2011-06-18 10:18:17 +00:00
Griatch
88c1002fde
Added better error handling if SSH keypair fail to generate (issue 167)
2011-05-31 19:16:03 +00:00
Griatch
790f840715
Added the @tunnel command as a wrapper for @dig, for easy building in commonly used directions (n,sw, up, down, in, out etc)
2011-05-31 15:33:37 +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
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
2c47d6a66b
Made all unittests validate again.
2011-05-01 20:44:01 +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
4bcd5239b5
Mixed batch of minor bug fixes and cleanups.
2011-04-30 21:09:19 +00:00
Griatch
9520e261d8
Cleaned up @set to list attributes on an object and also to show attribute values without parsing their markup.
2011-04-25 20:31:50 +00:00
Griatch
9c5f662196
Added the "raw" switch to examine, to allow for viewing attributes and properties without parsing markup first.
2011-04-25 20:13:15 +00:00
Griatch
973f606f3f
Added the functionality to let the @set command accept simple lists and dicts (relevant for @batch building)
2011-04-24 16:30:43 +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
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
Greg Taylor
ce2a8e9ffe
Fixing @serverload to work on Mac/BSD. Use -o rss instead of rsz. This works on Linux/BSD/Mac with no extra per-OS logic needed.
2011-04-23 03:16:29 +00:00