Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- on *:load:{
- ; Hier setze die Anzahl ein, wann die Banlist für dich in einem Chatroom voll
- ; ist. Beachte: Die Zahl sollte nicht die vorgegebene Mindestanzahl des Servers
- ; überschreiten.
- ; Bei 0 setzt der Bot so lange Banns, bis die Banlist vom Server aus nicht
- ; weiter geht.
- set %vollbann.gen 150
- ; Setze hier die Anzahl ein, wie viele Banns der Bot bei einer vollen Banlist
- ; entfernen soll.
- ; Beachte: Die Zahl sollte nicht höher sein als %vollbann...
- ; #Dies muss nur bearbeitet werden, wenn %vollbann höher als 0 ist#
- set %vollunbann.gen 50
- ; Willst du die Warns/Kicks/Modes/Banns/etc. speichern?
- ; (0 = Nein / 1 = Ja)
- set %log.gen 0
- ; Wie soll die Datei heißen, in der der Bot die Logs speichert?
- ; # Dies muss nur bearbeitet werden, wenn %log = 1 ist#
- set %log.dat kicklog
- ; Sollen OPs und Halfops und Voiced User ausgenommen von den Regeln sein und
- ; nicht verwarnt oder gekickt werden? (0 = Nein / 1 = Ja)
- set %except.set 1
- ; Wie lange sollen generell Banns (von anderen Operatoren in der Banlist
- ; bleiben, bis der Bot sie entfernen soll. (0 = Niemals entfernen / in Minuten
- ; angeben)
- set %bantime.gen 120
- ; Setz hier die Notiz ein, die der Bot schicken soll, wenn der Channel wegen
- ; Flood geschlossen wird. Setz nichts ein, damit der Bot keine Notiz schickt.
- set %flood.notice Channel has been locked due to flood, sorry for any inconvenience this may have caused.
- ; Wie soll die Kickmessage aussehen?
- ; Hinweis:
- ; - kcount = Anzahl der bisherigen Kicks
- ; - btime = Gebannte Zeit
- ; - chan = Channel Name
- ; - date = Aktuelle Zeit
- ; - rate = Grund, wieso gekickt wurde
- ; PS.: Du kannst gerne die Kickmessage nutzen, sie ist die Standartkickmessage.
- set %kickmessage rate :: date - Banned btime minutes ·kcount·
- set %kcount 0
- ; Willst du das folgende Sachen überprüft werden? (Wenn nicht, schreib eine 0,
- ; ansonsten eine 1)
- ; Hinweis: Wenn du Bad nicks oder Bad chans aktivierst, kann der Bot starke
- ; Lagprobleme bekommen.
- ; drones : Random drones.
- ; bnicks : Bad nicks.
- ; bchans : Bad chans.
- set %drones.gen 1
- set %bnicks.gen 1
- set %bchans.gen 1
- ; In welchen Chatrooms soll der Bot aggieren?
- ; Beachte: Der Bot ist auf maximal 5 Chatrooms ausgelegt. Eine höhere Anzahl
- ; könnte zu beachtlich hoher CPU-Belastung und Self-Lag vom Bot führen.
- ; Falls der Bot in keinen weiteren Channel aggieren soll, lösche bitte das #
- ; hinter dem %chan~. Ansonsten kann es zur Irrführung des Bots führen und
- ; wiederum zu beachtlichem Self-Lag.
- set %chan1 #icq_deutschland
- set %chan2 #students_german
- set %chan3 #bi_women_german
- set %chan4 #personals_german
- set %chan5 #christianity_german
- ; Setze nun bitte den Hilfschannel, wo die BotOperatoren sind, die auf den Bot
- ; Zugriff haben werden. (Falls es keinen gibt, lösche das #)
- set %helpchan #helpchan
- ; Setz bitte hier den Bot Control Channel ein. (Man sollte drauf achten, dass nicht
- ; jeder auf den Botchannel Zugriff hat!)
- set %controlchan #botop
- ; Soll der Bot bei voller Banlist auf den Service zugreifen und über den bannen?
- ; (1 = Ja / 0 = Nein)
- set %service.gen 0
- ; Bitte geb hier den Nick des Service für die Channelverwaltung an. Er wird
- ; gebraucht, wenn der Bot bei voller Banlist über den Service bannen muss.
- ; Beachte: Bearbeite dies nur, wenn %service.ban = 1 ist.
- set %service.nick ChanServ
- ; Bitte gib hier den Command für das KickBannen über den ChanServ ein.
- ; Beachte: Bearbeite dies nur, wenn %service.ban = 1 ist.
- set %service.cmd kickbann # $nick $grund
- ; Geb hier ein, wie ein User wegen seinem Fehlverhalten verwarnt werden soll.
- ; (MSG oder NOTICE)
- set %warn.gen NOTICE
- ; Available ban types:
- ; 0 : *!user@full.host.tld
- ; 1 : *!*user@full.host.tld
- ; 2 : *!*@full.host.tld
- ; 3 : *!*user@*.host.tld
- ; 4 : *!*@*.host.tld
- ; 5 : nick!user@full.host.tld
- ; 6 : nick!*user@full.host.tld
- ; 7 : nick!*@full.host.tld
- ; 8 : nick!*user@*.host.tld
- ; 9 : nick!*@*.host.tld
- ; 10: nick!*@*
- ;##########################
- ;# TEXT FLOOD #
- ;##########################
- ;## 1 ## Text flood (lines)
- ; Soll Textflood protected werden? (0 = Nein / 1 = Ja)
- set %ap.textl 1
- ; Beachte:
- ; %lines = Zeilen
- ; %time = Sekunden
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.textl 5
- set %time.ap.textl 2
- set %bantime.ap.textl 60
- set %warn.ap.textl 0
- set %kick.ap.textl 1
- set %ban.ap.textl 1
- set %hostmask.ap.textl 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.textl Text flood detected.
- set %warnmsg.ap.textl Warning: You've triggered text flood (lines) protection, slow down your typing.
- ;## 2 ## Notice flood (lines)
- ; Soll Noticeflood protected werden? (0 = Nein / 1 = Ja)
- set %ap.notcl 1
- ; Beachte:
- ; %lines = Zeilen
- ; %time = Sekunden
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.notcl 5
- set %time.ap.notcl 2
- set %bantime.ap.notcl 60
- set %warn.ap.notcl 0
- set %kick.ap.notcl 1
- set %ban.ap.notcl 1
- set %hostmask.ap.notcl 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.notcl Notice not allowed.
- set %warnmsg.ap.notcl Warning: you've triggered notice flood (lines) protection, slow down your notices.
- ;###################
- ;# TEXT #
- ;###################
- ;## 3 ## Caps flood.
- ; Soll Caps Flood protected werden? (0 = Nein / 1 = Ja)
- set %ap.caps 1
- ; Beachte:
- ; %lines = Prozent
- ; %long = Länger der Zeile
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.caps 60
- set %long.ap.caps 90
- set %bantime.ap.caps 120
- set %warn.ap.caps 0
- set %kick.ap.caps 0
- set %ban.ap.caps 1
- set %hostmask.ap.caps 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.caps Excess CAPS detected.
- set %warnmsg.ap.caps Warning: You've triggered caps flood protection, release your caps.
- ;## 4 ## Text repeating.
- ; Soll Repeating protected werden? (0 = Nein / 1 = Ja)
- set %ap.repeatl 1
- ; Beachte:
- ; %lines = Länge der Zeile
- ; %time = Zeit bis zur nächsten Erlaubnis der Wiederholung
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.repeatl 10
- set %time.ap.repeatl 900
- set %bantime.ap.repeatl 30
- set %warn.ap.repeatl 1
- set %kick.ap.repeatl 1
- set %ban.ap.repeatl 1
- set %hostmask.ap.repeatl 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.repeatl Text repeating detected.
- set %warnmsg.ap.repeatl Warning: You've triggered repeating protection, stop repeating.
- ;## 5 ## Letter repeating.
- ; Soll Letter repeating protected werden? (0 = Nein / 1 = Ja)
- set %ap.repeatc 1
- ; Beachte:
- ; %lines = Anzahl der wiederholten Buchstaben
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.repeatl 25
- set %bantime.ap.repeatl 60
- set %warn.ap.repeatl 0
- set %kick.ap.repeatl 1
- set %ban.ap.repeatl 1
- set %hostmask.ap.repeatl 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.repeatl Letter repeats detected, do not use excess consecutive letters.
- set %warnmsg.ap.repeatl Warning: You've triggered repeating protection, stop repeating.
- ;## 6 ## Antispam und Drone-Protection
- ; Soll Antispam und Dron-Protection aktiviert werden? (0 = Nein / 1 = Ja)
- set %ap.drones 1
- set %ap.spam 1
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %bantime.ap.drones 120
- set %ban.ap.drones 1
- set %hostmask.ap.drones 2
- set %kickmsg.ap.drones Possible Drone detected. If not /join %helpchan
- set %bantime.ap.spam 120
- set %ban.ap.spam 1
- set %hostmask.ap.spam 2
- set %kickmsg.ap.spam Possible Spam detected. If not /join %helpchan
- ;## 7 ## Badwords
- ; Soll Badwords protected werden? (0 = Nein / 1 = Ja)
- set %ap.swear 1
- ; Beachte:
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %bantime.ap.swear 120
- set %warn.ap.swear 1
- set %kick.ap.swear 1
- set %ban.ap.swear 1
- set %hostmask.ap.swear 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.swear Bad word detected.
- set %warnmsg.ap.swear Warning: You've triggered swearing protection, cussing is prohibited.
- ;###################
- ;# TAKEOVER #
- ;###################
- ;## 8 ## Mass-Deop
- ; Soll Mass-Deop protected werden? (0 = Nein / 1 = Ja)
- set %ap.massd 1
- ; Beachte:
- ; %lines = Anzahl der Deop's
- ; %time = Minuten
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.massd 5
- set %time.ap.massd 1
- set %bantime.ap.massd 30
- set %warn.ap.massd 1
- set %kick.ap.massd 0
- set %ban.ap.massd 1
- set %hostmask.ap.massd 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.massd Takeover detected. (Mass-Deop)
- set %warnmsg.ap.massd Warning: You've triggered the mass deop protection, do not repeat this action.
- ;## 9 ## Mass-Kick
- ; Soll Mass-Kick protected werden? (0 = Nein / 1 = Ja)
- set %ap.massk 0
- ; Beachte:
- ; %lines = Anzahl der Kicks
- ; %time = Minuten
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.massk 5
- set %time.ap.massk 1
- set %bantime.ap.massk 30
- set %warn.ap.massk 1
- set %kick.ap.massk 0
- set %ban.ap.massk 1
- set %hostmask.ap.massk 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.massk Takeover detected. (Mass-Kick)
- set %warnmsg.ap.massk Warning: You've triggered mass kick protection, do not repeat this action.
- ;## 10 ## Mass-Ban
- ; Soll Mass-Ban protected werden? (0 = Nein / 1 = Ja)
- set %ap.massb 0
- ; Beachte:
- ; %lines = Anzahl der Bann
- ; %time = Minuten
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.massb 15
- set %time.ap.massb 1
- set %bantime.ap.massb 30
- set %warn.ap.massb 1
- set %kick.ap.massb 0
- set %ban.ap.massb 1
- set %hostmask.ap.massb 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.massk Takeover detected. (Mass-Ban)
- set %warnmsg.ap.massk Warning: You've triggered mass ban protection, do not repeat this action.
- ;## 11 ## Channel-Limit
- ; Soll Channel-Limit aktiviert werden? (0 = Nein / 1 = Ja)
- set %ap.limit 1
- ; Beachte:
- ; %limit = Anzahl des erhöten Limit
- ; %timea = Zeit nach Join/Part zur nächsten Limiterhöherung
- set %limit.ap.limit 10
- set %timea.ap.limit 10
- ;#########################
- ;# MISCELLANEOUS FLOOD #
- ;#########################
- ;## 15 ## Join flood.
- ; Soll der Channel nach Join-Flood gelocked werden? (0 = Nein / 1 = Ja)
- set %ap.cjoin 1
- ; Beachte:
- ; %lines = Anzahl der Joins
- ; %time = Sekunden
- ; %mode = Modes die gesetzt werden sollen
- ; %time.mode = Wie lange sollen die Modes gesetzt bleiben (Sekunden)
- set %lines.ap.cjoin 10
- set %time.ap.cjoin 5
- set %mode.ap.cjoin +mi
- set %time.mode.ap.cjoin 60
- ;## 16 ## Revolving door.
- ; Soll Revolving door protected werden? (0 = Nein / 1 = Ja)
- set %ap.revdoor 1
- ; Soll der Channel nach Revolving door gelocked werden? (0 = Nein / 1 = Ja)
- set %ap.crevdoor 1
- ; Beachte:
- ; %lines = Sekunden zwischen der Revolving Door
- ; %mode = Modes die gesetzt werden sollen
- ; %time.mode = Wie lange sollen die Modes gesetzt bleiben (Sekunden)
- ; %bantime = In Minuten angeben
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.revdoor 3
- set %mode.ap.crevdoor +mi
- set %time.mode.ap.crevdoor 60
- set %bantime.ap.revdoor 60
- set %hostmask.ap.revdoor 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.revdoor Join-part revolving door attempt detected.
- set %ban.ap.revdoor 1
- ;## 17 ## Nickchange Flood
- ; Soll Nickchange Flood protected werden? (0 = Nein / 1 = Ja)
- set %ap.nickf 1
- ; Soll der Channel nach Nickchange Flood gelocked werden? (0 = Nein / 1 = Ja)
- set %ap.cnickf 1
- ; Beachte:
- ; %lines = Nickchange
- ; %time = Sekunden
- ; %mode = Modes die gesetzt werden sollen
- ; %time.mode = Wie lange sollen die Modes gesetzt bleiben (Sekunden)
- ; %bantime = In Minuten angeben
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %lines.ap.nickf 4
- set %time.ap.nickf 12
- set %mode.ap.cnickf +mN
- set %time.mode.ap.cnickf 60
- set %bantime.ap.nickf 60
- set %hostmask.ap.nickf 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.nickf Nick flood detected.
- set %ban.ap.nickf 1
- ;##################
- ;# MISCELLANEOUS #
- ;##################
- ;## 18 ## Badnicks
- ; Beachte:
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %bantime.ap.bnicks 30
- set %warn.ap.bnicks 0
- set %kick.ap.bnicks 0
- set %ban.ap.bnicks 1
- set %hostmask.ap.bnicks 10
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.bnicks Bad nick detected.
- set %warn.ap.bnicks Warning! you are using a bad nick, type /nick <nick> to change it.
- set %time.ap.bnicks 60
- ;## 19 ## Badchans
- ; Beachte:
- ; %bantime = In Minuten angeben
- ; %warn = Wie oft soll verwarnt werden
- ; %kick = Wie oft soll gekickt werden
- ; %ban = BITTE NICHT BEARBEITEN!
- ; %hostmask = Obenliegende Banmask's-Zahl eingeben
- set %bantime.ap.bchans 60
- set %warn.ap.bchans 0
- set %kick.ap.bchans 0
- set %ban.ap.bchans 1
- set %hostmask.ap.bchans 2
- ; Den Abschnitt hier nicht mehr bearbeiten !!
- set %kickmsg.ap.bchans Bad chan detected.
- set %warnmsg.ap.bchans Warning: You're on a bad chan, leave it or you'll be kicked from. You have %time.ap.bnicks seconds to leave it.
- set %time.ap.bchans 60
- ;#########################################
- ;# BOTNET FLOOD PROTECTION (MASS FLOODS) #
- ;#########################################
- ;Bitte diesen Abschnitt nicht bearbeiten!!
- set %lines.ap.botnet.flood 15
- set %time.ap.botnet.flood 7
- set %modes.ap.botnet.flood +mR
- set %time.modes.ap.botnet.flood 60
- set %bantime.ap.botnet.flood 120
- set %hostmask.ap.botnet.flood 2
- set %ban.ap.botnet.flood 1
- ; Nicht bearbeiten
- set %lines.ap.botnet.chars 100
- set %modes.ap.botnet.chars +mR
- set %time.modes.ap.botnet.chars 60
- set %hostmask.ap.botnet.chars 2
- set %bantime.ap.botnet.chars 120
- set %warn.ap.botnet.chars 1
- set %ban.ap.botnet.chars 1
- ; Nicht bearbeiten
- set %lines.ap.botnet.notice 7
- set %time.ap.botnet.notice 2
- set %modes.ap.botnet.notice +mR
- set %time.modes.ap.botnet.notice 60
- set %hostmask.ap.botnet.notice 2
- set %bantime.ap.botnet.notice 120
- set %ban.ap.botnet.notice 1
- ; Nicht bearbeiten
- set %lines.ap.botnet.notice.chars 100
- set %modes.ap.botnet.notice.chars +mR
- set %time.modes.ap.botnet.notice.chars 60
- set %hostmask.ap.botnet.notice.chars 2
- set %bantime.ap.botnet.notice.chars 120
- set %warn.ap.botnet.notice.chars 1
- set %ban.ap.botnet.notice.chars 1
- ; Nicht bearbeiten
- set %lines.ap.botnet.massjoin 6
- set %time.ap.botnet.massjoin 3
- set %modes.ap.botnet.massjoin +mi
- set %time.modes.ap.botnet.massjoin 60
- set %hostmask.ap.botnet.massjoin 2
- set %ban.ap.botnet.massjoin 1
- ; Nicht bearbeiten
- set %lines.ap.botnet.nickf 10
- set %time.ap.botnet.nickf 5
- set %modes.ap.botnet.nickf +mN
- set %time.modes.ap.botnet.nickf 60
- set %bantime.ap.botnet.nickf 120
- set %hostmask.ap.botnet.nickf 2
- set %ban.ap.botnet.nickf 1
- }
- ; ####################################################################################
- ; # Ab hier NICHTS mehr einstellen !! Hier beginnt der Code, wenn du es nicht kannst #
- ; # hier nicht rum basteln !! Lieber es lassen, als dass es dann nicht mehr #
- ; # funktioniert !! #
- ; ####################################################################################
- ; Automatisches Entbannen und kicken
- on *:ban:#: {
- var %i = 1
- while ($ialchan($banmask,#,%i).nick) {
- if ($v1 == $me) { mode # -b $banmask }
- if (%except.set == 1) {
- if ($v1 isop $chan) || ($v1 ishop $chan) {
- mode # -b $banmask
- }
- else {
- kick # $v1 Banned.
- if (%log.gen = 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $time Banned: $nick ( $+ $address($nick,2) $+ )
- }
- }
- }
- elseif (%except.set == 0) {
- kick # $v1 Banned.
- if (%log.gen = 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $time Banned: $nick ( $+ $address($nick,2) $+ )
- }
- }
- inc %i
- }
- var %x = $ibl(#,0)
- if (%x >= %vollbann.gen) {
- massentban $chan
- }
- var %bantime = $calc( %bantime.gen * 60 )
- .timer 1 %bantime mode # -b $banmask
- }
- alias massentban {
- var %entfernban = $calc( %vollbann.gen - %vollunbann.gen )
- var %chan = $ibl($1,0)
- while (%chan >= %entfernban) {
- mode $1 -bbbbbbbbbb $ibl($1,%chan) $ibl($1,$calc(%chan - 1)) $ibl($1,$calc(%chan - 2)) $ibl($1,$calc(%chan - 3)) $ibl($1,$calc(%chan - 4)) $ibl($1,$calc(%chan - 5)) $ibl($1,$calc(%chan - 6)) $ibl($1,$calc(%chan - 7)) $ibl($1,$calc(%chan - 8)) $ibl($1,$calc(%chan - 9))
- dec %chan 10
- }
- }
- ;connecten
- on *:connect:{
- join %chan1
- join %chan2
- join %chan3
- join %chan4
- join %chan5
- .timer 1 4 join %helpchan
- .timer 1 4 join %controlchan
- }
- ;text flood (lines)
- on *:text:*:#: {
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%ap.textl == 1) {
- inc -u [ $+ [ %time.ap.textl ] ] %fld. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%fld. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.textl) {
- inc %warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %warn.ap.textl) {
- %warn.gen $nick %warnmsg.ap.textl
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%kick.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %kick.ap.textl) {
- inc %kcount 1
- kick # $nick $replace(%kick.message,rate, $+ %kickmsg.ap.textl $+ ,date, $+ $fulldate $+ ,btime, $+ 0 $+ ,kcount, $+ %kcount $+ )
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- unset %warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ]
- }
- else {
- inc %ban.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%ban.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %ban.ap.textl) {
- unset %kick.ap.textl
- unset %warn.ap.textl
- inc %kcount 1
- mode # +b $address($nick,%hostmask.ap.textl)
- kick # $nick $replace(%kickmessage,rate,%kickmsg.ap.textl,date,$fulldate,btime,%bantime.ap.textl,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- writeini flooder.ini $address($nick,2) time $fulldate
- timer 1 %bantime.ap.textl mode # -b $address($nick,%hostmask.ap.textl)
- }
- }
- }
- }
- }
- :exceptop
- }
- on *:action:*:#: {
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%ap.textl == 1) {
- inc -u [ $+ [ %time.ap.textl ] ] %fld. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%fld. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.textl) {
- inc %warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %warn.ap.textl) {
- %warn.gen $nick %warnmsg.ap.textl
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%kick.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %kick.ap.textl) {
- inc %kcount 1
- kick # $nick $replace(%kick.message,rate, $+ %kickmsg.ap.textl $+ ,date, $+ $fulldate $+ ,btime, $+ 0 $+ ,kcount, $+ %kcount $+ )
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- unset %warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ]
- }
- else {
- inc %ban.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%ban.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %ban.ap.textl) {
- unset %kick.ap.textl
- unset %warn.ap.textl
- inc %kcount 1
- mode # +b $address($nick,%hostmask.ap.textl)
- kick # $nick $replace(%kickmessage,rate,%kickmsg.ap.textl,date,$fulldate,btime,%bantime.ap.textl,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- writeini flooder.ini $address($nick,2) time $fulldate
- timer 1 %bantime.ap.textl mode # -b $address($nick,%hostmask.ap.textl)
- }
- }
- }
- }
- }
- :exceptop
- }
- ;notice flood (lines)
- on *:notice:*:*: {
- inc -u [ $+ [ %time.ap.notcl ] ] %notice. [ $+ [ $wildsite ] ] 1
- if (%notice. [ $+ [ $wildsite ] ] >= %lines.ap.notcl) {
- var %i = 0
- while (%i < $comchan($nick,0)) {
- if (%except.set == 1 ) { if ($nick isop $comchan($nick,%i)) || ($nick ishop $comchan($nick,%i)) || ($nick isvoice $comchan($nick,%i)) { goto exceptop } }
- elseif (%ap.notcl == 1) {
- inc %warn.notice.flood. [ $+ [ $wildsite ] ] 1
- if (%warn.notice.flood. [ $+ [ $wildsite ] ] == %warn.ap.notcl) {
- %warn.gen $nick %warnmsg.ap.notcl
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Notice flood (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- ignore -u900 $address($nick,2)
- }
- else {
- inc %kick.notice.flood. [ $+ [ $wildsite ] ] 1
- if (%kick.notice.flood. [ $+ [ $wildsite ] ] == %kick.ap.notcl) {
- unset %warn.notice.flood. [ $+ [ $wildsite ] ]
- inc %kcount 1
- kick $comchan($nick,%i) $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.notcl,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Notice flood (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- ignore -u900 $address($nick,2)
- }
- else {
- inc %ban.notice.flood. [ $+ [ $wildsite ] ] 1
- if (%ban.notice.flood. [ $+ [ $wildsite ] ] >= %ban.ap.notcl) {
- unset %kick.notice.flood. [ $+ [ $wildsite ] ]
- inc %kcount 1
- mode $comchan($nick,%i) +b $address($nick,%hostmask.ap.notcl)
- kick $comchan($nick,%i) $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.notcl,date,$fulldate,btime,%bantime.ap.textl,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Notice flood (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.notcl * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- writeini flooder.ini $address($nick,%hostmask.ap.notcl) time $fulldate
- ignore -u900 $address($nick,%hostmask.ap.notcl)
- }
- }
- }
- }
- dec %i
- }
- }
- :exceptop
- }
- ;text flood (caps)
- on *:text:*:#:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%ap.caps == 1) {
- if ( $len($1-) >= %long.ap.caps ) {
- if ( $calc($regex($1-,/[A-Z]/g) / $len($1-) * 100) >= %lines.ap.caps ) {
- inc %warn.caps.flood. [ $+ [ $wildsite ] ] 1
- if (%warn.caps.flood. [ $+ [ $wildsite ] ] == %warn.ap.caps) {
- inc %kcount 1
- %warn.gen $nick %warnmsg.ap.caps
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.caps.flood. [ $+ [ $wildsite ] ] 1
- if (%kick.caps.flood. [ $+ [ $wildsite ] ] == %kick.ap.caps) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.caps,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.caps.flood. [ $+ [ $wildsite ] ] 1
- if (%ban.caps.flood. [ $+ [ $wildsite ] ] >= %ban.ap.caps) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.caps)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.caps,date,$fulldate,btime,%bantime.ap.caps,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.caps * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- writeini flooder.ini $address($nick,%hostmask.ap.caps) time $fulldate
- }
- }
- }
- }
- }
- }
- :exceptop
- }
- on *:action:*:#:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%ap.caps == 1) {
- if ( $len($1-) >= %long.ap.caps ) {
- if ( $calc($regex($1-,/[A-Z]/g) / $len($1-) * 100) >= %lines.ap.caps ) {
- inc %warn.caps.flood. [ $+ [ $wildsite ] ] 1
- if (%warn.caps.flood. [ $+ [ $wildsite ] ] == %warn.ap.caps) {
- inc %kcount 1
- %warn.gen $nick %warnmsg.ap.caps
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.caps.flood. [ $+ [ $wildsite ] ] 1
- if (%kick.caps.flood. [ $+ [ $wildsite ] ] == %kick.ap.caps) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.caps,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.caps.flood. [ $+ [ $wildsite ] ] 1
- if (%ban.caps.flood. [ $+ [ $wildsite ] ] >= %ban.ap.caps) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.caps)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.caps,date,$fulldate,btime,%bantime.ap.caps,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.caps * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- writeini flooder.ini $address($nick,%hostmask.ap.caps) time $fulldate
- }
- }
- }
- }
- }
- }
- :exceptop
- }
- ;repeating
- on *:text:*:#:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif ( %ap.repeatl == 1) {
- if ( $len($1-) > %lines.ap.repeatl ) {
- if ( %repeat.text. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == $1- ) {
- inc %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if ( %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.repeatl ) {
- %warn.gen $nick %warnmsg.ap.repeatl
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if ( %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.repeatl ) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.repeatl,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- unset %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ]
- }
- else {
- inc %ban.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if ( %ban.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.repeatl ) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.repeatl)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.repeatl,date,$fulldate,btime,%bantime.ap.repeatl,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.repeatl * 60 ) mode $chan -b $address($nick,%hostmask.ap.repeatl)
- unset %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ]
- }
- }
- }
- }
- else {
- set -u [ $+ [ %time.ap.repeatl ] ] %repeat.text. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] $1-
- }
- }
- }
- :exceptop
- }
- on *:action:*:#:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%ap.repeatl == 1) {
- if ( $len($1-) > %lines.ap.repeatl ) {
- if ( %repeat.text. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == $1- ) {
- inc %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if ( %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.repeatl ) {
- %warn.gen $nick %warnmsg.ap.repeatl
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if ( %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.repeatl ) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.repeatl,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- unset %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ]
- }
- else {
- inc %ban.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if ( %ban.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.repeatl ) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.repeatl)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.repeatl,date,$fulldate,btime,%bantime.ap.repeatl,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.repeatl * 60 ) mode $chan -b $address($nick,%hostmask.ap.repeatl)
- unset %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ]
- }
- }
- }
- }
- else {
- set -u [ $+ [ %time.ap.repeatl ] ] %repeat.text. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] $1-
- }
- }
- }
- :exceptop
- }
- ;letter repeat
- ;drone + spam protection
- on *:join:#:{
- if (%drones.gen == 1) {
- if (( $regex($fulladdress,/^([A-Z]{8})!~?(?!1)(?1)@(?!.*)/) ) || ( $regex($fulladdress,/^(*)!([A-Z]{[0-9]})@(*) )) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.drones)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.drones,date,$fulldate,btime,%bantime.ap.drones,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Drone/Spam Bot (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.drones * 60 ) mode $chan -b $address($nick,%hostmask.ap.drones)
- }
- }
- }
- on *:text:*:#: {
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%drones.gen == 1) {
- if (decode isin $1-) || (xxx isin $1-) || (porn isin $1-) || (free isin $1-) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.spam)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.spam,date,$fulldate,btime,%bantime.ap.spam,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Drone/Spam Bot (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.spam * 60 ) mode $chan -b $address($nick,%hostmask.ap.spam)
- }
- }
- :exceptop
- }
- on *:action:*:#: {
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%drones.gen == 1) {
- if (decode isin $1-) || (xxx isin $1-) || (porn isin $1-) || (free isin $1-) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.spam)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.spam,date,$fulldate,btime,%bantime.ap.spam,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Drone/Spam Bot (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.spam * 60 ) mode $chan -b $address($nick,%hostmask.ap.spam)
- }
- }
- :exceptop
- }
- ;swearing
- on *:text:*:#: {
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%ap.swear == 1) {
- if (fuck isin $1-) || (bastard isin $1-) || (cock isin $1-) || (cunt isin $1-) || (ommak isin $1-) || (fag isin $1-) || (shit isin $1-) || (asshole isin $1-) || (bitch isin $1-) || (pussy isin $1-) || (whore isin $1-) || (slut isin $1-) || (dickhead isin $1-) || (horny isin $1-) || (shithead isin $1-) || (fagget isin $1-) || (dick isin $1-) || (fag isin $1-) || (fukker isin $1-) || (fuk isin $1-) || (penis isin $1-) {
- inc %warn.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%warn.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.swear) {
- %warn.gen $nick %warnmsg.ap.swear
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%kick.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.swear) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.swear,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%ban.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.swear) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.swear)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.swear,date,$fulldate,btime,%bantime.ap.swear,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.swear * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- }
- }
- }
- }
- }
- :exceptop
- }
- on *:action:*:#:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%ap.swear == 1) {
- if (fuck isin $1-) || (bastard isin $1-) || (cock isin $1-) || (cunt isin $1-) || (ommak isin $1-) || (fag isin $1-) || (shit isin $1-) || (asshole isin $1-) || (bitch isin $1-) || (pussy isin $1-) || (whore isin $1-) || (slut isin $1-) || (dickhead isin $1-) || (horny isin $1-) || (shithead isin $1-) || (fagget isin $1-) || (dick isin $1-) || (fag isin $1-) || (fukker isin $1-) || (fuk isin $1-) || (penis isin $1-) {
- inc %warn.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%warn.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.swear) {
- %warn.gen $nick %warnmsg.ap.swear
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%kick.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.swear) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.swear,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%ban.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.swear) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.swear)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.swear,date,$fulldate,btime,%bantime.ap.swear,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.swear * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- }
- }
- }
- }
- }
- :exceptop
- }
- ;takeover
- on *:deop:#: {
- if (%ap.massd == 1) {
- inc -u [ $+ [ %time.ap.massd ] ] %deop.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%deop.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.massd) {
- inc %warn.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%warn.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.massd) {
- inc %kcount 1
- %warn.gen $nick %warnmsg.ap.massd
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%kick.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.massd) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massd,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%ban.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.massd) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.massd)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massd,date,$fulldate,btime,%bantime.ap.massd,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.massd * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- }
- }
- }
- }
- }
- }
- on *:KICK:*: {
- if (%ap.massk == 1) {
- inc -u [ $+ [ %time.ap.massk ] ] %kick.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%kick.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.massk) {
- inc %warn.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%warn.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.massk) {
- inc %kcount 1
- %warn.gen $nick %warnmsg.ap.massk
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%kick.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.massk) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massk,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%ban.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.massk) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.massk)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massk,date,$fulldate,btime,%bantime.ap.massk,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.massk * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- }
- }
- }
- }
- }
- }
- on *:ban:#: {
- if (%ap.massb == 1) {
- inc -u [ $+ [ %time.ap.massb ] ] %ban.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if (%ban.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.massb) {
- inc %warn.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%warn.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.massb) {
- inc %kcount 1
- %warn.gen $nick %warnmsg.ap.massb
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%kick.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.massb) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massb,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%ban.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.massb) {
- inc %kcount 1
- mode $chan +b $address($nick,%hostmask.ap.massb)
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massb,date,$fulldate,btime,%bantime.ap.massb,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.massb * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- }
- }
- }
- }
- }
- }
- ;channellimit
- ;joinflood
- on *:join:#: {
- if (%ap.cjoin == 1) {
- inc -u [ $+ [ %time.ap.cjoin ] ] %floodjoin. [ $+ [ $chan ] ] 1
- if (%floodjoin. [ $+ [ $chan ] ] >= %lines.ap.cjoin) {
- mode $chan %mode.ap.cjoin
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Channel has been locked due to flood, sorry for any inconvenience this may have caused.
- }
- %warn.gen $chan %flood.notice
- timer 1 %time.mode.ap.cjoin mode $chan $replace(%mode.ap.cjoin,+,-)
- }
- }
- }
- ;revolving door
- on *:part:#:{
- if (%ap.revdoor == 1) {
- inc -u5 %revolving.door. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if ( %revolving.door. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.revdoor ) {
- mode $chan +b [ $+ [ %mode.ap.crevdoor ] ] $address($nick,2)
- kick $chan $nick $replace(%kickmessage,rate,%kickmsg.ap.revdoor,date,$fulldate,btime,%bantime.ap.revdoor,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Revolving door (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- if (%ap.crevdoor == 1) {
- mode $chan %mode.ap.crevdoor
- .timer 1 %time.mode.ap.crevdoor $replace(%mode.ap.crevdoor,+,-)
- %warn.gen $chan %flood.notice
- }
- .timer 1 $calc( %bantime.ap.revdoor * 60 )
- writeini tsunami $address($readini(joinflood.ini,$chan,%x),2) Time $fulldate
- }
- }
- }
- on *:join:#:{
- if (%ap.revdoor == 1) {
- inc -u5 %revolving.door. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
- if ( %revolving.door. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.revdoor ) {
- mode $chan +b [ $+ [ %mode.ap.crevdoor ] ] $address($nick,2)
- kick $chan $nick $replace(%kickmessage,rate,%kickmsg.ap.revdoor,date,$fulldate,btime,%bantime.ap.revdoor,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Revolving door (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- if (%ap.crevdoor == 1) {
- mode $chan %mode.ap.crevdoor
- .timer 1 %time.mode.ap.crevdoor $replace(%mode.ap.crevdoor,+,-)
- %warn.gen $chan %flood.notice
- }
- .timer 1 $calc( %bantime.ap.revdoor * 60 ) mode $chan -b $address($nick,2)
- writeini tsunami $address($readini(joinflood.ini,$chan,%x),2) Time $fulldate
- }
- }
- }
- ;nickchange flood
- on ^*:nick:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- elseif (%ap.nickf == 1) {
- inc -u [ $+ [ %time.ap.nickf ] ] %nick.flood. [ $+ [ $wildsite ] ] 1
- if ( %nick.flood. [ $+ [ $wildsite ] ] == %lines.ap.nickf ) {
- var %i = 0
- while (%i < $comchan($newnick,0)) {
- inc %kcount 1
- mode $comchan($newnick,%i) +b [ $+ [ %mode.ap.cnickf ] ] $address($newnick,%hostmask.ap.nickf)
- kick $comchan($newnick,%i) $nick $replace(%kickmessage,rate,%kickmsg.ap.cnickf,date,$fulldate,btime,%bantime.ap.cnickf,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Nickchangeflood (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- if (%ap.cnickf == 1) {
- mode $chan %mode.ap.cnickf
- .timer 1 %time.mode.ap.cnickf $replace(%mode.ap.cnickf,+,-)
- %warn.gen $chan %flood.notice
- }
- .timer 1 $calc( %bantime.ap.nickf * 60 ) mode $comchan($newnick,%i) -b $address($newnick,%hostmask.ap.nickf)
- inc %i
- }
- }
- }
- :exceptop
- }
- ;badnick
- on *:join:#:{
- if (%bnicks.gen == 1) {
- if (porno isin $nick) || (horny isin $nick) || (horney isin $nick) || (fuck isin $nick) || (asshole isin $nick) || (dick isin $nick) || (bitch isin $nick) || (fagget isin $nick) || (shithead isin $nick) || (shitter isin $nick) || (penis isin $nick) || (pussy isin $nick) || (fukker isin $nick) {
- inc %warn.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%warn.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.bnicks) {
- inc %kcount 1
- %warn.gen $nick %warnmsg.ap.bnicks
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 %time.ap.bnicks bnickwarn $nick $chan
- }
- else {
- inc %kick.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%kick.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.bnicks) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.bnicks,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%ban.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.bnicks) {
- inc %kcount 1
- if (%hostmask.ap.bnicks == 10) {
- mode $chan +b $nick
- }
- else {
- mode $chan +b $address($nick,%hostmask.ap.bnicks)
- }
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.bnicks,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.bnicks * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- }
- }
- }
- }
- }
- }
- alias bnickwarn {
- if ($2 ison $3) {
- inc %kick.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%kick.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.bnicks) {
- inc %kcount 1
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.bnicks,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
- if (%ban.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.bnicks) {
- inc %kcount 1
- if (%hostmask.ap.bnicks == 10) {
- mode $chan +b $nick
- }
- else {
- mode $chan +b $address($nick,%hostmask.ap.bnicks)
- }
- kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.bnicks,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- timer 1 $calc( %bantime.ap.bnicks * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
- }
- }
- }
- }
- ;badchan
- on *:join:#: {
- if (%bchans.gen == 1) {
- whois $nick
- }
- }
- raw 319:*: {
- if ((porn isin $3-) || (sex isin $3-) || (warez isin $3-)) {
- var %t = 0
- while (%t < $comchan($2,0)) {
- if ($me isop $comchan($2,%t)) {
- inc %warn.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ] 1
- if (%warn.ap.bchans == %warn.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ]) {
- %warn.gen $2 %warn.ap.bchans
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badchan (Warn): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %kick.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ] 1
- if (%kick.ap.bchans == %kick.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ]) {
- inc %kcount 1
- kick $comchan($2,%t) $2 $replace(%kick.message,rate,%kickmsg.ap.bchans,date,$fulldate,btime,0,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badchan (Kick): $nick ( $+ $address($nick,2) $+ )
- }
- }
- else {
- inc %ban.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ] 1
- if (%ban.ap.bchans == %ban.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ]) {
- inc %kcount 1
- mode $comchan($2,%t) +b $address($2,2)
- kick $comchan($2,%t) $2 $replace(%kick.message,rate,%kickmsg.ap.bchans,date,$fulldate,btime,%bantime.ap.bchans,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badchan (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- }
- }
- }
- }
- inc %t
- }
- }
- }
- ;botnet flood
- on *:text:*:#: {
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- inc -u [ $+ [ %time.ap.botnet.flood ] ] %botnet.flood. [ $+ [ $chan ] ] 1
- writeini botnetflood.ini $chan %botnet.flood. [ $+ [ $chan ] ] $nick
- if ( %botnet.flood. [ $+ [ $chan ] ] >= %time.ap.botnet.flood ) {
- mode $chan %modes.ap.botnet.flood
- %warn.gen $chan %flood.notice
- .timer 1 %time.modes.ap.botnet.flood mode $chan $replace(%modes.ap.botnet.flood,+,-)
- var %x = %botnet.flood. [ $+ [ $chan ] ]
- while (%x) {
- mode $chan +b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.flood)
- kick $chan $readini(botnetflood.ini,$chan,%x) $replace(%kickmessage,rate,%kickmsg.ap.cljoin,date,$fulldate,btime,%bantime.ap.cljoin,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet (Flood): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.botnet.flood * 60 ) mode $chan -b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.flood)
- writeini botnet.ini $address($readini(botnetflood.ini,$chan,%x),2) time $fulldate
- dec %x
- }
- }
- :exceptop
- }
- on *:action:*:#:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- inc -u [ $+ [ %time.ap.botnet.flood ] ] %botnet.flood. [ $+ [ $chan ] ] 1
- writeini botnetflood.ini $chan %botnet.flood. [ $+ [ $chan ] ] $nick
- if ( %botnet.flood. [ $+ [ $chan ] ] >= %time.ap.botnet.flood ) {
- mode $chan %modes.ap.botnet.flood
- %warn.gen $chan %flood.notice
- .timer 1 %time.modes.ap.botnet.flood mode $chan $replace(%modes.ap.botnet.flood,+,-)
- var %x = %botnet.flood. [ $+ [ $chan ] ]
- while (%x) {
- mode $chan +b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.flood)
- kick $chan $readini(botnetflood.ini,$chan,%x) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.chars,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet (Flood): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.botnet.flood * 60 ) mode $chan -b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.flood)
- writeini botnet.ini $address($readini(botnetflood.ini,$chan,%x),2) time $fulldate
- dec %x
- }
- }
- :exceptop
- }
- ;botnet chars
- on *:text:*:#: {
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- if ( $len($1-) == %lines.ap.botnet.chars ) {
- inc -u3 %botnet.chars. [ $+ [ $chan ] ] 1
- writeini botnetflood.ini $chan %botnet.chars. [ $+ [ $chan ] ] $nick
- if ( %botnet.chars. [ $+ [ $chan ] ] >= 5 ) {
- mode $chan %modes.ap.botnet.chars
- %warn.gen $chan %flood.notice
- .timer 1 %time.modes.ap.botnet.chars mode $chan $replace(%modes.ap.botnet.chars,+,-)
- var %x = %botnet.chars. [ $+ [ $chan ] ]
- while (%x) {
- mode $chan +b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.chars)
- kick $chan $readini(botnetflood.ini,$chan,%x) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.chars,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Chars (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.botnet.chars * 60 ) mode $chan -b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.chars)
- writeini botnet.ini $address($readini(botnetflood.ini,$chan,%x),2) time $fulldate
- dec %x
- }
- }
- }
- :exceptop
- }
- on *:action:*:#:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- if ( $len($1-) == %lines.ap.botnet.chars ) {
- inc -u3 %botnet.chars. [ $+ [ $chan ] ] 1
- writeini botnetflood.ini $chan %botnet.chars. [ $+ [ $chan ] ] $nick
- if ( %botnet.chars. [ $+ [ $chan ] ] >= 5 ) {
- mode $chan %modes.ap.botnet.chars
- %warn.gen $chan %flood.notice
- .timer 1 %time.modes.ap.botnet.chars mode $chan $replace(%modes.ap.botnet.chars,+,-)
- var %x = %botnet.chars. [ $+ [ $chan ] ]
- while (%x) {
- mode $chan +b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.chars)
- kick $chan $readini(botnetflood.ini,$chan,%x) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.chars,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Chars (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.botnet.chars * 60 ) mode $chan -b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.chars)
- writeini botnet.ini $address($readini(botnetflood.ini,$chan,%x),2) time $fulldate
- dec %x
- }
- }
- }
- :exceptop
- }
- ;botnet noticeflood
- on *:notice:*:*: {
- inc -u [ $+ [ %time.ap.botnet.notice ] ] %botnet.notice. [ $+ [ $wildsite ] ] 1
- if ( %botnet.notice. [ $+ [ $wildsite ] ] >= %lines.ap.botnet.notice ) {
- ignore -u900 $address($nick,2)
- var %i = 0
- while (%i < $comchan($nick,0)) {
- if (%except.set == 1 ) { if ($nick isop $comchan($nick,%i)) || ($nick ishop $comchan($nick,%i)) || ($nick isvoice $comchan($nick,%i)) { goto exceptop } }
- inc %kcount 1
- mode $comchan($nick,%i) +b $address($nick,%hostmask.ap.botnet.notice)
- kick $comchan($nick,%i) $nick $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.notice,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Noticeflood (Kickban): $nick ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.botnet.notice * 60 ) mode $comchan($nick,%i) -b $address($nick,%hostmask.ap.botnet.notice)
- inc %i
- }
- }
- :exceptop
- }
- ;botnet massjoin
- on *:join:#: {
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- inc -u [ $+ [ %time.ap.massjoin ] ] %botnet.join. [ $+ [ $chan ] ] 1
- if (%botnet.join. [ $+ [ $chan ] ] >= %lines.ap.massjoin ) {
- mode $chan %mode.ap.massjoin
- if ($readini(botnetjoin.ini,$address($nick,2),nick)) {
- inc %kcount 2
- mode $chan +b $address($nick,%hostmask.ap.botnet.massjoin)
- kick $chan $nick $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.massjoin,kcount,%kcount)
- kick $chan $readini(botnetjoin.ini,$address($nick,2),nick) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.massjoin,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Massjoin (Kickban): $nick ( $+ $address($nick,2) $+ )
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Massjoin (Kickban): $readini(botnetjoin.ini,$address($nick,2),nick) ( $+ $address($nick,2) $+ )
- }
- writeini botnet.ini $address($nick,2) time $fulldate
- }
- else {
- writeini botnetjoin.ini $address($nick,2) nick $nick
- }
- .timer 1 %time.mode.ap.massjoin mode $chan $replace(%mode.ap.massjoin,+,-)
- %warn.gen $chan %flood.notice
- }
- :exceptop
- }
- ;botnet nickchange
- on ^*:nick:{
- if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
- inc -u [ $+ [ %time.ap.botnet.nickf ] ] %botnet.nick.flood. [ $+ [ $chan ] ] 1
- if ( %botnet.nick.flood. [ $+ [ $wildsite ] ] == %lines.ap.botnet.nickf ) {
- var %i = 0
- while (%i < $comchan($newnick,0)) {
- mode $comchan($newnick,0) %modes.ap.botnet.nickf
- inc %kcount 1
- if ($readini(botnetnick.ini,$address($nick,2),nick)) {
- mode $chan +b $address($nick,%hostmask.ap.botnet.nickf)
- kick $chan $nick $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.nickf,kcount,%kcount)
- kick $chan $readini(botnetjoin.ini,$address($nick,2),nick) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.nickf,kcount,%kcount)
- if (%log.gen == 1) {
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Massjoin (Kickban): $nick ( $+ $address($nick,2) $+ )
- writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Massjoin (Kickban): $readini(botnetjoin.ini,$address($nick,2),nick) ( $+ $address($nick,2) $+ )
- }
- .timer 1 $calc( %bantime.ap.botnet.nickf * 60 ) mode $chan -b $address($nick,%hostmask.ap.botnet.nickf)
- writeini botnet.ini $address($nick,2) time $fulldate
- }
- else {
- writeini botnetjoin.ini $address($nick,2) nick $nick
- }
- .timer 1 mode $comchan($newnick,0) $replace(%time.modes.ap.botnet.nickf,+,-)
- %warn.gen $comchan($newnick,0) %flood.notice
- inc %i
- }
- }
- :exceptop
- }
Add Comment
Please, Sign In to add comment