kickpro

By DeathfireD on Nov 29, 2003

Kickpro Has 3 nig things a bad word kicker, flood kicker, clone kicker. You can look threw it and add what you like.

;###################################
;#KickPro V1.0                                                         #
;#By: Deathfire D                                                     #
;#site: www.o-cmembers.cjb.com                              #
;###################################
#protection.swear off
on *:text:*:#:{
  if ($nick isop $chan) { 
    halt  
  } 
  else {
    set %txt.1 $remove($1-,,,,,)
    if (fuck isin %txt.1) { /kick # $nick please Dont swear AGAIN }
    if (shit isin %txt.1) { /kick # $nick That was not right }
    if (bastard isin %txt.1) { /kick # $nick none of that Please }
    if (cocksucker isin %txt.1) { /kick # $nick if you where a cock wouldent you liek to be sucked? }
    if (cocksuka isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (slut isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (Dick isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (man slut isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (cock isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (asshole isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (faggot isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (peckerhead isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (f|_|ck isin %txt.1) { /kick # $nick Dont Fuckin Swear in here please }
    if (pussy isin %txt.1) { /kick # $nick The pussy is a very protected area on a girl please dont say it AGAIN }
    if (Windows isin %txt.1) { /kick # $nick Windows sucks man dont be saying that agen its a bad word. }
    if (Penis isin %txt.1) { /kick # $nick you can stfu you cock }
    if (tampon isin %txt.1) { /kick # $nick Yummy a tampon }
  }
}
#protection.swear end

#protection.clone off
on !^*:join:#: {
  set %scannumber
  set %clonenicks
  :start
  inc %scannumber
  if ($nick(#,%scannumber) == $null) { goto end }
  elseif ($nick == $nick(#,%scannumber)) { goto start }
  elseif ($address($nick,2) == $address($nick(#,%scannumber),2)) { /set %clonenicks %clonenicks $nick(#,%scannumber) | goto start }
  else goto start
  :end
  if (%clonenicks != $null) { haltdef | .echo $colour(join) $chan 4*** Joins: $nick ( $+ $address $+ ) 11Clone(s): 12 %clonenicks | /kick $chan $nick NO CLONES } 
  unset %scannumber %clonenicks
}
#protection.clone end

#protection.flood off
; +--------------+
; |  AFRAC v1.4  |
; +--------------+

; *** Settings start

; Basic settings

alias kick.ops                 return 1
alias exempt.chans             return #example1 #example2
alias ban.type                 return 2
alias show.ban.length          return 1

; Flood protection settings

alias flood.enable             return 1
alias flood.lines              return 4
alias flood.secs               return 3
alias flood.warnings           return 2
alias flood.warning.expire     return 600
alias flood.ban.length         return 600
alias flood.kick.reason        return warning! flooding is not allowed on $chan
alias flood.ban.reason         return I just told you, flooding is not allowed!

; Repeat protection settings

alias repeat.enable            return 1
alias repeat.secs              return 30
alias repeat.difference        return 5
alias repeat.warnings          return 4
alias repeat.warning.expire    return 1800
alias repeat.ban.length        return 300
alias repeat.kick.reason       return warning! repeating is not allowed on $chan
alias repeat.ban.reason        return I just told you, repeating is not allowed!

; Advertise protection settings

alias advertise.enable         return 1
alias advertise.words          return 2
alias advertise.chanlen        return 1
alias advertise.numbers        return 1
alias advertise.keywords       return come to, idle, join
alias advertise.warnings       return 2
alias advertise.warning.expire return 3600
alias advertise.ban.length     return 3600
alias advertise.kick.reason    return warning! advertising is not allowed on $chan
alias advertise.ban.reason     return I just told you, advertising is not allowed!

; Capitals protection settings

alias capitals.enable          return 1
alias capitals.percentage      return 0.5
alias capitals.minlength       return 10
alias capitals.warnings        return 3
alias capitals.warning.expire  return 600
alias capitals.ban.length      return 900
alias capitals.kick.reason     return warning! excessive use of capitals is not allowed on $chan
alias capitals.ban.reason      return I just told you, excessive use of capitals is not allowed!

; *** Settings /end

; *** Script start

alias trim {
  var %a $1-
  while ($left(%a, 1) == $chr(32)) {
    var %a $right($1-, -1)
  }
  while ($right(%a, 1) == $chr(32)) {
    var %a $left($1-, -1)
  }
  return %a
}

on @*:text:*:#:{

  ; pre

  if ($nick isop $chan) && (!$kick.ops) halt

  var %a 1
  while (%a <= $numtok($exempt.chans, 32)) {
    if ($chan == $gettok($exempt.chans, %a, 32)) halt
    inc %a
  }

  ; flood

  if ($flood.enable) {
    if (!%flood.lines. [ $+ [ $nick ] ]) {
      set -z %flood.secs. [ $+ [ $nick ] ] $flood.secs
    }
    inc -u [ $+ [ $flood.secs ] ] %flood.lines. [ $+ [ $nick ] ]
    if (%flood.lines. [ $+ [ $nick ] ] >= $flood.lines) {
      if (%flood.secs. [ $+ [ $nick ] ]) {
        unset %flood.lines. [ $+ [ $nick ] ]
        if (%flood.warnings. [ $+ [ $nick ] ] >= $flood.warnings) {
          if ($nick isop $chan) mode $chan -o $nick
          ban $iif($flood.ban.length, -u [ $+ [ $flood.ban.length ] ]) $chan $nick $ban.type
          kick $chan $nick $flood.ban.reason $iif($show.ban.length, ( $+ $duration($flood.ban.length) ban))
          unset %flood.warnings. [ $+ [ $nick ] ]
        }
        else {
          inc $iif($flood.warning.expire, -u [ $+ [ $flood.warning.expire ] ]) %flood.warnings. [ $+ [ $nick ] ]
          kick $chan $nick $flood.kick.reason
        }
      }
      else {
        set -z %flood.secs. [ $+ [ $nick ] ] $flood.secs
        set -u [ $+ [ $flood.secs ] ] $calc(%flood.lines. [ $+ [ $nick ] ] - $flood.lines)
      }
    }
  }

  ; repeat

  if ($repeat.enable) {
    if (%repeat.lastmsg. [ $+ [ $nick ] ]) {
      var %sub $calc($len(%repeat.lastmsg. [ $+ [ $nick ] ]) - $len($1-))
      if ((%sub < 0) && (%sub >= $calc($repeat.difference / -1)) && ($left($1-, %sub) == %repeat.lastmsg. [ $+ [ $nick ] ])) || ($1- == %repeat.lastmsg. [ $+ [ $nick ] ]) {
        if (%repeat.warnings. [ $+ [ $nick ] ] >= $repeat.warnings) {
          if ($nick isop $chan) mode $chan -o $nick
          ban $iif($repeat.ban.length, -u [ $+ [ $repeat.ban.length ] ]) $chan $nick $ban.type
          kick $chan $nick $repeat.ban.reason $iif($show.ban.length, ( $+ $duration($repeat.ban.length) ban))
          unset %repeat.warnings. [ $+ [ $nick ] ]
        }
        else {
          inc $iif($repeat.warning.expire, -u [ $+ [ $repeat.warning.expire ] ]) %repeat.warnings. [ $+ [ $nick ] ]
          kick $chan $nick $repeat.kick.reason
        }
      }
    }
    set $iif($repeat.secs, -u [ $+ [ $repeat.secs ] ]) %repeat.lastmsg. [ $+ [ $nick ] ] $1-
  }

  ; advertise

  if ($advertise.enable) {
    var %a 1
    while (%a <= $numtok($advertise.keywords, 44)) {
      if ($trim($gettok($advertise.keywords, %a, 44)) isin $1-) {
        var %advertise.override $true
      }
      inc %a
    }
    if ((($numtok($1-, 32) < $advertise.words) || (!$advertise.words)) || (%advertise.override)) && (*#* iswm $1-) {
      var %a 1
      while (%a <= $numtok($1-, 32)) {
        if (#* iswm $gettok($1-, [ %a ], 32)) && ($gettok($1-, [ %a ], 32) != $chan) && (($len($right($gettok($1-, [ %a ], 32), -1)) > $advertise.chanlen) || (!$advertise.chanlen)) {
          if (!$advertise.numbers) || ($right($gettok($1-, [ %a ], 32), -1) !isnum) {
            if (%advertise.warnings. [ $+ [ $nick ] ] >= $advertise.warnings) {
              if ($nick isop $chan) mode $chan -o $nick
              ban $iif($advertise.ban.length, -u [ $+ [ $advertise.ban.length ] ]) $chan $nick $ban.type
              kick $chan $nick $advertise.ban.reason $iif($show.ban.length, ( $+ $duration($advertise.ban.length) ban))
              unset %advertise.warnings. [ $+ [ $nick ] ]
            }
            else {
              inc $iif($advertise.warning.expire, -u [ $+ [ $advertise.warning.expire ] ]) %advertise.warnings. [ $+ [ $nick ] ]
              kick $chan $nick $advertise.kick.reason
            }
          }
        }
        inc %a
      }
    }
  }

  ; capitals

  if ($capitals.enable) {
    var %a 1
    var %upper 0
    while (%a <= $len($1-)) {
      if ($left($right($1-, $calc($len($1-) - %a)), 1) isalpha) {
        if ($left($right($1-, $calc($len($1-) - %a)), 1) === $upper($left($right($1-, $calc($len($1-) - %a)), 1))) {
          inc %upper
        }
        inc %length
      }
      inc %a
    }
    if (%length >= $capitals.minlength) {
      if ($calc(%upper / %length) >= $capitals.percentage) {
        if (%capitals.warnings. [ $+ [ $nick ] ] >= $capitals.warnings) {
          if ($nick isop $chan) mode $chan -o $nick
          ban $iif($capitals.ban.length, -u [ $+ [ $capitals.ban.length ] ]) $chan $nick $ban.type
          kick $chan $nick $capitals.ban.reason $iif($show.ban.length, ( $+ $duration($capitals.ban.length) ban))
          unset %capitals.warnings. [ $+ [ $nick ] ]
        }
        else {
          inc $iif($capitals.warning.expire, -u [ $+ [ $capitals.warning.expire ] ]) %capitals.warnings. [ $+ [ $nick ] ]
          kick $chan $nick $capitals.kick.reason
        }
      }
    }
  }
}

; *** Script /end
#protection.flood end

menu channel {
  [[Tools]]
  .channel Tools
  ..Swear $chr(9) $iif($group(#protection.swear) == on, On, Off): $iif($group(#protection.swear) == on, .disable, .enable) #protection.swear
  ..Flood/Kick $chr(9) $iif($group(#protection.flood) == on, On, Off): $iif($group(#protection.flood) == on, .disable, .enable) #protection.flood
  ..Clone $chr(9) $iif($group(#protection.clone) == on, On, Off): $iif($group(#protection.clone) == on, .disable, .enable) #protection.clone
}

Comments

Sign in to comment.
`Kazuma   -  Nov 03, 2005

Teh freak? Why does it kick someone if they swear, yet it says a swear word in the kick?

 Respond  
louie   -  Jun 06, 2005

why I can not get this to work?
i heva loaded, turn it on, but does not do anything

 Respond  
sarkar112   -  Nov 19, 2004

ur script rox

 Respond  
DeathfireD   -  Jan 24, 2004

thanks but ill stick with what I got. \"If its not broke then dont fix it\"

 Respond  
tye   -  Dec 31, 2003

that\'s what $strip does. $strip will also remove the colour numbers from colour codes where your method not.

 Respond  
DeathfireD   -  Dec 30, 2003

so when people use color in there text the code can take it out

 Respond  
Xenoxsis   -  Dec 22, 2003

Why do you do: $remove($1-,,,,,) instead of $strip($1-)?

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.