http://www.egghelp.org/cgi-bin/tcl_arch ... ad&id=1109
works fine and does all i need but i wonder if anyone
can add an an on/off public command to it like !echo on - !echo off
or anything to make it start/stop relaying on the fly.
Thank you.
Code: Select all
# Info
# Author : MeTroiD - #v1per on Quakenet
# Version: 1.2
set spy(author) "MeTroiD - #v1per on Quakenet"
set spy(version) "1.2"
# Description
# This script will relay anything said on one channel to the other channel you configure
# I recommend you don't run this script on a bot that already has to do alot
# If the channel you're spying on has alot of users with alot of talking your bot could excess flood
# Configuration
# The channel it reports everything to
set spy(home) "#twilight-zone"
# The channel it gets all the data from and then reports it to the homechannel
set spy(chan) "#v1per"
bind PUBM -|- * spychan:chat
bind CTCP -|- "ACTION" spychan:action
bind SIGN -|- "$spy(chan) *" spychan:sign
bind JOIN -|- "$spy(chan) *" spychan:join
bind PART -|- "$spy(chan) *" spychan:part
bind SPLT -|- "$spy(chan) *" spychan:split
bind KICK -|- "$spy(chan) *" spychan:kick
bind RAW * "MODE" spychan:mode
proc spychan:part { nickname hostname handle channel reason } {
global spy
if {[string equal -nocase $channel $spy(chan)]} {
putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has left $spy(chan)"
}
}
proc spychan:join { nickname hostname handle channel } {
global spy
if {[string equal -nocase $channel $spy(chan)]} {
putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has joined $spy(chan)"
}
}
proc spychan:kick { nickname hostname handle channel target reason } {
global spy
if {[string equal -nocase $channel $spy(chan)]} {
putserv "PRIVMSG $spy(home) :\[$channel\] * $target was kicked from $spy(chan) by $nickname ($reason)"
}
}
proc spychan:mode { from key arguments } {
global spy
set channel [string trim [lindex [split $arguments] 0]]
set modechange [string trim [lindex [split $arguments] 1]]
set victims [string trim [join [lrange [split $arguments] 2 end]]]
set nickname [string trim [lindex [split $from "!"] 0]]
set hostname [string trim [lindex [split $from "!"] 1]]
if {[string equal -nocase $channel $spy(chan)]} {
putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname sets mode: $modechange $victims"
}
}
proc spychan:sign { nickname hostname handle channel reason } {
global spy
if {[string equal -nocase $channel $spy(chan)]} {
putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname ($hostname) has quit IRC ($reason)"
}
}
proc spychan:split { nickname hostname handle channel arguments } {
global spy
if {[string equal -nocase $channel $spy(chan)]} {
putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname has split from the network"
}
}
proc spychan:chat { nickname hostname handle channel arguments } {
global spy
if {[string equal -nocase $channel $spy(chan)]} {
putserv "PRIVMSG $spy(home) :\[$channel\] <$nickname> $arguments"
}
}
proc spychan:action { nickname hostname handle channel keyword arguments } {
global spy
if {[string equal -nocase $channel $spy(chan)]} {
putserv "PRIVMSG $spy(home) :\[$channel\] * $nickname $arguments"
}
}
putlog "Spychan.tcl version $spy(version) by $spy(author) Loaded!"