After submitting 8 lines of text within 5 seconds, a user will be silenced in the channel for two minutes, as well as given a warning to not flood.
Also, the script will send a message to #staff notifying users in #staff that the user has been silenced in the channel. This is obviously an optional feature.
Additionally, if the user is an operator on the channel, then it will have no effect.
on *:TEXT:*:#:{
if ($nick == $me) {
halt
}
if ($nick isop $chan) {
halt
}
inc -u5 %flood. [ $+ [ $nick ] ]
if (%flood. [ $+ [ $nick ] ] == 8) {
/mode $chan +b ~q: $+ $address( $nick , 2 )
/msg $chan $nick You have been silenced for two minutes. Please don't flood.
/msg #staff $nick has been silenced in $chan for flooding.
/timer 5 120 /mode $chan -b ~q: $+ $address( $nick , 2 )
}
}
you can use it this way so you can turn it on in channels you want it to run in
on @*:TEXT:*:#:{
if ($nick(#,$nick,r) && $istok(%sflood,$chan,44)) {
inc -u5 $+(%,flood.,$nick)
if ($($+(%,flood.,$nick),2) = 8) {
mode $chan +b ~q: $+ $address($nick,2)
msg $chan $nick You have been silenced for two minutes. Please don't flood.
msg #staff $nick has been silenced in $chan for flooding.
$+(.,timersilenced,.,$nick) 1 120 mode $chan -b ~q: $+ $address($nick,2)
}
}
}
menu channel {
.Silence on Flood
.. $iif($istok(%sflood,$chan,44),Turn Off in Room # ,Turn On in Room # ):{ set %sflood $iif(!$istok(%sflood,$chan,44),$addtok(%sflood,$chan,44),$remtok(%sflood,$chan,1,44)) | echo -a $iif($istok(%sflood,$chan,44),Silence on Flood is now On in room # .,Silence on Flood is now Off in room # .) }
}
Doodle said:
whats the proper 'if' if they're voiced?
um you can do it like this
if ($nick isvoice #) or you can do it like this if ($nick(#,$nick,v) or you can add both voiced and reg users to it like this
if ($nick(#,$nick,vr)
this is a good one =3
menu channel {
.$iif($group(#flood-kick).status iswm on, flood-kick is on, flood-kick is off)
..Turn flood-kick off:disable #flood-kick
..Turn flood-kick on:enable #flood-kick
}
#flood-kick on
on *:TEXT:*:#:{
if ($nick == $me) {
halt
}
if ($nick isop $chan) {
halt
}
inc -u5 %flood. [ $+ [ $nick ] ]
if (%flood. [ $+ [ $nick ] ] == 8) {
/mode $chan +q $+ $address( $nick , 2 )
/msg $chan $nick You have been silenced for two minutes. Please don't flood.
/msg #staff $nick has been silenced in $chan for flooding.
/timer 1 120 /mode $chan -q $+ $address( $nick , 2 )
}
}
#flood-kick end
you can try this Oh and also you can not set off ur own on text events so you dont need to use if ($nick == $me) { halt
on @*:TEXT:*:#:{
if ($nick(#,$nick,r)) {
inc -u5 $+(%,flood.,$nick)
if ($($+(%,flood.,$nick),2) = 8) {
mode $chan +b ~q: $+ $address($nick,2)
msg $chan $nick You have been silenced for two minutes. Please don't flood.
msg #staff $nick has been silenced in $chan for flooding.
$+(.,timersilenced,.,$nick) 1 120 mode $chan -b ~q: $+ $address($nick,2)
}
}
}