You don't even have the 5 min timer in there... just a message about it.
What you want to do is use named timers and start them at the beginning.
on *:join:#: {
if ($nick == whatever) {
msg $nick Change your nick.
.timerLastWarn. $+ $nick 1 150 msg $nick Change your nick. Last warning.
.timerKick. $+ $nick 1 300 kick $chan $nick Time is up.
}
}
on *:nick: {
if ($timer(LastWarn. $+ $nick)) { .timerLastWarn. $+ $nick off }
if ($timer(Kick. $+ $nick)) { .timerKick. $+ $nick off }
if ($newnick == whatever) {
msg $newnick Change your nick.
.timerLastWarn. $+ $newnick 1 150 msg $newnick Change your nick. Last warning.
.timerKick. $+ $newnick 1 300 kick $chan $newnick Time is up.
}
}
on *:part:#: {
if ($timer(LastWarn. $+ $nick)) { .timerLastWarn. $+ $nick off }
if ($timer(Kick. $+ $nick)) { .timerKick. $+ $nick off }
}
on *:quit: {
if ($timer(LastWarn. $+ $nick)) { .timerLastWarn. $+ $nick off }
if ($timer(Kick. $+ $nick)) { .timerKick. $+ $nick off }
}
Now, obviously, you can put some of this into an alias to save lines and you can change your IF check to whatever method you want for storing/checking the "locked" nicks. For example, using $istok. I just used the basic check to give you an idea. I'm sure you can adjust it to work with $istok or whatever method you prefer.