Commit graph

84 commits

Author SHA1 Message Date
Griatch
e7d7284d5c Added pickle'able attributes. The attribute.get_attr(), object.set_attribute and object.get_attribute_value() have been updated to accept and return values of any type. If the value is a string, it will be stored normally, other types will be pickled. Possibly we could choose to save also single numbers as strings, but not sure it's any faster to convert from string than it is from cPickle ...
To use these, you need to either start over with a fresh database or change the changed fields manually.
2009-05-02 19:02:36 +00:00
Griatch
1314629a06 Minor bugfix of addcom command, some other cleanup. 2009-05-02 15:55:47 +00:00
Griatch
0efe2c3095 Created a state system. See
http://groups.google.com/group/evennia/browse_thread/thread/66a7ff6cce5303b7
for more detailed description.

Created a new folder gamesrc/commands/examples and moved all examples in there.
/Griatch
2009-05-01 15:34:43 +00:00
Griatch
cae925c29b Made so the local_and_global_search strips the query of surrounding whitespace. Many calling functions don't do this properly, making it a source of bugs. E.g. "@desc obj = text" did not locate obj but "@desc obj= text" did. 2009-05-01 07:16:44 +00:00
Griatch
3eb4cddf42 - implemented @destroy as per the MUX help specifications. As part of this, fixed the object recycling routines to actually properly replace GARBAGE-flagged objects (it crashed before).
- Set up a global cleaner event to clean all @destroyed objects every 30 minutes (makes their dbrefs available).
- Added the @recover command for recovering @destroyed objects up until the point that the cleaner runs and actually destroys them. This can recover @destroyed objects, rooms and exits to the same state as before @destroy. It could easily be made to recover player objects too, but I'm thinking this would be a security issue.
- Added to @dig in order to allow for creating rooms with a particular parent. Also auto-creates exits in each room if desired. The only things that is not implemented is the aliases of the exits, I don't really know how to do that.
- Changed the @create command format to match the @dig (it uses : to mark the parent instead of = now, since MUX' @dig reserve = to the exit list.)
- Added extra security in the example event to guard against the bug that causes the whole scheduler to freak out if the event_function() gives a traceback.
- Changed many instances of type to point to the defines_global.OTYPE instead of giving the integer explicitly.
/Starkiel
2009-04-30 15:01:59 +00:00
Greg Taylor
9b8f1cf3ea Handle IMC ice-destroy packets. 2009-04-30 04:05:19 +00:00
Greg Taylor
181133d917 Add tracking of IMC2 channels and the new 'imcchanlist' command. 2009-04-30 03:56:52 +00:00
Greg Taylor
76f14b4779 Clean up send_cmessage() a bit. Changed noheader keyword arg to show_header and defaulted it to True. This should read a little better. Also updated some of the various function calls. More importantly, check to see if the channel argument is a string or unicode object and find the correct channel object as needed, which was the previous behavior. However, if it's not a string or unicode object, assume it's a CommChannel object and avoid querying for it again. This may be a performance win in some cases down the road. 2009-04-30 03:13:46 +00:00
Greg Taylor
9954700bdd Fixed formatting on @clist. 2009-04-29 01:03:26 +00:00
Greg Taylor
566a02b848 We now have the ability via @service to list, start, and stop Twisted services. In this case, this just lets us start/stop IMC2 right now. As people write more services to plug in in the future, this may expand.
@service/list will show you the service names. If you see that your IMC has died due to an error, @service/start IMC2 will get it up and running again. I've also added an 'imcstatus' command to show more detailed information about your IMC2 connection.
2009-04-28 23:49:49 +00:00
Griatch
a9dbac8aae - Made many small bugfixes to the @parent and @create functions as well as their underlying methods.
- Made it so user #1 is also affected by the on_player_creation() function.
- Added an event folder for custom events, including a working example
- Expanded the example commands and parents to include the changes to how they should be initialized.
- Added an optional ansi scheme (not active by default)
2009-04-25 20:51:12 +00:00
Griatch
9d199032b0 Modifications to the @create and @parent commands, to safeguard against erroneous scriptlink names as well as allowing to define parent upon @creation. The @parent command calls at_object_creation(), seems that behaviour is the intuitive one. 2009-04-25 17:41:58 +00:00
Greg Taylor
9abde7b60f End all 'say' messages with a 'normal' ansi character to prevent bleedage. Also, added the beginnings of an IMC2 ansi parser. 2009-04-25 07:13:19 +00:00
Greg Taylor
2cc3d98810 @scriptcache is now just for displaying the contents of the script cache. After changing a script parent, you may now @reload/script to apply any changes. @reload with no arguments will now show you all of the possible switches. Also added an 'all' switch that will reload everything in one fell swoop. 2009-04-25 06:30:18 +00:00
Greg Taylor
723cdab4aa Make @clist actually show channel descriptions instead of 'No description' all the time. 2009-04-25 04:34:29 +00:00
Greg Taylor
a8434e3c97 Alphabetize imclist output. 2009-04-25 04:32:47 +00:00
Greg Taylor
c18937d3ba Fix page to use the new return value from get_attribute_value. 2009-04-20 22:29:54 +00:00
Greg Taylor
829b91dcce To prevent funkage, added some checks to make sure IMC2 is enabled before messing with IMC stuff on @cemit. 2009-04-17 14:26:01 +00:00
Greg Taylor
67d3d5a3c5 Don't show dbrefs on @clist. 2009-04-17 05:35:42 +00:00
Greg Taylor
5372bb5a05 The IMC2 client now sends and receives. For most, this should be all that is needed. There are a bunch more support commands that will need to be implemented, as well as a few other things, but this is very usable now. 2009-04-17 05:20:55 +00:00
Greg Taylor
ee8bd34bb3 Renamed at_pre_destroy() to at_object_destruction() to be consistent with at_object_creation() and at_player_creation(). Added additional documentation as well. 2009-04-17 01:43:45 +00:00
Greg Taylor
4bcbfd855a Add at_object_creation() to basicobject.py. I'll be adding at_object_destruction() later, ran out of time right now to do so. Also added some elaboration on the purpose of __init__ to basicobject.py. 2009-04-16 14:37:58 +00:00
Greg Taylor
36e23bfd4a Modularizing ANSI parsing. This may break stuff. It's not quite where I want it just yet. 2009-04-13 22:44:44 +00:00
Greg Taylor
31a78f9fb6 * Added the 'imclist' command to show other games connected to IMC.
* Added the automatic cleaning/pruning code to weed out entries that are probably disconnected.
* Added 'imcwhois <player>' command. Still needs some sanitizing on the outgoing string.
* Added the beginnings of a -reply packet handler through reply_listener.py.
* Fleshed out a few more packets in packets.py.
Next up: Make the ANSI system a little more modular. Create a class for ANSI tables so developers can pick and choose different tables on their own, but keep the same API. This will be used so we don't have to copy/paste src/ansi.py to src/imc2/ansi.py and duplicate stuff.
2009-04-13 06:36:51 +00:00
Griatch
6f11a1a62c After feedback, setting the default help index (the one you see when just writing "help" without
any arguments to the default static mux topic list instead. The dynamic index
is a bit overwhelming. It's reachable from "help index" See also "help help" and "help help_staff".
2009-04-12 00:32:28 +00:00
Griatch
4cc8e57774 Adds better help functionality
- expanded help command, allowing adding, deleting and appending to help the help database
 - auto-doc functionality using the __doc__ property of commands
 - markup in help text for creation of multiple help subtopics at once
 - dynamic help index (use 'help topic' to get the normal mux topic list)
 /Starkiel
2009-04-11 23:17:44 +00:00
Greg Taylor
191f49ff4c Adding a periodic IMC2 keepalive event. Other IMC2-connected games are now aware of our presence via the keepalive. Woot. 2009-04-11 06:59:25 +00:00
Greg Taylor
a7e89c1e54 Adding the beginnings of IMC2 support. We are now able to connect and authenticate with an IMC2 network, theoretically without blocking our server thread. We can't actually do anything useful just yet, but stay tuned. 2009-04-11 05:55:26 +00:00
Greg Taylor
65d8ac8bdc Disallow re-naming and re-aliasing duplicates. 2009-04-06 22:24:49 +00:00
Greg Taylor
899136760e Add the home command. 2009-04-06 22:07:41 +00:00
Greg Taylor
867fb47be7 alias, aliases, same thing. 2009-04-06 22:00:29 +00:00
Greg Taylor
48204c5dec Adding @reload/aliases. 2009-04-06 22:00:08 +00:00
Greg Taylor
5a465746c5 Adjust some function names in the script parents to be at_ instead of a_. Also re-designed the scheduling system to be a lot more pythonic and easy to use. Utilizes classes to represent events. Much easier to plug in events from within the game directory now as well. 2009-04-06 16:19:07 +00:00
Greg Taylor
b3c386a2c3 Clean up some of the methods on the script parent system. I have no idea why I was being silly and passing things around through dictionaries. Yick. Also added a at_player_creation method to basicplayer.py that is triggered after player objects are created and ready to go, but before they are logged in. 2009-03-30 00:54:05 +00:00
Greg Taylor
df69011134 Working on getting command tables implemented on individual objects. It's probably not a good idea to update to this revision in a 'production' environment yet. 2009-01-30 03:28:41 +00:00
Greg Taylor
5c5d2249bd Command reloading ended up being really super easy. @reload now rebuilds and re-imports all of the command modules. This should make development a lot easier. 2009-01-27 16:16:43 +00:00
Greg Taylor
4ca5a4a7bf Revamp how commands are loaded. This will now allow for easy addition of custom commands and over-riding existing Evennia-supplied commands. 2009-01-27 15:21:15 +00:00
Greg Taylor
848c7da075 Don't allow even superusers to modify non-modifiable attribs. 2009-01-25 03:16:49 +00:00
Greg Taylor
7ff97599be Move standard_objsearch to Objects.search_for_object. Also make sure @alias only accepts alphanumeric strings. 2009-01-25 03:11:52 +00:00
Greg Taylor
625d7ce8c9 Fix @cpattr to work, simplified it a bit as well. Still nowhere near MUX2 compliant at this point. 2009-01-24 20:48:16 +00:00
Greg Taylor
9407eb0ee4 Huge overhaul in the way objects and sessions are used with commands. We now pass all commands through objects (aside from unlogged commands), which means session.msg() is now deprecated for any use other than unlogged out.
As a side-effect of all of this, logging in more than once acts as behaves now. Also, this will allow things/rooms/exits (IE: not players) or un-logged in players to run commands or be forced to run them via @fo. All of this will bring us more in-line with MUX behavior.
2009-01-24 20:30:46 +00:00
jamesvclemence
50f4d04096 Fixed comment again, trailing space made a mess 2009-01-24 19:26:27 +00:00
jamesvclemence
ea51083797 Neatened comment to fit line length 2009-01-24 19:24:57 +00:00
jamesvclemence
0f51a5b1a8 Corrected the erroneous use of tabs - mistake in vim config\! 2009-01-24 19:21:09 +00:00
Greg Taylor
16e494f508 Fix HelpEntry model search field in the admin to search for topic name and the topic's text. Add missing search types to @search, aside from 'powers', which will need to be added once we figure out how powers will work. 2009-01-24 03:50:37 +00:00
Greg Taylor
7280eaf803 Add an extra_vars element to the command table that allows extra variables to be passed through the command table. Also added DOING ala MUX. 2009-01-24 03:17:43 +00:00
Greg Taylor
f2d4b3aba4 I have imported and dumped the MUX2 help files into a fixture in game/docs/help_files.json. These are now loaded on the first game's run. As we update help files and dumpdata/commit them, game admins may use the new 'update_help' manage.py command to update their copy of help files. For example: python manage.py update_helpfiles. Those with a current checkout of the source may want to do this now.
It is important to note that these are currently un-modified MUX2 help files. There are a lot of things that are not applicable, incorrect, or only partially correct. It will be an ongoing project to clean these up.
2009-01-24 03:06:18 +00:00
jamesvclemence
9250cb6446 Fixed command failure if one of a list of targets does not exist 2009-01-23 17:54:39 +00:00
jamesvclemence
9820d28438 Fixed the lack of cycling through a list of given objects in @cpattr 2009-01-23 17:49:04 +00:00
jamesvclemence
3d4ad07f9a @cpattr now coded, please post reports if bugs found, appears to work as expected. 2009-01-23 17:25:22 +00:00