on *:text:*:#:{ ;and if ($findtok($strip($1-),and,1,32)) { define-and $v1 $strip($1-) } ;is are if ($findtok($strip($1-),were,1,32)) || ($findtok($strip($1-),was,1,32)) || ($findtok($strip($1-),is,1,32)) || ($findtok($strip($1-),are,1,32)) { define-is-are $v1 $strip($1-) } ;question if ($right($strip($1-),1) == $chr(63)) { var %message $remove($strip($1-),$chr(63)) if ($findtok(%message,what,1,32)) || ($findtok(%message,who,1,32)) || ($findtok(%message,how,1,32)) || ($findtok(%message,where,1,32)) || ($findtok(%message,why,1,32)) || ($findtok(%message,when,1,32)) { find-define $v1 $chan $nick $strip($1-) } } ;forget if ($findtok($strip($1-),forget,1,32)) { forget-define $v1 $chan $nick $strip($1-) } } alias define-and { var %token $1 var %message $2- var %re /\b $+ $me $+ \b/i if ($gettok(%message,$calc(%token - 1),32) !isnum) { store.d $gettok(%message,$calc(%token - 1),32) $regsubex($gettok(%message,$calc(%token + 2) $+ -,32),%re,) } if ($gettok(%message,$calc(%token + 1),32) !isnum) { store.d $gettok(%message,$calc(%token + 1),32) $regsubex($gettok(%message,$calc(%token + 2) $+ -,32),%re,) } } alias define-is-are { ;was were is are var %token $1 var %message $2- var %re /\b $+ $me $+ \b/i var %token $calc(%token - 1) if !%token { var %token $calc(%token + 1) } if ($gettok(%message,%token,32) !isnum) { store.d $gettok(%message,%token,32) $regsubex($gettok(%message,$calc(%token + 1) $+ -,32),%re,) } } alias find-define { var %token $1 var %chan $2 var %nick $3 var %message $4- var %tt $calc(%token + 2) if $gettok(%message,%tt,32) { var %word = $remove($gettok(%message,%tt,32),$chr(63)) } if !%word { var %word = $remove($gettok(%message,$calc(%token + 1),32),$chr(63)) } if !%word { var %word = $remove($gettok(%message,$calc(%token - 1),32),$chr(63)) } if $istok(a the,%word,32) { var %a = %word | var %ttt $calc(%token + 3) var %word = $remove($gettok(%message,%ttt,32),$chr(63)) } if $hget(definitions,%word) { .msg %chan %nick $+ , $iif(%a,%a) %word $hget(definitions,%word) } else { .msg %chan I do not know %nick $+ . } } alias forget-define { var %token $1 var %chan $2 var %nick $3 var %message $4- if $hget(definitions,$gettok(%message,$calc(%token + 1),32)) { remove.d $gettok(%message,$calc(%token + 1),32) .msg %chan I have forgotten $gettok(%message,$calc(%token + 1),32) %nick $+ . } elseif $hget(definitions,$gettok(%message,$calc(%token + 2),32)) { remove.d $gettok(%message,$calc(%token + 2),32) .msg %chan I have forgotten $gettok(%message,$calc(%token + 2),32) %nick $+ . } } on *:start:{ hashdscript } alias ddat return $+(",$scriptdirCorebot_def.dat,") alias -l store.d { if (!$2) { return } hadd -ms definitions $1 $2- hsave -i definitions $ddat definitions } alias -l remove.d { ; item hdel -s definitions $1 if $hget($1,0).item { hsave -i definitions $ddat definitions } } alias hashdscript { filter -k $ddat hashdefs * } Alias -l hashdefs { hadd -m definitions $gettok($1-,1,61) $gettok($1-,2-,61) }