Вы можете хранить массив, содержащий пользователя и время его соединения. Что-то вроде (не проверено):
set canalativo "#testes"
array set joinedUsers {}
bind pubm - "*regist*canal*" pub:regchan
bind join - "*!*@*" pub:joinchan
proc pub:regchan { nick uhost handle chan arg } {
global canalativo joinedUsers
# Check if - this is the correct channel
# - the user is in the array of joined users
# - the time the user joined is 1800 seconds ago or less
if {
[string match -nocase "$canalativo" $chan] &&
[info exists joinedUsers($nick)] &&
[clock seconds]-$joinedUsers($nick) <= 1800
} {
putserv "PRIVMSG $chan :$nick para registar um canal escreve o comando: /ChanServ register #CANAL DESCRICAO-DO-CANAL"
}
# Remove the user from the array if it is there
catch {unset joinedUsers($nick)}
}
proc pub:joinchan { nick uhost handle chan } {
global joinedUsers
# Add the user and the time they joined to the array
set joinedUsers($nick) [clock seconds]
}
Это просто основа c. Возможно, вы захотите добавить проверки для таких вещей, как изменения никнеймов (например, рассказать им о группировании своих ников под одной учетной записью) или присоединиться (из-за отсоединения / netsplits) среди других вещей. Также вы можете не захотеть, чтобы бот сказал им об этом, если они уже зарегистрированы.