@prog telesend.muf 1 999 d 1 i : ximplode (s1 ... sN N sep -- s) over 2 < if pop not if "" then exit then begin over 1 > while rot over strcat 4 rotate strcat -3 rotate swap 1 - swap loop pop pop ; : stripspace " " explode begin dup if over not else 0 then while swap pop 1 - loop begin dup if dup 1 + pick not else 0 then while dup 1 + rotate pop 1 - loop " " implode ; : wantspace-char? dup if prog "_pose-nospace" getpropstr swap instr not else pop 0 then ; : hide-% "#S" "#" subst "#P" "%" subst ; : unhide-% "%" "#P" subst "#" "#S" subst ; : tellmsg (msg target tell prop -- msg target) trigger @ swap over over prop-exists? not if pop pop pop exit then getpropstr ( msg target tell format ) 4 pick hide-% "%m" subst me @ name hide-% "%n" subst 4 pick 1 strcut pop wantspace-char? if " " else "" then "%p" subst 3 pick name hide-% "%t" subst unhide-% notify ; : ok-target? if trigger @ owner wizard? if pop 1 exit then then "_telesend-ok" getpropstr dup not if pop 0 exit then "!*" swap " " explode 1 + do 1 - swap dup "!" 1 strncmp if 1 else 1 strcut swap pop 0 then swap dup "*" strcmp not swap atoi dbref me @ dbcmp or if over 2 + -1 * rotate 0 swap 1 + 1 -1 for pop pop loop exit then pop loop ; : main stripspace trigger @ "_to" prop-exists? if trigger @ "_to" getpropstr atoi dbref dup 1 ok-target? not if pop pop me @ "Permission denied." notify exit then dup "_format" tellmsg me @ "_tellme" tellmsg else trigger @ "to" getpropstr atoi dbref dup 0 ok-target? not if pop pop me @ "Permission denied." notify exit then dup "format" tellmsg me @ "tellme" tellmsg then pop pop ; . c q