on *:text:!*:#: {
if ($hfind($+(responses.,$chan), $1)) {
var %chan $chan
messages $1 $hfind($+(responses.,$chan), $1)
}
}
on *:join:#: {
if ($nick == $me) {
hmake $+(responses.,$chan)
hload $+(responses.,$chan) responses.ini
.timer.messagequeue 0 1 messages2 $chan
}
}
;example response !command cooldown .msg %chan message
alias messages {
if (!$hget($+(messages.,%chan))) { hmake $+(messages.,%chan) }
if ($3 == msg || $3 == .msg) {
if ($($+(%,sentmessage.,%chan,$1),2) > 0) {
if ($hfind($+(messages.,%chan), $1)) { return failresponse $1 }
else {
hadd $+(messages.,%chan) $3-
set $+(%,cooldowns.,%chan) $addtok($+(%,cooldowns.,%chan), $1, 32)
}
}
else {
.msg $2-
inc $sentmessage. $+ %chan $+ $1 $2
}
}
}
alias messagesqueue {
if ($hget($+(messages.,$1), 0) > 0) {
var %t $numtok($+(%,cooldowns.,$1), 32)
var %i 1
while (%i < %t) {
if ($($+(%,sentmessage.,$1,$gettok($+(%,cooldowns.,$1),%i,32)),2) > 0) {
dec $sentmessage. $+ $2 $+ $gettok($+(%,cooldowns.,$1),%i,32)
}
else {
var %chan $1
tokenize $hget($+(messages.,$1), 1)
.msg $4-
set $+(%,cooldowns.,%chan) $deltok($+(%,cooldowns.,%chan),%i,32)
return
}
}
}
}