help > w > autopath
AUTOPATH HALP WHO? Misery WHEN? July 2011 WAT? Autopath assigns paths you see to some semi-stable nicknames. WHY? So you can assign some aliases to make use of the stable nicknames to read/copy/source/clone/goto/etc. file paths mentioned by other wizards in conversation, or seen through commands you issue yourself. WHERE? The default nicknames are last_path, last_obj, last_file, and last_dir. If you do no further configuration, two of these will be stored for every path you *SEE* caused by: say, tell, reply, wizard, bugs, and any verb for a valid channel. Notes on default behavior: 1.) SEE is operative. Your own paths will get nicknamed. This isn't good or bad--it can save you from re-referencing a path again and again, and give you a way to autopath by simply saying the path. It just might not be immediately evident. 2.) last_path is always stored; last_obj is stored for a cloned object, last_file is stored for a verified file, last_dir for a directory. 3.) The FIRST path seen in a message is captured. 4.) Implied above but only messages caused by wizards will save. HOW? You can configure a few variables to make Autopath more useful. For now you'll need to do this with eval, but I may add commands to work with these eventually. settings: message_me - Enables a one-line message saying how many paths were identified and what nicknames were assigned. Messaging can't be much more verbose than this without risking recursion. use: eval this_player()->set("autopath/message_me", 1) eval this_player()->delete("autopath/message_me") store_all - Enables the capturing of all paths in a message. By itself this does nothing, however, as additional paths are *only* stored for commands you've added to your include list. use: eval this_player()->set("autopath/store_all", 1) eval this_player()->delete("autopath/store_all") include - You can include commands that aren't by default parsed for paths by setting them by verb name under the include setting. Commands in the include list get their own nickname(s) in a last_command_name format. If store_all is set, it'll be last_command_1, etc. When store_all is set, all previous, numbered nicknames for this command will be cleared, to avoid ambiguous situations where nicknames 1 and 2 were replaced with new paths, but 3 and 4 weren't, and still remain. NOTE: You can also treat "debug" and, "editing" as command names, even though they aren't. This will save paths you get in messages from notify_d in the first case, and in the second case specifically file-edit notifications. use: eval this_player()->set("autopath/include/command_name") eval this_player()->set("autopath/include/look") eval this_player()->delete("autopath/include/look") eval this_player()->set("autopath/include/debug") ignore - You can also ignore paths from default commands, including channels. use: eval this_player()->set("autopath/ignore/command_name") eval this_player()->set("autopath/ignore/chat") eval this_player()->delete("autopath/ignore/chat") Notes on setting behavior: 1.) Ignore wins out over include. 2.) Because the store_all flag enables capturing paths in the code logic, but the paths aren't captured unless you've added the command to your include list, with store_all enabled you'll see a message saying it's adding X paths to nicknames: ... The number it gives you is the number of identified paths but won't represent the number of paths actually stored unless you have Autopath enabled for that command. This may be messaged better in the future but I didn't have the heart to put Morganti through another round of sourcing for it atm.