Code:
on @*:join:#Yourchannel: {
  set -u60 %jointimer. [ $+ [ $+($server,.,$cid,.,$chan,.,$nick) ] ] 1
}
on @*:text:*:#Yourchannel: {
  var %xid = $+($server,.,$cid,.,$chan,.,$nick)
  ; Change the # of times they can say somthing in x seconds before it bans/kicks here. Just edit the number after "%times =" or "%seconds =".
  ; %bantime is the number of seconds they will be banned.
  ; if %ban is 1, they will be banned and kicked for %bantime seconds, if %bantime is 0 it will need to be manualy removed.
  ; %kickreason is the reason you will see when they are kicked.
  var %times = 3, %seconds = 2, %bantime = 60, %ban = 0, %bantype = 2, %kickreason = Flooding


  if (%joinflood. [ $+ [ %xid ] ] > %times) {
    if (%ban) {
      ban $iif(%bantime > 0,-u [ $+ [ %bantime ] ]) $chan $nick %bantype
    }
    kick $chan $nick %kickreason
    unset %jointimer. [ $+ [ $+($server,.,$cid,.,$chan,.,$nick) ] ]
    return
  }
  if (%jointimer. [ $+ [ %xid ] ]) {
    inc -u [ $+ [ %seconds ] ] %joinflood. [ $+ [ %xid ] ] 1
  }
}

This script will only work if you are an OP in the channel, if you are a halfop you can remove the "@" at the first line of the events.
You can also change everything in the script via variables.
I haven't tested it, but it should work.
If it doesn't work, post a reply and I'll see if I can fix it (include any error messages/etc).


Those who can, cannot. Those who cannot, can.