Guest User

Untitled

a guest
Jan 25th, 2018
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 62.33 KB | None | 0 0
  1. on *:load:{
  2. ; Hier setze die Anzahl ein, wann die Banlist für dich in einem Chatroom voll
  3. ; ist. Beachte: Die Zahl sollte nicht die vorgegebene Mindestanzahl des Servers
  4. ; überschreiten.
  5. ; Bei 0 setzt der Bot so lange Banns, bis die Banlist vom Server aus nicht
  6. ; weiter geht.
  7. set %vollbann.gen 150
  8.  
  9. ; Setze hier die Anzahl ein, wie viele Banns der Bot bei einer vollen Banlist
  10. ; entfernen soll.
  11. ; Beachte: Die Zahl sollte nicht höher sein als %vollbann...
  12. ; #Dies muss nur bearbeitet werden, wenn %vollbann höher als 0 ist#
  13. set %vollunbann.gen 50
  14.  
  15. ; Willst du die Warns/Kicks/Modes/Banns/etc. speichern?
  16. ; (0 = Nein / 1 = Ja)
  17. set %log.gen 0
  18.  
  19. ; Wie soll die Datei heißen, in der der Bot die Logs speichert?
  20. ; # Dies muss nur bearbeitet werden, wenn %log = 1 ist#
  21. set %log.dat kicklog
  22.  
  23. ; Sollen OPs und Halfops und Voiced User ausgenommen von den Regeln sein und
  24. ; nicht verwarnt oder gekickt werden? (0 = Nein / 1 = Ja)
  25. set %except.set 1
  26.  
  27. ; Wie lange sollen generell Banns (von anderen Operatoren in der Banlist
  28. ; bleiben, bis der Bot sie entfernen soll. (0 = Niemals entfernen / in Minuten
  29. ; angeben)
  30. set %bantime.gen 120
  31.  
  32. ; Setz hier die Notiz ein, die der Bot schicken soll, wenn der Channel wegen
  33. ; Flood geschlossen wird. Setz nichts ein, damit der Bot keine Notiz schickt.
  34. set %flood.notice Channel has been locked due to flood, sorry for any inconvenience this may have caused.
  35.  
  36. ; Wie soll die Kickmessage aussehen?
  37. ; Hinweis:
  38. ; - kcount = Anzahl der bisherigen Kicks
  39. ; - btime = Gebannte Zeit
  40. ; - chan = Channel Name
  41. ; - date = Aktuelle Zeit
  42. ; - rate = Grund, wieso gekickt wurde
  43. ; PS.: Du kannst gerne die Kickmessage nutzen, sie ist die Standartkickmessage.
  44. set %kickmessage rate :: date - Banned btime minutes ·kcount·
  45. set %kcount 0
  46.  
  47. ; Willst du das folgende Sachen überprüft werden? (Wenn nicht, schreib eine 0,
  48. ; ansonsten eine 1)
  49. ; Hinweis: Wenn du Bad nicks oder Bad chans aktivierst, kann der Bot starke
  50. ; Lagprobleme bekommen.
  51. ; drones : Random drones.
  52. ; bnicks : Bad nicks.
  53. ; bchans : Bad chans.
  54. set %drones.gen 1
  55. set %bnicks.gen 1
  56. set %bchans.gen 1
  57.  
  58. ; In welchen Chatrooms soll der Bot aggieren?
  59. ; Beachte: Der Bot ist auf maximal 5 Chatrooms ausgelegt. Eine höhere Anzahl
  60. ; könnte zu beachtlich hoher CPU-Belastung und Self-Lag vom Bot führen.
  61. ; Falls der Bot in keinen weiteren Channel aggieren soll, lösche bitte das #
  62. ; hinter dem %chan~. Ansonsten kann es zur Irrführung des Bots führen und
  63. ; wiederum zu beachtlichem Self-Lag.
  64. set %chan1 #icq_deutschland
  65. set %chan2 #students_german
  66. set %chan3 #bi_women_german
  67. set %chan4 #personals_german
  68. set %chan5 #christianity_german
  69.  
  70. ; Setze nun bitte den Hilfschannel, wo die BotOperatoren sind, die auf den Bot
  71. ; Zugriff haben werden. (Falls es keinen gibt, lösche das #)
  72. set %helpchan #helpchan
  73.  
  74. ; Setz bitte hier den Bot Control Channel ein. (Man sollte drauf achten, dass nicht
  75. ; jeder auf den Botchannel Zugriff hat!)
  76. set %controlchan #botop
  77.  
  78. ; Soll der Bot bei voller Banlist auf den Service zugreifen und über den bannen?
  79. ; (1 = Ja / 0 = Nein)
  80. set %service.gen 0
  81.  
  82. ; Bitte geb hier den Nick des Service für die Channelverwaltung an. Er wird
  83. ; gebraucht, wenn der Bot bei voller Banlist über den Service bannen muss.
  84. ; Beachte: Bearbeite dies nur, wenn %service.ban = 1 ist.
  85. set %service.nick ChanServ
  86.  
  87. ; Bitte gib hier den Command für das KickBannen über den ChanServ ein.
  88. ; Beachte: Bearbeite dies nur, wenn %service.ban = 1 ist.
  89. set %service.cmd kickbann # $nick $grund
  90.  
  91. ; Geb hier ein, wie ein User wegen seinem Fehlverhalten verwarnt werden soll.
  92. ; (MSG oder NOTICE)
  93. set %warn.gen NOTICE
  94.  
  95. ; Available ban types:
  96. ; 0 : *!user@full.host.tld
  97. ; 1 : *!*user@full.host.tld
  98. ; 2 : *!*@full.host.tld
  99. ; 3 : *!*user@*.host.tld
  100. ; 4 : *!*@*.host.tld
  101. ; 5 : nick!user@full.host.tld
  102. ; 6 : nick!*user@full.host.tld
  103. ; 7 : nick!*@full.host.tld
  104. ; 8 : nick!*user@*.host.tld
  105. ; 9 : nick!*@*.host.tld
  106. ; 10: nick!*@*
  107.  
  108. ;##########################
  109. ;# TEXT FLOOD #
  110. ;##########################
  111.  
  112.  
  113. ;## 1 ## Text flood (lines)
  114.  
  115. ; Soll Textflood protected werden? (0 = Nein / 1 = Ja)
  116. set %ap.textl 1
  117.  
  118. ; Beachte:
  119. ; %lines = Zeilen
  120. ; %time = Sekunden
  121. ; %bantime = In Minuten angeben
  122. ; %warn = Wie oft soll verwarnt werden
  123. ; %kick = Wie oft soll gekickt werden
  124. ; %ban = BITTE NICHT BEARBEITEN!
  125. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  126.  
  127. set %lines.ap.textl 5
  128. set %time.ap.textl 2
  129. set %bantime.ap.textl 60
  130. set %warn.ap.textl 0
  131. set %kick.ap.textl 1
  132. set %ban.ap.textl 1
  133. set %hostmask.ap.textl 2
  134.  
  135. ; Den Abschnitt hier nicht mehr bearbeiten !!
  136. set %kickmsg.ap.textl Text flood detected.
  137. set %warnmsg.ap.textl Warning: You've triggered text flood (lines) protection, slow down your typing.
  138.  
  139.  
  140. ;## 2 ## Notice flood (lines)
  141.  
  142. ; Soll Noticeflood protected werden? (0 = Nein / 1 = Ja)
  143. set %ap.notcl 1
  144.  
  145. ; Beachte:
  146. ; %lines = Zeilen
  147. ; %time = Sekunden
  148. ; %bantime = In Minuten angeben
  149. ; %warn = Wie oft soll verwarnt werden
  150. ; %kick = Wie oft soll gekickt werden
  151. ; %ban = BITTE NICHT BEARBEITEN!
  152. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  153.  
  154. set %lines.ap.notcl 5
  155. set %time.ap.notcl 2
  156. set %bantime.ap.notcl 60
  157. set %warn.ap.notcl 0
  158. set %kick.ap.notcl 1
  159. set %ban.ap.notcl 1
  160. set %hostmask.ap.notcl 2
  161.  
  162. ; Den Abschnitt hier nicht mehr bearbeiten !!
  163. set %kickmsg.ap.notcl Notice not allowed.
  164. set %warnmsg.ap.notcl Warning: you've triggered notice flood (lines) protection, slow down your notices.
  165.  
  166. ;###################
  167. ;# TEXT #
  168. ;###################
  169.  
  170.  
  171. ;## 3 ## Caps flood.
  172. ; Soll Caps Flood protected werden? (0 = Nein / 1 = Ja)
  173. set %ap.caps 1
  174.  
  175. ; Beachte:
  176. ; %lines = Prozent
  177. ; %long = Länger der Zeile
  178. ; %bantime = In Minuten angeben
  179. ; %warn = Wie oft soll verwarnt werden
  180. ; %kick = Wie oft soll gekickt werden
  181. ; %ban = BITTE NICHT BEARBEITEN!
  182. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  183.  
  184. set %lines.ap.caps 60
  185. set %long.ap.caps 90
  186. set %bantime.ap.caps 120
  187. set %warn.ap.caps 0
  188. set %kick.ap.caps 0
  189. set %ban.ap.caps 1
  190. set %hostmask.ap.caps 2
  191.  
  192. ; Den Abschnitt hier nicht mehr bearbeiten !!
  193. set %kickmsg.ap.caps Excess CAPS detected.
  194. set %warnmsg.ap.caps Warning: You've triggered caps flood protection, release your caps.
  195.  
  196.  
  197. ;## 4 ## Text repeating.
  198. ; Soll Repeating protected werden? (0 = Nein / 1 = Ja)
  199. set %ap.repeatl 1
  200.  
  201. ; Beachte:
  202. ; %lines = Länge der Zeile
  203. ; %time = Zeit bis zur nächsten Erlaubnis der Wiederholung
  204. ; %bantime = In Minuten angeben
  205. ; %warn = Wie oft soll verwarnt werden
  206. ; %kick = Wie oft soll gekickt werden
  207. ; %ban = BITTE NICHT BEARBEITEN!
  208. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  209.  
  210. set %lines.ap.repeatl 10
  211. set %time.ap.repeatl 900
  212. set %bantime.ap.repeatl 30
  213. set %warn.ap.repeatl 1
  214. set %kick.ap.repeatl 1
  215. set %ban.ap.repeatl 1
  216. set %hostmask.ap.repeatl 2
  217.  
  218. ; Den Abschnitt hier nicht mehr bearbeiten !!
  219. set %kickmsg.ap.repeatl Text repeating detected.
  220. set %warnmsg.ap.repeatl Warning: You've triggered repeating protection, stop repeating.
  221.  
  222. ;## 5 ## Letter repeating.
  223. ; Soll Letter repeating protected werden? (0 = Nein / 1 = Ja)
  224. set %ap.repeatc 1
  225.  
  226. ; Beachte:
  227. ; %lines = Anzahl der wiederholten Buchstaben
  228. ; %bantime = In Minuten angeben
  229. ; %warn = Wie oft soll verwarnt werden
  230. ; %kick = Wie oft soll gekickt werden
  231. ; %ban = BITTE NICHT BEARBEITEN!
  232. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  233.  
  234. set %lines.ap.repeatl 25
  235. set %bantime.ap.repeatl 60
  236. set %warn.ap.repeatl 0
  237. set %kick.ap.repeatl 1
  238. set %ban.ap.repeatl 1
  239. set %hostmask.ap.repeatl 2
  240.  
  241. ; Den Abschnitt hier nicht mehr bearbeiten !!
  242. set %kickmsg.ap.repeatl Letter repeats detected, do not use excess consecutive letters.
  243. set %warnmsg.ap.repeatl Warning: You've triggered repeating protection, stop repeating.
  244.  
  245. ;## 6 ## Antispam und Drone-Protection
  246. ; Soll Antispam und Dron-Protection aktiviert werden? (0 = Nein / 1 = Ja)
  247. set %ap.drones 1
  248. set %ap.spam 1
  249.  
  250. ; Den Abschnitt hier nicht mehr bearbeiten !!
  251. set %bantime.ap.drones 120
  252. set %ban.ap.drones 1
  253. set %hostmask.ap.drones 2
  254. set %kickmsg.ap.drones Possible Drone detected. If not /join %helpchan
  255. set %bantime.ap.spam 120
  256. set %ban.ap.spam 1
  257. set %hostmask.ap.spam 2
  258. set %kickmsg.ap.spam Possible Spam detected. If not /join %helpchan
  259.  
  260. ;## 7 ## Badwords
  261. ; Soll Badwords protected werden? (0 = Nein / 1 = Ja)
  262. set %ap.swear 1
  263.  
  264. ; Beachte:
  265. ; %bantime = In Minuten angeben
  266. ; %warn = Wie oft soll verwarnt werden
  267. ; %kick = Wie oft soll gekickt werden
  268. ; %ban = BITTE NICHT BEARBEITEN!
  269. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  270.  
  271. set %bantime.ap.swear 120
  272. set %warn.ap.swear 1
  273. set %kick.ap.swear 1
  274. set %ban.ap.swear 1
  275. set %hostmask.ap.swear 2
  276.  
  277. ; Den Abschnitt hier nicht mehr bearbeiten !!
  278. set %kickmsg.ap.swear Bad word detected.
  279. set %warnmsg.ap.swear Warning: You've triggered swearing protection, cussing is prohibited.
  280.  
  281. ;###################
  282. ;# TAKEOVER #
  283. ;###################
  284.  
  285. ;## 8 ## Mass-Deop
  286. ; Soll Mass-Deop protected werden? (0 = Nein / 1 = Ja)
  287. set %ap.massd 1
  288.  
  289. ; Beachte:
  290. ; %lines = Anzahl der Deop's
  291. ; %time = Minuten
  292. ; %bantime = In Minuten angeben
  293. ; %warn = Wie oft soll verwarnt werden
  294. ; %kick = Wie oft soll gekickt werden
  295. ; %ban = BITTE NICHT BEARBEITEN!
  296. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  297.  
  298. set %lines.ap.massd 5
  299. set %time.ap.massd 1
  300. set %bantime.ap.massd 30
  301. set %warn.ap.massd 1
  302. set %kick.ap.massd 0
  303. set %ban.ap.massd 1
  304. set %hostmask.ap.massd 2
  305.  
  306. ; Den Abschnitt hier nicht mehr bearbeiten !!
  307. set %kickmsg.ap.massd Takeover detected. (Mass-Deop)
  308. set %warnmsg.ap.massd Warning: You've triggered the mass deop protection, do not repeat this action.
  309.  
  310. ;## 9 ## Mass-Kick
  311. ; Soll Mass-Kick protected werden? (0 = Nein / 1 = Ja)
  312. set %ap.massk 0
  313.  
  314. ; Beachte:
  315. ; %lines = Anzahl der Kicks
  316. ; %time = Minuten
  317. ; %bantime = In Minuten angeben
  318. ; %warn = Wie oft soll verwarnt werden
  319. ; %kick = Wie oft soll gekickt werden
  320. ; %ban = BITTE NICHT BEARBEITEN!
  321. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  322.  
  323. set %lines.ap.massk 5
  324. set %time.ap.massk 1
  325. set %bantime.ap.massk 30
  326. set %warn.ap.massk 1
  327. set %kick.ap.massk 0
  328. set %ban.ap.massk 1
  329. set %hostmask.ap.massk 2
  330.  
  331. ; Den Abschnitt hier nicht mehr bearbeiten !!
  332. set %kickmsg.ap.massk Takeover detected. (Mass-Kick)
  333. set %warnmsg.ap.massk Warning: You've triggered mass kick protection, do not repeat this action.
  334.  
  335. ;## 10 ## Mass-Ban
  336. ; Soll Mass-Ban protected werden? (0 = Nein / 1 = Ja)
  337. set %ap.massb 0
  338.  
  339. ; Beachte:
  340. ; %lines = Anzahl der Bann
  341. ; %time = Minuten
  342.  
  343. ; %bantime = In Minuten angeben
  344. ; %warn = Wie oft soll verwarnt werden
  345. ; %kick = Wie oft soll gekickt werden
  346. ; %ban = BITTE NICHT BEARBEITEN!
  347. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  348.  
  349. set %lines.ap.massb 15
  350. set %time.ap.massb 1
  351. set %bantime.ap.massb 30
  352. set %warn.ap.massb 1
  353. set %kick.ap.massb 0
  354. set %ban.ap.massb 1
  355. set %hostmask.ap.massb 2
  356.  
  357. ; Den Abschnitt hier nicht mehr bearbeiten !!
  358. set %kickmsg.ap.massk Takeover detected. (Mass-Ban)
  359. set %warnmsg.ap.massk Warning: You've triggered mass ban protection, do not repeat this action.
  360.  
  361. ;## 11 ## Channel-Limit
  362. ; Soll Channel-Limit aktiviert werden? (0 = Nein / 1 = Ja)
  363. set %ap.limit 1
  364.  
  365. ; Beachte:
  366. ; %limit = Anzahl des erhöten Limit
  367. ; %timea = Zeit nach Join/Part zur nächsten Limiterhöherung
  368.  
  369. set %limit.ap.limit 10
  370. set %timea.ap.limit 10
  371.  
  372. ;#########################
  373. ;# MISCELLANEOUS FLOOD #
  374. ;#########################
  375.  
  376. ;## 15 ## Join flood.
  377. ; Soll der Channel nach Join-Flood gelocked werden? (0 = Nein / 1 = Ja)
  378. set %ap.cjoin 1
  379.  
  380. ; Beachte:
  381. ; %lines = Anzahl der Joins
  382. ; %time = Sekunden
  383. ; %mode = Modes die gesetzt werden sollen
  384. ; %time.mode = Wie lange sollen die Modes gesetzt bleiben (Sekunden)
  385.  
  386. set %lines.ap.cjoin 10
  387. set %time.ap.cjoin 5
  388. set %mode.ap.cjoin +mi
  389. set %time.mode.ap.cjoin 60
  390.  
  391.  
  392. ;## 16 ## Revolving door.
  393. ; Soll Revolving door protected werden? (0 = Nein / 1 = Ja)
  394. set %ap.revdoor 1
  395. ; Soll der Channel nach Revolving door gelocked werden? (0 = Nein / 1 = Ja)
  396. set %ap.crevdoor 1
  397.  
  398. ; Beachte:
  399. ; %lines = Sekunden zwischen der Revolving Door
  400. ; %mode = Modes die gesetzt werden sollen
  401. ; %time.mode = Wie lange sollen die Modes gesetzt bleiben (Sekunden)
  402. ; %bantime = In Minuten angeben
  403. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  404.  
  405. set %lines.ap.revdoor 3
  406. set %mode.ap.crevdoor +mi
  407. set %time.mode.ap.crevdoor 60
  408. set %bantime.ap.revdoor 60
  409. set %hostmask.ap.revdoor 2
  410.  
  411. ; Den Abschnitt hier nicht mehr bearbeiten !!
  412. set %kickmsg.ap.revdoor Join-part revolving door attempt detected.
  413. set %ban.ap.revdoor 1
  414.  
  415. ;## 17 ## Nickchange Flood
  416. ; Soll Nickchange Flood protected werden? (0 = Nein / 1 = Ja)
  417. set %ap.nickf 1
  418. ; Soll der Channel nach Nickchange Flood gelocked werden? (0 = Nein / 1 = Ja)
  419. set %ap.cnickf 1
  420.  
  421. ; Beachte:
  422. ; %lines = Nickchange
  423. ; %time = Sekunden
  424. ; %mode = Modes die gesetzt werden sollen
  425. ; %time.mode = Wie lange sollen die Modes gesetzt bleiben (Sekunden)
  426. ; %bantime = In Minuten angeben
  427. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  428.  
  429. set %lines.ap.nickf 4
  430. set %time.ap.nickf 12
  431. set %mode.ap.cnickf +mN
  432. set %time.mode.ap.cnickf 60
  433. set %bantime.ap.nickf 60
  434. set %hostmask.ap.nickf 2
  435.  
  436. ; Den Abschnitt hier nicht mehr bearbeiten !!
  437. set %kickmsg.ap.nickf Nick flood detected.
  438. set %ban.ap.nickf 1
  439.  
  440. ;##################
  441. ;# MISCELLANEOUS #
  442. ;##################
  443.  
  444. ;## 18 ## Badnicks
  445.  
  446. ; Beachte:
  447. ; %bantime = In Minuten angeben
  448. ; %warn = Wie oft soll verwarnt werden
  449. ; %kick = Wie oft soll gekickt werden
  450. ; %ban = BITTE NICHT BEARBEITEN!
  451. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  452.  
  453. set %bantime.ap.bnicks 30
  454. set %warn.ap.bnicks 0
  455. set %kick.ap.bnicks 0
  456. set %ban.ap.bnicks 1
  457. set %hostmask.ap.bnicks 10
  458.  
  459. ; Den Abschnitt hier nicht mehr bearbeiten !!
  460. set %kickmsg.ap.bnicks Bad nick detected.
  461. set %warn.ap.bnicks Warning! you are using a bad nick, type /nick <nick> to change it.
  462. set %time.ap.bnicks 60
  463.  
  464. ;## 19 ## Badchans
  465.  
  466. ; Beachte:
  467. ; %bantime = In Minuten angeben
  468. ; %warn = Wie oft soll verwarnt werden
  469. ; %kick = Wie oft soll gekickt werden
  470. ; %ban = BITTE NICHT BEARBEITEN!
  471. ; %hostmask = Obenliegende Banmask's-Zahl eingeben
  472.  
  473. set %bantime.ap.bchans 60
  474. set %warn.ap.bchans 0
  475. set %kick.ap.bchans 0
  476. set %ban.ap.bchans 1
  477. set %hostmask.ap.bchans 2
  478.  
  479. ; Den Abschnitt hier nicht mehr bearbeiten !!
  480. set %kickmsg.ap.bchans Bad chan detected.
  481. 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.
  482. set %time.ap.bchans 60
  483.  
  484. ;#########################################
  485. ;# BOTNET FLOOD PROTECTION (MASS FLOODS) #
  486. ;#########################################
  487.  
  488. ;Bitte diesen Abschnitt nicht bearbeiten!!
  489. set %lines.ap.botnet.flood 15
  490. set %time.ap.botnet.flood 7
  491. set %modes.ap.botnet.flood +mR
  492. set %time.modes.ap.botnet.flood 60
  493. set %bantime.ap.botnet.flood 120
  494. set %hostmask.ap.botnet.flood 2
  495. set %ban.ap.botnet.flood 1
  496. ; Nicht bearbeiten
  497. set %lines.ap.botnet.chars 100
  498. set %modes.ap.botnet.chars +mR
  499. set %time.modes.ap.botnet.chars 60
  500. set %hostmask.ap.botnet.chars 2
  501. set %bantime.ap.botnet.chars 120
  502. set %warn.ap.botnet.chars 1
  503. set %ban.ap.botnet.chars 1
  504. ; Nicht bearbeiten
  505. set %lines.ap.botnet.notice 7
  506. set %time.ap.botnet.notice 2
  507. set %modes.ap.botnet.notice +mR
  508. set %time.modes.ap.botnet.notice 60
  509. set %hostmask.ap.botnet.notice 2
  510. set %bantime.ap.botnet.notice 120
  511. set %ban.ap.botnet.notice 1
  512. ; Nicht bearbeiten
  513. set %lines.ap.botnet.notice.chars 100
  514. set %modes.ap.botnet.notice.chars +mR
  515. set %time.modes.ap.botnet.notice.chars 60
  516. set %hostmask.ap.botnet.notice.chars 2
  517. set %bantime.ap.botnet.notice.chars 120
  518. set %warn.ap.botnet.notice.chars 1
  519. set %ban.ap.botnet.notice.chars 1
  520. ; Nicht bearbeiten
  521. set %lines.ap.botnet.massjoin 6
  522. set %time.ap.botnet.massjoin 3
  523. set %modes.ap.botnet.massjoin +mi
  524. set %time.modes.ap.botnet.massjoin 60
  525. set %hostmask.ap.botnet.massjoin 2
  526. set %ban.ap.botnet.massjoin 1
  527. ; Nicht bearbeiten
  528. set %lines.ap.botnet.nickf 10
  529. set %time.ap.botnet.nickf 5
  530. set %modes.ap.botnet.nickf +mN
  531. set %time.modes.ap.botnet.nickf 60
  532. set %bantime.ap.botnet.nickf 120
  533. set %hostmask.ap.botnet.nickf 2
  534. set %ban.ap.botnet.nickf 1
  535. }
  536.  
  537. ; ####################################################################################
  538. ; # Ab hier NICHTS mehr einstellen !! Hier beginnt der Code, wenn du es nicht kannst #
  539. ; # hier nicht rum basteln !! Lieber es lassen, als dass es dann nicht mehr #
  540. ; # funktioniert !! #
  541. ; ####################################################################################
  542.  
  543. ; Automatisches Entbannen und kicken
  544. on *:ban:#: {
  545. var %i = 1
  546. while ($ialchan($banmask,#,%i).nick) {
  547. if ($v1 == $me) { mode # -b $banmask }
  548. if (%except.set == 1) {
  549. if ($v1 isop $chan) || ($v1 ishop $chan) {
  550. mode # -b $banmask
  551. }
  552. else {
  553. kick # $v1 Banned.
  554. if (%log.gen = 1) {
  555. writeini %log.dat $+ .ini $chan $date $+ : $time Banned: $nick ( $+ $address($nick,2) $+ )
  556. }
  557. }
  558. }
  559. elseif (%except.set == 0) {
  560. kick # $v1 Banned.
  561. if (%log.gen = 1) {
  562. writeini %log.dat $+ .ini $chan $date $+ : $time Banned: $nick ( $+ $address($nick,2) $+ )
  563. }
  564. }
  565. inc %i
  566. }
  567. var %x = $ibl(#,0)
  568. if (%x >= %vollbann.gen) {
  569. massentban $chan
  570. }
  571. var %bantime = $calc( %bantime.gen * 60 )
  572. .timer 1 %bantime mode # -b $banmask
  573. }
  574. alias massentban {
  575. var %entfernban = $calc( %vollbann.gen - %vollunbann.gen )
  576. var %chan = $ibl($1,0)
  577. while (%chan >= %entfernban) {
  578. 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))
  579. dec %chan 10
  580. }
  581. }
  582.  
  583. ;connecten
  584. on *:connect:{
  585. join %chan1
  586. join %chan2
  587. join %chan3
  588. join %chan4
  589. join %chan5
  590. .timer 1 4 join %helpchan
  591. .timer 1 4 join %controlchan
  592. }
  593.  
  594. ;text flood (lines)
  595. on *:text:*:#: {
  596. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  597. elseif (%ap.textl == 1) {
  598. inc -u [ $+ [ %time.ap.textl ] ] %fld. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  599. if (%fld. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.textl) {
  600. inc %warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  601. if (%warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %warn.ap.textl) {
  602. %warn.gen $nick %warnmsg.ap.textl
  603. if (%log.gen == 1) {
  604. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Warn): $nick ( $+ $address($nick,2) $+ )
  605. }
  606. }
  607. else {
  608. inc %kick.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  609. if (%kick.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %kick.ap.textl) {
  610. inc %kcount 1
  611. kick # $nick $replace(%kick.message,rate, $+ %kickmsg.ap.textl $+ ,date, $+ $fulldate $+ ,btime, $+ 0 $+ ,kcount, $+ %kcount $+ )
  612. if (%log.gen == 1) {
  613. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kick): $nick ( $+ $address($nick,2) $+ )
  614. }
  615. unset %warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ]
  616. }
  617. else {
  618. inc %ban.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  619. if (%ban.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %ban.ap.textl) {
  620. unset %kick.ap.textl
  621. unset %warn.ap.textl
  622. inc %kcount 1
  623. mode # +b $address($nick,%hostmask.ap.textl)
  624. kick # $nick $replace(%kickmessage,rate,%kickmsg.ap.textl,date,$fulldate,btime,%bantime.ap.textl,kcount,%kcount)
  625. if (%log.gen == 1) {
  626. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kickban): $nick ( $+ $address($nick,2) $+ )
  627. }
  628. writeini flooder.ini $address($nick,2) time $fulldate
  629. timer 1 %bantime.ap.textl mode # -b $address($nick,%hostmask.ap.textl)
  630. }
  631. }
  632. }
  633. }
  634. }
  635. :exceptop
  636. }
  637. on *:action:*:#: {
  638. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  639. elseif (%ap.textl == 1) {
  640. inc -u [ $+ [ %time.ap.textl ] ] %fld. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  641. if (%fld. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.textl) {
  642. inc %warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  643. if (%warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %warn.ap.textl) {
  644. %warn.gen $nick %warnmsg.ap.textl
  645. if (%log.gen == 1) {
  646. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Warn): $nick ( $+ $address($nick,2) $+ )
  647. }
  648. }
  649. else {
  650. inc %kick.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  651. if (%kick.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %kick.ap.textl) {
  652. inc %kcount 1
  653. kick # $nick $replace(%kick.message,rate, $+ %kickmsg.ap.textl $+ ,date, $+ $fulldate $+ ,btime, $+ 0 $+ ,kcount, $+ %kcount $+ )
  654. if (%log.gen == 1) {
  655. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kick): $nick ( $+ $address($nick,2) $+ )
  656. }
  657. unset %warn.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ]
  658. }
  659. else {
  660. inc %ban.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  661. if (%ban.ap.textl. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %ban.ap.textl) {
  662. unset %kick.ap.textl
  663. unset %warn.ap.textl
  664. inc %kcount 1
  665. mode # +b $address($nick,%hostmask.ap.textl)
  666. kick # $nick $replace(%kickmessage,rate,%kickmsg.ap.textl,date,$fulldate,btime,%bantime.ap.textl,kcount,%kcount)
  667. if (%log.gen == 1) {
  668. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kickban): $nick ( $+ $address($nick,2) $+ )
  669. }
  670. writeini flooder.ini $address($nick,2) time $fulldate
  671. timer 1 %bantime.ap.textl mode # -b $address($nick,%hostmask.ap.textl)
  672. }
  673. }
  674. }
  675. }
  676. }
  677. :exceptop
  678. }
  679. ;notice flood (lines)
  680. on *:notice:*:*: {
  681. inc -u [ $+ [ %time.ap.notcl ] ] %notice. [ $+ [ $wildsite ] ] 1
  682. if (%notice. [ $+ [ $wildsite ] ] >= %lines.ap.notcl) {
  683. var %i = 0
  684. while (%i < $comchan($nick,0)) {
  685. if (%except.set == 1 ) { if ($nick isop $comchan($nick,%i)) || ($nick ishop $comchan($nick,%i)) || ($nick isvoice $comchan($nick,%i)) { goto exceptop } }
  686. elseif (%ap.notcl == 1) {
  687. inc %warn.notice.flood. [ $+ [ $wildsite ] ] 1
  688. if (%warn.notice.flood. [ $+ [ $wildsite ] ] == %warn.ap.notcl) {
  689. %warn.gen $nick %warnmsg.ap.notcl
  690. if (%log.gen == 1) {
  691. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Notice flood (Warn): $nick ( $+ $address($nick,2) $+ )
  692. }
  693. ignore -u900 $address($nick,2)
  694. }
  695. else {
  696. inc %kick.notice.flood. [ $+ [ $wildsite ] ] 1
  697. if (%kick.notice.flood. [ $+ [ $wildsite ] ] == %kick.ap.notcl) {
  698. unset %warn.notice.flood. [ $+ [ $wildsite ] ]
  699. inc %kcount 1
  700. kick $comchan($nick,%i) $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.notcl,date,$fulldate,btime,0,kcount,%kcount)
  701. if (%log.gen == 1) {
  702. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Notice flood (Kick): $nick ( $+ $address($nick,2) $+ )
  703. }
  704. ignore -u900 $address($nick,2)
  705. }
  706. else {
  707. inc %ban.notice.flood. [ $+ [ $wildsite ] ] 1
  708. if (%ban.notice.flood. [ $+ [ $wildsite ] ] >= %ban.ap.notcl) {
  709. unset %kick.notice.flood. [ $+ [ $wildsite ] ]
  710. inc %kcount 1
  711. mode $comchan($nick,%i) +b $address($nick,%hostmask.ap.notcl)
  712. kick $comchan($nick,%i) $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.notcl,date,$fulldate,btime,%bantime.ap.textl,kcount,%kcount)
  713. if (%log.gen == 1) {
  714. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Notice flood (Kickban): $nick ( $+ $address($nick,2) $+ )
  715. }
  716. timer 1 $calc( %bantime.ap.notcl * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  717. writeini flooder.ini $address($nick,%hostmask.ap.notcl) time $fulldate
  718. ignore -u900 $address($nick,%hostmask.ap.notcl)
  719. }
  720. }
  721. }
  722. }
  723. dec %i
  724. }
  725. }
  726. :exceptop
  727. }
  728. ;text flood (caps)
  729. on *:text:*:#:{
  730. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  731. elseif (%ap.caps == 1) {
  732. if ( $len($1-) >= %long.ap.caps ) {
  733. if ( $calc($regex($1-,/[A-Z]/g) / $len($1-) * 100) >= %lines.ap.caps ) {
  734. inc %warn.caps.flood. [ $+ [ $wildsite ] ] 1
  735. if (%warn.caps.flood. [ $+ [ $wildsite ] ] == %warn.ap.caps) {
  736. inc %kcount 1
  737. %warn.gen $nick %warnmsg.ap.caps
  738. if (%log.gen == 1) {
  739. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Warn): $nick ( $+ $address($nick,2) $+ )
  740. }
  741. }
  742. else {
  743. inc %kick.caps.flood. [ $+ [ $wildsite ] ] 1
  744. if (%kick.caps.flood. [ $+ [ $wildsite ] ] == %kick.ap.caps) {
  745. inc %kcount 1
  746. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.caps,date,$fulldate,btime,0,kcount,%kcount)
  747. if (%log.gen == 1) {
  748. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Kick): $nick ( $+ $address($nick,2) $+ )
  749. }
  750. }
  751. else {
  752. inc %ban.caps.flood. [ $+ [ $wildsite ] ] 1
  753. if (%ban.caps.flood. [ $+ [ $wildsite ] ] >= %ban.ap.caps) {
  754. inc %kcount 1
  755. mode $chan +b $address($nick,%hostmask.ap.caps)
  756. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.caps,date,$fulldate,btime,%bantime.ap.caps,kcount,%kcount)
  757. if (%log.gen == 1) {
  758. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Kickban): $nick ( $+ $address($nick,2) $+ )
  759. }
  760. timer 1 $calc( %bantime.ap.caps * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  761. writeini flooder.ini $address($nick,%hostmask.ap.caps) time $fulldate
  762. }
  763. }
  764. }
  765. }
  766. }
  767. }
  768. :exceptop
  769. }
  770. on *:action:*:#:{
  771. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  772. elseif (%ap.caps == 1) {
  773. if ( $len($1-) >= %long.ap.caps ) {
  774. if ( $calc($regex($1-,/[A-Z]/g) / $len($1-) * 100) >= %lines.ap.caps ) {
  775. inc %warn.caps.flood. [ $+ [ $wildsite ] ] 1
  776. if (%warn.caps.flood. [ $+ [ $wildsite ] ] == %warn.ap.caps) {
  777. inc %kcount 1
  778. %warn.gen $nick %warnmsg.ap.caps
  779. if (%log.gen == 1) {
  780. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Warn): $nick ( $+ $address($nick,2) $+ )
  781. }
  782. }
  783. else {
  784. inc %kick.caps.flood. [ $+ [ $wildsite ] ] 1
  785. if (%kick.caps.flood. [ $+ [ $wildsite ] ] == %kick.ap.caps) {
  786. inc %kcount 1
  787. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.caps,date,$fulldate,btime,0,kcount,%kcount)
  788. if (%log.gen == 1) {
  789. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Kick): $nick ( $+ $address($nick,2) $+ )
  790. }
  791. }
  792. else {
  793. inc %ban.caps.flood. [ $+ [ $wildsite ] ] 1
  794. if (%ban.caps.flood. [ $+ [ $wildsite ] ] >= %ban.ap.caps) {
  795. inc %kcount 1
  796. mode $chan +b $address($nick,%hostmask.ap.caps)
  797. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.caps,date,$fulldate,btime,%bantime.ap.caps,kcount,%kcount)
  798. if (%log.gen == 1) {
  799. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Caps flood (Kickban): $nick ( $+ $address($nick,2) $+ )
  800. }
  801. timer 1 $calc( %bantime.ap.caps * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  802. writeini flooder.ini $address($nick,%hostmask.ap.caps) time $fulldate
  803. }
  804. }
  805. }
  806. }
  807. }
  808. }
  809. :exceptop
  810. }
  811. ;repeating
  812. on *:text:*:#:{
  813. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  814. elseif ( %ap.repeatl == 1) {
  815. if ( $len($1-) > %lines.ap.repeatl ) {
  816. if ( %repeat.text. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == $1- ) {
  817. inc %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  818. if ( %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.repeatl ) {
  819. %warn.gen $nick %warnmsg.ap.repeatl
  820. if (%log.gen == 1) {
  821. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Warn): $nick ( $+ $address($nick,2) $+ )
  822. }
  823. }
  824. else {
  825. inc %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  826. if ( %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.repeatl ) {
  827. inc %kcount 1
  828. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.repeatl,date,$fulldate,btime,0,kcount,%kcount)
  829. if (%log.gen == 1) {
  830. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kick): $nick ( $+ $address($nick,2) $+ )
  831. }
  832. unset %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ]
  833. }
  834. else {
  835. inc %ban.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  836. if ( %ban.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.repeatl ) {
  837. inc %kcount 1
  838. mode $chan +b $address($nick,%hostmask.ap.repeatl)
  839. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.repeatl,date,$fulldate,btime,%bantime.ap.repeatl,kcount,%kcount)
  840. if (%log.gen == 1) {
  841. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kickban): $nick ( $+ $address($nick,2) $+ )
  842. }
  843. .timer 1 $calc( %bantime.ap.repeatl * 60 ) mode $chan -b $address($nick,%hostmask.ap.repeatl)
  844. unset %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ]
  845. }
  846. }
  847. }
  848. }
  849. else {
  850. set -u [ $+ [ %time.ap.repeatl ] ] %repeat.text. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] $1-
  851. }
  852. }
  853. }
  854. :exceptop
  855. }
  856. on *:action:*:#:{
  857. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  858. elseif (%ap.repeatl == 1) {
  859. if ( $len($1-) > %lines.ap.repeatl ) {
  860. if ( %repeat.text. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == $1- ) {
  861. inc %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  862. if ( %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.repeatl ) {
  863. %warn.gen $nick %warnmsg.ap.repeatl
  864. if (%log.gen == 1) {
  865. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Warn): $nick ( $+ $address($nick,2) $+ )
  866. }
  867. }
  868. else {
  869. inc %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  870. if ( %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.repeatl ) {
  871. inc %kcount 1
  872. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.repeatl,date,$fulldate,btime,0,kcount,%kcount)
  873. if (%log.gen == 1) {
  874. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kick): $nick ( $+ $address($nick,2) $+ )
  875. }
  876. unset %warn.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ]
  877. }
  878. else {
  879. inc %ban.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  880. if ( %ban.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.repeatl ) {
  881. inc %kcount 1
  882. mode $chan +b $address($nick,%hostmask.ap.repeatl)
  883. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.repeatl,date,$fulldate,btime,%bantime.ap.repeatl,kcount,%kcount)
  884. if (%log.gen == 1) {
  885. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Repeat (Kickban): $nick ( $+ $address($nick,2) $+ )
  886. }
  887. .timer 1 $calc( %bantime.ap.repeatl * 60 ) mode $chan -b $address($nick,%hostmask.ap.repeatl)
  888. unset %kick.repeat. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ]
  889. }
  890. }
  891. }
  892. }
  893. else {
  894. set -u [ $+ [ %time.ap.repeatl ] ] %repeat.text. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] $1-
  895. }
  896. }
  897. }
  898. :exceptop
  899. }
  900. ;letter repeat
  901.  
  902.  
  903. ;drone + spam protection
  904. on *:join:#:{
  905. if (%drones.gen == 1) {
  906. if (( $regex($fulladdress,/^([A-Z]{8})!~?(?!1)(?1)@(?!.*)/) ) || ( $regex($fulladdress,/^(*)!([A-Z]{[0-9]})@(*) )) {
  907. inc %kcount 1
  908. mode $chan +b $address($nick,%hostmask.ap.drones)
  909. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.drones,date,$fulldate,btime,%bantime.ap.drones,kcount,%kcount)
  910. if (%log.gen == 1) {
  911. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Drone/Spam Bot (Kickban): $nick ( $+ $address($nick,2) $+ )
  912. }
  913. .timer 1 $calc( %bantime.ap.drones * 60 ) mode $chan -b $address($nick,%hostmask.ap.drones)
  914. }
  915. }
  916. }
  917. on *:text:*:#: {
  918. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  919. elseif (%drones.gen == 1) {
  920. if (decode isin $1-) || (xxx isin $1-) || (porn isin $1-) || (free isin $1-) {
  921. inc %kcount 1
  922. mode $chan +b $address($nick,%hostmask.ap.spam)
  923. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.spam,date,$fulldate,btime,%bantime.ap.spam,kcount,%kcount)
  924. if (%log.gen == 1) {
  925. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Drone/Spam Bot (Kickban): $nick ( $+ $address($nick,2) $+ )
  926. }
  927. .timer 1 $calc( %bantime.ap.spam * 60 ) mode $chan -b $address($nick,%hostmask.ap.spam)
  928. }
  929. }
  930. :exceptop
  931. }
  932. on *:action:*:#: {
  933. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  934. elseif (%drones.gen == 1) {
  935. if (decode isin $1-) || (xxx isin $1-) || (porn isin $1-) || (free isin $1-) {
  936. inc %kcount 1
  937. mode $chan +b $address($nick,%hostmask.ap.spam)
  938. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.spam,date,$fulldate,btime,%bantime.ap.spam,kcount,%kcount)
  939. if (%log.gen == 1) {
  940. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Drone/Spam Bot (Kickban): $nick ( $+ $address($nick,2) $+ )
  941. }
  942. .timer 1 $calc( %bantime.ap.spam * 60 ) mode $chan -b $address($nick,%hostmask.ap.spam)
  943. }
  944. }
  945. :exceptop
  946. }
  947. ;swearing
  948. on *:text:*:#: {
  949. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  950. elseif (%ap.swear == 1) {
  951. 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-) {
  952. inc %warn.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  953. if (%warn.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.swear) {
  954. %warn.gen $nick %warnmsg.ap.swear
  955. if (%log.gen == 1) {
  956. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Warn): $nick ( $+ $address($nick,2) $+ )
  957. }
  958. }
  959. else {
  960. inc %kick.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  961. if (%kick.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.swear) {
  962. inc %kcount 1
  963. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.swear,date,$fulldate,btime,0,kcount,%kcount)
  964. if (%log.gen == 1) {
  965. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Kick): $nick ( $+ $address($nick,2) $+ )
  966. }
  967. }
  968. else {
  969. inc %ban.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  970. if (%ban.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.swear) {
  971. inc %kcount 1
  972. mode $chan +b $address($nick,%hostmask.ap.swear)
  973. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.swear,date,$fulldate,btime,%bantime.ap.swear,kcount,%kcount)
  974. if (%log.gen == 1) {
  975. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Kickban): $nick ( $+ $address($nick,2) $+ )
  976. }
  977. timer 1 $calc( %bantime.ap.swear * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  978. }
  979. }
  980. }
  981. }
  982. }
  983. :exceptop
  984. }
  985. on *:action:*:#:{
  986. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  987. elseif (%ap.swear == 1) {
  988. 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-) {
  989. inc %warn.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  990. if (%warn.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.swear) {
  991. %warn.gen $nick %warnmsg.ap.swear
  992. if (%log.gen == 1) {
  993. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Warn): $nick ( $+ $address($nick,2) $+ )
  994. }
  995. }
  996. else {
  997. inc %kick.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  998. if (%kick.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.swear) {
  999. inc %kcount 1
  1000. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.swear,date,$fulldate,btime,0,kcount,%kcount)
  1001. if (%log.gen == 1) {
  1002. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Kick): $nick ( $+ $address($nick,2) $+ )
  1003. }
  1004. }
  1005. else {
  1006. inc %ban.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1007. if (%ban.badwords. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.swear) {
  1008. inc %kcount 1
  1009. mode $chan +b $address($nick,%hostmask.ap.swear)
  1010. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.swear,date,$fulldate,btime,%bantime.ap.swear,kcount,%kcount)
  1011. if (%log.gen == 1) {
  1012. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badwords (Kickban): $nick ( $+ $address($nick,2) $+ )
  1013. }
  1014. timer 1 $calc( %bantime.ap.swear * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  1015. }
  1016. }
  1017. }
  1018. }
  1019. }
  1020. :exceptop
  1021. }
  1022. ;takeover
  1023. on *:deop:#: {
  1024. if (%ap.massd == 1) {
  1025. inc -u [ $+ [ %time.ap.massd ] ] %deop.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  1026. if (%deop.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.massd) {
  1027. inc %warn.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1028. if (%warn.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.massd) {
  1029. inc %kcount 1
  1030. %warn.gen $nick %warnmsg.ap.massd
  1031. if (%log.gen == 1) {
  1032. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Warn): $nick ( $+ $address($nick,2) $+ )
  1033. }
  1034. }
  1035. else {
  1036. inc %kick.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1037. if (%kick.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.massd) {
  1038. inc %kcount 1
  1039. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massd,date,$fulldate,btime,0,kcount,%kcount)
  1040. if (%log.gen == 1) {
  1041. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kick): $nick ( $+ $address($nick,2) $+ )
  1042. }
  1043. }
  1044. else {
  1045. inc %ban.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1046. if (%ban.massdeop. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.massd) {
  1047. inc %kcount 1
  1048. mode $chan +b $address($nick,%hostmask.ap.massd)
  1049. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massd,date,$fulldate,btime,%bantime.ap.massd,kcount,%kcount)
  1050. if (%log.gen == 1) {
  1051. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kickban): $nick ( $+ $address($nick,2) $+ )
  1052. }
  1053. timer 1 $calc( %bantime.ap.massd * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  1054. }
  1055. }
  1056. }
  1057. }
  1058. }
  1059. }
  1060. on *:KICK:*: {
  1061. if (%ap.massk == 1) {
  1062. inc -u [ $+ [ %time.ap.massk ] ] %kick.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  1063. if (%kick.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.massk) {
  1064. inc %warn.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1065. if (%warn.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.massk) {
  1066. inc %kcount 1
  1067. %warn.gen $nick %warnmsg.ap.massk
  1068. if (%log.gen == 1) {
  1069. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Warn): $nick ( $+ $address($nick,2) $+ )
  1070. }
  1071. }
  1072. else {
  1073. inc %kick.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1074. if (%kick.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.massk) {
  1075. inc %kcount 1
  1076. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massk,date,$fulldate,btime,0,kcount,%kcount)
  1077. if (%log.gen == 1) {
  1078. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kick): $nick ( $+ $address($nick,2) $+ )
  1079. }
  1080. }
  1081. else {
  1082. inc %ban.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1083. if (%ban.masskick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.massk) {
  1084. inc %kcount 1
  1085. mode $chan +b $address($nick,%hostmask.ap.massk)
  1086. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massk,date,$fulldate,btime,%bantime.ap.massk,kcount,%kcount)
  1087. if (%log.gen == 1) {
  1088. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kickban): $nick ( $+ $address($nick,2) $+ )
  1089. }
  1090. timer 1 $calc( %bantime.ap.massk * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  1091. }
  1092. }
  1093. }
  1094. }
  1095. }
  1096. }
  1097. on *:ban:#: {
  1098. if (%ap.massb == 1) {
  1099. inc -u [ $+ [ %time.ap.massb ] ] %ban.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  1100. if (%ban.takeover. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.massb) {
  1101. inc %warn.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1102. if (%warn.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.massb) {
  1103. inc %kcount 1
  1104. %warn.gen $nick %warnmsg.ap.massb
  1105. if (%log.gen == 1) {
  1106. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Warn): $nick ( $+ $address($nick,2) $+ )
  1107. }
  1108. }
  1109. else {
  1110. inc %kick.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1111. if (%kick.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.massb) {
  1112. inc %kcount 1
  1113. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massb,date,$fulldate,btime,0,kcount,%kcount)
  1114. if (%log.gen == 1) {
  1115. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kick): $nick ( $+ $address($nick,2) $+ )
  1116. }
  1117. }
  1118. else {
  1119. inc %ban.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1120. if (%ban.massban. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.massb) {
  1121. inc %kcount 1
  1122. mode $chan +b $address($nick,%hostmask.ap.massb)
  1123. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.massb,date,$fulldate,btime,%bantime.ap.massb,kcount,%kcount)
  1124. if (%log.gen == 1) {
  1125. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Takeover (Kickban): $nick ( $+ $address($nick,2) $+ )
  1126. }
  1127. timer 1 $calc( %bantime.ap.massb * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  1128. }
  1129. }
  1130. }
  1131. }
  1132. }
  1133. }
  1134. ;channellimit
  1135.  
  1136.  
  1137.  
  1138. ;joinflood
  1139. on *:join:#: {
  1140. if (%ap.cjoin == 1) {
  1141. inc -u [ $+ [ %time.ap.cjoin ] ] %floodjoin. [ $+ [ $chan ] ] 1
  1142. if (%floodjoin. [ $+ [ $chan ] ] >= %lines.ap.cjoin) {
  1143. mode $chan %mode.ap.cjoin
  1144. if (%log.gen == 1) {
  1145. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Channel has been locked due to flood, sorry for any inconvenience this may have caused.
  1146. }
  1147. %warn.gen $chan %flood.notice
  1148. timer 1 %time.mode.ap.cjoin mode $chan $replace(%mode.ap.cjoin,+,-)
  1149. }
  1150. }
  1151. }
  1152. ;revolving door
  1153. on *:part:#:{
  1154. if (%ap.revdoor == 1) {
  1155. inc -u5 %revolving.door. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  1156. if ( %revolving.door. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.revdoor ) {
  1157. mode $chan +b [ $+ [ %mode.ap.crevdoor ] ] $address($nick,2)
  1158. kick $chan $nick $replace(%kickmessage,rate,%kickmsg.ap.revdoor,date,$fulldate,btime,%bantime.ap.revdoor,kcount,%kcount)
  1159. if (%log.gen == 1) {
  1160. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Revolving door (Kickban): $nick ( $+ $address($nick,2) $+ )
  1161. }
  1162. if (%ap.crevdoor == 1) {
  1163. mode $chan %mode.ap.crevdoor
  1164. .timer 1 %time.mode.ap.crevdoor $replace(%mode.ap.crevdoor,+,-)
  1165. %warn.gen $chan %flood.notice
  1166. }
  1167. .timer 1 $calc( %bantime.ap.revdoor * 60 )
  1168. writeini tsunami $address($readini(joinflood.ini,$chan,%x),2) Time $fulldate
  1169. }
  1170. }
  1171. }
  1172. on *:join:#:{
  1173. if (%ap.revdoor == 1) {
  1174. inc -u5 %revolving.door. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] 1
  1175. if ( %revolving.door. [ $+ [ $chan ] $+ . $+ [ $wildsite ] ] == %lines.ap.revdoor ) {
  1176. mode $chan +b [ $+ [ %mode.ap.crevdoor ] ] $address($nick,2)
  1177. kick $chan $nick $replace(%kickmessage,rate,%kickmsg.ap.revdoor,date,$fulldate,btime,%bantime.ap.revdoor,kcount,%kcount)
  1178. if (%log.gen == 1) {
  1179. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Revolving door (Kickban): $nick ( $+ $address($nick,2) $+ )
  1180. }
  1181. if (%ap.crevdoor == 1) {
  1182. mode $chan %mode.ap.crevdoor
  1183. .timer 1 %time.mode.ap.crevdoor $replace(%mode.ap.crevdoor,+,-)
  1184. %warn.gen $chan %flood.notice
  1185. }
  1186. .timer 1 $calc( %bantime.ap.revdoor * 60 ) mode $chan -b $address($nick,2)
  1187. writeini tsunami $address($readini(joinflood.ini,$chan,%x),2) Time $fulldate
  1188. }
  1189. }
  1190. }
  1191. ;nickchange flood
  1192. on ^*:nick:{
  1193. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  1194. elseif (%ap.nickf == 1) {
  1195. inc -u [ $+ [ %time.ap.nickf ] ] %nick.flood. [ $+ [ $wildsite ] ] 1
  1196. if ( %nick.flood. [ $+ [ $wildsite ] ] == %lines.ap.nickf ) {
  1197. var %i = 0
  1198. while (%i < $comchan($newnick,0)) {
  1199. inc %kcount 1
  1200. mode $comchan($newnick,%i) +b [ $+ [ %mode.ap.cnickf ] ] $address($newnick,%hostmask.ap.nickf)
  1201. kick $comchan($newnick,%i) $nick $replace(%kickmessage,rate,%kickmsg.ap.cnickf,date,$fulldate,btime,%bantime.ap.cnickf,kcount,%kcount)
  1202. if (%log.gen == 1) {
  1203. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Nickchangeflood (Kickban): $nick ( $+ $address($nick,2) $+ )
  1204. }
  1205. if (%ap.cnickf == 1) {
  1206. mode $chan %mode.ap.cnickf
  1207. .timer 1 %time.mode.ap.cnickf $replace(%mode.ap.cnickf,+,-)
  1208. %warn.gen $chan %flood.notice
  1209. }
  1210. .timer 1 $calc( %bantime.ap.nickf * 60 ) mode $comchan($newnick,%i) -b $address($newnick,%hostmask.ap.nickf)
  1211. inc %i
  1212. }
  1213. }
  1214. }
  1215. :exceptop
  1216. }
  1217. ;badnick
  1218. on *:join:#:{
  1219. if (%bnicks.gen == 1) {
  1220. 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) {
  1221. inc %warn.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1222. if (%warn.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %warn.ap.bnicks) {
  1223. inc %kcount 1
  1224. %warn.gen $nick %warnmsg.ap.bnicks
  1225. if (%log.gen == 1) {
  1226. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Warn): $nick ( $+ $address($nick,2) $+ )
  1227. }
  1228. .timer 1 %time.ap.bnicks bnickwarn $nick $chan
  1229. }
  1230. else {
  1231. inc %kick.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1232. if (%kick.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.bnicks) {
  1233. inc %kcount 1
  1234. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.bnicks,date,$fulldate,btime,0,kcount,%kcount)
  1235. if (%log.gen == 1) {
  1236. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Kick): $nick ( $+ $address($nick,2) $+ )
  1237. }
  1238. }
  1239. else {
  1240. inc %ban.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1241. if (%ban.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.bnicks) {
  1242. inc %kcount 1
  1243. if (%hostmask.ap.bnicks == 10) {
  1244. mode $chan +b $nick
  1245. }
  1246. else {
  1247. mode $chan +b $address($nick,%hostmask.ap.bnicks)
  1248. }
  1249. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.bnicks,date,$fulldate,btime,0,kcount,%kcount)
  1250. if (%log.gen == 1) {
  1251. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Kickban): $nick ( $+ $address($nick,2) $+ )
  1252. }
  1253. timer 1 $calc( %bantime.ap.bnicks * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  1254. }
  1255. }
  1256. }
  1257. }
  1258. }
  1259. }
  1260. alias bnickwarn {
  1261. if ($2 ison $3) {
  1262. inc %kick.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1263. if (%kick.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] == %kick.ap.bnicks) {
  1264. inc %kcount 1
  1265. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.bnicks,date,$fulldate,btime,0,kcount,%kcount)
  1266. if (%log.gen == 1) {
  1267. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Kick): $nick ( $+ $address($nick,2) $+ )
  1268. }
  1269. }
  1270. else {
  1271. inc %ban.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] 1
  1272. if (%ban.bnick. [ $+ [ $wildsite ] $+ . $+ [ $chan ] ] >= %ban.ap.bnicks) {
  1273. inc %kcount 1
  1274. if (%hostmask.ap.bnicks == 10) {
  1275. mode $chan +b $nick
  1276. }
  1277. else {
  1278. mode $chan +b $address($nick,%hostmask.ap.bnicks)
  1279. }
  1280. kick $chan $nick $replace(%kickmsgmessage,rate,%kickmsg.ap.bnicks,date,$fulldate,btime,0,kcount,%kcount)
  1281. if (%log.gen == 1) {
  1282. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badnick (Kickban): $nick ( $+ $address($nick,2) $+ )
  1283. }
  1284. timer 1 $calc( %bantime.ap.bnicks * 60 ) mode $comchan($nick,%i) +b $address($nick,2)
  1285. }
  1286. }
  1287. }
  1288. }
  1289. ;badchan
  1290. on *:join:#: {
  1291. if (%bchans.gen == 1) {
  1292. whois $nick
  1293. }
  1294. }
  1295. raw 319:*: {
  1296. if ((porn isin $3-) || (sex isin $3-) || (warez isin $3-)) {
  1297. var %t = 0
  1298. while (%t < $comchan($2,0)) {
  1299. if ($me isop $comchan($2,%t)) {
  1300. inc %warn.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ] 1
  1301. if (%warn.ap.bchans == %warn.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ]) {
  1302. %warn.gen $2 %warn.ap.bchans
  1303. if (%log.gen == 1) {
  1304. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badchan (Warn): $nick ( $+ $address($nick,2) $+ )
  1305. }
  1306. }
  1307. else {
  1308. inc %kick.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ] 1
  1309. if (%kick.ap.bchans == %kick.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ]) {
  1310. inc %kcount 1
  1311. kick $comchan($2,%t) $2 $replace(%kick.message,rate,%kickmsg.ap.bchans,date,$fulldate,btime,0,kcount,%kcount)
  1312. if (%log.gen == 1) {
  1313. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badchan (Kick): $nick ( $+ $address($nick,2) $+ )
  1314. }
  1315. }
  1316. else {
  1317. inc %ban.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ] 1
  1318. if (%ban.ap.bchans == %ban.ap.bchans. [ $+ [ $comchan($2,%t) ] $+ [ $wildsite ] ]) {
  1319. inc %kcount 1
  1320. mode $comchan($2,%t) +b $address($2,2)
  1321. kick $comchan($2,%t) $2 $replace(%kick.message,rate,%kickmsg.ap.bchans,date,$fulldate,btime,%bantime.ap.bchans,kcount,%kcount)
  1322. if (%log.gen == 1) {
  1323. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Badchan (Kickban): $nick ( $+ $address($nick,2) $+ )
  1324. }
  1325. }
  1326. }
  1327. }
  1328. }
  1329. inc %t
  1330. }
  1331. }
  1332. }
  1333. ;botnet flood
  1334. on *:text:*:#: {
  1335. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  1336. inc -u [ $+ [ %time.ap.botnet.flood ] ] %botnet.flood. [ $+ [ $chan ] ] 1
  1337. writeini botnetflood.ini $chan %botnet.flood. [ $+ [ $chan ] ] $nick
  1338. if ( %botnet.flood. [ $+ [ $chan ] ] >= %time.ap.botnet.flood ) {
  1339. mode $chan %modes.ap.botnet.flood
  1340. %warn.gen $chan %flood.notice
  1341. .timer 1 %time.modes.ap.botnet.flood mode $chan $replace(%modes.ap.botnet.flood,+,-)
  1342. var %x = %botnet.flood. [ $+ [ $chan ] ]
  1343. while (%x) {
  1344. mode $chan +b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.flood)
  1345. kick $chan $readini(botnetflood.ini,$chan,%x) $replace(%kickmessage,rate,%kickmsg.ap.cljoin,date,$fulldate,btime,%bantime.ap.cljoin,kcount,%kcount)
  1346. if (%log.gen == 1) {
  1347. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet (Flood): $nick ( $+ $address($nick,2) $+ )
  1348. }
  1349. .timer 1 $calc( %bantime.ap.botnet.flood * 60 ) mode $chan -b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.flood)
  1350. writeini botnet.ini $address($readini(botnetflood.ini,$chan,%x),2) time $fulldate
  1351. dec %x
  1352. }
  1353. }
  1354. :exceptop
  1355. }
  1356. on *:action:*:#:{
  1357. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  1358. inc -u [ $+ [ %time.ap.botnet.flood ] ] %botnet.flood. [ $+ [ $chan ] ] 1
  1359. writeini botnetflood.ini $chan %botnet.flood. [ $+ [ $chan ] ] $nick
  1360. if ( %botnet.flood. [ $+ [ $chan ] ] >= %time.ap.botnet.flood ) {
  1361. mode $chan %modes.ap.botnet.flood
  1362. %warn.gen $chan %flood.notice
  1363. .timer 1 %time.modes.ap.botnet.flood mode $chan $replace(%modes.ap.botnet.flood,+,-)
  1364. var %x = %botnet.flood. [ $+ [ $chan ] ]
  1365. while (%x) {
  1366. mode $chan +b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.flood)
  1367. kick $chan $readini(botnetflood.ini,$chan,%x) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.chars,kcount,%kcount)
  1368. if (%log.gen == 1) {
  1369. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet (Flood): $nick ( $+ $address($nick,2) $+ )
  1370. }
  1371. .timer 1 $calc( %bantime.ap.botnet.flood * 60 ) mode $chan -b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.flood)
  1372. writeini botnet.ini $address($readini(botnetflood.ini,$chan,%x),2) time $fulldate
  1373. dec %x
  1374. }
  1375. }
  1376. :exceptop
  1377. }
  1378. ;botnet chars
  1379. on *:text:*:#: {
  1380. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  1381. if ( $len($1-) == %lines.ap.botnet.chars ) {
  1382. inc -u3 %botnet.chars. [ $+ [ $chan ] ] 1
  1383. writeini botnetflood.ini $chan %botnet.chars. [ $+ [ $chan ] ] $nick
  1384. if ( %botnet.chars. [ $+ [ $chan ] ] >= 5 ) {
  1385. mode $chan %modes.ap.botnet.chars
  1386. %warn.gen $chan %flood.notice
  1387. .timer 1 %time.modes.ap.botnet.chars mode $chan $replace(%modes.ap.botnet.chars,+,-)
  1388. var %x = %botnet.chars. [ $+ [ $chan ] ]
  1389. while (%x) {
  1390. mode $chan +b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.chars)
  1391. kick $chan $readini(botnetflood.ini,$chan,%x) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.chars,kcount,%kcount)
  1392. if (%log.gen == 1) {
  1393. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Chars (Kickban): $nick ( $+ $address($nick,2) $+ )
  1394. }
  1395. .timer 1 $calc( %bantime.ap.botnet.chars * 60 ) mode $chan -b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.chars)
  1396. writeini botnet.ini $address($readini(botnetflood.ini,$chan,%x),2) time $fulldate
  1397. dec %x
  1398. }
  1399. }
  1400. }
  1401. :exceptop
  1402. }
  1403. on *:action:*:#:{
  1404. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  1405. if ( $len($1-) == %lines.ap.botnet.chars ) {
  1406. inc -u3 %botnet.chars. [ $+ [ $chan ] ] 1
  1407. writeini botnetflood.ini $chan %botnet.chars. [ $+ [ $chan ] ] $nick
  1408. if ( %botnet.chars. [ $+ [ $chan ] ] >= 5 ) {
  1409. mode $chan %modes.ap.botnet.chars
  1410. %warn.gen $chan %flood.notice
  1411. .timer 1 %time.modes.ap.botnet.chars mode $chan $replace(%modes.ap.botnet.chars,+,-)
  1412. var %x = %botnet.chars. [ $+ [ $chan ] ]
  1413. while (%x) {
  1414. mode $chan +b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.chars)
  1415. kick $chan $readini(botnetflood.ini,$chan,%x) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.chars,kcount,%kcount)
  1416. if (%log.gen == 1) {
  1417. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Chars (Kickban): $nick ( $+ $address($nick,2) $+ )
  1418. }
  1419. .timer 1 $calc( %bantime.ap.botnet.chars * 60 ) mode $chan -b $address($readini(botnetflood.ini,$chan,%x),%hostmask.ap.botnet.chars)
  1420. writeini botnet.ini $address($readini(botnetflood.ini,$chan,%x),2) time $fulldate
  1421. dec %x
  1422. }
  1423. }
  1424. }
  1425. :exceptop
  1426. }
  1427. ;botnet noticeflood
  1428. on *:notice:*:*: {
  1429. inc -u [ $+ [ %time.ap.botnet.notice ] ] %botnet.notice. [ $+ [ $wildsite ] ] 1
  1430. if ( %botnet.notice. [ $+ [ $wildsite ] ] >= %lines.ap.botnet.notice ) {
  1431. ignore -u900 $address($nick,2)
  1432. var %i = 0
  1433. while (%i < $comchan($nick,0)) {
  1434. if (%except.set == 1 ) { if ($nick isop $comchan($nick,%i)) || ($nick ishop $comchan($nick,%i)) || ($nick isvoice $comchan($nick,%i)) { goto exceptop } }
  1435. inc %kcount 1
  1436. mode $comchan($nick,%i) +b $address($nick,%hostmask.ap.botnet.notice)
  1437. kick $comchan($nick,%i) $nick $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.notice,kcount,%kcount)
  1438. if (%log.gen == 1) {
  1439. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Noticeflood (Kickban): $nick ( $+ $address($nick,2) $+ )
  1440. }
  1441. .timer 1 $calc( %bantime.ap.botnet.notice * 60 ) mode $comchan($nick,%i) -b $address($nick,%hostmask.ap.botnet.notice)
  1442. inc %i
  1443. }
  1444. }
  1445. :exceptop
  1446. }
  1447. ;botnet massjoin
  1448. on *:join:#: {
  1449. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  1450. inc -u [ $+ [ %time.ap.massjoin ] ] %botnet.join. [ $+ [ $chan ] ] 1
  1451. if (%botnet.join. [ $+ [ $chan ] ] >= %lines.ap.massjoin ) {
  1452. mode $chan %mode.ap.massjoin
  1453. if ($readini(botnetjoin.ini,$address($nick,2),nick)) {
  1454. inc %kcount 2
  1455. mode $chan +b $address($nick,%hostmask.ap.botnet.massjoin)
  1456. kick $chan $nick $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.massjoin,kcount,%kcount)
  1457. kick $chan $readini(botnetjoin.ini,$address($nick,2),nick) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.massjoin,kcount,%kcount)
  1458. if (%log.gen == 1) {
  1459. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Massjoin (Kickban): $nick ( $+ $address($nick,2) $+ )
  1460. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Massjoin (Kickban): $readini(botnetjoin.ini,$address($nick,2),nick) ( $+ $address($nick,2) $+ )
  1461. }
  1462. writeini botnet.ini $address($nick,2) time $fulldate
  1463. }
  1464. else {
  1465. writeini botnetjoin.ini $address($nick,2) nick $nick
  1466. }
  1467. .timer 1 %time.mode.ap.massjoin mode $chan $replace(%mode.ap.massjoin,+,-)
  1468. %warn.gen $chan %flood.notice
  1469. }
  1470. :exceptop
  1471. }
  1472. ;botnet nickchange
  1473. on ^*:nick:{
  1474. if (%except.set == 1 ) { if ($nick isop $chan) || ($nick ishop $chan) || ($nick isvoice $chan) { goto exceptop } }
  1475. inc -u [ $+ [ %time.ap.botnet.nickf ] ] %botnet.nick.flood. [ $+ [ $chan ] ] 1
  1476. if ( %botnet.nick.flood. [ $+ [ $wildsite ] ] == %lines.ap.botnet.nickf ) {
  1477. var %i = 0
  1478. while (%i < $comchan($newnick,0)) {
  1479. mode $comchan($newnick,0) %modes.ap.botnet.nickf
  1480. inc %kcount 1
  1481. if ($readini(botnetnick.ini,$address($nick,2),nick)) {
  1482. mode $chan +b $address($nick,%hostmask.ap.botnet.nickf)
  1483. kick $chan $nick $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.nickf,kcount,%kcount)
  1484. kick $chan $readini(botnetjoin.ini,$address($nick,2),nick) $replace(%kickmessage,rate,Possible bot,date,$fulldate,btime,%bantime.ap.botnet.nickf,kcount,%kcount)
  1485. if (%log.gen == 1) {
  1486. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Massjoin (Kickban): $nick ( $+ $address($nick,2) $+ )
  1487. writeini %log.dat $+ .ini $chan $date $+ : $+ $time Botnet Massjoin (Kickban): $readini(botnetjoin.ini,$address($nick,2),nick) ( $+ $address($nick,2) $+ )
  1488. }
  1489. .timer 1 $calc( %bantime.ap.botnet.nickf * 60 ) mode $chan -b $address($nick,%hostmask.ap.botnet.nickf)
  1490. writeini botnet.ini $address($nick,2) time $fulldate
  1491. }
  1492. else {
  1493. writeini botnetjoin.ini $address($nick,2) nick $nick
  1494. }
  1495. .timer 1 mode $comchan($newnick,0) $replace(%time.modes.ap.botnet.nickf,+,-)
  1496. %warn.gen $comchan($newnick,0) %flood.notice
  1497. inc %i
  1498. }
  1499. }
  1500. :exceptop
  1501. }
Add Comment
Please, Sign In to add comment