a5a0d92985Added 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
4cee971169Fixed 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
8fbeea99dcMoved 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
b95d45e251Added 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
afc463f975Adding more feedback if giving wrong filename to @batchprocess.
Griatch
2009-09-05 21:19:53 +00:00
5e8a047111Cleaned 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
eebfa0d387Added 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
41365074fdFurther 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
2aae4a0105Cleaner 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
68217072a6Fixed 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
c5c8505582Registering 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
cb7ee081f5Added 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
811bdc623fImplemented @cchown as per MUX specifications (Issue 53).
Griatch
2009-08-30 13:02:25 +00:00
cdd4770330Implemented 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
117207e3caImplemented 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
ceaf7d2a2fImplements @cboot as per MUX specifications (Issue 20). Some code cleanup.
Griatch
2009-08-29 22:29:19 +00:00
69cb8e5655Implemented @cpattr functionality as per MUX specification (Issue 26).
Griatch
2009-08-29 19:15:32 +00:00
bd2f7a845cAdded @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
5a3d901b5cAdded #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
929786638dCleaning up erroneous commit.
Griatch
2009-08-28 19:13:25 +00:00
72ec7377b9Added some changes to revision conttrol.
Griatch
2009-08-28 19:07:25 +00:00
e39537dc04Fixed traceback in @irc2chan when channel not known.
Griatch
2009-08-28 18:54:41 +00:00
8d239ba382Fixed 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
72e55f417aAdded 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
5f58c4384bIRC_ENABLED was accidentally left to True in default config file. Fixed.
Griatch
2009-08-28 16:01:21 +00:00
d3165867c3Added 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
4bd567386fSome code cleanup and clarification in comments.
Griatch
2009-08-28 01:33:15 +00:00
2640bd057aFixed some minor typos.
Griatch
2009-08-23 09:30:09 +00:00
6bbdde763dMinor 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
f5b40648a6Correct minor inline documentation typos.
Ari Mudev
2009-07-06 13:14:10 +00:00
49f24d2372svn:ignore property update on management command.
Greg Taylor
2009-07-06 02:56:45 +00:00
05791b3593Two patches, courtesy of Ari:
Greg Taylor
2009-07-06 02:55:25 +00:00
ddfd479ba9Fix 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
d29c6340fcFinally 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
acbfa1be6aRe-arrange line breaks for the examine command to match MUX/MUSH.
Greg Taylor
2009-06-04 02:14:15 +00:00
1d0b05c229IMC commenting in config_defaults.py.
Greg Taylor
2009-06-04 01:13:30 +00:00
c339c1f6f6Changed 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
9bf3e48defFixed a bug in @dig for handling if no arguments where supplied.
Griatch
2009-05-03 17:10:10 +00:00
05554e290aMoved 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
e7d7284d5cAdded 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
1314629a06Minor bugfix of addcom command, some other cleanup.
Griatch
2009-05-02 15:55:47 +00:00
5bc1db70edAdded help/del to the state-help system, made some appearance tweaks on the examples.
Griatch
2009-05-02 08:55:12 +00:00
fd050f75caSome adjustments of the formatting for auto_help. Added some colours to the state_example menu.
Griatch
2009-05-02 08:25:37 +00:00
cafbdf720eMinor typo-fixes as well as making some variable names more intuitive.
Griatch
2009-05-01 15:56:19 +00:00
cae925c29bMade 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
ba623af351Took out some useless code and imports left in after testing this.
Griatch
2009-05-01 06:42:37 +00:00
119f5f6d49Show a little more info in the Django admin for comm channels.
Greg Taylor
2009-05-01 05:07:13 +00:00
a5efca450dLooks 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
8799a0fd55Added 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
b53c228257Add a note about Python 2.6.
Greg Taylor
2009-04-30 06:20:00 +00:00
d03b214f24Add FollowSymLinks to the media directory by default.
Greg Taylor
2009-04-30 06:17:51 +00:00
6c5488aab3Show the IMC server name for IMC2ChannelMapping objects in the Django admin interface.
Greg Taylor
2009-04-30 04:21:58 +00:00
45f17f6732In 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
9b8f1cf3eaHandle IMC ice-destroy packets.
Greg Taylor
2009-04-30 04:05:19 +00:00
181133d917Add tracking of IMC2 channels and the new 'imcchanlist' command.
Greg Taylor
2009-04-30 03:56:52 +00:00
50e70327feBe 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
76f14b4779Clean 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
70602efaa7Remove an unneeded import that was causing a deprecation warning.
Greg Taylor
2009-04-30 02:52:16 +00:00
426932b5a6Add the MudBytes connection details to config_default.py for easy access.
Greg Taylor
2009-04-30 02:49:47 +00:00
331f149dfbSpecify 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
9954700bddFixed 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
566a02b848We 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
b63bcc6132Removed an unneeded debug logger entry from the example event to avoid spamming the log.
Griatch
2009-04-26 11:04:54 +00:00
54e2564a9fJust 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
a32840002cThis 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
9d199032b0Modifications 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
9abde7b60fEnd 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
0ad8c88c22Comment 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
ffa03309fcLocal 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
723cdab4aaMake @clist actually show channel descriptions instead of 'No description' all the time.
Greg Taylor
2009-04-25 04:34:29 +00:00
a8434e3c97Alphabetize imclist output.
Greg Taylor
2009-04-25 04:32:47 +00:00
d8f6074f10Enable to KeelAliveREquest on IMC2 connection.
Greg Taylor
2009-04-21 13:36:11 +00:00
2d6ef25081Handle autosetup and tell packets correctly.
Greg Taylor
2009-04-20 22:34:16 +00:00
c18937d3baFix page to use the new return value from get_attribute_value.
Greg Taylor
2009-04-20 22:29:54 +00:00
5ec19c2645Actually, I did mess up and not commit the channels app. Yick. Fixed.
Greg Taylor
2009-04-20 02:45:40 +00:00
829b91dcceTo 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
4121b54e4cRemove some double quotes from version info.
Greg Taylor
2009-04-17 05:53:27 +00:00
67d3d5a3c5Don't show dbrefs on @clist.
Greg Taylor
2009-04-17 05:35:42 +00:00
5372bb5a05The 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
9f86a4c586I'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
42f11b208bRemote 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
573d1b6e88Finally 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
1da2179ee6Had a printed debugging statement stuck in here. Whoops.
Greg Taylor
2009-04-17 02:57:43 +00:00
b7ae985ef9default=0 for a boolean field? wtf batman. Left over from the early days. Fixed.
Greg Taylor
2009-04-17 01:47:14 +00:00
ee8bd34bb3Renamed 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
4bcbfd855aAdd 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
36e23bfd4aModularizing 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
d4f80a526ePass 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
317a4f1532Looks 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
859166a41cI 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
bc67af89b6Add 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
dd8a05c40aImproved the IMC2 packet lexxer to handle single quotes as regular tokenizable characters.
Greg Taylor
2009-04-12 08:36:10 +00:00