Commit graph

527 commits

Author SHA1 Message Date
Griatch
4cee971169 Fixed some bugs in move reporting. Made feedback from default commands a bit more informative and consistent. Added some more text and error handling to the login commands. 2009-09-19 20:48:06 +00:00
Griatch
8fbeea99dc Moved the last hard-wired emits from objects/models.py into scriptparent hooks. This allows the admin to customize this without having to mess with the engine.
Other small bugfixes, fixes to @dig to properly call creation hooks of all newly created objects (it was not setting anything before). Also fixed some of the annoying bugs around using several of the building commands that didn't properly handle spaces around the separator = symbol.
/Griatch
2009-09-19 15:18:42 +00:00
Griatch
b95d45e251 Added option to local_and_global_search() for matching against the value
of any desired attribute. Default is searching by name, as before. This
makes it easy for admins to search for objects and also for using other
attributes than names as primary identifiers (short descriptions comes to
mind).
/Griatch
2009-09-05 21:59:12 +00:00
Griatch
afc463f975 Adding more feedback if giving wrong filename to @batchprocess. 2009-09-05 21:19:53 +00:00
Griatch
5e8a047111 Cleaned spammy output to IMC users from IRC and evennia channels, where channel names tended to be added
after one another several times. IMC is not seeing the IRC channel name anymore, output should be on the standard
simple name@MUD: msg format as far as IMC is concerned.
/Griatch
2009-09-05 07:24:04 +00:00
Griatch
eebfa0d387 Added a command batch processor to Evennia. The @batchprocess is a super-user only command that reads normal Evennia-commands
from a special-format batchfile. It is intended for large-scale offline world creation (especially things like room descriptions),
where a real text editor is often easier to use than online alternatives. The @batchprocess also has an /interactive mode which allows
stepping through the batch script, allowing to only execute selected entries; e.g. for editing/updating/debugging etc.  There is
an example batchfile in the gamesrc/commands/examples directory.
/Griatch
2009-09-04 08:01:43 +00:00
Griatch
41365074fd Further fuzzy matching improvement, with integer list selection of multiple matches.
This uses exact-match-first fuzzy matching as discussed in previous commits. It also
use the match order to present a list of options to narrow the selection down - the user can
then specify the choice by appending the correct number to the query.
Example: objects: [box,box]; searching for "box" gives a multiple match error, which presents
a list looking like "1-box, 2-box". The user can now just write "2-box" to choose the second
box. Showing dbrefs is perhaps even more universal, but revealing the underlying data structure
to the normal user is not really good practice - dbrefs is only something builders and admins
should have to know about ... (IMHO).
/Griatch
2009-09-02 22:04:14 +00:00
Griatch
2aae4a0105 Cleaner implementation of the fuzzy matching fix I did; this also handels "true" multiple matches (such that there really are
>1 thing named "box" in the room); the previous implementation just picked the first occurence instead of giving a
multiple match error.
/Griatch
2009-09-02 17:57:54 +00:00
Griatch
68217072a6 Fixed an issue with "Fuzzy" pattern matching that would not find names at certain times.
For example, before the fix, you could face the following issue: Create a bunch of boxes with @create:
box, box1, box2, box3 ... Now try to examine 'box'. This would not work - the game would tell you that there
were multiple matches - it just found "box" in all entries and went with that. So despite there only being one
thing named solely "box", you could not target it! This fix resolves this by giving precedence to exact matches
whenever they exist. I have only done it for the support routine behind local_and_global_search() though, there
are other search functions that uses django directly for fuzzy __in searches. I don't know how to add a similar
functionality to them.
/Griatch
2009-08-30 20:18:56 +00:00
Griatch
c5c8505582 Registering IRC as an Evennia Service, can now be controlled with @service/start/stop.
At the moment this only works with the initial IRC channel (the one set in preferences),
those channels you add later with @ircjoin does not add as Services; when setting it up
they add just fine, but the bot does not connect - I don't know why (code is commented out
in src/commands/irc.py).
/Griatch
2009-08-30 17:28:56 +00:00
Griatch
cb7ee081f5 Added info from @reload (Issue 70) and @service (Issue 71) to MUDInfo channel.
@reload only adds full info to the logger; normally just brief info to game unless
there is a traceback.
2009-08-30 15:35:29 +00:00
Griatch
811bdc623f Implemented @cchown as per MUX specifications (Issue 53). 2009-08-30 13:02:25 +00:00
Griatch
cdd4770330 Implemented clearcom as per MUX specifications (Issue 48).
Added a 'clear' argument to addcom as a shortcut to clearcom.
Changed addcom to now change the alias to a new one if giving the command on an already subscribed channel.
Added the exception in command handler so that giving the channel alias without argument gives an error instead
of sending None to the channel.
/Griatch
2009-08-30 12:28:38 +00:00
Griatch
117207e3ca Implemented allcom as per MUX specifications (Issue 47). Added some more functionality to it, such as giving allcom without an
argument makes it work as comlist. Also cleaned up some of the channel listing commands to make their output more consistent.
2009-08-30 10:07:15 +00:00
Griatch
ceaf7d2a2f Implements @cboot as per MUX specifications (Issue 20). Some code cleanup. 2009-08-29 22:29:19 +00:00
Griatch
69cb8e5655 Implemented @cpattr functionality as per MUX specification (Issue 26). 2009-08-29 19:15:32 +00:00
Griatch
bd2f7a845c Added @mvattr command as per MUX (Issue 25). Cleaned up @set to give better feedback. Some minor cleanups. 2009-08-29 17:41:00 +00:00
Griatch
5a3d901b5c Added #1 to default channels. Had IRC log to a default channel. Added some more feedback upon module import failures. 2009-08-29 10:36:00 +00:00
Griatch
929786638d Cleaning up erroneous commit. 2009-08-28 19:13:25 +00:00
Griatch
72ec7377b9 Added some changes to revision conttrol. 2009-08-28 19:07:25 +00:00
Griatch
e39537dc04 Fixed traceback in @irc2chan when channel not known. 2009-08-28 18:54:41 +00:00
Griatch
8d239ba382 Fixed a bug causing IMC users to see an echo when talking. The IRC<->Evennia<->IRC system seems to work as advertised now.
/Griatch
2009-08-28 18:38:08 +00:00
Griatch
72e55f417a Added the command/irc.py directory that was not committed properly.
Added some more helper commands and changed a bit under the hood on those
previously committed for mapping irc/imc channels to each other.

There seems to be an issue with IMC2 users seeing an echo back to themselves when talking. Investigating.
/Griatch
2009-08-28 18:13:07 +00:00
Griatch
5f58c4384b IRC_ENABLED was accidentally left to True in default config file. Fixed. 2009-08-28 16:01:21 +00:00
Griatch
d3165867c3 Added IRC connectivity for Evennia.
This allows the Evennia server to launch a bot that pipes output from an IRC channel to an Evennia channel. IMC2 and IRC channels
mapped to the same channel will also see traffic from each other.
New fields in settings.py were added to setup the IRC bot.
Added new in-game commands '@imc2chan' and @irc2chan for mapping irc/imc channels to evennia channels; you don't have to
use the admin interface anymore.

This is a correction commit to add the correct text info; the irc bot was really added in r650.

/Griatch
2009-08-28 01:43:45 +00:00
Griatch
4bd567386f Some code cleanup and clarification in comments. 2009-08-28 01:33:15 +00:00
Griatch
2640bd057a Fixed some minor typos. 2009-08-23 09:30:09 +00:00
Griatch
6bbdde763d Minor fix of an argument typo as well as making an example more compacent with the wiki. 2009-08-16 09:09:55 +00:00
Griatch
1d4f075ca7 * Updated and expanded the State system; the API changed a bit. You now have to first *create* the state using
GLOBAL_STATE_TABLE.add_state() before adding commands to it. The state can now be much more configured by including as much or as
little of the normal default commands into it as wanted (so you can now have states which are almost as normal, except some
commands are missing or change their behaviour ... illness or darkness comes to mind). The possibilities here are limitless.
* States now also optionally allow traversing exits as well as using command tables defined on objects.
* States now better handle error messages (so if you try 'look' in a state which does not contain a look command you will no
longer get the 'Huh?' but will be told that the command is not available at the moment).
* All examples in commands/examples/ have been updated to use the new State system. Also added a @test_state function for trying out
the functionality.
* Added hooks at_before_move() and at_after_move(), useful for character based move-restrictions and checks (e.g. movement speed)
* Minor tweaks to the event system; avoiding the counters to go negative should they hit an uncaught traceback.
* Small fixes of typos and minor extra safety checks.
/Griatch
2009-08-16 01:18:58 +00:00
Ari Mudev
f5b40648a6 Correct minor inline documentation typos. 2009-07-06 13:14:10 +00:00
Greg Taylor
49f24d2372 svn:ignore property update on management command. 2009-07-06 02:56:45 +00:00
Greg Taylor
05791b3593 Two patches, courtesy of Ari:
* The startup script (evennia.py) will now take your PYTHONPATH environmental variable into account when starting. This may resolve potential issues with Twisted on Windows with certain combinations of Python.
* The INSTALL file still referred to startup.bat, which is now gone in favor of evennia.py.

Thanks Ari!
2009-07-06 02:55:25 +00:00
Greg Taylor
ddfd479ba9 Fix a really obscure bug with adding default channels. Had a string substitution that didn't match up and wasn't throwing an exception (for some weird reason).
Also add CommChannelMembershipAdmin.
2009-06-04 04:03:16 +00:00
Greg Taylor
d29c6340fc Finally transition away from those horrid channel attributes for tracking channel memberships. We'll see about doing away with them altogether if it's possible efficiently.
NOTE: MAKE SURE YOU SYNCDB. A new model was added to track channel memberships.
2009-06-04 03:42:19 +00:00
Greg Taylor
acbfa1be6a Re-arrange line breaks for the examine command to match MUX/MUSH. 2009-06-04 02:14:15 +00:00
Greg Taylor
1d0b05c229 IMC commenting in config_defaults.py. 2009-06-04 01:13:30 +00:00
Griatch
c339c1f6f6 Changed the input format of the create_object() function as suggested in the code. A more normal function now, no more strange dictionary input. 2009-05-03 18:21:12 +00:00
Griatch
9bf3e48def Fixed a bug in @dig for handling if no arguments where supplied. 2009-05-03 17:10:10 +00:00
Griatch
05554e290a Moved the object's 'description' into an attribute, as suggested in the code. This means that get_description() and set_description() should no longer be used; instead use set_attribute('desc',value) and get_attribute('desc') as you would any attribute. 'desc' is used by the default look command, but apart from that, desc has no special status anymore.
/Griatch
2009-05-03 16:55:42 +00:00
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
5bc1db70ed Added help/del to the state-help system, made some appearance tweaks on the examples. 2009-05-02 08:55:12 +00:00
Griatch
fd050f75ca Some adjustments of the formatting for auto_help. Added some colours to the state_example menu. 2009-05-02 08:25:37 +00:00
Griatch
cafbdf720e Minor typo-fixes as well as making some variable names more intuitive. 2009-05-01 15:56:19 +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
ba623af351 Took out some useless code and imports left in after testing this. 2009-05-01 06:42:37 +00:00
Greg Taylor
119f5f6d49 Show a little more info in the Django admin for comm channels. 2009-05-01 05:07:13 +00:00
Greg Taylor
a5efca450d Looks like there's an import in here that doesn't exist. Commenting it out. Starkiel, was this supposed to do anything? 2009-05-01 05:03:52 +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