Commit graph

18 commits

Author SHA1 Message Date
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
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
4bd567386f Some code cleanup and clarification in comments. 2009-08-28 01:33:15 +00:00
Greg Taylor
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. 2009-04-30 04:20:03 +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
50e70327fe Be a good little IMC2 denizen and send is-alive packets when a keepalive-request comes our way. 2009-04-30 03:26:53 +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
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.
2009-04-29 00:50:44 +00:00
Greg Taylor
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. 2009-04-25 06:11:42 +00:00
Greg Taylor
d8f6074f10 Enable to KeelAliveREquest on IMC2 connection. 2009-04-21 13:36:11 +00:00
Greg Taylor
2d6ef25081 Handle autosetup and tell packets correctly. 2009-04-20 22:34:16 +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
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. 2009-04-17 03:34:46 +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
Greg Taylor
4963dd6098 IMC2Packet class is looking pretty stout now. We should be ready to start sub-classing it to the various IMC2 packet types. 2009-04-11 21:52:56 +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