KLoWnX — File Browser

klownX / klownX / clone.mrc

clone.mrc — 5.43 KB — Download this file

Menu Channel {
  KLøWñ× Clone Scanner
  .Scan Current Channel: { clone $chan }
  .-
  .Scan Reaction
  ..Echo to Yourself: {
    set %clone.reaction echo
    echo -a 4*** Clone Reaction Set to: 5Echo
  }
  ..Message Channel: {
    set %clone.reaction msg
    echo -a 4*** Clone Reaction Set to: 5Message 
  }
  ..Kick Clones: {
    set %clone.reaction kick
    echo -a 4*** Clone Reaction Set to: 5Kick 
  }
  ..Kick and Ban Clones: {
    set %clone.reaction kickban
    echo -a 4*** Clone Reaction Set to: 5Kick and Ban
  }
  .On Join Reaction
  ..Enable:%clone.onjoin = yes
  ..Disable:%clone.onjoin = no
  ..-
  ..Echo to Yourself: {
    set %clone.join.reaction echo
    echo -a 4*** Clone Reaction [On Join] Set to: 5Echo
  }
  ..Message Channel: {
    set %clone.join.reaction msg
    echo -a 4*** Clone Reaction [On Join] Set to: 5Message 
  }
  ..Kick Clones: { 
    set %clone.join.reaction kick
    echo -a 4*** Clone Reaction [On Join] Set to: 5Kick
  }
  ..Ban/Kick All: {
    set %clone.join.reaction kickban
    echo -a 4*** Clone Reaction [On Join] Set to: 5Kick and Ban
  }
  .-
  .Maximum Users at One Address: { 
    set %clone.max $$?="Maximum Number"
    echo -a 4*** Maximum Users at One Address Set to:  $+ 5 $! 
  }
  .Number of Seconds Banned: {
    set %clone.unban.time $$?="Number of Seconds"
    echo -a 4*** Ban Time Set to:  $+ 5 $! 
  }
}
alias clone {
  unset %c.all
  :nick
  unset %clone.list.loop %clone.list.all %clone.msg.loop %clone.kick.num %clone.all.loop
  inc %clone.nick.loop
  %clone.nick.now = $nick($1,%clone.nick.loop)
  if ( %clone.nick.now == $null ) { goto theend }
  if ( %clone.nick.now isin %c.all ) { goto nick }
  %clone.address = $address(%clone.nick.now,2)
  :ialcheck
  if ( $ialchan(%clone.address,$1,0) > %clone.max ) { goto reaction }
  else { goto nick }
  :reaction
  %c.exist = yes
  :cloneall
  inc %clone.all.loop
  if ( $ial(%clone.address,%clone.all.loop).nick != $null ) {
    %c.all = $addtok(%c.all,$ial(%clone.address,%clone.all.loop).nick,44)
    goto cloneall
  }
  if ( %clone.reaction == kickban ) { goto ban }
  if ( %clone.reaction == kick ) { goto kick }
  if ( %clone.reaction == echo ) { goto echo }
  else { goto msg }
  :ban
  ban -u $+ %clone.unban.time $1 %clone.address
  goto kick
  :kick
  inc %clone.kick.num
  if ( $ial(%clone.address,%clone.kick.num).nick != $null ) { kick $1 $ial(%clone.address,%clone.kick.num).nick Clone of %clone.address | goto kick }
  else { goto end }  
  :echo
  inc %clone.msg.loop  
  if ( $ial(%clone.address,%clone.msg.loop).nick != $null ) {
    %clone.msg.all = $addtok(%clone.msg.all,$ial(%clone.address,%clone.msg.loop).nick,44)
    goto echo
  }
  else {
    echo -a %clone.msg.all are clones of address %clone.address 
    unset %clone.msg.all
  }
  goto end
  :msg
  inc %clone.msg.loop  
  if ( $ial(%clone.address,%clone.msg.loop).nick != $null ) {
    %clone.msg.all = $addtok(%clone.msg.all,$ial(%clone.address,%clone.msg.loop).nick,44)
    goto msg
  }
  else {
    say %clone.msg.all are clones of address %clone.address 
    unset %clone.msg.all
  }
  :end
  goto nick
  :theend
  if ( %c.exist != yes ) { echo -a 4*** No clones exist in this channel }
  unset %c.* %clone.nick.loop %clone.all.loop
}
#onjoin.clone on
on 1:join:#: {
  unset %clone.kick.loop
  unset %nickloop*
  if (( $nick == W ) || ( $nick == X )) { goto end }
  if ( $nick == $me ) { who $chan | goto end }
  if ( $ialchan($address($nick,2),$chan,0) > %clone.max ) { 
    :nickloop
    inc %nickloop  
    if ( $ial($address($nick,2),%nickloop).nick != $null ) { %nickloop.temp = $addtok(%nickloop.temp,$ial($address($nick,2),%nickloop).nick,44) | goto nickloop }
    else {
      if ( %clone.join.reaction == echo ) { echo -a %nickloop.temp are clones of address $address($nick,2) | goto end }
      if ( %clone.join.reaction == msg ) { say %nickloop.temp are clones of address $address($nick,2) | goto end }
      if ( %clone.join.reaction == kick ) { kick $chan $nick Clone of address $address($nick,2) | goto end }
      if ( %clone.join.reaction == kickban ) {
        ban -u $+ %clone.unban.time $chan $address($nick,2)
        :kickloop
        inc %clone.kick.loop
        if ( $ial($address($nick,2),%clone.kick.loop).nick != $null ) { kick $chan $ial($address($nick,2),%clone.kick.loop).nick Clone of address $address($nick,2) | goto kickloop }
        goto end 
      }
    }
    :end
  }    
}
#onjoin.clone end
raw 352:*: { halt }
raw 315:*: { halt }
on 1:load: {
  window @Clone.Information
  aline @Clone.Information Scan Reactions are: Msg (Message Channel), Echo (Echo to yourself)
  aline @Clone.Information Kick (Kick all clones), and KickBan (Kick and Ban All Clones)
  %clone.reaction = $$?="Enter Reaction (Msg/Echo/Kick/KickBan)"
  aline @Clone.Information -
  aline @Clone.Information Scan [On Join] Reactions are the same.
  %clone.join.reaction = $$?="Enter Reaction (Msg/Echo/Kick/KickBan)"
  aline @Clone.Information -
  aline @Clone.Information Maximum Users At One Address.  Setting this to one, will detect
  aline @Clone.Information the second person at the same address, and so forth.
  %clone.max = $$?="Maximum Users At One Address"
  aline @Clone.Information -
  aline @Clone.Information Seconds Banned.  If you do ban the clones, how many seconds?
  %clone.unban.time = $??="Number of Seconds"
  window -c @Clone.Information
}