CloneStopper 2.5 — File Browser

CloneStopper2.5v2.5 / CloneStopper2.5v2.5 / cs25.mrc

cs25.mrc — 20.2 KB — Download this file

; ------------CloneStopper 2.5 - A SharkAttack® Add-on By Poolshark----------------
;
on 1:start:{ unset %clone*
  if %csmode == $null || %csmode.name == $null || %cshotkey == $null || %cskick == $null || %csialupdate == $null { csreadme }
  else { 
    echo 10 -a Protected by CloneStopper 2.5 by Poolshark
    unset %clone*
    if $active == @clonestopper { .timer 1 2 window -c @clonestopper }
  }
}

on me:1:JOIN:#:if %csialupdate == ON { enable #csialupdate | who $chan | echo 2 -a **CloneStopper Updating IAL... }

#csialupdate off
raw 352:*:halt
raw 315:*:{ 
  if $ial(*,0) < $nick($2,0) { echo 4 -a CloneStopper Alert - Your Internal Address List is not active! Go to Remote|Options and make sure it is checked, then re-join any channels you are on to update the IAL. }
  else { echo 2 -a **IAL Update Complete }
  .disable #csialupdate
  halt
}
#csialupdate end

on @+1:JOIN:#:{
  if $ial($address($nick,2),0) == 1 { goto end }
  set %nopnick 0
  set %c 0
  :next
  inc %nopnick 1
  if $nopnick($chan,%nopnick) == $null goto done
  if $address($nick,2) == $address($nopnick($chan,%nopnick),2) && $nick != $nopnick($chan,%nopnick) { goto clone }
  else goto next
  :clone
  inc %c 1
  set %clone $+ [ %c ] $nopnick($chan,%nopnick)
  goto next
  :clone1
  set %clone2 $nick
  if $opnick($chan,0) > 1 && %csmode == v { .onotice $chan 10OpAlert $chan $+ : 12 $+ $nick $+ 10 is a clone of 12 $+ %clone1 $+ 10-2( $+ $address($nick,2) $+ ) 10CloneStopper® 2.5 }
  echo 10 -a **ALERT TO $chan $+ ** 12 $+ $nick $+ 10 is a clone of 12 $+ %clone1 $+ 10-2( $+ $address($nick,2) $+ ) 10CloneStopper® 2.5 
  .notice $nick Clones are not allowed in $chan if you have ghost please message an op
  .notice %clone1 Clones are not allowed in $chan if you have ghost please message an op
  if $opnick($chan,0) > 1 && %csmode == v { .onotice $chan 10OpAlert $chan $+ : 12 $+ $nick $+ 10 and 12 $+ %clone1 $+ 10 have been notified 10CloneStopper® 2.5 }
  echo 10 -a **ALERT** 12 $+ $nick $+ 10 and 12 $+ %clone1 $+ 10 have been notified - Press 2 $+ %cshotkey $+  to kick/ban if neccessary 10CloneStopper® 2.5  
  goto end
  :clone2
  ban $chan $nick 2
  kick $chan $nick 2 $+ %cskick 10CloneStopper® 2.5
  kick $chan %clone1 2 $+ %cskick 10CloneStopper® 2.5
  kick $chan %clone2 2 $+ %cskick 10CloneStopper® 2.5
  if $opnick($chan,0) > 1 && %csmode == v { .onotice $chan 10OpAlert $chan $+ :12 Multiple Clones Detected! 10CloneStopper® 2.5 }
  echo 12 -a **ALERT** Multiple Clones Detected on $chan $+ ! 10CloneStopper® 2.5 
  if $opnick($chan,0) > 1 && %csmode == v { .onotice $chan 10OpAlert $chan $+ :12 $+ $address($nick,2) $+ 10 Banned and clones flushed from channel 10CloneStopper® 2.5h }
  echo 10 -a **ALERT** 12 $+ $address($nick,2) $+ 10 Banned and clones flushed from $chan 10CloneStopper® 2.5h
  unset %clone*
  goto end
  :done
  if %c == 0 goto end
  if %c == 1 goto clone1
  goto clone2
  :end
  unset %nopnick
}

on 1:PART:#:if $nick == %clone1 || $nick == %clone2 { unset %clone* }


alias f12 {
if %clone1 !ison $chan || %clone2 !ison $chan goto noclones
ban $chan %clone1 2
kick $chan %clone1 2 %cskick 10CloneStopper® 2.5
kick $chan %clone2 2 %cskick 10CloneStopper® 2.5
goto end
:noclones
echo 10 -a **There are no clones to kick in $chan..Type /cscan to scan the channel for clones. 10CloneStopper® 2.5
:end
unset %clone*
}

alias cscan {
  echo 2 -a **CloneStopper® Scan Initiated
  unset %clone*
  set %scan.chan $chan
  set %scan.nick 1
  :next
  set %scan.tnick $nopnick(%scan.chan,%scan.nick)
  if %scan.tnick == $null { goto done }
  if %scan.tnick == %clone1 || %scan.tnick == %clone2 { inc %scan.nick 1 | goto next }
  if $ial($address(%scan.tnick,2),0) == 1 { inc %scan.nick 1 | goto next }
  if $ial($address(%scan.tnick,2),0) == 2 { goto clone1 }
  goto multiclones
  :clone1
  set %clone1 $ial($address(%scan.tnick,2),1).nick
  set %clone2 $ial($address(%scan.tnick,2),2).nick
  if ((%clone1 ison %scan.chan) && (%clone1 !isop %scan.chan)) && ((%clone2 ison %scan.chan) && (%clone2 !isop %scan.chan)) { goto warning }
  unset %clone*
  inc %scan.nick 1
  goto next
  :warning
  if $opnick(%scan.chan,0) > 1 && %csmode == v { .onotice %scan.chan 10OpAlert %scan.chan $+ : 12 $+ %clone2 $+ 10 is a clone of 12 $+ %clone1 $+ 10-2( $+ $address(%scan.tnick,2) $+ ) 10CloneStopper® 2.5 }
  echo 10 -a **ALERT** 12 $+ %clone2 $+ 10 is a clone of 12 $+ %clone1 $+ 10-2( $+ $address(%scan.tnick,2) $+ ) 10CloneStopper® 2.5 
  .notice %clone2 Clones are not allowed in %scan.chan if you have ghost please message an op
  .notice %clone1 Clones are not allowed in %scan.chan if you have ghost please message an op
  if $opnick(%scan.chan,0) > 1 && %csmode == v { .onotice %scan.chan 10OpAlert %scan.chan $+ : 12 $+ %clone2 $+ 10 and 12 $+ %clone1 $+ 10 have been notified 10CloneStopper® 2.5 }
  echo 10 -a **ALERT** 12 $+ %clone2 $+ 10 and 12 $+ %clone1 $+ 10 have been notified - Press 2 $+ %cshotkey $+  to kick/ban if neccessary 10CloneStopper® 2.5 
  inc %scan.nick 1
  goto next  
  :multiclones
  set %scan.clones $ial($address(%scan.tnick,2),0)
  set %scan.clonecount 0
  :check
  if %scan.clones == 0 { goto checked }
  if $ial($address(%scan.tnick,2),%scan.clones).nick ison $chan && $ial($address(%scan.tnick,2),%scan.clones).nick !isop $chan {
    inc %scan.clonecount 1
    set %clone [ $+ [ %scan.clonecount ] ] $ial($address(%scan.tnick,2),%scan.clones).nick
  }    
  dec %scan.clones 1
  goto check
  :checked
  if %scan.clonecount > 2 { 
    ban $chan %clone1 2 
    if $opnick($chan,0) > 1 && %csmode == v { .onotice $chan 10OpAlert $chan $+ :12 Multiple Clones Detected! 10CloneStopper® 2.5 }
    echo 10 -a **ALERT** Multiple Clones Detected on $chan $+ ! 10CloneStopper® 2.5 
    goto flush
  }
  if %scan.clonecount == 2 { goto warning }
  goto next
  :flush
  if %scan.clonecount == 0 { goto flushed }
  kick $chan %clone [ $+ [ %scan.clonecount ] ] 2 %cskick 10CloneStopper® 2.5h
  dec %scan.clonecount 1
  goto flush
  :flushed
  if $opnick($chan,0) > 1 && %csmode == v { .onotice $chan 10OpAlert $chan $+ :12 $+ $address(%clone1,2) $+ 10 Banned and clones flushed from channel 10CloneStopper® 2.5 }
  echo 10 -a **ALERT** 12 $+ $address(%clone1,2) $+ 10 Banned and clones flushed from channel 10CloneStopper® 2.5
  goto end
  :done
  echo 2 -a **CloneStopper® Scan Complete
  :end
}

alias csreadme {
  window -e @CloneStopper_READ_ME 100 50 450 400 /csinit
  aline @CloneStopper_READ_ME 10CloneStopper® 2.5 for mIRC 5.02 - By Poolshark
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 13Features:
  aline @CloneStopper_READ_ME 13---------------------------------------
  
  aline @CloneStopper_READ_ME 2*CloneStopper is a clone monitoring system that will detect non-op clones
  aline @CloneStopper_READ_ME 2 as they join a channel.
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 2*On detection of the first clone, it will notify you of the clone's nickname,
  aline @CloneStopper_READ_ME 2 the nickname of the owner, and the site they are from.
  aline @CloneStopper_READ_ME -  
  aline @CloneStopper_READ_ME 2*It will automatically notify both nicks of the clone violation.
  aline @CloneStopper_READ_ME 2 You will then have the option to kick/ban them via a user definable
  aline @CloneStopper_READ_ME 2 'hotkey' if they do not leave the channel. (The notice to the clones is silent,
  aline @CloneStopper_READ_ME 2 so you won't actually see it happen but it works, just take my word for it <G>)
  aline @CloneStopper_READ_ME -  
  aline @CloneStopper_READ_ME 2*Upon the joining of a second Clone (3 clients total), you will be alerted
  aline @CloneStopper_READ_ME 2 that there are multiple clones, the site will be banned, and all clients from
  aline @CloneStopper_READ_ME 2 that site kicked from the channel.
  aline @CloneStopper_READ_ME -  
  aline @CloneStopper_READ_ME 2*All CloneStopper alerts will be echo'd to you in your active window.
  aline @CloneStopper_READ_ME 2 If you choose the 'verbose' mode in the setup, the alerts will also be sent in
  aline @CloneStopper_READ_ME 2 an onotice to the channel.
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 2*Includes a channel popup menu where you can view/change preferences,
  aline @CloneStopper_READ_ME 2 and a command to scan a channel for clones on demand. The channel scan
  aline @CloneStopper_READ_ME 2 command has all of the same alerts, kick/bans etc. as the monitor.
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME -13Important Notes:
  aline @CloneStopper_READ_ME 13-------------------------------------------
  aline @CloneStopper_READ_ME 6*CloneStopper uses mIRC's Internal Address List (IAL) to check the
  aline @CloneStopper_READ_ME 6 address of other people currently in the channel, be sure that the IAL
  aline @CloneStopper_READ_ME 6 is on in your remote section or it will not work properly.
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 6*CloneStopper only triggers on clones at level 1 (the default level) so if
  aline @CloneStopper_READ_ME 6 you need to make an 'exception list' of sites/ip's that you don't want
  aline @CloneStopper_READ_ME 6 CloneStopper to bother (friends, sites that have multi-users but are not
  aline @CloneStopper_READ_ME 6 clones etc..) simply add that site/ip to your userlist at any level above 1.
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 6*Please do not modify this script, alot of time has been spent on it to make
  aline @CloneStopper_READ_ME 6 it as user-configurable as possible. If you have any suggestions on how to
  aline @CloneStopper_READ_ME 6 make it better,  I will gladly accept them via email.
  aline @CloneStopper_READ_ME 6 If you decided to modfiy it anyway... 1) Don't bug me if it doesn't work and
  aline @CloneStopper_READ_ME 6 2) Do NOT distribute your new version to anyone.
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 13Credits:
  aline @CloneStopper_READ_ME 13---------------------------------------------
  aline @CloneStopper_READ_ME 14 Thanks to Despayre for his suggestions, and testing with me since the first
  aline @CloneStopper_READ_ME 14 version to makeCloneStopper as good as it is.
  aline @CloneStopper_READ_ME 14 To Ladyfizz, my personal beta tester <G> and all the DALnet #mIRC Ops
  aline @CloneStopper_READ_ME 14 for using/testing and their suggestions.
  aline @CloneStopper_READ_ME 14 To Drogo for not removing me from the channel for the barrage of onotices 
  aline @CloneStopper_READ_ME 14 every time a clone joins the channel <G>
  aline @CloneStopper_READ_ME 14 And to ducky, without whom version 2.5 and all it's nifty new features may 
  aline @CloneStopper_READ_ME 14 have never been completed :)
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 13Final Notes:
  aline @CloneStopper_READ_ME 13-----------------------------------------------
  aline @CloneStopper_READ_ME 13*Like all other scripts, this is not supported by #mIRC.
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 13*Send all bug reports (as if!<G>), problems, suggestions, praises, money,
  aline @CloneStopper_READ_ME 13 etc. to turquidi@pacificnet.net or you may be able to track me down at
  aline @CloneStopper_READ_ME 13 #mIRC DALnet
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 13*The newest version can be found at http://DALmirC.base.org or
  aline @CloneStopper_READ_ME 13 http://www.pacificnet.net/~turquidi/mirc.html
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 13*Happy Clone Kicking! :)
  aline @CloneStopper_READ_ME -
  aline @CloneStopper_READ_ME 4***PRESS ENTER NOW TO LAUNCH THE CLONESTOPPER SETUP***
  sline @CloneStopper_READ_ME 20
}

alias csinit {
  window -e @clonestopper 100 50 450 400 
  aline @clonestopper 13 Clonestopper 2.5 Setup
  aline @clonestopper 13 ===============================================
  aline @clonestopper 2 Which alert mode would you like to use with Clonestopper?
  aline @clonestopper 2 [Q]uiet mode will send clone alerts to the user only.
  aline @clonestopper 2 [V]erbose mode will send clone alerts to all the ops on the channel.
  aline @clonestopper 2 ** This can be changed later! **
  :set1
  set %csmode $?="[Q]uiet -or- [V]erbose"
  if %csmode = q {
    set %csmode.name Quiet
    goto next1 
  }
  if %csmode = v {
    set %csmode.name Verbose
    goto next1
  }
  else {
    aline @clonestopper 4 Please enter a Q or a V only!
    goto set1
  }
  :next1
  aline @clonestopper 12 The Alert Mode is now set to  %csmode.name
  aline @clonestopper 13 ===============================================
  aline @clonestopper 2 You can choose which function key you would like to use as your 'Hotkey'
  aline @clonestopper 2 The Hotkey is used when you want to kick/ban clones if they do not heed 
  aline @clonestopper 2 the warning.
  aline @clonestopper 2 Enter the F-key you wish to use now (F1-F12)
  :set3
  set %cshotkey $?="Enter Hotkey"
  if %cshotkey == $null {
    aline @clonestopper 4 You must enter an F-key...
    goto set3
  }
  if f !isin %cshotkey || $len(%cshotkey) > 3 {
    aline @clonestopper 4 %cshotkey is invalid - Enter an F-key between 1 and 12 (eg. F1, F12 etc.)
    goto set3
  }
  set %cscheck $?="Is [ %cshotkey ] correct?"
  if n isin %cscheck goto set3
  aline @clonestopper 2 The Hotkey is set to:  $+ %cshotkey
  write -l67 cs25.mrc $chr(32)
  write -l68 cs25.mrc alias %cshotkey $chr(123)
  write -l69 cs25.mrc if $chr(37) $+ clone1 !ison $ $+ chan || $chr(37) $+ clone2 !ison $ $+ chan { goto noclones }
  write -l70 cs25.mrc ban $ $+ chan $chr(37) $+ clone1 2
  write -l71 cs25.mrc kick $ $+ chan $chr(37) $+ clone1 2 % $+ cskick 10CloneStopper® 2.5
  write -l72 cs25.mrc kick $ $+ chan $chr(37) $+ clone2 2 % $+ cskick 10CloneStopper® 2.5
  write -l73 cs25.mrc goto end
  write -l74 cs25.mrc :noclones
  write -l75 cs25.mrc echo 10 -a **There are no clones to kick in $ $+ chan $+ ..Type /cscan to scan the channel for clones. 10CloneStopper® 2.5
  write -l76 cs25.mrc :end
  write -l77 cs25.mrc unset %clone*
  write -l78 cs25.mrc $chr(125)
  aline @clonestopper 13 ===============================================
  aline @clonestopper 2 You will now choose what message you want displayed when
  aline @clonestopper 2 a user is kicked for clones.. Please limit it to less than 50 characters.
  :set2
  set %cskick $?="Kick Message"
  if %cskick == $null {
    aline @clonestopper 4 You must enter a kick message...
    goto set2
  }
  aline @clonestopper 2 The kick message is now set to:
  aline @clonestopper 2 %cskick 10CloneStopper® 2.5
  set %cscheck $?="Is this kick message OK?"
  if n isin %cscheck goto set2
  aline @clonestopper 13 ===============================================
  aline @clonestopper 2 You can have CloneStopper update your Internal Address List
  aline @clonestopper 2 automatically when you join a channel.
  aline @clonestopper 2 If you are running other scripts that already do this for you (usually by
  aline @clonestopper 2 doing a /who #channel when you join) you can leave this option off. 
  aline @clonestopper 2 If not, or if you don't know, I highly recommend you use it.
  :set4
  set %csialupdate $?="Update IAL on join? (y/n)"
  if %csialupdate == y { 
    aline @clonestopper 2 IAL Update option ON
    set %csialupdate ON
    goto end
  }
  if %csialupdate == n {
    aline @clonestopper 2 IAL Update option OFF
    set %csialupdate OFF
    goto end
  }
  aline @clonestopper 4 Please enter y or n
  goto set4
  :end
  aline @clonestopper 13 ===============================================  
  aline @clonestopper 12 You can change these settings at any time via the CloneStopper
  aline @clonestopper 12 popup menu
  aline @clonestopper 2-
  aline @clonestopper 2 You must now re-load CloneStopper to complete the initialization process
  aline @clonestopper 2 You can do this from the command line below by typing:
  aline @clonestopper 2 /unload -rs cs25.mrc then 
  aline @clonestopper 2 /load -rs cs25.mrc
  aline @clonestopper 12 This window will close automatically after re-loading CloneStopper
  aline @clonestopper 2-
  aline @clonestopper 13 Thank you for choosing CloneStopper® 2.5
  window -c @CloneStopper_READ_ME
  unset %cscheck
}

alias csset {
  echo -a 12 CloneStopper Settings:
  echo -a 12 =====================
  echo -a 12 Alert Mode is %csmode.name
  echo -a 12 Kick Message is2 %cskick 10CloneStopper® 2.5
  echo -a 12 Kick/Ban Hotkey is %cshotkey
  echo -a 12 IAL Auto-Update is %csialupdate
  echo -a 12 =====================
}

menu channel {
-
  Clonestopper
  .View Current Settings:/csset
  .Scan Channel for clones:/cscan
  .Alert Mode
  ..Verbose:set %csmode v | set %csmode.name Verbose | echo -a 12 Clonestopper Alert Mode now set to Verbose
  ..Quiet:set %csmode q | set %csmode.name Quiet | echo -a 12 Clonestopper Alert Mode now set to Quiet
  .Change Clone Kick Message:set %cskick $?="Enter new kick message" | echo -a 12 Clonestopper's new kick message is set to 2 %cskick 10CloneStopper® 2.5
  .Change Kick/Ban 'Hotkey':cswa
  .IAL Auto-Update
  ..On:set %csialupdate ON | echo -a 12 CloneStopper IAL Auto-Update is ON
  ..Off:set %csialupdate OFF | echo -a 12 CloneStopper IAL Auto-Update is OFF
}

menu status {
-
  Clonestopper
  .View Current Settings:/csset
  .Alert Mode
  ..Verbose:set %csmode v | set %csmode.name Verbose | echo -a 12 Clonestopper Alert Mode now set to Verbose
  ..Quiet:set %csmode q | set %csmode.name Quiet | echo -a 12 Clonestopper Alert Mode now set to Quiet
  .Change Clone Kick Message:set %cskick $?="Enter new kick message" | echo -a 12 Clonestopper's new kick message is set to 2 %cskick 10CloneStopper® 2.5
  .Change Kick/Ban 'Hotkey':cswa
  .IAL Auto-Update
  ..On:set %csialupdate ON | echo -a 12 CloneStopper IAL Auto-Update is ON
  ..Off:set %csialupdate OFF | echo -a 12 CloneStopper IAL Auto-Update is OFF
}

menu menubar {
-
  Clonestopper
  .View Current Settings:/csset
  .Alert Mode
  ..Verbose:set %csmode v | set %csmode.name Verbose | echo -a 12 Clonestopper Alert Mode now set to Verbose
  ..Quiet:set %csmode q | set %csmode.name Quiet | echo -a 12 Clonestopper Alert Mode now set to Quiet
  .Change Clone Kick Message:set %cskick $?="Enter new kick message" | echo -a 12 Clonestopper's new kick message is set to 2 %cskick 10CloneStopper® 2.5
  .Change Kick/Ban 'Hotkey':cswa
  .IAL Auto-Update
  ..On:set %csialupdate ON | echo -a 12 CloneStopper IAL Auto-Update is ON
  ..Off:set %csialupdate OFF | echo -a 12 CloneStopper IAL Auto-Update is OFF
}

alias cswa { 
  :check
  set %cstemphotkey $$?="Enter Hotkey (F1-F12)"
  :check2
  echo 2 -a Enter yes, no, or cancel
  set %cscheck $?="Change Hotkey to [ %cstemphotkey ] ?"
  if y isin %cscheck { goto set }
  if n isin %cscheck { goto check }
  if c isin %cscheck { goto cancel }
  echo 4 -a Please enter y/n/c
  goto check2
  :set
  set %cshotkey %cstemphotkey
  write -l67 cs25.mrc $chr(32)
  write -l68 cs25.mrc alias %cshotkey $chr(123)
  write -l69 cs25.mrc if % $+ clone1 !ison $ $+ chan || % $+ clone2 !ison $ $+ chan { goto noclones }
  write -l70 cs25.mrc ban $ $+ chan % $+ clone1 2
  write -l71 cs25.mrc kick $ $+ chan % $+ clone1 2 % $+ cskick 10CloneStopper® 2.5
  write -l72 cs25.mrc kick $ $+ chan % $+ clone2 2 % $+ cskick 10CloneStopper® 2.5
  write -l73 cs25.mrc goto end
  write -l74 cs25.mrc :noclones
  write -l75 cs25.mrc echo 10 -a **There are no clones to kick in $ $+ chan $+ ..Type /cscan to scan the channel for clones. 10CloneStopper® 2.5
  write -l76 cs25.mrc :end
  write -l77 cs25.mrc unset %clone*
  write -l78 cs25.mrc $chr(125)
  echo 2 -a **Hotkey changed to %cshotkey
  echo -a -
  echo 4 -a **You must re-load CloneStopper before this change will take effect**
  goto end
  :cancel
  echo 2 -a Request cancelled - Hotkey not changed
  :end
  unset %cstemphotkey %cscheck
}