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
}