2002-01-23 21:00 willhelm * mudlib/: mudtime.py, parser.py: Last group in the massive documentation effort. The other modules either aren't clear (so i can't document them) or they're not important for coders to use, so we're going to skip them this time around. 2002-01-23 15:02 willhelm * mudlib/trade.py: Added the properties from the tradeprops file. 2002-01-23 15:01 willhelm * mudlib/: login.py, mind.py, shadow.py, tradeprops.py, utils.py: Massive documentation on login, mind, shadow, and utils. Removal of the tradeprops module--contents were moved to the trade module. 2002-01-22 15:10 willhelm * mudlib/living.py: Removal of acceptsWrites code. NPCs that want to look at the write and rawwrite method informaiton should override them and handle them accordingly. 2002-01-22 14:11 willhelm * mudlib/: living.py, stdlib.py: Added the scribe to the world lib. Massive documentation effort on living.py and stdlib.py. 2002-01-21 10:56 willhelm * mudlib/: employable.py, stats.py, viewer.py, vtelnet.py: Massive documentation effort. 2002-01-19 20:32 willhelm * mudlib/: callout.py, coder.py, commands.py, core.py, currency.py, door.py, editor.py, emote.py, employable.py, formatter.py, heap.py, language.py, mpico.py, nomacs.py, possessed.py, race.py, trade.py: Massive documentation effort. These modules have either been documented to a point where I'm happy and the happydocs are very useful or they've been marked with a "This module lacks in documentation" at the top so that the happydocs note the module is lacking. This is about 8 hours total of work over the last two days. I'll try to get to the other half of the mudlib modules in the next couple of days. Any help is greatly appreciated--just keep using the markup I'm using for the doc-strings--good examples in core.py. I'm going to do a write-up on how to do doc-strings in the coding conventions guide on the bluemud site. I would like for all future modules to be written using this standard. It'll save us a lot of time in the long run and keep this project going in good directions. 2002-01-16 21:30 willhelm * mudlib/: commands.py, core.py, living.py: Changed the search command handler so that you can "stop" searching if you want to. Added a bunch of comments. 2002-01-16 13:36 willhelm * mudlib/: callout.py, coder.py, formatter.py: Documentation overhaul for better/clearer happydocs. 2002-01-14 22:46 willhelm * mudlib/formatter.py: MASSIVE commenting changes to the formatter. I decided to stick with HappyDoc since it handles modules it doesn't know about nicely. I may go and roll my own docstring module for our usage because I'm having wicked problems with the StructuredText one. But that's another task for another time. In the meantime, my new convention is to mark all arguments, defaults, argument types, return types, and any exceptions if we raise them. I'm adding example code as well, but having a wicked time of getting it to format correctly in the happydocs. Soon either I will master this formatting nightmare, or I'll write my own docstring module. 2002-01-14 18:31 willhelm * mudlib/: commands.py, formatter.py: Fixed the indent formatter tag so that it now indents the entire text. Indent has an attribute called firstline which toggles whether (true) or not (false) to indent the first line of the text. It defaults to true. Fixed a small bug in the formatter (visual bug)--it now lstrips before indenting the next line. Fixed the columnize function becuase I screwed up the sorting. Added a clean target to the build script. 2002-01-12 00:27 willhelm * mudlib/coder.py: Removed the reload command from the coder module all together. Added an Inn to the tavern world--it's west of the Start room. Added a few attachments to the Start room. Task 45027: Moved the guestbook into the new world/domains/lib worldlib directory. Finished up the guestbook. Now if you sign it, it will change your start room. It could probably be a little fancier, but it does pretty well right now. This completes the task. 2002-01-10 22:24 willhelm * mudlib/living.py: Discovered the root of the elusive "save...load...hey--why am I not a coder anymore?" bug! The power of one lowercase letter is a greater power than we mere mortals could possibly hope to understand. 2002-01-09 23:14 willhelm * org/bluesock/bluemud/driver/: NawsEvent.java, SocketCommunicator.java: Removed the "processing Naws event" message. Re-added the exception stacktrace in the SocketCommunicator, but it only gets kicked off if we're in debug mode. 2002-01-09 13:20 mrblah * mudlib/: coder.py, commands.py, living.py: Moved the "finger" command from the coder module to the commands module, and separated the information viewable to everyone from the information viewable only by wizards . Also added support for "additional" finger fields in players that anything can set, such as guilds, quests, or other commands, and that will be displayed when the player is fingered. Restricted additional fields are also available to be set, and will only be displayed to wizards when fingering. Finally, I added a brief help topic on the finger command. 2002-01-09 11:57 mrblah * mudlib/login.py, org/bluesock/bluemud/driver/SocketCommunicator.java: Using the enhanced stdlib.findPlayer function in the login module resulted in some work being done twice, which caused problems for linkdeath reconnection. I simplied the LoginEvent class a bit and removed the duplicate work, which fixed the bug. I also added a FIXME for splitting apart the LoginEvent into a LoginEvent and a ReconnectEvent. The two are suitably different to justify their own Event classes. I'll try to get to this in the near future. I also modified the SocketCommunicator to not "sputter" and dump stack traces to the error log when it catches exceptions while reading from the socket. Most of these exceptions were caused by unclean disconnects, such as users closing their terminal programs instead of logging out, which is considered "normal" behavior. Writing to the error log wasn't a bad thing, but it was causing some clutter and not adding much value. I added an explantory comment to the exception handler. 2002-01-09 00:29 mrblah * mudlib/living.py: Moved the stat attributes and methods from living.Interactive to living.Living. Added a basic help file for the "stats" command. 2002-01-08 21:25 mrblah * mudlib/: commands.py, living.py, stats.py: First run at stats system. It's been only vaguely tested, mostly to make sure it doesn't break existing stuff. Some stat-related attributes have been added to the living.Interactive class, along with accessor and mutator methods; stat constants and manipulation functions have been put into the stats module; and a "stats" command has been added to the commands module. Along with more testing, I still need to add a coder command for summarizing the numerical values of a player's stats, since the player's "stats" command provides only text-based values. I also need to add a command that player's can use to track their progress in between stat levels. 2002-01-08 16:52 willhelm * mudlib/: commands.py, formatter.py: Added a flag to formatter.columnize so that it'll sort incoming lists if you want it to. Note that if your list has formatting information in the list elements, then columnize won't sort "correctly". So in some cases it's easier to tell columnize to sort, and in others it might be more beneficial to sort yourself. Fixed 'ansi color' and 'commands' in the commands module to use the sorting thing. 2002-01-08 16:48 willhelm * mudlib/commands.py: Fixed something incorrect in ansiset.cmd. Also fixed the 'ansi colors' to sort the keys before columnizing and displaying them. As an afterthought it occurs to me that we could add a flag to columnize for sorting.... 2002-01-08 10:34 mrblah * mudlib/login.py: Fixed a couple bugs. The new call to findPlayer to load players wasn't passing in the flag to request they be loaded from disk, so the player file was never consulted during the login process. Also fixed a bug wherein aliased destionation rooms other than "start_room" weren't recognized, resulting in new players never entering the player creation process. 2002-01-08 00:48 mrblah * mudlib/coder.py: Added "finger" command, which will dump some basic information about the player fingered, including a wizard's .plan file if it exists in his/her home directory. The finger command will work for both online and offline players, but less information is available for offline players. 2002-01-08 00:46 mrblah * mudlib/: login.py, stdlib.py: Enhanced stdlib.findPlayer function to support creating of player objects from player files for players who aren't currently logged in. The optional loadIfOffline flag must be set to true to enable this functionality. Modified the login code to use the enhanced findPlayer function instead of creating the player object itself. 2002-01-08 00:40 mrblah * mudlib/living.py: Fixed constructor of Interactive to initialize the _mind variable. 2002-01-08 00:37 mrblah * mudlib/mind.py: Added getIPAddress method, which returns the IP address of the player associated with the Mind instance. 2002-01-08 00:28 mrblah * mudlib/language.py: Added genderText function, which returns the text description of a living object's gender, and pronounAndVerb function, which bundles together the prounoun of a living along with the appropriate linking verb. There's probably quite a bit of code out there that could take advantage of this latter function. Also fixed the possessive function to return "your" when the given living is the active player. 2002-01-06 18:39 willhelm * mudlib/login.py, org/bluesock/bluemud/driver/SocketCommunicator.java: Added a "ctrl-u" kind of thing to the SocketCommunicator. If you type ctrl-u, it'll delete everything you've typed so far. Good for if you've got telnet and you're typing and decide to start over or something. 2002-01-06 16:34 willhelm * mudlib/login.py: Fixed login.py so it better handles start rooms. Like if you screw up your start room, it'll send you to the aliased start_room. 2002-01-06 15:38 willhelm * mudlib/living.py, mudlib/login.py, mudlib/stdprops.py, mudlib/vtelnet.py, org/bluesock/bluemud/driver/Server.java, org/bluesock/bluemud/driver/User.java: Added the ability to change one's start room. The default start room is the aliased object "start_room". Though you can change this by adding a property with the new start room: player.addProperty(stdprops.START_ROOM, "path.to.new.start.room") ex: player.addProperty(stdprops.START_ROOM, "tavern.tavern.NeilsBar") Then save the player character. Every time they log in afterwards, they start in Neils Bar. Currently there are no in-game objects to facilitate changing start room, however as a coder, you can do it via the call command: call me addProperty stdprops.START_ROOM%%"tavern.tavern.NeilsBar" Also I added some comments here and there. 2002-01-04 22:43 willhelm * mudlib/emote.py: Rewrote the WHEE emote. 2002-01-04 22:29 willhelm * mudlib/coder.py: I changed my mind and removed the dumpsock command and added a few more lines to the dump command for Socket Properties in the case of it being a player. 2002-01-04 22:17 willhelm * mudlib/coder.py, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/TelnetConstants.java, org/bluesock/bluemud/driver/User.java: Added a dumpsock command to the coder commands. This allows me to be able to see what the SocketCommunicator properties for a player are. At some point we might want to unify all the dump commands into one big dump command or something.... Maybe I'll change the way I implemented dumpsock... Also fixed some of the comments in TelnetConstants.java and added some comments to Driver.java. 2002-01-04 19:45 willhelm * org/bluesock/bluemud/: driver/package.html, lib/package.html: Added package descriptions--makes the javadocs a little more explanatory. 2001-12-23 16:29 willhelm * mudlib/: coder.py, commands.py, constants.py, core.py, door.py, editor.py, formatter.py, mpico.py, viewer.py, help/manager.py: Fixed some documentation. Moved some constants defined in mpico to constants. Fixed the ^M thing in the help/manager.py. 2001-12-23 03:16 willhelm * mudlib/: commands.py, formatter.py, libinit.py, living.py, mind.py: Change formatter to use the color constants in the constants module to build the ANSI_COLOR_MAP. Added the ansimode command--so now we can turn on and turn off ansi, it gets persisted when you save, and you can view all the colors we handle. Added the ansiset command--allows you to associate ansi vars with colors. ex. When you log in now, and say something, it'll all be the default color. Type 'ansiset say hiyellow' and 'ansi on' and say it again and it'll be hiyellow. Currently there's no way to list all the possible things you can set. So that's kind of an issue. I think the best way to solve that is via a help file because I expect there to be a lot of them as the mud grows. Added a few more mudlib modules to libinit so they get loaded at init time and have a chance to bomb out then. 2001-12-23 00:23 willhelm * mudlib/coder.py, mudlib/login.py, mudlib/mind.py, mudlib/mpico.py, org/bluesock/bluemud/driver/NawsEvent.java, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/User.java: Changed the NawsEvent to no longer require height/width because we weren't using it anyhow. This caused changes in functions that create NawsEvents in User.java and SocketCommunicator.java. Changed the boolean inCharacterMode to inLineMode in SocketCommunicator.java and added a function that allows us to check from the mudlib whether or not we're in line mode. This enables visual editors and the regular command processor to make sure we're in the right mode. Added some code to the LoginEvent to create a NawsEvent which will kick the visual editor into refreshing the screen. This (coupled with some other minor changes) should fix Ethan's problem which manifests itself when you're visually editing something and you go linkdead or open a new session with the same character. It's not a beautiful fix, but it's fairly superficial and can be changed if we decide we don't like the way it happens. 2001-12-22 18:48 willhelm * mudlib/: coder.py, living.py, mpico.py: Wrote the first rev of a function that promotes players to coders and persists them to disk as a coder. (coder.promote_to_coder) Changed the tavern Tonic code so that it now uses this function. Made some other minor edits here and there. 2001-12-22 01:31 willhelm * mudlib/: coder.py, core.py, formatter.py, nomacs.py, room.py, stdprops.py: Fixed a little bug in nomacs. Moved Room from core.py to room.py. Changed the 999999999 weight and capacity values to a new constant in stdprops called INFINITE. Fixed a problem with the CoderController I moved yesterday. Overhauled the tavern adding some new things, moving some things around, removing the long hallway (it's silly), adding a new NPC, adjusting a lot of description text, and added beer to our tavern. It's kind of silly that up until now, our online tavern had no beer! Blasphemy! The Coding tonic in the tavern is still in the closet, but the closet is now in the bar and it's not locked. The start room is now outside, kind of like a village square. It's surrounded by the Shop, the Post Office, and the Tavern. 2001-12-21 00:43 willhelm * mudlib/: coder.py, living.py, login.py, mind.py, stdlib.py: Renamed the WizardController to CoderController and moved it to the coder.py module. Commenting/documentation. 2001-12-20 15:45 mrblah * mudlib/: commands.py, mind.py: The communication commands (say, tell, shout) were using the raw input for the message. This worked ok for say and shout, but for tell it resulted in the target player's name showing up in the message. In other words, if I did "tell balkor hello", balkor saw "Balkor tells you: balkor hello". This could be fixed by pulling the first token out of the rawinput, but I don't think we really want to be using rawinput for this stuff anyway, as it causes other issues (most notably the need to re-check for escaped semi-colons). The rawinput was used in the first place because the arguments were split on whitespace and rejoined with spaces, resulting in the loss of non-space-character whitespace (such as tabs). So to fix all of this, I modified the mind module to only split the first token in the command string (which is the action) and to leave the rest of the string in-tact, so that non-space-character whitespace will be preserved, but commands can take advantage of the pre-processing done on the arguments (such as handling of escaped semi-colons). I then modified say, tell, and shout to use the arguments instead of the rawinput. 2001-12-16 22:33 willhelm * mudlib/: mind.py, nomacs.py: Fixed a bug with popping input and NAWS parsers which we never encounterd because we only had one item in the list. Fixed nomacs so it works a bit better--had to add a \r to all outgoing writes. 2001-12-16 20:22 willhelm * mudlib/: coder.py, mpico.py, nomacs.py, utils.py: I changed the way saving files and loading files works in mpico and nomacs. Before, the editor would handle loading and saving the file to the file-system (through the Driver). Now, it happens in the invocation of the editor. This allows us to use those editors for things other than loading/saving files. This probably still needs some work. I adjusted mpico to use this new method. I also overhauled nomacs so that it now works in Bluemud--it's got some neat functionality that isn't in mpico including things like undo support and intelligent tabbing. Nomacs uses a statemachine pattern matcher class--I tossed this class in utils.py. It warrants another look--may be that I can change mpico to use the pattern matcher. That may reduce the code involved in handling incoming input signicantly. 2001-12-14 15:34 willhelm * mudlib/mpico.py, org/bluesock/bluemud/driver/NawsEvent.java, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/TelnetConstants.java, org/bluesock/bluemud/driver/User.java: Some documentation fixes, some code cleanup, and some changes to method names so they follow our naming scheme. 2001-12-14 02:00 willhelm * mudlib/mpico.py: Added cut/uncut to mpico. It's a smidgeon different than regular Pico in that mpico can't uncut text in the middle of a line--it's always whole lines. I haven't figured out a) how to fix this, and b) if i want to fix this. Regardless, it sure makes moving text around a whole lot easier. 2001-12-13 20:54 willhelm * org/bluesock/bluemud/driver/FileManager.java: Fixed it so it shows the date and time the file was last modified when doing an ls -l. 2001-12-13 19:51 willhelm * mudlib/: emote.py, living.py, stdprops.py: Fixed some emote code, added comments, and tried looking at making emotes work remotely... difficult. Added DIRECTIONALS constant to stdprops.py. Added code to living.py that checks to see if the action is a directoinal (in the event that no actions bound to the user matched) and if so, displays "You cannot go in that direction." instead of "What?" which makes a bit more sense. 2001-12-13 18:22 willhelm * mudlib/commands.py: Fixed the displayCommands function. If you logged in with a non-telnet client, then you won't have a COLS setting and displayCommands would balk. 2001-12-12 10:53 willhelm * org/bluesock/bluemud/driver/: FileManager.java, SocketCommunicator.java: Fixing up some comments. Nothing exciting. 2001-12-11 14:58 willhelm * org/bluesock/bluemud/driver/SocketCommunicator.java: Finished renaming all private methods to _methodName format. 2001-12-11 14:54 willhelm * org/bluesock/bluemud/driver/SocketCommunicator.java: Changed some methods so they're "internal methods" by adding an _ at the beginning. Fixed some of the documentation too. 2001-12-01 11:39 willhelm * mudlib/commands.py: Fixed problems with \; -> ; in communication commands (say, tell, shout). 2001-11-24 17:06 willhelm * mudlib/formatter.py: Fixed problem with ansicolor--if it was set to 0, then we weren't removing the color tags. Now it removes color tags if ansicolor is set to 0. 2001-11-24 16:07 willhelm * mudlib/mind.py: Fixed a signature issue with mind.getUserProperty... my bad. 2001-11-17 11:32 willhelm * mudlib/emote.py: Fixed emotes.... 2001-11-14 18:46 willhelm * mudlib/: coder.py, mind.py: Fixed problem with doing an 'ls' as a coder if you weren't using a terminal we pull a columns from. 2001-11-09 21:05 willhelm * mudlib/mind.py: Fixed mismatched argument issues. I have no clue why I didn't catch these before when I switched command functions from 3 to 4 arguments. 2001-10-28 19:03 willhelm * mudlib/: coder.py, commands.py, core.py, door.py, employable.py, formatter.py, living.py, possessed.py, trade.py, utils.py, vtelnet.py, boards/board.py, mail/mailbox.py: Completed task 40932. This is a biggy--I changed all commands so that they take in 4 arguments now: self, command, arguments, and rawinput. The rawinput argument is the exact string the user typed in with all the white-space formatting they had. This affects anything registered with the ActionManager. I made the change to all commands in the mudlib as well as in the world Tavern code that we have. This is a big, non-backwards-compatible change. I was waffling about whether to do it or not, and finally decided to do it now before things got bigger. Also in this commit is the following little things: - re-wrote utils.parse_first_semicolon to use regular expressions - went through coder.py and commands.py and changed the error messages of a lot of the commands so they follow some conventions - changed utils.formathumantime -> utils.format_human_time - mvoed _parse_apth and _parse_filename from coder.py -> utils.py and removed the first _ from the names. - fixed coder.printCWD(...) so it now returns a 1 - moved emote from coder.py -> commands.py -- everyon should be able to emote - moved colorMeBad from commands.py -> coder.py and re-wrote it -- only coders need color information - added screenwidth argument to formatter.columnize calls in code in commands.py and coder.py (not sure why it wasn't there before) - added "Saving status." message to the quit command - fixed utils.py and vtelnet.py so they use a tabstop of 2 spaces - fixed some comments here and there 2001-10-28 01:10 willhelm * mudlib/: commands.py, mind.py, utils.py: Changed the utils.parseFirstSemicolon into utils.parse_first_semicolon and reimplemented it using regular expression matching rather than manual matching. Cleaning up old FIXMEs.... 2001-10-26 13:11 flaithius * mudlib/emote.py: Added ability to list emotes, command is "emotes". (Although the display of the emotes could probably use colors and cleaning up a bit) Added a shake/shakeno emote, although adjective support still needs to be added to these emotes. Added a whistle emote. 2001-10-26 11:28 willhelm * mudlib/formatter.py: Fixed the case where it's a tag, but not one we recognize. Now the length of that tag gets added to the wrapcount so that it wraps correctly with the rest of the visible text. 2001-10-24 11:21 mrblah * system/: bootstrap.c, calloutmanager.c, communicator.h, confmanager.c, consolecommunicator.c, consolecommunicator.h, drivermodule.c, engine.c, filemanager.c, libmodule.c, logmanager.c, objectmanager.c, util.c: This represents the latest updates to the prototype before I ran out of time to work on it. It should be noted that not everything works and some of the code is downright broken. Among other things, I added block comments to each of the files to explain what they're supposed to do. 2001-10-24 01:21 willhelm * mudlib/mpico.py: We now check to see if self.ed_filename exists and it's not equal to "[new]" which we use as a marker that this is a new file. This should fix the problem of having that silly [new]~ file in the root directory. 2001-10-24 01:15 willhelm * mudlib/formatter.py: I changed the way format_text handles tags it doesn't handle. Before it would dump the tag. For instance, it doesn't know about ... . So the text "this text is bold" gets formatted to "this text is bold". Instead, we want it to ignore tags it doesn't understand. This does a bunch of things for us: 1. it allows us to use <...> syntax for command help where we specify required arguments. 2. it allows players to talk about html tags without losing parts of their conversation (our text formatting may look like HTML, but does not use any HTML tags). 3. it allows coders to see where they screwed up their text formatting in descriptions and things rather than not notice it because the glaring error was happily dumped because format_text didn't recognize it for the hideous monstrosity that it was. All these things and more with the change of one mere line of code and some quick unit-testing. :) 2001-10-22 13:02 mrblah * mudlib/employable.py: Added some comments in the Wearable class to methods previously identified by Will as needing documentation. I haven't yet documented the corresponding methods in the Wieldable class. 2001-10-19 23:03 willhelm * mudlib/: callout.py, coder.py, commands.py, constants.py, core.py, currency.py, door.py, editor.py, emote.py, employable.py, formatter.py, heap.py, language.py, libinit.py, living.py, login.py, mind.py, mpico.py, mudtime.py, nomacs.py, parser.py, possessed.py, race.py, shadow.py, stdlib.py, stdprops.py, trade.py, tradeprops.py, utils.py, viewer.py, vtelnet.py: Fixing the unix vs. dos formatting of the files. Also did some additional commenting on various modules. 2001-10-19 12:31 willhelm * mudlib/: language.py, viewer.py: Removed stuff I had commented out while overhauling the formatting. 2001-10-19 12:29 willhelm * mudlib/: formatter.py, utils.py, viewer.py, help/manager.py: Fixed the help system so it works with the new colors. Updated the formatting.tpc document on the new formatting system. Removed the old formatting functions from utils.py. Fixed a spelling mistake in default.tpc. 2001-10-17 22:34 willhelm * mudlib/: callout.py, coder.py, commands.py, constants.py, core.py, currency.py, door.py, editor.py, emote.py, employable.py, formatter.py, heap.py, language.py, libinit.py, living.py, login.py, mind.py, mpico.py, mudtime.py, nomacs.py, parser.py, possessed.py, race.py, shadow.py, stdlib.py, stdprops.py, trade.py, tradeprops.py, utils.py, viewer.py, vtelnet.py, help/manager.py: Task 37361 completed (ansi/wrap overhaul). (I screwed up my CVS repository--but theoretically I touched 80% of these files anyhow.) I re-built the ansi/wrapping system which is now all contained in formatter as it is now the text formatting system. It has a series of cool functions that make dealing with the formatting much easier. Some of these functions have been incorporated into various parts of the mudlib making the code there much shorter and easier to manage. It also has a kick-ass iterator which, when given a string, allows you to iterate through the formatting portions or the textual portions of a string without having to split out the formatting and piece it together manually. I'm going to do some testing and then probably incorporate this into the language module. I may optimize it a bit so that it figures things out when it needs to rather than all up front (if you look at the class called FormatTextIter in the formatter module, you'll see what I mean). I also fixed the columnize and fixedcolumnize functions in the formatter making them more sophisticated and used them to re-write the listDirectory function in the coder module (it's now half the size and one quarter the complexity). And I moved some utility functions around between utils.py, formatter.py and moved all the color constants to constants.py. World code color code should look like this: from mudlib.constants import * import mudlib.formatter ... pl.write( mudlib.formatter.color(BLUE, "This text is blue") ) Now constants is the only module that we condone the use of the from _ import * method of importing. I updated the tavern code to reflect all these changes. I haven't removed the code from utils.py yet. That's next. I think that's all I've done since the last commit. 2001-10-15 16:48 flaithius * mudlib/currency.py: Commented currency.py 2001-10-15 16:30 flaithius * mudlib/heap.py: commented heap.py 2001-10-12 16:51 willhelm * mudlib/: commands.py, currency.py, door.py, employable.py, formatter.py, language.py, living.py: Fixing comments, adding new comments, and working on documenting the mudlib. Task 35785. 2001-10-12 09:36 willhelm * mudlib/: coder.py, commands.py, core.py, currency.py, door.py, formatter.py, login.py, mind.py: Fixing documentation and comments for ool docs. Task 35785. 2001-10-12 09:32 willhelm * mudlib/: mpico.py, nomacs.py: Went through and fixed a bug in nomacs causing the module not to load (affecting Happydoc ool docs) and fixed some of the comments in MPico. 2001-10-11 12:19 willhelm * mudlib/: mpico.py, vtelnet.py: Some fixes to mpico. 2001-09-17 20:56 willhelm * mudlib/mpico.py: Added really really super-basic syntax highlighting. Moved some code around. Tried to fix a couple additional bugs I found. 2001-09-17 13:17 willhelm * mudlib/coder.py: Added/changed some doc-strings in coder.py. 2001-09-17 10:11 mrblah * mudlib/callout.py: Touched up the doc strings a bit. 2001-09-17 04:04 willhelm * mudlib/language.py: Added some comments to the language module. 2001-09-14 21:57 willhelm * mudlib/emote.py: Removed the laf emote. It's in there as laugh and shouldn't be repeated with misspelled thingy.... 2001-09-14 20:27 willhelm * mudlib/utils.py: Temporary fix to word-wrapping. Before it wasn't paying attention to our ansi color codes and it was counting those in its wrapping length which really irritated me. Now it's temporarily fixed by passing the text through parse_ansi and then _wrap_parsed_ansi instead of through _wrap_text. This should be re-written at some point so it's less intensive and supports more formatting stuff cleanly. 2001-09-14 10:34 mrblah * mudlib/boards/board.py: Turns out the archive thing wasn't a Jython bug after all. Well, the Jython implementation of the python lib was bombing out because it didn't check some data for validity, so I guess you could say that's a bug, but the ultimate cause of the problem was in the bulletin board code. So that's fixed and now archiving works. 2001-09-13 17:24 mrblah * mudlib/: utils.py, boards/board.py: Added dateString() method to utils, which returns the current date formatted as MM-DD-YYYY Added date stamps to messages posted on bulletin boards. Added archiving capability to the bulletin boards. Unfortunately, there appears to be a Jython bug preventing it from working, so I've disabled it. 2001-09-13 13:17 willhelm * mudlib/mpico.py: mpico now pages up and down a half a screen rather than a full screen. This also affects when you're at the bottom of the screen and hit the down arrow as well as when you're at the top of the screen and hit the up arrow. 2001-09-12 15:10 flaithius * mudlib/emote.py: Added a "think" emote. 2001-09-12 15:02 flaithius * mudlib/emote.py: Added emotes (most of them from the idea logs): cower cough rolleyes snicker sniff kick tap glare whee flex 2001-09-12 11:23 flaithius * mudlib/coder.py: Fixed attachments bug so that is displays the full list of attachments instead of just the first one in each list. 2001-09-12 10:21 flaithius * mudlib/heap.py: Fixed heap so that it will adjust weight based on number of objects in heap. Hence if you have 2 coins it will weigh twice as much as 1 coin. 2001-09-11 13:19 flaithius * mudlib/currency.py: Made money persistent 2001-09-11 00:47 willhelm * mudlib/help/manager.py: Fixed the lists so that they're a bit more html like. This won't affect anything in-game, but it makes it a little easier to display help files on the web as-is. 2001-09-11 00:32 willhelm * mudlib/mpico.py: This could either be a good modification or a bad one depending on how one feels about those file~ things. I added saving of a backup file to the _abort method. This will try to save the current buffer to a file with the name of ~ before exiting. If mpico dies ungracefully, you have a copy of your work in ~. FIXME - Should we pull whether to backup the file or not from a user property? Answer: yes. But not today.... 2001-09-11 00:22 willhelm * mudlib/mpico.py: Implemented the "Save buffer? y/n/^C" feature so we don't continue losing work while using mpico in-game. 2001-09-10 22:45 willhelm * mudlib/: commands.py, viewer.py: I noticed that some of the help topics are kind of lengthy and shoot by on my client, so I changed help so that it pipes help text through the More viewer. I also had to change the More viewer so that it can handle raw as well as non-raw text. It is a bit annoying now because bluemud doesn't know your ROWS, COLS information unless you're using telnet. If you're using telnet, you're fine. FIXME - we need to add commands or some method to change your "telnet" options like ansimode, ROWS, and COLS in-game and save it with your player ob. This could get a little complex considering now we have two sources of COLS/ROWS data and one of them is dynamic. At this point, however, this checkin comment is getting to be a bit too much like a Tolstoy novel, so I'm going to leave the rest of the excercise up to the reader. 2001-09-10 16:52 flaithius * mudlib/trade.py: Fixed messaging in trader. Trader now gets messages when someone inquires or appraises with them. 2001-09-10 14:52 flaithius * mudlib/: currency.py, trade.py: changed my example code. 2001-09-10 14:52 willhelm * mudlib/coder.py: Added the ability to parse ~ to _parse_path. 2001-09-10 14:28 willhelm * mudlib/coder.py: Fixed cat command so it uses rawwrite rather than write. no wrapping/ansi for it. 2001-09-10 14:26 mrblah * mudlib/: living.py, login.py: Added persistent access levels and added support for them to the login module so that wizards will automatically be given a WizardController and the coder commands upon login. I also added some hard-coded pre-titles for wizards. Note that none of this is secure. It doesn't even pretend to be secure. 2001-09-10 14:00 willhelm * mudlib/: coder.py, commands.py: Fixed the who command so it tells you whether someone is linkdead, idle or just fine. (before it was just fine or linkdead) Fixed the coder getHomeDir (i think that's the function) according to our new home dir /worlds/home/. 2001-09-10 13:54 flaithius * mudlib/: currency.py, heap.py, trade.py, tradeprops.py: moved trade/currency code into mudlib. Cleaned up/rewrote most of it. Made trader into a shadow instead of a npc so that any interactive can become a trader. 2001-09-09 02:28 mrblah * system/: communicator.h, libmodule.c: Prototype related. Added object IDs to the MudObject class in libmodule. Added a User class to libmodule. Created a Communicator struct that contains function pointers to the functions implemented by communicators, thereby abstracting communicator implementations from the User class. This way I can create a console communicator for testing and later replace it with a socket communicator for networking support without having to touch the User class. It's actually setup so that multiple communicator implementations can be in use at the same time. I'm really pleased with this solution as it mimics an OO class from a client perspective. I'm actually giving some thought to refactoring a few areas of the system to do something similar--we'll have to see. 2001-09-07 19:45 mrblah * mudlib/stdlib.py: Fixed bug in findPlayer that caused it to return the player name instead of the player reference itself. 2001-09-07 08:26 flaithius * mudlib/coder.py: Added an "attachment" coder command. This will tell what attachments are the coder's environment. 2001-09-07 02:58 willhelm * mudlib/mpico.py: Changed draw_commands so that it drew commands that we had. Commands that aren't supported (help, uncut text, read file...) are not highlighted. Also fixed ^E (to end of line) so that it worked correctly. 2001-09-07 02:48 willhelm * mudlib/mpico.py: Fixed the problem with the screen not updating when you did backspace, cut line (^K), and carriage returns if you weren't looking at the first page. 2001-09-07 02:40 willhelm * mudlib/formatter.py: Changed formathumantime so that the resulting string is shorter by using abbreviated unit names rather than the whole unit name. eg: minutes -> mins ... 2001-09-05 15:44 flaithius * mudlib/commands.py: Fixed alias infinite loop problem. It couldn't handle aliases like: alias chuckle -> chuckle loudly 2001-09-05 13:30 mrblah * mudlib/boards/board.py: Added help files for the "bug" and "idea" commands. Also fixed the bulletin board so it's not longer get-able. 2001-09-05 12:59 mrblah * mudlib/commands.py: Added "bug" and "idea" commands. Help files to follow. 2001-09-05 12:02 mrblah * mudlib/: commands.py, living.py: Fixed bug in introduction code that caused NPCs to bomb out when introduced to. 2001-09-05 01:02 mrblah * system/: bootstrap.c, drivermodule.c, drivermodule.h, filemanager.c, filemanager.h: Prototype-related Added filemanager, which serves the role of the Java FileManager class Implemented driver methods serviced by filemanager Integreated start/shutdown of filemanager with bootstrap This code and the calloutmanager need to be tested more. But this represents the last major component of the system (aside from networking, which is being tackled separately). 2001-09-04 19:34 willhelm * mudlib/coder.py: Fixed a bug in listDirectory that i missed when changing all the formatting up. 2001-09-04 11:48 willhelm * mudlib/commands.py: Fixed the idle command to use formathumantime and count idleness in seconds (ignoring the first 60 seconds). Fixed the uptime command so that it now counts number of players online. 2001-09-04 01:30 willhelm * mudlib/: commands.py, formatter.py: Fixed the problem with the say command. I did it by adding a precolor(COLOR) and a postcolor() commands. 2001-09-03 23:58 willhelm * mudlib/: coder.py, commands.py, formatter.py, mind.py, utils.py, help/manager.py: Changes to how formatting works. Any calls for color or indenting should use the functions in formatter.py Do a: from mudlib.formatter import * And then use the functions color(...) and indent(...) and the constants in formatter.py for the colors. I changed all the code in the system to use these new functions. Having slight problems with the say command though. I'll fix that in the next 10 minutes or so. (I forgot I hadn't gotten that resolved when I did this commit--my bad). This allows me to re-do the wrapping/ansification functions in utils.py without affecting the code base since it's all internal to utils.py and formatter.py. 2001-09-03 21:40 mrblah * system/: bootstrap.c, calloutmanager.c, calloutmanager.h, drivermodule.c: Prototype-related Added calloutmanager, which serves the same role as the Java CalloutManager Implemented driver methods serviced by calloutmanager Integrated start/shutdown of calloutmanager with bootstrap 2001-09-03 18:32 mrblah * system/: bootstrap.c, drivermodule.c, logmanager.c, logmanager.h: Prototype-related Added logmanager, which serves the role of the Java LogManager class Implemented driver methods serviced by logmanager Integrated logmanager start/shutdown into bootstrap 2001-09-03 12:11 mrblah * system/: bootstrap.c, confmanager.c, drivermodule.c, objectmanager.c, objectmanager.h, util.c, util.h: This is all prototype-related. Added util, which supports List and Map data structures. Added objectmanager, which serves the same role as the Java ObjectFactory Implemented driver methods serviced by the objectmanager Converted confmanager to use the Map structure instead of its custom structure Enhanced confmanager to actually register its aliases with objectmanager Added startup/shutdown support for objectmanager to bootstrap 2001-09-02 15:27 willhelm * mudlib/help/manager.py: Fixed the formatting routine so that the format syntax is html oriented (though it should be known help documents are NOT valid html documents. I added a ..., changed %LI% to
  • , changed %CMDLISTING% to , changed %TPCLISTING% to . It's real specific in that it is case-sensitive. It's very much non-sophisticated. It's designed to get the formatting stuff out of the help files. I also added a _ which you put at the end of lines that need to be wrapped. 2001-09-01 15:07 willhelm * mudlib/: coder.py, commands.py, formatter.py, mind.py, help/manager.py: Changed the help system to distinguish between topic and command help files. A command help file covers syntax and usage of a command, a topic help file covers a general concept. I also started adding formatting tags to the help files. Replacing all the (@red:*@) with %LI% in the help files. LI stands for list item. I'm not completely sold on this method or the syntax of the formatting either. And I want to format some of the other stuff as well better than it is now. The only things left to do in the help system would be to create a file that holds the information for which files are related to which files--we can create families of functions and topics. i.e. in the file there would be a line like: get,drop,give,grab And every time one of those files was retrieved, the SEE ALSO section would be auto-populated with this information. Then we don't have to update each individual file. Just makes the bookkeeping a little easier. I want to fix the word-wrapping thing. I might force word-wrapped lines to have a _ at the end. Then do a mass _\n replacement with just a space. Getting there. 2001-09-01 02:37 mrblah * mudlib/commands.py, mudlib/living.py, mudlib/login.py, mudlib/stdlib.py, org/bluesock/bluemud/driver/LogManager.java: Modified the "known interactives" stuff in living and in the command module to use interactive names instead of interactive references. While this opens up the possibility of "knowing" someone who you haven't been introduced to because they have the same name as someone you have been introduced to, it also makes it possible to persist so that players will know other players across sessions. Perhaps in the future we should really keep track of an "origination" hash that would work off the filename from which the NPC was loaded or the security file from which the player info was loaded, and store that instead of the player name in the knownInteractives list. That would provide a persistable reference that would be relatively unique amongst interactives. Modified the Player class to save and reload its knownInteractives list, so players will now know other players across sessions. Added a few functions to stdlib, including log(), write(), and findPlayer(). The log function is a wrapper around the Driver's writeLogEntry() method, write() sends a message to the current active player, and findPlayer() will return a reference to a logged-in player given that player's name. Modified the LoginController class to log player logins. Modified the LogManager's timestamp format so that it will always be the same length, regardless of the date or time. It also now prints the full year instead of just the last two digits. 2001-08-31 10:25 mrblah * org/bluesock/bluemud/driver/Driver.java: Added the homes root to the constructed python path so that code in wizards' homes directories can be loaded. There seems to be something kind of weird about Jython, though, in that it seems to ignore directories created after the interpreter starts up. Maybe it was just a fluke, but after creating a home directory for myself, I had to restart the mud before the interpreter would recognize the code in it. 2001-08-30 16:16 willhelm * mudlib/: commands.py, formatter.py, mind.py, mpico.py, utils.py: * I fixed PlayerController.write because there was all this kruft there from a previous attempt at implementing indent. * I have no clue what I did with formatter.py. * I added a get_indent function to utils.py and moved some of the wrap stuff around a bit. get_indent does a somewhat klugy method of checking for indent or no. If it's indented, then it's indented. It doesn't attempt to wrap text with formatting commands. If we want to move to that point, then we can... version 2.0. :) * I made another couple minor fixes to mpico. * I changed say, tell, and shout to use indenting. * The only issue is that say does this VBFC thing which capitalizes the first letter--which in this case is now INDENT=5 so it doesn't capitalize the actual text right. 2001-08-30 12:13 willhelm * mudlib/mpico.py: Took out some of the drawBody() calls in mpico on deleting characters and lines and which were highly inefficient. Looks ok still too. 2001-08-29 22:12 willhelm * mudlib/mpico.py: Bah. 2001-08-29 22:10 willhelm * mudlib/mpico.py: Fixed some of the aborts so they're printing tracebacks when they should be. 2001-08-29 22:06 willhelm * mudlib/mpico.py: Fixed bug with initialization and drawing of commands. 2001-08-29 22:02 willhelm * mudlib/core.py: Changed the obvious exits message so that it's not space delimited, but rather comma delimited. Easier to discern exits I think. before: Obvious exits: south east southeast now: Obvious exits: south, east, southeast 2001-08-29 21:23 willhelm * mudlib/mpico.py: Fixed mpico so it handles clients that don't support character mode better (i.e. mud clients and terminal emulation we don't like). 2001-08-29 21:13 willhelm * mudlib/: commands.py, formatter.py: I got sick and tired of seeing an uptime of 50,000 seconds. So it's now formatted via a horribly done days/hours/minutes/seconds converter thing which we'll probably want to: a) re-write b) put somewhere other than formatter.py But it seems to work. Yay. 2001-08-29 19:20 willhelm * mudlib/mpico.py: I forgot to mention this in the previous commit. The 1.12 version of mpico had the following MASSIVE changes: - almost complete rewrite of most methods - added the ability to cut lines of text (^K) - fixed a lot of obsequous bugs - made it a lot more readable - lots of comments - removed a lot of klugy arithmetic for translating between buffer-space and screen-space. mpico is pretty usable right now with the following exceptions: - doesn't handle lines longer than the screen width well at all - cutting text doesn't put it in a temporary buffer for pasting later This version fixes some additional bugs that I found while I was toying with things. 2001-08-29 19:02 willhelm * mudlib/: coder.py, formatter.py, mpico.py, nomacs.py: I started writing a fixedcolumnize in formatter. And made a quick change to nomacs in preparation to adjusting it so it works in bluemud. 2001-08-29 15:39 mrblah * org/bluesock/bluemud/driver/Driver.java: Since we're mixing Java and Python paths, sometimes we'd end up with mixed file separators and what not. I modified the canonizePath method in the Driver to explicitly replace file separators with the separator for the underlying operating system. This should hopefully correct some of the problems that have been experienced running under Windows. 2001-08-29 15:06 mrblah * mudlib/core.py: Fixed bug in tell room that would cause nothing to be broadcast if the gagged list was empty (instead of broadcasting to everyone). 2001-08-29 10:15 mrblah * mudlib/coder.py, system/drivermodule.c, system/drivermodule.h: Implemented methods in driver prototype dealing with configuration properties (getWorldRoot, getBluemudCodeRoot, etc.). Also updated the syntax message output by the "update" coder command to reflect the "update here" syntax. 2001-08-28 19:56 willhelm * mudlib/commands.py, mudlib/formatter.py, mudlib/help/manager.py, org/bluesock/bluemud/driver/SocketCommunicator.java: I fixed the ^M thing in the SocketCommunicator.java (sigh). I also changed the help system so that it prints out all the topics involved in a manual. I created a 'help' topic as well with the text from the basic default and changed the basic default so that it's more informative about what topics are available. Course, I forgot to add the help file.... Bah. 2001-08-28 19:51 mrblah * system/: bootstrap.c, confmanager.c, confmanager.h, drivermodule.c, drivermodule.h, engine.c, engine.h, libmodule.c: Prototype for C system implementation. 2001-08-27 21:47 willhelm * mudlib/commands.py, org/bluesock/bluemud/driver/Driver.java: Added the uptime command. Anyone can use it. It gives the following information: - how long has the mud been up (currently in seconds) - how long till the next reboot (currently not implemented) - how many players currently logged in (currently not implemented) Added the appropriate help file. Added a getUptime function to the driver. Todo: We need to create a function that takes a long and converts it into a string of days/hours/minutes/seconds kind of thing. 2001-08-21 11:51 willhelm * mudlib/commands.py, org/bluesock/bluemud/driver/SocketCommunicator.java: Added (Linkdead) to the idle command if the characer is linkdead. Otherwise they just showed up as extremely idle. Re-added SGA on/off so that clients correctly get poked out of linemode for mpico to work. Neil had encountered this by SSH from his box to bluesock and then telnet from bluesock to the mud on 15grains. I encountered the same thing going directly to the mud on 15grains from my brother's Mac OSX telnet client. I changed the way we handle SGA incoming messages so this is a different SGA implementation than we've had before. We'll see what this one does. At some point I'm going to look at other peoples' code and their handling of SGA. 2001-08-10 18:57 flaithius * mudlib/emote.py: Added chuckle command. 2001-08-10 18:57 willhelm * mudlib/coder.py: Neil wandered over all happy that he found a bug with cd. Turns out it was a bug with _parse_path. If you're in the root ("/") and you pass in a "../code/mudlib" the first ../ will remove the only / and then the path that comes out would be "code/mudlib" rather than "/code/mudlib" causing massive grief in our humble little system. I have fixed it by checking to see if the first character is a "/" and if it isn't, I make it so. 2001-08-10 12:47 mrblah * mudlib/login.py: Fixes linkdead bug that wasn't cleaning up old player object when user reconnected. This resulted in that old player object getting heartbeat events forever after until the MUD was rebooted. 2001-08-09 15:27 mrblah * mudlib/commands.py: Added some help files for player commands. Removed the "kill" command, since the mudlib won't support combat. This command should be provided and implemented by the world, if desired. 2001-08-08 17:57 flaithius * mudlib/living.py: Fixed the "featureless, and frankly rather boring" on living's long description even if it has adjectives. 2001-08-08 15:56 mrblah * mudlib/commands.py: Added shout command to commands module. Added shout help file to the basic manual. Modified who command to always display player names. 2001-08-08 11:51 mrblah * mudlib/: commands.py, stdprops.py, help/manager.py: Enhanced help system to support manuals. Created a "basic" and a "coder" manual to start. Modified the creation module in the tavern to set the default manual to basic. 2001-08-07 22:37 willhelm * mudlib/: mind.py, mpico.py: When you resize your telnet client (and it's set to resize), it sends a NAWS telnet control thingy to our server. We then change the ROWS and COLS properties on the SocketCommunicator property hash. I then create a NawsEvent which was supposed to get processed by whatever things were registered with the controller. This all now works. This means that if you're in mpico and you resize your telnet client and it sends a NAWS event, mpico refreshes its screen accordingly with the new values. 2001-08-07 19:48 mrblah * mudlib/commands.py, mudlib/mind.py, org/bluesock/bluemud/driver/BootStrap.java, org/bluesock/bluemud/driver/Server.java, org/bluesock/bluemud/driver/User.java: Added tracking of IP address and idle time to User. Added getIdleTime() method to mind module. Added "idle" command to commands module. Modified "halting" message in bootstrap to point user to error log. 2001-08-07 14:51 willhelm * org/bluesock/bluemud/driver/SocketCommunicator.java: Fixed the "Hey--that's not what I typed! It's missing letters!" error as well as the problem with logging off where the socket doesn't disconnect. 2001-08-07 13:12 flaithius * mudlib/mudtime.py: Fixed getTimeIncrements(). It was indexing the array from 0 but the increment number was starting at 1. (Hence "December", the 12th month was blowing up.) 2001-08-07 11:14 willhelm * org/bluesock/bluemud/driver/SocketCommunicator.java: Changing 30000 to 1000 for the TIMEOUT value to see if it fixes disconnect issues. 2001-08-07 11:04 willhelm * mudlib/coder.py: Fixed ls--it wasn't coloring directories if you weren't in the root dir. 2001-08-07 10:32 mrblah * mudlib/: coder.py, living.py, login.py, viewer.py: Added back "commands" coder command. Added getCommands method to living.ActionManager to support above. Fixed "more" command so that prompt is on newline Modified login module to print a newline before the message about reconnecting to your body. 2001-08-06 19:49 willhelm * org/bluesock/bluemud/driver/: SocketCommunicator.java, TelnetConstants.java, User.java: More commenting/documentation. 2001-08-06 18:13 flaithius * mudlib/: commands.py, core.py, stdprops.py: Fixed searching.... -Search now works for Basement room. -Search here works. -Search prompts you after you have finished searching. 2001-08-06 14:50 mrblah * mudlib/login.py, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/SecurityToken.java: Added authentication. Users must now provide a valid password to login. Users are given three chances to enter the appropriate password, after which they are disconnected. Note that the login module now determines whether a player is new by checking if there is a security token associated with that player. In other words, after this update all of your characters will be treated as new characters, even though they have player files, since they won't have security tokens. 2001-08-06 13:30 flaithius * mudlib/: commands.py, core.py, living.py: Added a maximum Weight value to container. Fixed the way Container was calculating how much capacity was left by adding a holdingVolume. Changed get/put to check container.canAddObject before adding the object. This is for task #35199 2001-08-06 12:00 willhelm * mudlib/callout.py, mudlib/coder.py, mudlib/commands.py, mudlib/constants.py, mudlib/core.py, mudlib/door.py, mudlib/editor.py, mudlib/emote.py, mudlib/employable.py, mudlib/formatter.py, mudlib/heap.py, mudlib/language.py, mudlib/libinit.py, mudlib/living.py, mudlib/login.py, mudlib/mind.py, mudlib/mpico.py, mudlib/mudtime.py, mudlib/nomacs.py, mudlib/parser.py, mudlib/possessed.py, mudlib/race.py, mudlib/shadow.py, mudlib/stdlib.py, mudlib/stdprops.py, mudlib/utils.py, mudlib/viewer.py, mudlib/vtelnet.py, mudlib/boards/board.py, mudlib/help/manager.py, mudlib/mail/mailbox.py, org/bluesock/bluemud/driver/BluemudPermission.java, org/bluesock/bluemud/driver/BootStrap.java, org/bluesock/bluemud/driver/CalloutManager.java, org/bluesock/bluemud/driver/ConfigurationManager.java, org/bluesock/bluemud/driver/ConnectEvent.java, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/Engine.java, org/bluesock/bluemud/driver/FatalBluemudException.java, org/bluesock/bluemud/driver/FileManager.java, org/bluesock/bluemud/driver/InputEvent.java, org/bluesock/bluemud/driver/LazyCache.java, org/bluesock/bluemud/driver/LogManager.java, org/bluesock/bluemud/driver/NawsEvent.java, org/bluesock/bluemud/driver/OID.java, org/bluesock/bluemud/driver/ObjectFactory.java, org/bluesock/bluemud/driver/SecurityToken.java, org/bluesock/bluemud/driver/Server.java, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/TelnetConstants.java, org/bluesock/bluemud/driver/User.java, org/bluesock/bluemud/lib/Controller.java, org/bluesock/bluemud/lib/MudEvent.java, org/bluesock/bluemud/lib/MudObject.java: Massive commit. Changed some comments around, added some module-level doc-strings to explain what the module was. Added the License/id text that needs to go at the top of every file that is part of our distribution. 2001-08-05 14:12 willhelm * mudlib/mpico.py: Massive commenting, added ctrl-c (cursor position), fixed a bug, moved some code around, and--this is the best part--did it all in-game using mpico except when i broke the _save function--i had to fix that out of game for obvious reasons. Now that I think about it, I should have used the line editor. Oh well. It's still a little clunky and really needs ctrl-k and ctrl-u functionality. Some of the arrow keys aren't perfect yet either. 2001-08-05 13:23 willhelm * mudlib/mpico.py: Fixing version numbering in mpico. 2001-08-05 13:23 willhelm * mudlib/mpico.py: Testing CVS stuff and fixing versioning in mpico so it's more obvious what version you're looking at. 2001-08-04 18:58 willhelm * mudlib/coder.py, mudlib/stdlib.py, mudlib/utils.py, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/Engine.java, org/bluesock/bluemud/driver/FileManager.java, org/bluesock/bluemud/driver/SecurityToken.java: Commented more code. Added an isFile to FileManager and Driver. Added a parseOutFlags to utils (which parses out flags from other things in a command line type thing--don't know if we want to put this here or not). Re-wrote ls so that it's better behaved and less flukey. Now handles: ls [-l||] [-l||] ... We can add other flags more easily now. 2001-08-04 15:07 willhelm * org/bluesock/bluemud/driver/: BluemudPermission.java, BootStrap.java, CalloutManager.java, ConfigurationManager.java, ConnectEvent.java, Driver.java, Server.java: Commenting/documentation and reading through code. 2001-08-04 01:40 willhelm * mudlib/coder.py, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/FileManager.java: Added fstatFile to FileManager and Driver (assigned it the "read" permission figuring it's the same kind of thing as listDirectory). Added ls -l and ls to the listDirectory in coder.py. It could use a lot of work to make it smoother (of course). Also added ls the help file. 2001-08-04 01:04 mrblah * mudlib/language.py: Added support for numeral-form ordinal numbers where text-form is expected. 2001-08-04 00:42 willhelm * mudlib/coder.py: In addition to the lovely update command, we now have a reload command which will reload modules (but won't replace instances of classes). It uses sys.modules and it's in the coder.py module. I'm not sure if this is how we want to do things ultimately.... 2001-08-04 00:34 mrblah * mudlib/language.py: Added support for cardinals in numeral-form (like 1, 3, or 564) where, previously, text-form (like one, three, or five-hundred sixty-four) was expected. Ordinals in numeral-form (like 1st, 3rd, or 564th) are not supported where text-form ordinals are expected. 2001-08-04 00:10 willhelm * mudlib/: callout.py, coder.py, commands.py, core.py, door.py, editor.py, emote.py, employable.py, formatter.py, heap.py, language.py, libinit.py, living.py, login.py, mudtime.py, nomacs.py, shadow.py, stdlib.py, stdprops.py, utils.py, viewer.py: Fixing comments so that the ool docs are easier to use. 2001-08-03 23:48 willhelm * mudlib/: callout.py, coder.py, constants.py, core.py, door.py, editor.py, emote.py, employable.py, heap.py: Adding comments, fixing spacing, reading code, some replacing.... 2001-08-03 19:42 willhelm * mudlib/: commands.py, utils.py: Added a colormebad command that tests ansi colors on your terminal. Also added a 'blink' and a 'reverse' mode. 2001-08-03 17:39 flaithius * mudlib/mail/mailbox.py: Fixed mailing so that you won't get more than one copy. 2001-08-03 17:26 flaithius * mudlib/: login.py, mail/mailbox.py: Changed login stuff so that it uses calls world defined methods for: playerPreLogin playerLoggedIn Fixed mail so that it marks mails as new or read Added to login a message that says "You have new mail." when appropriate. 2001-08-03 15:06 mrblah * mudlib/coder.py: Fixed the head and tail commands in the coder module to be tolerant of dashes in front of the num-lines argument. i.e., "tail -100 somefile.txt" will now work as expected. 2001-08-03 13:54 mrblah * mudlib/mail/mailbox.py: Fixed "mail" command so that spaces can appear after the commas when addressing to multiple recipients. i.e., "mail person1, person2 subject" now works. Enhanced "delete" command to allow message ranges. So it's now possible to "delete 1-3" for example. 2001-08-02 20:13 willhelm * mudlib/: mpico.py, nomacs.py, vtelnet.py: Changed how ctrl characters work in vtelnet and mpico--this is nicer. Working on bringing nomacs up to working. Nomacs is cool.... 2001-08-02 20:01 willhelm * mudlib/: editor.py, mail/mailbox.py: Added some messages to make it a bit more user-friendly: - added instructions when they start writing a mudmail - added a "Exiting without saving changes" when they type %Q - ... uh, changed the mail arrival message All really minor stuff. 2001-08-02 19:27 willhelm * org/bluesock/bluemud/driver/SocketCommunicator.java: Fixed the lascivious lingering logout mystery via setting a timeout before the main readc and removing it afterwards (this is a little klugy, but not incredibly so). Note: The actual value may need to be fine-tuned should we discover it affects other platforms in weird ways. 2001-08-02 19:25 flaithius * mudlib/mail/mailbox.py: Removed some debug from mailbox. Also changed MudMailbox so that when it says "You've got mail!" it uses a callout. 2001-08-02 18:58 mrblah * mudlib/: commands.py, language.py, utils.py: Added support to the language module for the color tags so it'll ignore them when appropriate and preserve them when the text is manipulated. I added a couple helper methods to the utils module that are used to accomplish this. During debugging, I noticed that the capitalize function was being called to capitalize some of my commands (like when I typed "look", a request would be made to capitalize the word "look"). Looking at the commands module, I noticed that some of the commands setup a notifyFail at the beginning so that they could just return 0 throughout the method without having to setup a notifyFail each time. While this makes the code a little bit cleaner, it resulted in the capitalize method being called every single time the command was typed. So I modified these methods to set the notifyFail only when they are actually going to fail. 2001-08-02 18:27 willhelm * mudlib/mpico.py, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/User.java: Took out the debugging diagnostics, moved the "incoming..." messages from User to SocketCommunicator (so they don't get printed in cxc mode), and added an out.close() and in.close() to the disconnect function in SocketCommunicator. 2001-08-02 18:17 flaithius * mudlib/: login.py, stdprops.py, mail/mailbox.py: Added support for a mail system. There is a post offic sw of the start room. Please delete existing player files or create mail files for the player under world/data/mail/(playername all lowercase) 2001-08-02 17:55 willhelm * mudlib/coder.py, mudlib/mpico.py, mudlib/vtelnet.py, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/User.java: mpico now works and saves. it still has a few bugs (having to do with end of buffer issues) and it could do with some more work and additional features. but it can now be used to edit files in-game, save them, and such. 2001-08-02 11:59 mrblah * mudlib/: living.py, login.py, stdlib.py, boards/board.py: Modified stdlib.saveObject and stdlib.loadObject to no longer touch the disk. They just convert an object to a save-representation or convert a save-representation to an object, respectively. Instead, it's up to the requesting object to actually write the save-representation to disk after a call to saveObject or read the save-representation from disk prior to a call to loadObject. This change was made primarily for security reasons, since stdlib used to require read/write access to ALL data directories in order to function properly. Now it requires no special permissions and, instead, the requesting classes just need permissions to the data directories they use (for example, bulletin boards need read/write to the data/boards/ directory). I think I modified all of the classes that previously loaded and/or saved objects to work with the new changes. But if you notice that something no longer loads or saves properly, it may be related to this modification. 2001-08-02 00:04 willhelm * mudlib/viewer.py: Fixed more so that it used rawwrite permanently. Anything that uses more should either a) be ansified/wrapped already, or b) be raw text that we want to see without "adjustments". (Neil, I figured we don't need to pass a flag--it should all be raw.) 2001-07-30 16:14 mrblah * mudlib/coder.py: Added cp command to coders module. 2001-07-29 23:08 mrblah * org/bluesock/bluemud/lib/Controller.java: Forgot Controller on last commit. Bah. 2001-07-29 23:07 mrblah * mudlib/: coder.py, mind.py, viewer.py: Added viewer module with a More class that provides a more-like text viewer. Added a "more" command to the coders module that can be used to view files. Added a getUserProperty method to the Controller class and the mind module that exposes the properties in the User class. Modified head and tail commands to make use of the ROWS user property (how many rows the user's terminal window can display) to determine how many lines to display. 2001-07-29 11:02 mrblah * mudlib/coder.py, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/FileManager.java: Added touch command to the coders module. Added touchFile method to the FileManager and exposed it through the Driver. Added a .cvsignore to the logs/ directory so it would ignore the log files. 2001-07-29 00:12 mrblah * mudlib/coder.py, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/FileManager.java: Added rm, pushd, and popd commands. Added removeFile methoc to FileManager and exposed it through the Driver. Also secured the removeDirectory method in the Driver. 2001-07-26 13:17 mrblah * org/bluesock/bluemud/driver/: ConnectEvent.java, Driver.java, SecurityToken.java, User.java: Created a SecurityToken class and modified User and Driver to interact with it instead of a Permissions object directly. The SecurityToken stores the security-related data for a user, including their user name, an MD5 digest of their password, and their permission set. Currently, the SecurityToken integrated with the User and Driver, but there's no authentication taking place yet (so everything should behave just as before). I also modified the ConnectEvent to access the LoginController as an aliased object (and added an appropriate alias to the aliases.conf file). 2001-07-26 12:41 flaithius * mudlib/: coder.py, mudtime.py: Fixed the mud time stuff. Added more comments to explain how to use it. 2001-07-25 22:55 mrblah * mudlib/coder.py: Added head and tail commands to the coder module. 2001-07-25 20:49 willhelm * org/bluesock/bluemud/driver/NawsEvent.java: Forgot to add this.... 2001-07-25 20:40 willhelm * mudlib/login.py, mudlib/mind.py, mudlib/mpico.py, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/User.java, org/bluesock/bluemud/lib/Controller.java: Naws event notification works now. Mpico almost works in some cases.... It's looking a _lot_ better now. Fixed a few bugs in the run loop in SocketCommunicator (essentially, I re-wrote it--much better now). 2001-07-25 19:41 willhelm * org/bluesock/bluemud/driver/SocketCommunicator.java: Removed SGA stuff. I'm going to implement linemode later via the linemode option rather than futzing with SGA. May re-visit this later though. 2001-07-25 19:11 mrblah * org/bluesock/bluemud/driver/: ConfigurationManager.java, Driver.java, LogManager.java, Server.java: Added a LogManager class that is responsible for appending log entries to log files. Added a bluemud.log.root path to bluemud.conf and added appropriate support for it to the ConfigurationManager and Driver. Added a writeLogEntry method to the Driver, which constructs a file path for the log, performs a security check, and then forwards the request on to the LogManager. Modified the Server to record the IP address of all connections to a "connect" log instead of just stdout. Modified the Driver to redirect stderr to an "errors" log. 2001-07-25 19:07 willhelm * org/bluesock/bluemud/driver/: SocketCommunicator.java, TelnetConstants.java: Added a debug mode (so I don't affect you guys with spam when I'm screwing around). Added a function to TelnetConstants that nicely prints out Telnet Control messages. Moved a few things around--may have fixed an echo issue. Working on reducing the spam between the client and the server. 2001-07-25 18:49 flaithius * mudlib/living.py: Added accomplishments. This will allow quests/accomplishments/etc to be recorded on the player. Note: You will need to delete all your previous player .o files. 2001-07-25 17:30 willhelm * mudlib/commands.py, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/TelnetConstants.java: Moved a bunch of code around in SocketCommunicator and TelnetConstants in an ongoing effort to clean up SocketCommunicator. 2001-07-25 17:09 flaithius * mudlib/commands.py: Fixed "ask" command so if you possess an NPC you still receive asks. Added another NPC to the tavern :-) 2001-07-25 16:22 mrblah * mudlib/coder.py, org/bluesock/bluemud/driver/Driver.java: Fixed up some pathing issues in some of the coder commands. As far as I can tell, the paths now all behave as anticipated. Also fixed up the edit commands to make use of the current working directory and added a "cat" command that can be used to dump files. I also modified all of the disk manipulation methods in the Driver to first canonize the paths to be relative to the bluemud root directory. This is more for convenience on the part of the mudlib than for security, since it won't stop you from touching disk outside of the bluemud tree (it's up to Java security to prevent that). Finally, I updated the bluemud.conf file to include pretty comments for each of the path entries. 2001-07-25 13:49 rumata * mudlib/: commands.py, core.py: commands.py added search to the basic command handler. core.py added an empty search function to the object, so now all objects are searchable itemps.py changed the way tonic behaves: empty bottle stays behind; can't quaff nails anymore :) roomps.py removed search from closet npcs.py Igor is now searchable tavern.py adjusted the tshirt search 2001-07-25 13:39 mrblah * mudlib/: commands.py, help/manager.py: Added a rudimentary help system and a "help" command to the commands module. The help system just dumps the contents of a file from the help directory that has the same name as the desired help topic. If no topic is specified, then a "default" file is used. If the file can't be found, then the user receives an error message about that help topic not existing. I added two dummy help files: default and test. 2001-07-25 12:29 mrblah * org/bluesock/bluemud/driver/: BootStrap.java, Driver.java: Enhanced the Driver class to automatically determine the proper setting for the python.path environment variable and initialize the Python interpreter accordingly. It should no longer be necessary to specify a python path on the command line when starting the MUD. Enhanced the BootStrap class to accept the listening port on the command line. This is now a required argument. Updated the build.xml script to take the two above changes into account: removed the python path and added a listening port of 3000. I also fixed a couple other issues with the script. Removed the world.code.root property from the bluemud.conf file since it's no longer used (we use the world.domains.root property instead). 2001-07-24 13:02 mrblah * mudlib/: living.py, login.py, boards/board.py: Modified the Player class and Board class to save to the proper data subdirectories (player/ and boards/ respectively). I also fixed some packaging issues in the Board class that were left over from the directory structure reorg. I still need to break the Player class out of the living module and put it into its own module in the mudlib/player directory for security purposes. 2001-07-23 18:35 rumata * mudlib/coder.py: fixed the trader (got screwed up during the move) fixed possession bugs. Can jump host bodies successfully, and can't emote possessor's body. BootStrap.java was changed, then changed back, so should be no net changes 2001-07-23 11:29 mrblah * org/bluesock/bluemud/driver/: BootStrap.java, ConfigurationManager.java, Driver.java: Enhanced ConfigurationManager to take care of loading aliases from a configuration file and registering them with the Driver. The location of the aliases file can be specified with the bluemud.conf.aliases environment variable. If not present, then the ConfigurationManager will look for an aliases.conf file in the current working directory. If it can't find that, then it generates a fatal error and the system halts. Previously, hard-coded aliases were registered with the Driver by the BootStrap class. I took all that out. At initialization, the Driver now asks the ConfigurationManager to load and register the aliases. 2001-07-22 14:58 willhelm * mudlib/boards/board.py: Bunch of fixes--everything seems to load and work fine now. Whee! Best part is that I did most of it in-game. Well, the editing I did out of game, but I only had to start the server once and do a lot of "update". Update should kick up errors. 2001-07-22 13:40 willhelm * mudlib/boards/.cvsignore: Adding a .cvsignore. 2001-07-22 13:05 mrblah * mudlib/living.py: Fixed bug in living to get data root properly. 2001-07-22 12:53 mrblah * org/bluesock/bluemud/driver/Engine.java: Fixed bug in engine that would cause it to throw a NullPointerException if an event other than a UserInputEvent bombed out. 2001-07-22 12:37 mrblah * mudlib/coder.py, mudlib/living.py, mudlib/login.py, org/bluesock/bluemud/driver/BootStrap.java, org/bluesock/bluemud/driver/ConfigurationManager.java, org/bluesock/bluemud/driver/Driver.java: Getting closer to working. Some of the tavern code is still unhappy. 2001-07-22 00:30 willhelm * org/bluesock/bluemud/driver/BootStrap.java: Trying to get the world to come up--but it still doesn't. 2001-07-21 18:47 willhelm * mudlib/boards/board.py, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/User.java: Fixed board imports. Fixed a few bugs in the SocketCommunicator and added an initializeSocketCommunicator call to the User. Adjusted the bluemud.conf sample configuration file. I forget what I did to ConfigurationManager.java--it should be identical. 2001-07-20 22:51 willhelm * mudlib/mpico.py, org/bluesock/bluemud/driver/User.java: Removed setProperty from User (only SocketCommunicator can set properties now!) Changed most of the property fetching from mpico. 2001-07-20 22:33 willhelm * org/bluesock/bluemud/driver/: SocketCommunicator.java, User.java: It compiles now. :) 2001-07-20 22:33 mrblah * mudlib/: libinit.py, boards/__init__.py, help/__init__.py, mail/__init__.py, player/__init__.py: Added __init__.py files to the new mudlib directories so Python will treat them as packages. Modified libinit to refer to the board module in its new home. Modified tavern to refer to the board module in its new home. 2001-07-20 19:52 willhelm * org/bluesock/bluemud/driver/: SocketCommunicator.java, TelnetConstants.java, User.java: getting better.... 2001-07-20 18:21 willhelm * mudlib/: help/.cvsignore, mail/.cvsignore, player/.cvsignore: Added a bunch of empty directories to maintain our structure. 2001-07-20 18:05 willhelm * mudlib/.cvsignore, mudlib/__init__.py, mudlib/callout.py, org/bluesock/bluemud/driver/.cvsignore, org/bluesock/bluemud/driver/BluemudPermission.java, org/bluesock/bluemud/driver/BootStrap.java, org/bluesock/bluemud/driver/CalloutManager.java, org/bluesock/bluemud/driver/ConfigurationManager.java, org/bluesock/bluemud/driver/ConnectEvent.java, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/Engine.java, org/bluesock/bluemud/driver/FatalBluemudException.java, org/bluesock/bluemud/driver/FileManager.java, org/bluesock/bluemud/driver/InputEvent.java, org/bluesock/bluemud/driver/LazyCache.java, org/bluesock/bluemud/driver/OID.java, org/bluesock/bluemud/driver/ObjectFactory.java, org/bluesock/bluemud/driver/Server.java, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/TelnetConstants.java, org/bluesock/bluemud/driver/User.java, org/bluesock/bluemud/lib/.cvsignore, org/bluesock/bluemud/lib/Controller.java, org/bluesock/bluemud/lib/MudEvent.java, org/bluesock/bluemud/lib/MudObject.java, mudlib/coder.py, mudlib/commands.py, mudlib/constants.py, mudlib/core.py, mudlib/door.py, mudlib/editor.py, mudlib/emote.py, mudlib/employable.py, mudlib/formatter.py, mudlib/heap.py, mudlib/language.py, mudlib/libinit.py, mudlib/living.py, mudlib/login.py, mudlib/mind.py, mudlib/mpico.py, mudlib/mudtime.py, mudlib/nomacs.py, mudlib/parser.py, mudlib/possessed.py, mudlib/race.py, mudlib/shadow.py, mudlib/stdlib.py, mudlib/stdprops.py, mudlib/utils.py, mudlib/vtelnet.py, mudlib/boards/board.py: Initial revision 2001-07-20 18:05 willhelm * mudlib/.cvsignore, mudlib/__init__.py, mudlib/callout.py, org/bluesock/bluemud/driver/.cvsignore, org/bluesock/bluemud/driver/BluemudPermission.java, org/bluesock/bluemud/driver/BootStrap.java, org/bluesock/bluemud/driver/CalloutManager.java, org/bluesock/bluemud/driver/ConfigurationManager.java, org/bluesock/bluemud/driver/ConnectEvent.java, org/bluesock/bluemud/driver/Driver.java, org/bluesock/bluemud/driver/Engine.java, org/bluesock/bluemud/driver/FatalBluemudException.java, org/bluesock/bluemud/driver/FileManager.java, org/bluesock/bluemud/driver/InputEvent.java, org/bluesock/bluemud/driver/LazyCache.java, org/bluesock/bluemud/driver/OID.java, org/bluesock/bluemud/driver/ObjectFactory.java, org/bluesock/bluemud/driver/Server.java, org/bluesock/bluemud/driver/SocketCommunicator.java, org/bluesock/bluemud/driver/TelnetConstants.java, org/bluesock/bluemud/driver/User.java, org/bluesock/bluemud/lib/.cvsignore, org/bluesock/bluemud/lib/Controller.java, org/bluesock/bluemud/lib/MudEvent.java, org/bluesock/bluemud/lib/MudObject.java, mudlib/coder.py, mudlib/commands.py, mudlib/constants.py, mudlib/core.py, mudlib/door.py, mudlib/editor.py, mudlib/emote.py, mudlib/employable.py, mudlib/formatter.py, mudlib/heap.py, mudlib/language.py, mudlib/libinit.py, mudlib/living.py, mudlib/login.py, mudlib/mind.py, mudlib/mpico.py, mudlib/mudtime.py, mudlib/nomacs.py, mudlib/parser.py, mudlib/possessed.py, mudlib/race.py, mudlib/shadow.py, mudlib/stdlib.py, mudlib/stdprops.py, mudlib/utils.py, mudlib/vtelnet.py, mudlib/boards/board.py: building new stuff....