@prog chat-name.muf 1 999 d 1 i $def okchars "$'()+,-./0123456789<>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^abcdefghijklmnopqrstuvwxyz{}~" $def okc1 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" : say me @ swap notify ; : pick-another say "Please pick another name" say ; : bootme connections 1 swap 1 for pop dup condbref me @ dbcmp if conboot else pop then loop ; : setup-err "Sorry, setup error (" swap ")" 3 "" rimplode say bootme ; : main dup okchars strspn dup if swap pop 1 strcut pop "Invalid character " swap " in name." 3 "" rimplode pick-another exit then dup 0 1 substr okc1 swap instr if 0 1 substr "Invalid first character character " swap "." 3 "" rimplode pick-another exit then dup "me" stringcmp not if pop "\"me\" is not allowed." pick-another exit then dup "here" stringcmp not if pop "\"here\" is not allowed." pick-another exit then "*" over strcat match dup if dup awake? if "That name is already connected. Password?" else "That name is already registered. Password?" then "_xpwroom" else "That name is not currently registered. What password do you want?" "_npwroom" then ( name dbref prompt newplaceprop ) loc @ over getpropstr atoi dup not if pop "no " swap strcat -4 rotate 3 mpop setup-err exit then dbref dup room? not if pop "non-room " swap strcat -4 rotate 3 mpop setup-err exit then me @ swap moveto ; . c q