rendered paste body; --- nick alert
#general_nickalert on
on *:action:$($+(*,$me,*)):#:{
if ((($cid !== $activecid) || ($active !== $chan)) && ($nickalert_regex($1-)) && (!$nickalert_isexcluded($nick))) {
nick.alert $1-
}
}
on *:text:$($+(*,$me,*)):#:{
if ((($cid !== $activecid) || ($active !== $chan)) && ($nickalert_regex($1-)) && (!$nickalert_isexcluded($nick))) {
nick.alert $1-
}
}
alias -l nickalert_isexcluded {
; $1 = nick
var %k = $inf(nickalert,exclude),%o = $numtok(%k,44) | while (%o) {
if ($gettok(%k,%o,44) iswm $1) { return 1 }
dec %o
}
}
alias -l nickalert_regex {
; $1- = text
return $regex(nickalert,$1-,/(^|[^[:alpha:]]) $+ $regrem($me) $+ ([^[:alpha:]]|$)/i)
}
alias -l nick.alert {
if (($inf(nickalert,window)) && ((!$appactive) || (!$inf(nickalert,windowifinactive)))) { var %window = 1 }
else { var %window }
if (%window) {
if (!$window(@messages)) {
window -inzk0 @messages
logcustomwindow @messages
}
var %line = echo $color($event) -tm @messages $c(1) $+ $cbrack($servname) $+ $cbrack($chan) $+
}
else {
var %line = echo $color($event) -atm $c(1) $+ $iif(($cid !== $activecid),$cbrack($servname)) $+ $cbrack($chan) $+
}
if ($event == action) { %line $chanaction($1-) }
else { %line $nb $1- }
.signal nickalert $chan $nick $1-
}
#general_nickalert end