@program #2115 1 1000 d i ( Implements local and global aliases via @command props. (C) 2003 Alynna Trypnotk Release Terms: GNU GPL v2, http://www.gnu.org/licenses/gpl.html Use anywhere, dont remove credits, return improvements to alynna@animaltracks.net ) $include $lib/alynna lvar param $author Alynna $version 1.012 $note Implements local and global aliases via @command props. : do-alias var value var count param @ "|" explode dup count ! array_make array_reverse foreach value ! pop me @ value @ mpime force repeat ; : alias-override var action "alias-override-action" match if "alias-override-action" match action ! else me @ "alias-override-action" newexit action ! action @ prog setlink then action @ { action @ name ";" param @ }cat setname { "Your alias is now overriding the '" param @ "' action." }cat "Alias" pretty tellme ; : alias-unoverride var action "alias-override-action" match if "alias-override-action" match action ! else "alias-override-action" newexit action ! action @ prog setlink then action @ action @ name "" { ";" param @ }cat subst setname { "Your alias is no longer overriding the '" param @ "' action." }cat "Alias" pretty tellme ; : alias-conv var target var item var value var newvalue me @ target ! str "Alias conversion for " target @ unparseobj cat header tellme target @ "/@/alias/" array_get_propvals foreach value ! item ! value @ "{&arg}" "$*" subst newvalue ! target @ "/_alias/" item @ strcat newvalue @ setprop target @ "@command/" item @ strcat str "&{null:{muf:#" prog int "," newvalue @ "}}" cat setprop str "^GREEN^" item @ 10 lj "^YELLOW^" value @ 34 lj "^CYAN^" newvalue @ 34 lj "^NORMAL^" cat tellme repeat "Alias v1.0" footer tellme ; : alias-view var target var item var value command @ "@galias" smatch if #0 target ! else me @ target ! then str "Aliases defined on " target @ unparseobj cat header tellme target @ "_alias/" array_get_propvals foreach value ! item ! str "^GREEN^" item @ 10 lj "^YELLOW^" value @ cat tellme repeat "Alias v1.0" footer tellme ; : alias-del var target command @ "@gunalias" smatch if #0 target ! else me @ target ! then param @ not if str "Format: " command @ " " cat "Alias" pretty tellme exit then target @ "_alias/" param @ strcat 0 setprop target @ "@command/" param @ strcat 0 setprop str "Alias '" param @ "' on " target @ unparseobj " has been deleted." cat "Alias" pretty tellme ; : alias-set var target var alias-name var alias-code force_level 1 >= if str "You cannot set an alias via another alias or with @force." cat "Alias" pretty tellme exit then command @ "@galias" smatch if #0 target ! else me @ target ! then param @ not if str "Format: " command @ " =" cat "Alias" pretty tellme exit then param @ "=" explode case 2 >= when alias-name ! param @ "" alias-name @ "=" strcat subst alias-code ! end default str "Format: " command @ " =" cat "Alias" pretty tellme exit end endcase target @ "_alias/" alias-name @ strcat alias-code @ setprop target @ "@command/" alias-name @ strcat str "&{null:{muf:#" prog int "," alias-code @ "}}" cat setprop str "Alias '" alias-name @ "' on " target @ unparseobj " has been set." cat "Alias" pretty tellme ; : alias-help { "Aliases for ProtoMUCK (C) 2001 Alynna Trypnotk" " " " Formats:" " @alias #help See this help screen" " @alias Show me my aliases" " @alias = Make an alias" " @unalias Remove the alias" " @convalias Convert Glow aliases to Proto aliases" me @ mlevel 5 >= if " @galias / @gunalias Same as above, on #0" then " @override Override an existing command with your alias" " @unoverride Remove an override" " " " Statements:" " Can be any MPI statement that will be executed as if it were you. Use" " {&arg} to specify the arguments given when you use the alias." " You can specify multiple commands by seperating them with a bar (|)." " Delays will be introduced to space the commands 1 second apart." " " " Examples:" " @alias ]=. chat {&arg}" " @alias mul100=say 100 times {&arg} equals {mult:{&arg},100}!!" } array_make atellme ; : main param ! ( command @ param @ debug_line pop pop ) command @ tolower case "{@alias|@galias}" smatch when command @ "@galias" smatch me @ mlevel 4 <= and if "^RED^Permission denied.^NORMAL^" tellme exit then param @ tolower case "#h*" smatch when alias-help exit end not when alias-view exit end default alias-set exit end endcase end "{@unalias|@gunalias}" smatch when command @ "@galias" smatch me @ mlevel 4 <= and if "^RED^Permission denied.^NORMAL^" tellme exit then alias-del exit end "{@convalias}" smatch when alias-conv exit end "{@override}" smatch when alias-override exit end "{@unoverride}" smatch when alias-unoverride exit end endcase command @ "*(MPI)" smatch not if me @ "/_alias/" command @ "" "(MPI)" subst strcat envpropstr swap pop param ! then do-alias ; . c q