Commit graph

  • a5a0d92985 Added some more information to the move-announcement hooks; these also know from where the object is coming from (this can be useful for admins wanting to produce e.g. 'player arrives from <foo>' messages insteda of the default uninformative 'player arrives.'. ) /Griatch Griatch 2009-09-20 00:02:57 +00:00
  • 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. Griatch 2009-09-19 20:48:06 +00:00
  • 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 Griatch 2009-09-19 15:18:42 +00:00
  • 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 Griatch 2009-09-05 21:59:12 +00:00
  • afc463f975 Adding more feedback if giving wrong filename to @batchprocess. Griatch 2009-09-05 21:19:53 +00:00
  • 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 Griatch 2009-09-05 07:24:04 +00:00
  • 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 Griatch 2009-09-04 08:01:43 +00:00
  • 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 Griatch 2009-09-02 22:04:14 +00:00
  • 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 Griatch 2009-09-02 17:57:54 +00:00
  • 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 Griatch 2009-08-30 20:18:56 +00:00
  • 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 Griatch 2009-08-30 17:28:56 +00:00
  • 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. Griatch 2009-08-30 15:35:29 +00:00
  • 811bdc623f Implemented @cchown as per MUX specifications (Issue 53). Griatch 2009-08-30 13:02:25 +00:00
  • 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 Griatch 2009-08-30 12:28:38 +00:00
  • 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. Griatch 2009-08-30 10:07:15 +00:00
  • ceaf7d2a2f Implements @cboot as per MUX specifications (Issue 20). Some code cleanup. Griatch 2009-08-29 22:29:19 +00:00
  • 69cb8e5655 Implemented @cpattr functionality as per MUX specification (Issue 26). Griatch 2009-08-29 19:15:32 +00:00
  • bd2f7a845c Added @mvattr command as per MUX (Issue 25). Cleaned up @set to give better feedback. Some minor cleanups. Griatch 2009-08-29 17:41:00 +00:00
  • 5a3d901b5c Added #1 to default channels. Had IRC log to a default channel. Added some more feedback upon module import failures. Griatch 2009-08-29 10:36:00 +00:00
  • 929786638d Cleaning up erroneous commit. Griatch 2009-08-28 19:13:25 +00:00
  • 72ec7377b9 Added some changes to revision conttrol. Griatch 2009-08-28 19:07:25 +00:00
  • e39537dc04 Fixed traceback in @irc2chan when channel not known. Griatch 2009-08-28 18:54:41 +00:00
  • 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 Griatch 2009-08-28 18:38:08 +00:00
  • 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. Griatch 2009-08-28 18:13:07 +00:00
  • 5f58c4384b IRC_ENABLED was accidentally left to True in default config file. Fixed. Griatch 2009-08-28 16:01:21 +00:00
  • 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. Griatch 2009-08-28 01:43:45 +00:00
  • 4bd567386f Some code cleanup and clarification in comments. Griatch 2009-08-28 01:33:15 +00:00
  • 2640bd057a Fixed some minor typos. Griatch 2009-08-23 09:30:09 +00:00
  • 6bbdde763d Minor fix of an argument typo as well as making an example more compacent with the wiki. Griatch 2009-08-16 09:09:55 +00:00
  • 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 Griatch 2009-08-16 01:18:58 +00:00
  • f5b40648a6 Correct minor inline documentation typos. Ari Mudev 2009-07-06 13:14:10 +00:00
  • 49f24d2372 svn:ignore property update on management command. Greg Taylor 2009-07-06 02:56:45 +00:00
  • 05791b3593 Two patches, courtesy of Ari: Greg Taylor 2009-07-06 02:55:25 +00:00
  • 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). Greg Taylor 2009-06-04 04:03:16 +00:00
  • 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. Greg Taylor 2009-06-04 03:42:19 +00:00
  • acbfa1be6a Re-arrange line breaks for the examine command to match MUX/MUSH. Greg Taylor 2009-06-04 02:14:15 +00:00
  • 1d0b05c229 IMC commenting in config_defaults.py. Greg Taylor 2009-06-04 01:13:30 +00:00
  • 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. Griatch 2009-05-03 18:21:12 +00:00
  • 9bf3e48def Fixed a bug in @dig for handling if no arguments where supplied. Griatch 2009-05-03 17:10:10 +00:00
  • 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 Griatch 2009-05-03 16:55:42 +00:00
  • 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 ... Griatch 2009-05-02 19:02:36 +00:00
  • 1314629a06 Minor bugfix of addcom command, some other cleanup. Griatch 2009-05-02 15:55:47 +00:00
  • 5bc1db70ed Added help/del to the state-help system, made some appearance tweaks on the examples. Griatch 2009-05-02 08:55:12 +00:00
  • fd050f75ca Some adjustments of the formatting for auto_help. Added some colours to the state_example menu. Griatch 2009-05-02 08:25:37 +00:00
  • cafbdf720e Minor typo-fixes as well as making some variable names more intuitive. Griatch 2009-05-01 15:56:19 +00:00
  • 0efe2c3095 Created a state system. See http://groups.google.com/group/evennia/browse_thread/thread/66a7ff6cce5303b7 for more detailed description. Griatch 2009-05-01 15:34:43 +00:00
  • 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. Griatch 2009-05-01 07:16:44 +00:00
  • ba623af351 Took out some useless code and imports left in after testing this. Griatch 2009-05-01 06:42:37 +00:00
  • 119f5f6d49 Show a little more info in the Django admin for comm channels. Greg Taylor 2009-05-01 05:07:13 +00:00
  • a5efca450d Looks like there's an import in here that doesn't exist. Commenting it out. Starkiel, was this supposed to do anything? Greg Taylor 2009-05-01 05:03:52 +00:00
  • 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 Griatch 2009-04-30 15:01:59 +00:00
  • 8799a0fd55 Added example of how to handle event errors gracefully without them taking down the server with with unhandled exceptions (this should be handled somewhere above exception too, but it's hard to tell when to do it since twisted is raising them). /Starkiel Griatch 2009-04-30 08:23:54 +00:00
  • b53c228257 Add a note about Python 2.6. Greg Taylor 2009-04-30 06:20:00 +00:00
  • d03b214f24 Add FollowSymLinks to the media directory by default. Greg Taylor 2009-04-30 06:17:51 +00:00
  • 6c5488aab3 Show the IMC server name for IMC2ChannelMapping objects in the Django admin interface. Greg Taylor 2009-04-30 04:21:58 +00:00
  • 45f17f6732 In the strange case where someone creates two mappings with the same IMC2 name, handle it gracefully by emitting to all matching mappings instead of just assuming there'll only be one match. Greg Taylor 2009-04-30 04:20:03 +00:00
  • 9b8f1cf3ea Handle IMC ice-destroy packets. Greg Taylor 2009-04-30 04:05:19 +00:00
  • 181133d917 Add tracking of IMC2 channels and the new 'imcchanlist' command. Greg Taylor 2009-04-30 03:56:52 +00:00
  • 50e70327fe Be a good little IMC2 denizen and send is-alive packets when a keepalive-request comes our way. Greg Taylor 2009-04-30 03:26:53 +00:00
  • 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. Greg Taylor 2009-04-30 03:13:46 +00:00
  • 70602efaa7 Remove an unneeded import that was causing a deprecation warning. Greg Taylor 2009-04-30 02:52:16 +00:00
  • 426932b5a6 Add the MudBytes connection details to config_default.py for easy access. Greg Taylor 2009-04-30 02:49:47 +00:00
  • 331f149dfb Specify the id for the Limbo room on creation to avoid PKey duplication on postgres. Not sure why it was happening to begin with, but whatever. Greg Taylor 2009-04-30 02:47:27 +00:00
  • 7b0bd55200 * Change the CommChannelMessage's 'message' field from a CharField to a TextField. This will allow messages that are greater than 255 characters to be stored. You'll want to drop your channels_commchannelmessage table and run syncdb again. * Update the list of database drivers in the comments in config_defaults.py. Greg Taylor 2009-04-30 02:40:11 +00:00
  • 9954700bdd Fixed formatting on @clist. Greg Taylor 2009-04-29 01:03:26 +00:00
  • 547a5dd139 * Fixed channel history to show in the correct order now. * Two channels are now created by initial_setup.py for informative emits: MUDConnections and MUDInfo. * MUDConnections now shows a connection/login/logout log. * MUDInfo shows general informative messages about the server state. For now IMC emits here when things happen (connection, disconnection, etc.). Eventually we'll want to restrict these to staff only, but it's not high priority atm. Greg Taylor 2009-04-29 00:50:44 +00:00
  • 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. Greg Taylor 2009-04-28 23:49:49 +00:00
  • b63bcc6132 Removed an unneeded debug logger entry from the example event to avoid spamming the log. Griatch 2009-04-26 11:04:54 +00:00
  • 54e2564a9f Just adding a few lines of README for those not aware of what to do about the docs/doxygen folder. Griatch 2009-04-26 07:55:25 +00:00
  • 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) Griatch 2009-04-25 20:51:12 +00:00
  • a32840002c This change to set_script_parent() is also needed to get the previous @parent fixes to work, sorry for the omission. Griatch 2009-04-25 18:05:46 +00:00
  • 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. Griatch 2009-04-25 17:41:58 +00:00
  • 9abde7b60f End all 'say' messages with a 'normal' ansi character to prevent bleedage. Also, added the beginnings of an IMC2 ansi parser. Greg Taylor 2009-04-25 07:13:19 +00:00
  • 0ad8c88c22 Comment elaboration. Greg Taylor 2009-04-25 06:32:47 +00:00
  • 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. Greg Taylor 2009-04-25 06:30:18 +00:00
  • ffa03309fc Local object command tables are now in. See game/gamesrc/parents/examples/red_button.py for example. Note that local command matches will override global matches. Command handler short circuits on the first command match. This will typically be the object with the lowest ID. Greg Taylor 2009-04-25 06:11:42 +00:00
  • 723cdab4aa Make @clist actually show channel descriptions instead of 'No description' all the time. Greg Taylor 2009-04-25 04:34:29 +00:00
  • a8434e3c97 Alphabetize imclist output. Greg Taylor 2009-04-25 04:32:47 +00:00
  • d8f6074f10 Enable to KeelAliveREquest on IMC2 connection. Greg Taylor 2009-04-21 13:36:11 +00:00
  • 2d6ef25081 Handle autosetup and tell packets correctly. Greg Taylor 2009-04-20 22:34:16 +00:00
  • c18937d3ba Fix page to use the new return value from get_attribute_value. Greg Taylor 2009-04-20 22:29:54 +00:00
  • 5ec19c2645 Actually, I did mess up and not commit the channels app. Yick. Fixed. Greg Taylor 2009-04-20 02:45:40 +00:00
  • 829b91dcce To prevent funkage, added some checks to make sure IMC2 is enabled before messing with IMC stuff on @cemit. Greg Taylor 2009-04-17 14:26:01 +00:00
  • 4121b54e4c Remove some double quotes from version info. Greg Taylor 2009-04-17 05:53:27 +00:00
  • 67d3d5a3c5 Don't show dbrefs on @clist. Greg Taylor 2009-04-17 05:35:42 +00:00
  • 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. Greg Taylor 2009-04-17 05:20:55 +00:00
  • 9f86a4c586 I've been meaning to do this for a while as well. Break CommChannel and CommChannelMessage out into a separate app. I had them lumped in with objects/models.py due to some funkage with the admin site registering that is now resolved. Greg Taylor 2009-04-17 04:15:54 +00:00
  • 42f11b208b Remote IMC2 channels can now be listened to via IMC2 bindings. For this to work, create an IMC2ChannelMapping object with the channel you'd like to serve as the gateway to the remote IMC2 channel. Enter the IMC2 channel's name as the imc2_channel_name field and make sure the object is enabled. Any incoming ice-msg-b packets directed at your chosen channel will now be emitted to the appropriate channel as if it were local, with one difference: the user name is sender@origin. Sending messages is hopefully soon to follow. Greg Taylor 2009-04-17 03:34:46 +00:00
  • 573d1b6e88 Finally got around to creating admin.py files for all of the apps. This will prevent some really weird import errors and fixes an issue with the Attribute model's admin display. May also cut resource usage slightly for MUD server instances. Needs more testing! Greg Taylor 2009-04-17 03:08:18 +00:00
  • 1da2179ee6 Had a printed debugging statement stuck in here. Whoops. Greg Taylor 2009-04-17 02:57:43 +00:00
  • b7ae985ef9 default=0 for a boolean field? wtf batman. Left over from the early days. Fixed. Greg Taylor 2009-04-17 01:47:14 +00:00
  • 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. Greg Taylor 2009-04-17 01:43:45 +00:00
  • 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. Greg Taylor 2009-04-16 14:37:58 +00:00
  • 36e23bfd4a Modularizing ANSI parsing. This may break stuff. It's not quite where I want it just yet. Greg Taylor 2009-04-13 22:44:44 +00:00
  • d4f80a526e Pass on KeyError from deleting a non-existant game from the IMC2MudList. Greg Taylor 2009-04-13 13:16:13 +00:00
  • 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. Greg Taylor 2009-04-13 06:36:51 +00:00
  • 317a4f1532 Looks like the 'who' packet doesn't have a target element in the target@destination segment of the packet. Handle this semi-intelligently when ran into. Greg Taylor 2009-04-13 04:38:05 +00:00
  • 859166a41c I guess I could just go down my keyboard and hit all of the special characters instead of do this one-by-one BS :) Greg Taylor 2009-04-13 01:38:32 +00:00
  • bc67af89b6 Add the period character to the list of wordchars for continuous tokens. Silly me for forgetting it. Greg Taylor 2009-04-12 17:01:17 +00:00
  • dd8a05c40a Improved the IMC2 packet lexxer to handle single quotes as regular tokenizable characters. Greg Taylor 2009-04-12 08:36:10 +00:00