alias strippunct { var %final var %posn = 1 var %flag = off while (%posn <= $len($1-)) { if (($asc($mid($1-,%posn,1)) >= 65) && ($asc($mid($1-,%posn,1)) <= 90)) || (($asc($mid($1-,%posn,1)) >= 97) && ($asc($mid($1-,%posn,1)) <= 122)) { if (%flag == on) { %final = %final $+ $chr(32) $+ $mid($1-,%posn,1)) %flag = off } else { %final = %final $+ $mid($1-,%posn,1)) } } else if ($asc($mid($1-,%posn,1)) == 32) { %flag = on } else { %flag = on } inc %posn } return $lower(%final) } on *:text:*:#spp,#spp-wifi: { if ( %rp_duration == $null ) { set %rp_duration 120 } if ( %rp_bantime == $null ) { set %rp_bantime 300 } if ( %rp_offences == $null ) { set %rp_offences 2 } if ( $nick !ishop # ) && ( $nick !isop # ) && ($numtok($1-,32) >= 2) { var %rp.repeats = rp. $+ $nick $+ . $+ $chan var %rp.text = rp. $+ $nick $+ . $+ $chan $+ .text if ( % [ $+ [ %rp.repeats ] ] == $null ) { set -u [ $+ [ %rp_duration ] ] % [ $+ [ %rp.repeats ] ] 1 set -u [ $+ [ %rp_duration ] ] % [ $+ [ %rp.text ] ] $strippunct($1-) } elseif ( % [ $+ [ %rp.text ] ] == $strippunct($1-) ) || ( % [ $+ [ %rp.text ] ] isin $strippunct($1-) ) { inc % [ $+ [ %rp.repeats ] ] } elseif ( % [ $+ [ %rp.text ] ] != $strippunct($1-) ) && ( % [ $+ [ %rp.text ] ] !isin $strippunct($1-) ) { set -u [ $+ [ %rp_duration ] ] % [ $+ [ %rp.text ] ] $strippunct($1-) set -u [ $+ [ %rp_duration ] ] % [ $+ [ %rp.repeats ] ] 1 } if ( % [ $+ [ %rp.repeats ] ] > %rp_offences ) { ban -u [ $+ [ %rp_bantime ] ] # $nick 2 kick # $nick Stop repeating yourself! (5 mins) unset % [ $+ [ %rp.repeats ] ] unset % [ $+ [ %rp.text ] ] } } }