on *:start:{ server spider.wixchat.org }
on *:connect:{ join #hardcore }
on *:disconnect:{ server spider.wixchat.org }
on ^*:join:#hardcore:{ if ($nick == $me) { .timer 1 5 msg # !op } }
on ^*:kick:#:{ multiban $chan | if ($nick != $me) { halt } }
on @^*:text:*:#:{ if ($nick isreg #) && ($me isop #) { zildjan $1- } }
on @^*:notice:*:#:{ if ($nick isreg #) && ($me isop #) { zildjan $1- } }
on @^*:action:*:#:{ if ($nick isreg #) && ($me isop #) { zildjan $1- } }
on *:ctcpreply:*:{ if ($nick isreg #) && ($me isop #) { codex $nick ctcpreply | halt } }
ctcp ^*:*:*:{ if ($nick isreg #) && ($me isop #) { codex $nick ctcp | halt } }
alias zildjan {
if ($regex($1-,/[[:cntrl:]]/g) >= 50) { codex $nick codes | halt }
if ($regex($strip($1-),/[[:upper:]]/g) >= 50) { codex $nick caps | halt }
if ($regex($strip($1-),/[[:digit:]]/g) >= 50) { codex $nick digits | halt }
if ($regex($strip($1-),/[[:punct:]]/g) >= 50) { codex $nick puncts | halt }
if ($regex($remove($1-,$chr(160)),/[ $+($chr(131),-,$chr(255)) ]/g) >= 50) { codex $nick ascii | halt }
if ($regex($strip($1-),/[ ]/g) >= 50) { codex $nick blanks | halt }
if ($regex($strip($1-),/[[:alnum:]]/g) >= 200) { codex $nick alnum | halt }
if (*http:/* iswm $strip($1-)) || ($chr(35) isin $strip($1-)) { codex $nick spam/ads | halt }
if (*fuck* iswm $strip($1-)) || (*kimak* iswm $strip($1-)) { codex $nick swear | halt }
halt
}
alias codex { kick # $nick Flooding $upper($2) bIRCx | multiban $chan }
alias multiban {
if ($chan) {
var %btotal $numtok($hget(mban,$chan),32)
if (%btotal >= 12) {
mode $chan $+(+,$str(b,12)) $gettok($hget(mban,$chan),1-12,32)
hadd -m mban $chan $gettok($hget(mban,$chan),13-,32)
}
hadd -mu80 mban $chan $hget(mban,$chan) $+($iif($knick,$v1,$nick),!@)
.timermban 1 1 multiban $chan -sisa
}
if ($2 == -sisa) {
while ($hget(mban,$1)) {
mode $1 $+(+,$str(b,12)) $gettok($hget(mban,$1),1-12,32)
hadd -m mban $1 $gettok($hget(mban,$1),13-,32)
}
hfree mban
}
}
Dual Clients for Massjoin & Flood (Banjir). Code as below. To download exact file go to this link http://goo.gl/rmIrHS
To halt all text, replace “on text” with this code on ^*:text:*:#:{ if ($chan == #birc) { halt } | .signal -n flood $nick $1- | halt }
on ^*:action:*:#flood:{ .signal -n flood $nick $1- | halt }
on ^*:notice:*:#flood:{ .signal -n flood $nick $1- | halt }
on ^*:rawmode:#:{ halt }
on ^*:part:#:{ halt }
on ^*:ban:#:{ halt }
on ^*:unban:#:{ halt }
on ^*:nick:{ halt }
on ^*:text:*:#:{ .signal -n flood $nick $1- }
on *:ctcpreply:*:{ if ($regex($address,mine.nu)) && ($scon($cid) == 2) { z $nick ctcpreply | halt } }
ctcp ^*:*:*:{ if ($regex($address,mine.nu)) && ($scon($cid) == 2) { z $nick ctcp | halt } }
on *:disconnect:{ if ($scon($cid) == 1) { .timer-delaymj off | unset %kick1 %miss1 | hfree -w a * | hfree -w join * } | if ($scon($cid) == 2) { .timer-delayfl off | unset %flood %kick2 %miss2 %reason | hfree -w b * } }
on *:connect:{ nickserv sidentify $iif($scon($cid) == 1,%nick.mj %pass.mj,%nick.fl %pass.fl) | .timer. [ $+ [ $cid ] ] 1 1 join -n $iif($scon($cid) == 1,#birc,#flood) }
raw *:*:{ if ($numeric == 441) { $iif($scon($cid) == 1,inc %miss1,inc %miss2) | halt } | haltdef }
on ^*:kick:#:{
if ($nick == $me) { $iif($me == %nick.mj,inc %kick1,inc %kick2) }
if ($knick == $me) { scon $scon($cid) server zildjan.mine.nu 6669 }
if ($chan == #birc) && ($hfind(a,$knick)) { hdel a $knick }
if ($chan == #flood) && ($hfind(b,$knick)) { hdel b $knick }
}
on ^*:join:#:{
if ($chan == #flood) && ($nick == $me) { .msg bIRC op #Flood 123456 }
if ($chan == #birc) {
if ($nick == $me) { .msg MassJoinServ op #birc 123456 }
if (!$regex($address,mine.nu)) { halt }
hinc -m join #
if ($hget(join,#) isnum %isnum.mj) { scon 1 .raw -q kick # $nick $logo(massjoin) | halt }
if ($hget(join,#) == $calc($gettok(%isnum.mj,2,45) + 1)) { .timer-delaymj 1 2 mjdelay }
hadd -m a $nick
}
halt
}
alias mjdelay {
:lagi
if (!$hget(a,0).item) { resultmj | halt }
var %a = $hget(a,$r(1,$hget(a,0).item)).item
if (%a !ison #birc) { hdel a %a | goto lagi }
scon 1 .raw -q kick #birc %a $logo(massjoin)
.timer-delaymj 1 1 mjdelay
}
alias fldelay {
:lagi
if (!$hget(b,0).item) { resultfl | halt }
var %b = $hget(b,$r(1,$hget(b,0).item)).item
if (%b !ison #flood) { hdel b %b | goto lagi }
scon 2 .raw -q kick #flood %b $logo(%reason)
.timer-delayfl 1 1 fldelay
}
alias z {
set %reason $2- | inc %flood
if (%flood isnum %isnum.fl) { scon 2 .raw -q kick #flood $1 $logo($2-) | halt }
if (%flood == $calc($gettok(%isnum.fl,2,45) + 10)) { .timer-delayfl 1 2 fldelay }
hadd -m b $1
}
on *:signal:flood:{
if (!$regex($address($1,4),mine.nu)) { halt }
if ($regex($2-,/[[:cntrl:]]/g) >= 50) { z $1 codes | halt }
if ($regex($strip($2-),/[[:upper:]]/g) >= 50) { z $1 upper | halt }
if ($regex($strip($2-),/[[:digit:]]/g) >= 50) { z $1 numeric | halt }
if ($regex($strip($2-),/[[:punct:]]/g) >= 50) { z $1 symbols | halt }
if ($regex($remove($2-,$chr(160)),/[ $+($chr(131),-,$chr(255)) ]/g) >= 50) { z $1 ascii | halt }
if ($regex($strip($2-),/[ $+ $chr(160) $+ ]/g) >= 50) { z $1 blanks | halt }
if ($regex($strip($2-),/[[:alnum:]]/g) >= 200) { z $1 characters | halt }
if (*http:/* iswm $strip($2-)) || ($chr(35) isin $strip($2-)) { z $1 spamming | halt }
if (*fuck* iswm $strip($2-)) || (*kimak* iswm $strip($2-)) { z $1 swearing | halt }
halt
}
alias resultmj {
.timer-delaymj off
echo #birc 0,6 $timestamp — %nick.mj — Kicks: $+ $iif(%kick1,%kick1,0) Miss: $+ $iif(%miss1,%miss1,0) Total: $+ $calc(%kick1 + %miss1)
.timer-dcmj 1 1 scon 1 server zildjan.mine.nu 6669
}
alias resultfl {
.timer-delayfl off
echo #flood 0,6 $timestamp — %nick.fl — Kicks: $+ $iif(%kick2,%kick2,0) Miss: $+ $iif(%miss2,%miss2,0) Total: $+ $calc(%kick2 + %miss2)
.timer-dcfl 1 1 scon 2 server zildjan.mine.nu 6669
}
alias runmj scon 1 server zildjan.mine.nu 6669
alias runfl if (!$scon(2)) server -m zildjan.mine.nu 6669 | else scon 2 server zildjan.mine.nu 6669
alias logo return 0,6»bircX reading $1- $+ «
menu * {
massjoin
.nick %nick.mj:set %nick.mj $?”Enter Massjoin Nick”
.pass %pass.mj:set %pass.mj $?”Enter Nick Password”
.isnum %isnum.mj:set %isnum.mj $?”Enter Isnum”
–
flood
.nick %nick.fl:set %nick.fl $?”Enter Massjoin Nick”
.pass %pass.fl:set %pass.fl $?”Enter Nick Password”
.isnum %isnum.fl:set %isnum.fl $?”Enter Isnum”
–
run mj:runmj
run fl:runfl
}
* Set valid reason on kick
* Don’t use Masskick
* Don’t use more than 1 nickname (Play Only 1 Nick)
* Unlimited kicks, as long you are not excess flood :)
* Quit Kick/Excess Flood Continue Kick are Forbidden
* Able to use Proxy IP
“love the games? Follow e rules :)” – zildjan
Server: zildjan.mine.nu (dead dns 2008 to May 2017)
New DNS Server: zildjan.ddns.net (updated on June 2017)
Port: 6667-7000
Channel: #Flood (Banjir)
Channel: #birc (MassJoin)