Cara kerja TCL ini adalah mempaste log yang ada di Chan1 Net1 ke Chan2 Net2 begitu sebaliknya, lalu bagaimana? apakah harus membuat bot eggdrop lagi pada server yang ingin di relay? tidak, karena tCL ini nanti akan membuat bot eggdrop sendiri dengan memanfaatkan Socket pendeknya ketika kita nanti akan merelay atau spy, TCL ini akan mengirim BOT yang masih saudara kembar ke server yang anda tentukan.. Hebat bukan?? Langsung saja ini TCL nya:
# ----------------------------------------------------------------------------------#
# relay.tcl owner by Barker JR barkerjr(at)clancdg.com
# modified by g0eZ eggoez(at)about.me
# /server irc.allnetwork.org:6667 -join:#ciut
# loaded & translate by http://eg-goez.blogspot.com
# ----------------------------------------------------------------------------------#
set debug 1
set debug_out 1
set shortcommands 1
bind dcc m linkchan dcc:linkchan
if {$shortcommands == 1} {bind dcc m lc dcc:linkchan}
proc dcc:linkchan {hand idx arg} {
global nick realname username chanlinkchan chanlinkidx chanlinkserv chanlinknet chanlinknick shortcommands linkchantrim
set chanlinknick $nick[rand 1000]
set chan [lindex $arg 0]
set net [lindex $arg 1]
set serv [lindex $arg 2]
set port [lindex $arg 3]
if {![validchan $chan]} {
putdcc $idx "Chan Salah"
putdcc $idx "Gunakan: .linkchan <channel> <network> <server> \[port\]"
} else {
if {$serv == ""} {
putdcc $idx "Spesifikasi Server"
putdcc $idx "Gunakan: .linkchan <channel> <network> <server> \[port\]"
} else {
if {[info exists chanlinkidx]} {
if {[valididx $chanlinkidx]} {
putdcc $chanlinkidx "QUIT :Mengganti Server"
killdcc $chanlinkidx
}
}
if {$port == ""} {
set chanlinkidx [connect $serv 6667]
} else {
if {$port != ""} {set chanlinkidx [connect $serv $port]}
}
set chanlinkchan $chan
set chanlinkserv $serv
set chanlinknet $net
control $chanlinkidx linkchan
putlc "USER $username 0 0 :$realname"
putlc "NICK :$chanlinknick"
set linkchantrim "abcdefghijklmnopqrstuvwxyzABCDEFGHIJGKLMNOPQRSTUVWXYZ1234567890 !@*.#~-_|\[\]\{\}`"
bind part - * part:chanlink
bind pubm - * pubm:chanlink
bind sign - * sign:chanlink
bind ctcp - ACTION ctcp:chanlink
bind join - * join:chanlink
bind nick - * nick:chanlink
bind dcc m -linkchan dcc:-linkchan
bind dcc m dumplinkchan dcc:dumplinkchan
if {$shortcommands == 1} {
bind dcc m -lc dcc:-linkchan
bind dcc m dumplc dcc:dumplinkchan
}
return 1
}
}
}
proc dcc:dumplinkchan {hand idx arg} {
putlc $arg
return 1
}
proc dcc:-linkchan {hand idx arg} {
global chanlinkidx chanlinkchan chanlinkserv chanlinknet linkchantrim shortcommands
putlc "QUIT :Di Bunuh!"
killdcc $chanlinkidx
linkchan:shutdown
return 1
}
proc linkchan:shutdown {} {
global chanlinkidx chanlinkchan chanlinkserv chanlinknet linkchantrim shortcommands
unset chanlinkidx
unset chanlinkchan
unset chanlinkserv
unset chanlinknet
unset linkchantrim
unbind part - * part:chanlink
unbind pubm - * pubm:chanlink
unbind sign - * sign:chanlink
unbind ctcp - ACTION ctcp:chanlink
unbind join - * join:chanlink
unbind nick - * nick:chanlink
unbind dcc m -linkchan dcc:-linkchan
unbind dcc m dumplinkchan dcc:dumplinkchan
clearqueue help
if {$shortcommands == 1} {
unbind dcc m -lc dcc:-linkchan
unbind dcc m dumplc dcc:dumplinkchan
}
}
proc putlc {arg} {
global chanlinkidx debug_out
if {$debug_out == 1} {putlog "linkchan> $arg"}
putdcc $chanlinkidx $arg
}
proc linkchan {idx arg} {
global debug nick chanlinkchan chanlinknet chanlinknick username realname linkchantrim
if {$debug == 1} {putlog "linkchan< $arg"}
set arg2 [lindex $arg 0]
switch $arg2 {
PING {putlc "PONG [lindex $arg 1]"}
ERROR {
putserv "PRIVMSG $chanlinkchan :\0032ERROR: Closing Link"
linkchan:shutdown
}
}
switch [lindex $arg 1] {
001 {
putlc "MODE $chanlinknick :+i"
putlc "JOIN $chanlinkchan"
}
433 {
set chanlinknick $nick[rand 1000]
putdcc $idx "NICK :$chanlinknick"
}
353 {puthelp "privmsg $chanlinkchan :$chanlinknet NAMES list: [string trimleft [string trimleft [string trimleft $arg :] "abcdefghijklmnopqrstuvwxyzABCDEFGHIJGKLMNOPQRSTUVWXYZ1234567890 !@*.#~-_|\[\]\{\}`="] :]"}
JOIN {puthelp "privmsg $chanlinkchan :\0033*** [lindex [split [lindex [split $arg2 !] 0] :] 1]@$chanlinknet ([lindex [split $arg2 !] 1]) has joined $chanlinkchan"}
KICK {linkchan:kick $idx $arg}
NICK {puthelp "privmsg $chanlinkchan :\0033*** [lindex [split [lindex [split $arg2 !] 0] :] 1]@$chanlinknet in now known as [string trimleft [lindex $arg 2] :]@$chanlinknet"}
PART {puthelp "privmsg $chanlinkchan :\0033*** [lindex [split [lindex [split $arg2 !] 0] :] 1]@$chanlinknet ([lindex [split $arg2 !] 1]) has left $chanlinkchan"}
PRIVMSG {linkchan:privmsg $idx $arg}
QUIT {puthelp "privmsg $chanlinkchan :\0032*** [lindex [split [lindex [split $arg2 !] 0] :] 1]@$chanlinknet ([lindex [split $arg2 !] 1]) Quit ([string trimleft [string trimleft [string trimleft $arg :] $linkchantrim] :])"}
}
}
putlog "Relay Loaded by g0eZ"
proc linkchan:privmsg {idx arg} {
global chanlinkchan chanlinknet linkchantrim botnick network
set nick [lindex [split [lindex [split $arg !] 0] :] 1]
if {$nick == $botnick} {
putlc "QUIT :Ya, ada yang salah?"
killdcc $idx
linkchan:shutdown
} else {
if {[string tolower [lindex $arg 2]] == [string tolower $chanlinkchan]} {
set text [string trimleft [string trimleft [string trimleft $arg :] $linkchantrim] :]
if {[string match \001*\001 $text]} {
if {[string match \001ACTION*\001 $text]} {
puthelp "privmsg $chanlinkchan :\0036 * $nick@$chanlinknet[string trimright [string trimleft [string trimleft $text \001ACTION] ""] \001]"
}
} else {
if {[string match -nocase [lindex $text 0] !names]} {
putlc "PRIVMSG $chanlinkchan :$network NAMES list: [chanlist $chanlinkchan]"
} else {
puthelp "privmsg $chanlinkchan :<$nick> $text"
}
}
}
}
}
proc linkchan:kick {idx arg} {
global chanlinknick chanlinkchan
if {$chanlinknick == [lindex $arg 3]} {putlc "JOIN $chanlinkchan"}
}
proc join:chanlink {nick uhost hand chan args} {
global network chanlinkidx chanlinkchan
if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} {
if {[valididx $chanlinkidx]} {putlc "PRIVMSG $chan :\0033***$network $nick ($uhost) has joined $chan"}
}
}
proc part:chanlink {nick uhost hand chan msg} {
global network chanlinkidx chanlinkchan
if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} {
if {$msg != ""} {set msg ($msg)}
if {[valididx $chanlinkidx]} {putlc "PRIVMSG $chan :\0033***$network $nick ($uhost) has left $chan $msg"}
}
}
putlog "eg-goez.blogspot.com"
proc pubm:chanlink {nick uhost hand chan text} {
global network chanlinkidx chanlinkchan chanlinknick
if {$nick == $chanlinknick} {
putlc "QUIT :Ya!! ada masalah?"
killdcc $idx
linkchan:shutdown
} else {
if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} {
if {[valididx $chanlinkidx]} {
if {[string match -nocase [lindex $text 0] !names]} {
putlc "NAMES $chan"
} else {
putlc "PRIVMSG $chan :<$nick> $text"
}
}
}
}
}
proc sign:chanlink {nick uhost hand chan reason} {
global network chanlinkidx chanlinkchan
if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} {
if {[valididx $chanlinkidx]} {putlc "PRIVMSG $chan :\0032***$network $nick ($uhost) Quit ($reason)"}
}
}
proc ctcp:chanlink {nick uhost hand dest keywork arg} {
global network chanlinkidx chanlinkchan
if {[info exists chanlinkidx]} {
if {[valididx $chanlinkidx] && [string match [string tolower $dest] [string tolower $chanlinkchan]]} {
putlc "PRIVMSG $dest :\0036 * $nick $arg"
}
}
}
proc nick:chanlink {nick uhost hand chan newnick} {
global network chanlinkidx chanlinkchan
if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} {
if {[valididx $chanlinkidx]} {putlc "PRIVMSG $chan :\0033***$network $nick is now known as $newnick"}
}
}
Tambahkan Scipts di atas ke tcl baru anda,, dan load pada konfig, lalu rehash bot nya.. setelah ituDCC bot nya dengan cara
/ctcp botnick chatJika ada sebuah pertanyaan Accept aja..
Jika sudah bot nanti akan menanyakan nick dan password pada chat DCC anda
cukup ketik nick anda (Owner bot) dan password Owner bot
kurang lebih seperti ini dialog nya nanti
DCC Chat session
Client: Drone (***.***.***.***)
Acknowledging chat request...
DCC Chat connection established
(Drone) Nickname.
(Drone) (If you are new, enter 'NEW' here.)
(g0eZ) g0eZ
(Drone)
(Drone) Enter your password.
(g0eZ) *******
(Drone) ÿü
(Drone) You have no messages.
(Drone) *** g0eZ joined the party line.
nah seperti itu nanti.. jika sudah kini saatnya anda mengkonfigurasi dan menyuruh bot anda membuat saudara kembar untuk pertugas di jauh sana :D dengan cara
.linkchan <#channel> <namanet> <server> <port>
contoh:
.linkchan #ciut Net2 irc.allnetwork.org 6667Nanti di situ anda akan meliahat modt :) bertanda bot sudah connect :)
Sekian semoga bermanfat temans ;)