MoonScript IRC — File Browser
MoonScriptIRCv3.0 / MoonScriptIRCv3.0 / system / kicks2.mrc
kicks2.mrc — 16.7 KB — Download this file
on @3:JOIN:#: {
if ( %badnick == ON ) { goto badnick }
else { goto clones }
:badnick
if ( %badwerd.1 isin $nick ) || ( %badwerd.2 isin $nick ) || ( %badwerd.3 isin $nick ) || ( %badwerd.4 isin $nick ) || ( %badwerd.5 isin $nick ) || ( %badwerd.6 isin $nick ) || ( %badwerd.7 isin $nick ) || ( %badwerd.8 isin $nick ) || ( %badwerd.9 isin $nick ) || ( %badwerd.10 isin $nick ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 | mode # +b $nick }
kick $chan $nick Unacceptable Nick $kicklogo
goto end
}
else { goto clones }
:clones
if ( %clonekick == ON ) {
if ( $ialchan($address($nick,2),$chan,0) > %maxclones ) {
%clone.which = 0
%clone.total = $ialchan($address($nick,2),$chan,0)
goto clonelist
}
else { goto revolve }
}
else { goto revolve }
:clonelist
inc %clone.which 1
if ( %clone.which > %clone.total ) { goto cloneopcheck }
else {
%clone.nicks = %clone.nicks $gettok($ialchan($address($nick,2),$chan,%clone.which),1,33)
goto clonelist
}
:cloneopcheck
%clone.which = 0
%clone.total = $ialchan($address($nick,2),$chan,0)
goto cloneopcheckloop
:cloneopcheckloop
inc %clone.which 1
if ( %clone.which > %clone.total ) { goto clonekick }
elseif ( $gettok($ialchan($address($nick,2),$chan,%clone.which),1,33) isop $chan ) { echo -a 4>>> 12Op'd Clones in $chan $+ : %clone.nicks ( $+ $gettok($address($nick,2),2,64) $+ ) 12<<< | goto revolve }
else { goto cloneopcheckloop }
:clonekick
.notice $nick Clones are not allowed in $chan ( $+ %clone.nicks $+ ) $irc
if ( $nick ison $chan ) && ( $nick !isop $chan ) { inc %knum 1 }
if ( $nick ison $chan ) && ( $nick !isop $chan ) && ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
if ( $nick ison $chan ) && ( $nick !isop $chan ) { kick $chan $nick Clones Detected: %clone.nicks ( $+ $gettok($address($nick,2),2,64) $+ ) $kicklogo }
goto end
:revolve
if ( %rdoor = ON ) {
if ( %revolve. [ $+ [ $wildsite ] ] == $null ) { set %revolve. [ $+ [ $wildsite ] ] 1 | .timer 1 5 unset %revolve. [ $+ [ $wildsite ] ] | goto end }
elseif ( %revolve. [ $+ [ $wildsite ] ] isnum 1-3 ) { inc %revolve. [ $+ [ $wildsite ] ] 1 | .timer 1 5 unset %revolve. [ $+ [ $wildsite ] ] | goto end }
elseif ( %revolve. [ $+ [ $wildsite ] ] == 4 ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
.timer 1 05 if ( $nick ison $chan ) { kick $chan $nick Revolving Door Flood $kicklogo }
unset %revolve. [ $+ [ $wildsite ] ]
goto end
}
else { goto end }
}
else { goto end }
:end
unset %clone.*
}
on @3:PART:#: {
if ( %rdoor == ON ) {
if ( %revolve. [ $+ [ $wildsite ] ] == $null ) { set %revolve. [ $+ [ $wildsite ] ] 1 | .timer 1 5 unset %revolve. [ $+ [ $wildsite ] ] | goto end }
elseif ( %revolve. [ $+ [ $wildsite ] ] isnum 1-2 ) { inc %revolve. [ $+ [ $wildsite ] ] 1 | .timer 1 5 unset %revolve. [ $+ [ $wildsite ] ] | goto end }
elseif ( %revolve. [ $+ [ $wildsite ] ] == 3 ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
.timer 1 05 if ( $nick ison $chan ) { kick $chan $nick Revolving Door Flood $kicklogo }
unset %revolve. [ $+ [ $wildsite ] ]
goto end
}
else { goto end }
}
else { goto end }
:end
}
on @3:NICK: {
if ( %badnick == ON ) { goto badnick }
else { goto nickflood }
:badnick
if ( %badwerd.1 isin $newnick ) || ( %badwerd.2 isin $newnick ) || ( %badwerd.3 isin $newnick ) || ( %badwerd.4 isin $newnick ) || ( %badwerd.5 isin $newnick ) || ( %badwerd.6 isin $newnick ) || ( %badwerd.7 isin $newnick ) || ( %badwerd.8 isin $newnick ) || ( %badwerd.9 isin $newnick ) || ( %badwerd.10 isin $newnick ) {
set %badnick.total $comchan($newnick,0)
set %badnick.which 0
goto { kicknick }
}
else { goto nickflood }
:kicknick
if ( %badnick.which > %badnick.total ) { goto end }
else {
inc %badnick.which 1
if ( $me isop $comchan($newnick,%badnick.which)) && ( $newnick !isop $comchan($newnick,%badnick.which)) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $comchan($newnick,%badnick.which)) $newnick 4 }
kick $comchan($newnick,%badnick.which)) $nick Unacceptable Nick Change $kicklogo
goto kicknick
}
else { goto kicknick }
}
:nickflood
if (( %nickflood [ $+ [ $wildsite ] ] == $null ) && ( %nickflood == ON )) { set %nickflood [ $+ [ $wildsite ] ] 1 | .timer 1 5 unset %nickflood [ $+ [ $wildsite ] ] | goto end }
elseif (( %nickflood [ $+ [ $wildsite ] ] >= 1 ) && ( %nickflood [ $+ [ $wildsite ] ] <= 2 ) && ( %nickflood == ON )) { inc %nickflood [ $+ [ $wildsite ] ] 1 | .timer 1 5 unset %nickflood [ $+ [ $wildsite ] ] | goto end }
elseif (( %nickflood [ $+ [ $wildsite ] ] == 3 ) && ( %nickflood == ON )) {
set %floodnick.total $comchan($newnick,0)
set %floodnick.which 0
goto { floodkick }
}
else { goto end }
:floodkick
if ( %floodnick.which > %floodnick.total ) { goto end }
else {
inc %floodnick.which 1
if ( $me isop $comchan($newnick,%floodnick.which)) && ( $newnick !isop $comchan($newnick,%floodnick.which)) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { mode $comchan($newnick,%floodnick.which)) +b $wildsite | .timer 1 $remove(%bantime,-u) mode $comchan($newnick,%floodnick.which)) -b $wildsite }
kick $comchan($newnick,%floodnick.which)) $nick Nick Flood $kicklogo
goto floodkick
}
else { goto floodkick }
}
:end
unset %badnick.*
unset %floodnick.*
}
on @3:INVITE:#: {
if ( %invite == ON ) {
set %invite.total $comchan($nick,0)
set %invite.which 0
goto invite
}
else { goto end }
:invite
if ( %invite.which > %invite.total ) { goto end }
else {
inc %invite.which 1
if ( $me isop $comchan($nick,%invite.which)) && ( $nick !isop $comchan($nick,%invite.which)) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $comchan($nick,%invite.which)) $nick 4 }
kick $comchan($nick,%invite.which)) $nick Invites $kicklogo
goto invite
}
else { goto invite }
}
:end
unset %invite.*
}
on @3:NOTICE:*:#: {
if ( $nick isop $chan ) { goto end }
elseif ( %ad.1 isin $strip($1-)) || ( %ad.2 isin $strip($1-)) || ( %ad.3 isin $strip($1-)) || ( %ad.4 isin $strip($1-)) || ( %ad.5 isin $strip($1-)) || ( %ad.6 isin $strip($1-)) || ( %ad.7 isin $strip($1-)) || ( %ad.8 isin $strip($1-)) || ( %ad.9 isin $strip($1-)) || ( %ad.10 isin $strip($1-)) && ( $chan !isin $strip($1-)) && ( %advertise == ON ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Channel Notice Advertising $kicklogo
goto end
}
else { goto end }
:end
}
on @3:TEXT:*:#: {
if ( %swear == OFF ) { goto end }
if ( $nick isop $chan ) { goto end }
else { goto swear }
:swear
if ( %badwerd.1 isin $strip($1-) ) || ( %badwerd.2 isin $strip($1-) ) || ( %badwerd.3 isin $strip($1-) ) || ( %badwerd.4 isin $strip($1-) ) || ( %badwerd.5 isin $strip($1-) ) || ( %badwerd.6 isin $strip($1-) ) || ( %badwerd.7 isin $strip($1-) ) || ( %badwerd.8 isin $strip($1-) ) || ( %badwerd.9 isin $strip($1-) ) || ( %badwerd.10 isin $strip($1-) ) && ( .mp3 !isin $strip($1-)) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Offensive Language $kicklogo
goto end
}
else { goto advertise }
:advertise
if ( %ad.1 isin $strip($1-)) || ( %ad.2 isin $strip($1-)) || ( %ad.3 isin $strip($1-)) || ( %ad.4 isin $strip($1-)) || ( %ad.5 isin $strip($1-)) || ( %ad.6 isin $strip($1-)) || ( %ad.7 isin $strip($1-)) || ( %ad.8 isin $strip($1-)) || ( %ad.9 isin $strip($1-)) || ( %ad.10 isin $strip($1-)) && ( $chan !isin $strip($1-)) && ( %advertise == ON ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Channel Advertising $kicklogo
goto end
}
else { goto longtext }
:longtext
if ( $len($strip($1-)) >= %lenmax ) && ( %longtext == ON ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Long Text Flood $kicklogo
goto end
}
else { goto ccodes }
:ccodes
if ( %ccodes == ON ) {
%ccodes.text = $1-
%ccodes.total = $count(%ccodes.text,)
%ccodes.total = $calc(%ccodes.total + $count(%ccodes.text,))
%ccodes.total = $calc(%ccodes.total + $count(%ccodes.text,))
%ccodes.total = $calc(%ccodes.total + $count(%ccodes.text,))
if ( %ccodes.total > %maxcodes ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Excessive Control Codes $kicklogo
unset %ccodes.*
goto end
}
else { unset %ccodes.* | goto caps }
}
else { goto caps }
:caps
if ( %caps == OFF ) { goto repeat }
.set %caps.len $calc($capkick($parms)/$len($parms)*100)
if ( %caps.len >= %maxcaps ) && ( $len($parms) >= %maxlen ) { goto capskick }
else { goto repeat }
:capskick
if ( %capswarn. [ $+ [ $chan [ $+ [ $nick ] ] ] ] == YES ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Excessive Caps ( $+ $round(%caps.len,2) $+ $chr(37) caps >= $round(%maxcaps,2) $+ $chr(37) limit) $kicklogo
.unset %caps.*
.unset %capswarn. [ $+ [ $chan [ $+ [ $nick ] ] ] ]
halt
}
else {
.notice $nick $nick $+ , The use of caps is considered YELLING and/or being rude. Do not use excessive caps or you will be kicked from $chan $irc
;.onotice $chan $irc Warning sent to $nick in $chan for Excessive Caps
.set %capswarn. [ $+ [ $chan [ $+ [ $nick ] ] ] ] YES
.timer 1 600 unset %capswarn. [ $+ [ $chan [ $+ [ $nick ] ] ] ]
.unset %caps.*
}
:capsdone
.unset %caps.*
:repeat
if (( %2 [ $+ [ $chan [ $+ [ $nick ] ] ] ] == $null ) && ( %repeat == ON )) { set %2 [ $+ [ $chan [ $+ [ $nick ] ] ] ] $strip($1-) | /.timer 1 5 unset %2 [ $+ [ $chan [ $+ [ $nick ] ] ] ] | goto flood }
elseif (( %2 [ $+ [ $chan [ $+ [ $nick ] ] ] ] == $strip($1-)) && ( %3 [ $+ [ $chan [ $+ [ $nick ] ] ] ] == $null ) && ( %repeat == ON )) { set %3 [ $+ [ $chan [ $+ [ $nick ] ] ] ] $strip($1-) | /.timer 1 5 unset %3 [ $+ [ $chan [ $+ [ $nick ] ] ] ] | goto flood }
elseif (( %3 [ $+ [ $chan [ $+ [ $nick ] ] ] ] == $strip($1-)) && ( %repeat == ON )) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Repeat Flood $kicklogo
goto end
}
else { goto flood }
:flood
if (( %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] == $null ) && ( %flood == ON )) { set %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] 1 | .timer 1 5 unset %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] | goto end }
elseif (( %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] >= 1 ) && ( %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] <= 5 ) && ( %flood == ON )) { inc %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] 1 | .timer 1 5 unset %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] | goto end }
elseif (( %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] == 6 ) && ( %flood == ON )) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Text Flood $kicklogo
unset %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ]
goto end
}
else { goto end }
:end
}
on @3:ACTION:*slaps*trout*:#: {
if ( $nick isop $chan ) { goto end }
elseif ( %troutslap == ON ) && ( $me isin $strip($1-)) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Trout Kick $kicklogo
goto end
}
else { goto end }
:end
}
on @3:ACTION:*:#: {
if ( %swear == OFF ) { goto end }
if ( $nick isop $chan ) { goto end }
else { goto swear }
:swear
if ( %badwerd.1 isin $strip($1-) ) || ( %badwerd.2 isin $strip($1-) ) || ( %badwerd.3 isin $strip($1-) ) || ( %badwerd.4 isin $strip($1-) ) || ( %badwerd.5 isin $strip($1-) ) || ( %badwerd.6 isin $strip($1-) ) || ( %badwerd.7 isin $strip($1-) ) || ( %badwerd.8 isin $strip($1-) ) || ( %badwerd.9 isin $strip($1-) ) || ( %badwerd.10 isin $strip($1-) ) && ( .mp3 !isin $strip($1-)) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Offensive Language $kicklogo
goto end
}
else { goto advertise }
:advertise
if ( %ad.1 isin $strip($1-)) || ( %ad.2 isin $strip($1-)) || ( %ad.3 isin $strip($1-)) || ( %ad.4 isin $strip($1-)) || ( %ad.5 isin $strip($1-)) || ( %ad.6 isin $strip($1-)) || ( %ad.7 isin $strip($1-)) || ( %ad.8 isin $strip($1-)) || ( %ad.9 isin $strip($1-)) || ( %ad.10 isin $strip($1-)) && ( $chan !isin $strip($1-)) && ( %advertise == ON ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Channel Advertising $kicklogo
goto end
}
else { goto longtext }
:longtext
if ( $len($strip($1-)) >= %lenmax ) && ( %longtext == ON ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Long Text Flood $kicklogo
goto end
}
else { goto ccodes }
:ccodes
if ( %ccodes == ON ) {
%ccodes.text = $1-
%ccodes.total = $count(%ccodes.text,)
%ccodes.total = $calc(%ccodes.total + $count(%ccodes.text,))
%ccodes.total = $calc(%ccodes.total + $count(%ccodes.text,))
%ccodes.total = $calc(%ccodes.total + $count(%ccodes.text,))
if ( %ccodes.total > %maxcodes ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Excessive Control Codes $kicklogo
unset %ccodes.*
goto end
}
else { unset %ccodes.* | goto caps }
}
else { goto caps }
:caps
if ( %caps == OFF ) { goto repeat }
.set %caps.len $calc($capkick($parms)/$len($parms)*100)
if ( %caps.len >= %maxcaps ) && ( $len($parms) >= %maxlen ) { goto capskick }
else { goto repeat }
:capskick
if ( %capswarn. [ $+ [ $chan [ $+ [ $nick ] ] ] ] == YES ) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Excessive Caps ( $+ $round(%caps.len,2) $+ $chr(37) caps >= $round(%maxcaps,2) $+ $chr(37) limit) $kicklogo
.unset %caps.*
.unset %capswarn. [ $+ [ $chan [ $+ [ $nick ] ] ] ]
halt
}
else {
.notice $nick $nick $+ , The use of caps is considered YELLING and/or being rude. Do not use excessive caps or you will be kicked from $chan $irc
;.onotice $chan $irc Warning sent to $nick in $chan for Excessive Caps
.set %capswarn. [ $+ [ $chan [ $+ [ $nick ] ] ] ] YES
.timer 1 600 unset %capswarn. [ $+ [ $chan [ $+ [ $nick ] ] ] ]
.unset %caps.*
}
:capsdone
.unset %caps.*
:repeat
if (( %2 [ $+ [ $chan [ $+ [ $nick ] ] ] ] == $null ) && ( %repeat == ON )) { set %2 [ $+ [ $chan [ $+ [ $nick ] ] ] ] $strip($1-) | /.timer 1 5 unset %2 [ $+ [ $chan [ $+ [ $nick ] ] ] ] | goto flood }
elseif (( %2 [ $+ [ $chan [ $+ [ $nick ] ] ] ] == $strip($1-)) && ( %3 [ $+ [ $chan [ $+ [ $nick ] ] ] ] == $null ) && ( %repeat == ON )) { set %3 [ $+ [ $chan [ $+ [ $nick ] ] ] ] $strip($1-) | /.timer 1 5 unset %3 [ $+ [ $chan [ $+ [ $nick ] ] ] ] | goto flood }
elseif (( %3 [ $+ [ $chan [ $+ [ $nick ] ] ] ] == $strip($1-)) && ( %repeat == ON )) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Repeat Flood $kicklogo
goto end
}
else { goto flood }
:flood
if (( %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] == $null ) && ( %flood == ON )) { set %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] 1 | .timer 1 5 unset %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] | goto end }
elseif (( %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] >= 1 ) && ( %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] <= 5 ) && ( %flood == ON )) { inc %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] 1 | .timer 1 5 unset %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] | goto end }
elseif (( %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ] == 6 ) && ( %flood == ON )) {
inc %knum 1
if ( $remove(%bantime,-u) > 0 ) { ban %bantime $chan $nick 3 }
kick $chan $nick Action Flood $kicklogo
unset %floodcheck [ $+ [ $nick [ $+ [ $chan ] ] ] ]
goto end
}
else { goto end }
:end
}
alias capkick {
set %caps.temp $remove($parms,$chr(32))
set %inc 1
set %caps.total 0
:capscheck
set %caps.num $mid(%caps.temp,%inc,1)
if ( %caps.num == $null ) { goto end }
elseif ( $asc(%caps.num) isnum 65-90 ) { inc %caps.total 1 | inc %inc 1 | goto capscheck }
else { inc %inc 1 | goto capscheck }
:end
return %caps.total
}