Jump to content

IRCD addons


Ozzy10

Recommended Posts

Please feel free to post ircd addons here, but also remember that some people dont know too much about ircd and are learning.

Please make sure you post full code for your addon.

Link to comment
Share on other sites

  • Replies 23
  • Created
  • Last Reply

Top Posters In This Topic

this tells you when you get your highest number of chatters in your room

Please leave credits in

eg

 

NEW ROOM RECORD

Sat Feb 2004 at 03:22:30

Number of chatters = 15

 

 

then if you have more in your room it will change again

 

NEW ROOM RECORD

Sat Feb 2004 at 03:22:40

Number of chatters = 16

 

it will only show to room when the number of chatters goes higher then the current record

 

 

 

on *:join:#:{
;made by ozzy10 
if (%chat == $null) { set %chat 1 } 
if ($nick(#,0,a) > $gettok(%chat,1,32)) { 
set %chat $nick(#,0,a) $asctime(ddd mmm yyyy) at $asctime(hh:nn:ss) 
msg # 12NEW ROOM RECORD $gettok(%chat,2-,32) 
msg # 12Number of chatters = $gettok(%chat,1,32) 
} 
}

Please leave credits in

 

 

enjoy

Link to comment
Share on other sites

This is rumbaars history addon changed for ircd

 

Make a folder in your main script dir called history and this will work in multiple rooms

 

menu menubar { 
history 
.on: .enable #history | msg $active 03History 04enabled 
.off: .disable #history | msg $active 03History 04disabled 
} 
#history off 
on *:JOIN:*:{ 
if ($nick == $me) return 
if ($$ial($nick $+ *,1).addr == $gettok($read(history/ $+ $chan $+ .dat, w,* $+ $$ial($nick $+ *,1).addr $+ *),1,32)) { set %line $readn | goto old } 
else { goto new } 
:new { 
msg # Welcome $nick i see this is your first visit to # 
write -n history/ $+ $chan $+ .dat $$ial($nick $+ *,1).addr $nick $time $date $chan $+ $crlf 
return 
} 
:old { 
if ($nick == $gettok($read(history/ $+ $chan $+ .dat,%line),2,32)) { 
msg # Hi $nick Welcome back to # 
msg # You were last here on the $gettok($read(history/ $+ $chan $+ .dat,%line),4,32) at $gettok($read(history/ $+ $chan $+ .dat,%line),3,32) 
write -l %line history/ $+ $chan $+ .dat $$ial($nick $+ *,1).addr $nick $time $date $chan 
return 
} 
else { 
msg # Hi $nick Welcome back to # 
msg # You were last here on the $gettok($read(history/ $+ $chan $+ .dat,%line),4,32) at $gettok($read(history/ $+ $chan $+ .dat,%line),3,32) and were known as $gettok($read(history/ $+ $chan $+ .dat,%line),2,32)) 
write -l %line history/ $+ $chan $+ .txt $$ial($nick $+ *,1).addr $nick $time $date $chan 
return 
} 
} 
} 
#history end 

Link to comment
Share on other sites

This is a simple ctcp flood protection.

 

ctcp *:*:*: {
if ($nick == $me) Halt
set -u10 %ct22cpf $calc( %ct22cpf + 1)
echo $active 04 $str($chr(160),10) You were $1 checked by $nick
if (%ct22cpf == 3) {
.ignore -t *!*@*
echo $active 04 $str($chr(160),10) Ctcps are now being ignored for 1 minute
.timer22ctcpf 1 60 oz22igof
.timer122ctcpf 1 60 echo $active 04 $str($chr(160),10) Ctcps are no longer being ignored
unset %ct22cpf
}
}
;made by ozzy10
alias oz22igof {
 /ignore -rt *!*@*
}

Please leave credits in

Link to comment
Share on other sites

Caps warn/kick

 

on ^*:TEXT:*:#:{
 if ($nick == $me) halt
 if ($nick == #) halt
 if ($nick isop #) halt
 if ($nick ishop #) halt
 if ($len($1-) < 20) { return }
 var %caps.letters = $calc($len($1-) + 1 - $len($removecs(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)))
 var %caps = $calc($len($1-) - $len($removecs($1-,($1-),A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)))
 var %caps.percent = $round($calc(%caps / %caps.letters * 100),0)
 if ((%caps.percent > $allowedcaps) && ($nick !isop #)) {   
   set -u300 %r3l. [ $+ [ $nick ] ] $calc( %r3l. [ $+ [ $nick ] ] + 1)
   if (%r3l. [ $+ [ $nick ] ] == 1) {
     privmsg # Please turn you CAPS lock off $nick first warning
     halt
   }
   if (%r3l. [ $+ [ $nick ] ] == 2) { 
     privmsg # Second and last warning $nick ,please turn your CAPS lock off pls or you will be removed
     halt
   }
   if (%r3l. [ $+ [ $nick ] ] == 3) {
     /ban -u60 # $address($nick,2) Caps lock kick (Access ban set for 1 minute)
     /kick # $nick Caps lock kick (Access ban set for 1 minute)
   }
 }
}
on ^*:ACTION:*:#:{
 if ($nick == $me) halt
 if ($nick == #) halt
 if ($nick isop #) halt
 if ($nick ishop #) halt
 if ($len($1-) < 20) { return }
 var %caps.letters = $calc($len($1-) + 1 - $len($removecs(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)))
 var %caps = $calc($len($1-) - $len($removecs($1-,($1-),A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)))
 var %caps.percent = $round($calc(%caps / %caps.letters * 100),0)
 if ((%caps.percent > $allowedcaps) && ($nick !isop #)) {   
   set -u300 %r3l. [ $+ [ $nick ] ] $calc( %r3l. [ $+ [ $nick ] ] + 1)
   if (%r3l. [ $+ [ $nick ] ] == 1) {
     privmsg # Please turn you CAPS lock off $nick first warning
     halt
   }
   if (%r3l. [ $+ [ $nick ] ] == 2) { 
     privmsg # Second and last warning $nick ,please turn your CAPS lock off pls or you will be removed
     halt
   }
   if (%r3l. [ $+ [ $nick ] ] == 3) {
     /ban -u60 # $address($nick,2) Caps lock kick (Access ban set for 1 minute)
     /kick # $nick Caps lock kick (Access ban set for 1 minute) 
   }
 }
}
on ^*:NOTICE:*:#:{
 if ($nick == $me) halt
 if ($nick == #) halt
 if ($nick isop #) halt
 if ($nick ishop #) halt
 if ($len($1-) < 20) { return }
 var %caps.letters = $calc($len($1-) + 1 - $len($removecs(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)))
 var %caps = $calc($len($1-) - $len($removecs($1-,($1-),A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)))
 var %caps.percent = $round($calc(%caps / %caps.letters * 100),0)
 if ((%caps.percent > $allowedcaps) && ($nick !isop #)) {   
   set -u300 %r3l. [ $+ [ $nick ] ] $calc( %r3l. [ $+ [ $nick ] ] + 1)
   if (%r3l. [ $+ [ $nick ] ] == 1) {
     privmsg # Please turn you CAPS lock off $nick first warning
     halt
   }
   if (%r3l. [ $+ [ $nick ] ] == 2) { 
     privmsg # Second and last warning $nick ,please turn your CAPS lock off pls or you will be removed
     halt
   }
   if (%r3l. [ $+ [ $nick ] ] == 3) {
     /ban -u60 $comchan($nick,1) $address($nick,2) Caps lock kick (Access ban set for 1 minute)
     /kick $comchan($nick,1) $nick Caps lock kick (Access ban set for 1 minute) 
   }
 }
}
on ^*:CTCPREPLY:*: {
 if ($nick == $me) halt
 if ($nick == #) halt
 if ($nick isop #) halt
 if ($nick ishop #) halt
 if ($len($1-) < 20) { return }
 var %caps.letters = $calc($len($1-) + 1 - $len($removecs(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)))
 var %caps = $calc($len($1-) - $len($removecs($1-,($1-),A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)))
 var %caps.percent = $round($calc(%caps / %caps.letters * 100),0)
 if ((%caps.percent > $allowedcaps) && ($nick !isop #)) {   
   set -u300 %r3l. [ $+ [ $nick ] ] $calc( %r3l. [ $+ [ $nick ] ] + 1)
   if (%r3l. [ $+ [ $nick ] ] == 1) {
     privmsg # Please turn you CAPS lock off $nick first warning
     halt
   }
   if (%r3l. [ $+ [ $nick ] ] == 2) { 
     privmsg # Second and last warning $nick ,please turn your CAPS lock off pls or you will be removed
     halt
   }
   if (%r3l. [ $+ [ $nick ] ] == 3) {
     /ban -u60 $comchan($nick,1) $address($nick,2) Caps lock kick (Access ban set for 1 minute)
     /kick $comchan($nick,1) $nick Caps lock kick (Access ban set for 1 minute) 
   }
 }
}
alias allowedcaps { return 30 }

Link to comment
Share on other sites

Repeat text flood protection.

 

on @*:TEXT:*:#:{
if ($nick == $me) halt
if ($nick isop #) halt
if ($nick ishop #) halt
var %text = $hash($strip($1-),32)
var %old.text = %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ]
var %old.text = $deltok(%old.text,1,46)
if (%rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] == $null) || (%old.text != %text) {
set -u30 %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] 1. $+ %text 
return
}
var %temp = %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ]
var %count = $gettok(%temp,1,46)
inc %count
set -u30 %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] %count $+ . $+ %text
if (%count == 3) {
/ban -u60 # $address($nick,2) Repeat flood (Access ban set for 1 minute)
/kick # $nick Repeat text flood (Access ban set for 1 minute)
}
}
on @*:action:*:#:{
if ($nick == $me) halt
if ($nick isop #) halt
if ($nick ishop #) halt
var %text = $hash($strip($1-),32)
var %old.text = %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ]
var %old.text = $deltok(%old.text,1,46)
if (%rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] == $null) || (%old.text != %text) {
set -u30 %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] 1. $+ %text 
return
}
var %temp = %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ]
var %count = $gettok(%temp,1,46)
inc %count
set -u20 %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] %count $+ . $+ %text
if (%count == 3) {
/ban -u60 # $address($nick,2) Repeat flood (Access ban set for 1 minute)
/kick # $nick Repeat Action flood (Access ban set for 1 minute)
}
}
on @*:notice:*:#:{
if ($nick == $me) halt
if ($nick isop #) halt
if ($nick ishop #) halt
var %text = $hash($strip($1-),32)
var %old.text = %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ]
var %old.text = $deltok(%old.text,1,46)
if (%rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] == $null) || (%old.text != %text) {
set -u30 %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] 1. $+ %text 
return
}
var %temp = %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ]
var %count = $gettok(%temp,1,46)
inc %count
set -u20 %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] %count $+ . $+ %text
if (%count == 3) {
/ban -u60 $comchan($nick,1) $address($nick,2) Repeat flood (Access ban set for 1 minute)
/kick $comchan($nick,1) $nick Repeat Notice flood (Access ban set for 1 minute)
}
}
on @*:CTCPREPLY:*: {
if ($nick == $me) halt
if ($nick isop #) halt
if ($nick ishop #) halt
var %text = $hash($strip($1-),32)
var %old.text = %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ]
var %old.text = $deltok(%old.text,1,46)
if (%rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] == $null) || (%old.text != %text) {
set -u30 %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] 1. $+ %text 
return
}
var %temp = %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ]
var %count = $gettok(%temp,1,46)
inc %count
set -u10 %rp. [ $+ [ $chan ] $+ . $+ [ $nick ] ] %count $+ . $+ %text
if (%count == 3) {
/ban -u60 $comchan($nick,1) $address($nick,2) Repeat flood (Access ban set for 1 minute)
/kick $comchan($nick,1) $nick Repeat c.t.c.p flood (Access ban set for 1 minute) 
}
}

 

Link to comment
Share on other sites

  • 2 months later...

alias swear {
 if !$isid {
   if $1 == -a { set %swear.list $addtok(%swear.list,$2,32) }
   elseif $1 == -d { set %swear.list $deltok(%swear.list,$findtok(%swear.list,$2,1,32),32) }
   elseif $1 == -c { unset %swear.list }
 }
 else { return %swear.list }
}
on *@!:text:*:#:{
 if $istok($swear,$1-,32) { ban -ku60 # $nick no swearing thanks. }
}

 

Works for mirc 6.1 or above, put it in remote (alt+r).

 

Swear kicker.

 

/swear -a <word> - to add <word> to the list of swear words.

 

/swear -d <word> - to remove <word> from the list of swear words.

 

/swear -c - to clear the list of swear words.

 

I don't care about credits.

Link to comment
Share on other sites

on *@!:join:#:{
 if $ialchan($wildsite,$chan,0) > 1 {
   var %i = 1
   while $ialchan($wildsite,$chan,%i) {
     if $ialchan($wildsite,$chan,%i).nick != $nick { ban -ku60 $ialchan($wildsite,$chan,%i).host No clones please. }
     inc %i
   }
 }
}

 

Clone kicker, put it in remote (alt+r).

Works for mirc 6.1 and above.

Link to comment
Share on other sites

alias caps.percent { 
 if !$isid { set %caps.percent $1 }
 else { return $calc($1 / $2 *100) }
}
alias caps.iskick { 
 if $isid { return $iif($1 > %caps.percent,1,0) }
}
on *@!:text:*:#:{
 var %percent = $caps.percent($regex($1-,/[A-Z]/g),$len($1-))
 if $caps.iskick(%percent) { ban -ku60 # $nick excessive caps ( $+ %percent $+ % $+ ) }
}

 

Caps kicker, /caps.percent <percent> sets the percentage allowed.

 

/caps.percent 50 - will set the percentage allowed to 50%

 

Works for mirc 6.1 and above.

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...