Popups for Unreal with Anope

By Yoinx on Dec 24, 2004

I made these on a server running Unreal IRcd. I believe everything should work on other nets. However, there are numerous commands that are specific to Unreal or Anope. Also, all user modes in channels are mass. They will perform on ALL selected nicks in the channel. Im working to expand these to other networks services, But that may be some time from now. The commands included that are normal mirc popups are included purely to control placement.

on *:connect: {
  .enable #servicescheck
  .timer 1 1 .who Nickserv
  .timer 1 2 .who Chanserv
  .timer 1 3 .who Memoserv
  .timer 1 4 .who Operserv
  .timer 1 20 .disable #servicescheck
}
on *:disconnect: {
  if ( $var($($+(%,$network,*)),0) > 0 ) unset $($+(%,$network,*))
}
#servicescheck off
raw 352:*: {
  if ( nickserv isin $1- ) && ( service isin $1- )  set $($+(%,$network,.nickserv)) 1
  if ( chanserv isin $1- ) && ( service isin $1- )  set $($+(%,$network,.chanserv)) 1
  if ( memoserv isin $1- ) && ( service isin $1- )  set $($+(%,$network,.memoserv)) 1
  if ( operserv isin $1- ) && ( service isin $1- )  set $($+(%,$network,.operserv)) 1
  halt
}
raw 315:*: halt
#servicescheck end
alias cankick { if ( $hop ) || ( $op ) || ( $sop ) || ( $owner ) { return $true } }
alias canban { if ( b isincs $chanmodes ) && ( $hop ) || ( $op ) || ( $sop ) || ( $owner ) { return $true } }
alias canexcept { if ( e isincs $chanmodes ) && ( $hop ) || ( $op ) || ( $sop ) || ( $owner ) { return $true } }
alias voice { if ( + isincs $prefix ) && ( $nick(#,$me,vho&q!~) ) || ( A isincs $usermode ) || ( O isincs $usermode ) { return $true } }
alias hop { if ( % isincs $prefix ) && ( $nick(#,$me,ho&q!~) ) || ( A isincs $usermode ) || ( O isincs $usermode ) { return $true } }
alias op { if ( @ isincs $prefix ) && ( $nick(#,$me,o&q!~) ) || ( A isincs $usermode ) || ( O isincs $usermode ) { return $true } }
alias sop { if ( & isincs $prefix ) && ( $nick(#,$me,&q~!) ) || ( A isincs $usermode ) || ( O isincs $usermode ) { return $true } }
alias owner { if ( ~ isincs $prefix ) || ( ! isincs $prefix ) && ( $nick(#,$me,q!~) ) || ( A isincs $usermode ) || ( O isincs $usermode ) { return $true } }
alias ircop { if ( A isincs $usermode ) || ( o isincs $usermode ) { return $true } }
alias operserv { if ( $ircop ) && ( $($+(%,$network,.operserv),2) == 1 ) { return $true } }
alias services { if ( $($+(%,$network,.nickserv),2) == 1 ) || ( $($+(%,$network,.chanserv),2) == 1 ) || ( $($+(%,$network,.memoserv),2) == 1 ) || ( $($+(%,$network,.operserv),2) == 1 ) { return $true } }
alias modechange {
  var %x 1
  var %z 1
  set %nicks $snicks
  if ( $snick(#,0) >= %x) {
    while ( %x <= $snick(#,0) ) {
      while ( %z <= $modespl ) {
        if ( %nicksmode == $null ) {
          set %nicksmode $gettok(%nicks,1,44) 
          set %nicks $deltok(%nicks,1,44)
        }
        else {
          set %nicksmode $($+(%nicksmode,$chr(32),$gettok(%nicks,1,44)))
          set %nicks $deltok(%nicks,1,44)
        }
        inc %z 
      }
      var %z 1
      mode # $($+($1,$str($2,$modespl))) %nicksmode
      unset %nicksmode
      inc %x
    }
    unset %nicks
  }
}
menu nicklist {
  Info
  .Whois:whois $$1
  .Version:ctcp $$1 version
  .Info:uwho $1
  .DNS:Dns $1
  -
  DCC
  .Send:/dcc send $$1
  .Chat:/dcc chat $$1
  Invite:/invite $1 $$?="Channel:"
  Ignore
  .Ignore:ignore $$1 1
  .Unignore:ignore -r $$1 1
  -
  ;;
  ;;;;Channel Controls
  ;;
  $iif( $cankick , Channel Control )
  .ChanModes
  ..$iif( $cankick , Kicks )
  ...Kick:kick # $1
  ...Kick Reason:kick # $1 $$?="Enter Reason:"
  ..$iif( $canban , Bans )
  ...$iif( b isincs $chanmodes , Ban $1 ):ban # $1
  ...$iif( b isincs $chanmodes , Kick/Ban $1 ):ban -k # $1 
  ..$iif( $canexcept , Exceptions )
  ...$iif( e isincs $chanmodes , Exempt Nick ):mode # +e $1
  ...$iif( e isincs $chanmodes , UnExempt Nick ):mode # -e $1
  ;;
  ;;;;User Controls
  ;;  
  .UserModes
  ..$iif( $voice , Voice )
  ...Voice:modechange + v
  ...Devoice:modechange - v    
  ..$iif( $hop , Half Op )
  ...Half Op:modechange + h
  ...DeHalf Op:modechange - h
  ..$iif( $op , Op )
  ...Op:modechange + o
  ...Deop:modechange - o
  ..$iif( $sop , Sop )
  ...Sop:modechange + a
  ...DeSop:modechange - a 
  ..$iif( $owner , Owner )
  ...Owner:modechange + q
  ...DeOwner:modechange - q
  -
  $iif( $ircop , Ircop Controls)
  .Chghost $1:chghost $1 $$?="New Host"
  .Sajoin $1:sajoin $1 $$?="Channel:"
  .Sapart $1:sapart $1 #
  .GLine $1:gline $1 $?="Time format 1s 1m 1h 1d :" $$?="Reason for GLine:"
}
Menu Channel {
  Channel Info:/channel
  Topic:/topic #
  -
  ;;
  ;;;;Channel Modes
  ;;
  $iif( $me isop # , Chanmodes )
  .$iif( k isincs $chanmodes , Channel Key ):mode # +k $$?="Enter Key"
  .$iif( l isincs $chanmodes , Channel Limits )
  ..$iif( l isincs $chanmodes , Channel Limit ):mode # $iif( l isincs $chan(#).mode , -l , +l $$?="Enter Limit" )
  ..$iif( L isincs $chanmodes , Channel Limit Redirect ):mode # $iif( L isincs $chan(#).mode +L , -L , +L $$?="Enter Channel to Redirect Users to if Limit is met." )
  .$iif( f isincs $chanmodes , Flood Protect )
  ..$iif( f isincs $chanmodes , Kick/Ban ):mode # $iif( f isincs $chan(#).mode , -f , +f $($+(*,$$?="Enter Parameters as Lines:Secs")) )
  ..$iif( f isincs $chanmodes , Kick ):mode # $iif( f isincs $chan(#).mode , -f , +f $$?="Enter Parameters as Lines:Secs" )
  .Restrict /List
  ..$iif( p isincs $chanmodes , Private ):mode # $iif( p isincs $chan(#).mode , -p , +p )
  ..$iif( s isincs $chanmodes , Secret ):mode # $iif( s isincs $chan(#).mode , -s , +s )
  ..$iif( u isincs $chanmodes , Auditorium ):mode # $iif( u isincs $chan(#).mode , -u , +u )
  .Restrict Users
  ..$iif( t isincs $chanmodes , Only Ops Set Topic ):mode # $iif( t isincs $chan(#).mode , -t , +t )
  ..$iif( i isincs $chanmodes , Make channel Invite Only ):mode # $iif( i isincs $chan(#).mode , -i , +i )
  ..$iif( K isincs $chanmodes , Disable Knocks ):mode # $iif( iK isincs $chan(#).mode , -K , +iK )
  ..$iif( V isincs $chanmodes , Disable Invites ):mode # $iif( I isincs $chan(#).mode , -I , +I )
  ..$iif( R isincs $chanmodes , Only Registered Nicks May Join ):mode # $iif( R isincs $chan(#).mode , -R , +R )
  ..$iif( z isincs $chanmodes , Only allow SSL clients ):mode # $iif( z isincs $chan(#).mode , -z , +z )
  ..$iif( O isincs $chanmodes , Only IrcOps May Join ):mode # $iif( O isincs $chan(#).mode , -O , +O )
  ..$iif( A isincs $chanmodes , Only Server Admins May Join ):mode # $iif( A isincs $chan(#).mode , -A , +A )
  ..$iif( Q isincs $chanmodes , Only U:lines May Kick Users ):mode # $iif( Q isincs $chan(#).mode , -Q , +Q )
  ..$iif( N isincs $chanmodes , Disable Nick Changes in # ):mode # $iif( N isincs $chan(#).mode , -N , +N )
  .Restrict Text
  ..$iif( m isincs $chanmodes , Make channel Moderated ):mode # $iif( m isincs $chan(#).mode , -m , +m )
  ..$iif( n isincs $chanmodes , Prevent External Msgs ):mode # $iif( n isincs $chan(#).mode , -n , +n )
  ..$iif( R isincs $chanmodes , Only Registered Nicks can Talk ):mode # $iif( R isincs $chan(#).mode , -R , +R )
  ..$iif( T isincs $chanmodes , Disable Channel Noticies ):mode # $iif( T isincs $chan(#).mode , -T , +T )
  ..$iif( G isincs $chanmodes , Enable Channel Badwords List ):mode # $iif( G isincs $chan(#).mode , -G , +G )
  ..$iif( C isincs $chanmodes , Disable Ctcps In # ):mode # $iif( C isincs $chan(#).mode , -C , +C )
  ..$iif( c isincs $chanmodes , Strip Ansi Colors from # ):mode # $iif( c isincs $chan(#).mode , -c ,  +c )
  ..$iif( S isincs $chanmodes , Strip All Colors on # ):mode # $iif( S isincs $chan(#).mode , -S , +S )
  ;;
  ;;;;IrcOp Controls
  ;; 
  $iif( $ircop , Ircop Controls)
  .Add Spamfilter:spamfilter add cpnN gline 0 $$?="Spam Reason: Use Underscores for spaces." $$?="Spam Text"
  .Kill $1:Kill $1 $$?="Reason for Kill:"
  .Dcc Deny:dccdeny $$?="Filename" $$?="Reason"
  .$iif( $Operserv , Operserv )
  ..Svs Nick:{
    .msg operserv set superadmin on
    .msg operserv svsnick $$?="Enter Nick" $$?="Enter New Nick"
    .msg operserv set superadmin off
  }
  ..Global Msg:.msg operserv global $$?="Enter Your Message:"
  ..Kill Clones:.msg operserv killclones $$?="Enter Nick:"
  ..Session Exceptions:.msg operserv exception add $$?="Enter Host: Portion after @" $$?="Enter # of Sessions:" $$?="Enter Reason:"
  ..User Modes:{
    .msg operserv set superadmin on
    .msg operserv umode $$?="Enter Nick:" $$?="Enter Modes: +i -i"
    .msg operserv set superadmin off
  }  
  ..Channel Control
  ...Channel Modes:.msg operserv mode $$?="Enter Channel:" $$?="Enter Modes: ie +m -m"
  ...Channel Kick:.msg operserv kick $$?="Enter Channel:" $$?="Enter User:" $?="Enter Reason:"
  ...Clear Modes:.msg operserv clearmodes $$?="Enter Channel:" $?="If You want to clear Ops and voices, enter ALL"
  ..AKill List
  ...AKill Add:.msg operserv akill add 30d $$?="Enter User@host or IP" $?="Reason:"
  ...Akill Del:.msg operserv akill del $$?="Enter Mask:"
  ..SQline List
  ...SQline Add:.msg operserv sqline add $$?="Enter Nick Or Channel:"
  ...SQline Del:.msg operserv sqline del $$?="Enter Nick Or Channel:"
  ..News
  ...Logon News:.msg operserv logonnews add $$?="Enter Logon Msg:  Only the most recent 3 items will be sent."
  ...Random News:.msg operserv randomnews add $$?="Enter Random Entry Msg:"
  ...Oper News:.msg operserv opernews add $$?="Enter Oper News:  Only the most recent 3 items will be sent."
  ..Chankill (Akills all users on Chan):.msg operserv chankill $$?="Enter Channel" $$?="Enter Reason"
}
menu channel,nicklist {
  $iif( $services , Services )
  ;;
  ;;;;Nickserv
  ;;
  .$iif( $($+(%,$network,.nickserv),2) == 1 , Nickserv )
  ..Register Nick:.msg nickserv register $$?="Enter Password:" $$?="Enter Email:" 
  ..Group:.msg nickserv group $$?="Enter Nick to Group With:" $$?="Enter Password of Target:"
  ..Identify:.msg nickserv identify $$?="Enter Your Pass:"
  ..Access (Auto-Identify from this host):.msg nickserv access add $$?="Enter Host: who@where"
  ..Ghost Nick:.msg nickserv ghost $$?="Enter Nick:" $$?="Enter Pass:"
  ;;
  ;;;;Chanserv
  ;;  
  .$iif( $($+(%,$network,.chanserv),2) == 1 , Chanserv )
  ..Register:.msg chanserv register $$?="Enter Channel:" $$?="Enter Password" $$?="Enter Description"
  ..Identify:.msg chanserv identify $$?="Enter Channel:" $$?="Enter Password"
  ..Users
  ...Add AOp:.msg chanserv aop $$?="Enter Channel" add $$?="Nick"
  ...Add SOp:.msg chanserv sop $$?="Enter Channel" add $$?="Nick"
  ...Akick
  ....Akick Add:.msg chanserv akick $$?="Enter Channel:" add $$?="Enter Nick or Mask"
  ....Akick Stick:.msg chanserv akick $$?="Enter Channel:" stick $$?="Enter Nick or Mask
  ...Ban:.msg chanserv ban $$?="Enter Channel:" $$?="Enter Nick:" $?="Enter Reason:"
  ...Protect:.msg chanserv $$?="Enter Channel:" $$?="Enter Nick:"
  ..Clear
  ...Modes:.msg chanserv clear $$?="Enter Channel:" modes
  ...Bans:.msg chanserv clear $$?="Enter Channel:" bans
  ...Excepts:.msg chanserv clear $$?="Enter Channel:" excepts
  ...Ops:.msg chanserv clear $$?="Enter Channel:" ops
  ...Hops:.msg chanserv clear $$?="Enter Channel:" hops
  ...Voices:.msg chanserv clear $$?="Enter Channel:" voices
  ...Users:.msg chanserv clear $$?="Enter Channel:" users
  ..Unban:.msg chanserv unban $$?="Enter Channel:"
  ;;
  ;;;;MemoServ
  ;; 
  .$iif( $($+(%,$network,.memoserv),2) == 1 , Memoserv )
  ..Send Memo:.msg memoserv send $$?="Enter Nick or Channel:" $$?="Enter Memo:"
  ..Read New Memos:.msg memoserv read New
  ..Delete All Memos:.msg memoserv del all
}

Comments

Sign in to comment.
Yoinx   -  Dec 25, 2004

I actually shortened it by like 100 lines before i posted it by making that /modechange alias.

 Respond  
Yoinx   -  Dec 25, 2004

Yeah it will keep getting larger with each post. Especially since I still have to added the other services, X and L and all that.... though its a bit long just for popups :(

 Respond  
Yoinx   -  Dec 24, 2004

yeah, i deleted my other popups i\'ll fix it

 Respond  
DarthReven   -  Dec 24, 2004

its a nice lil menu but the first 13 lines aren\'t nessary cause mIRC already gives you those by default

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.