My hash table version if interested:
on *:exit: hsave -o greet greet
on *:start: if ($file(greet).shortfn) hmake greet 100 | hload greet $v1
on *:join:#: if ($hfind(greet,$nick,1,w)) .msg # $hget(greet,$v1)
on $*:text:/^!((re)?(set)|check)greet/iS:#:{
var %c $hfind(greet,$nick,1,w), %1 notice $nick Your greet's already $&
set as $qt($hget(greet,%c)) To change it, use !resetgreet first.
var %2 .notice $nick Your greet has been set to $!hget(greet,$nick) successfully!
var %3 .notice $nick Your greet message is now deleted!
var %4 .notice $nick I can't find your greet message. It's removed or hasn't been added.
var %5 .notice $nick You have yet to be set up for greet. Enter !setgreet $&
<Your Message Here> to get started. Without setting a message, you'll only be greeted with "Hello."
var %6 .notice $nick Your greet message is: $hget(greet,$nick)
goto $regml(1) | :set | if !%c { hadd -m greet $nick $iif(!$2,Hello,$2-) | [ [ %2 ] ] } | else %1 | halt
:reset | if %c { hdel greet $nick | %3 } | else %4 | halt | :check | if !%c { %5 } | else %6 | halt
}