This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Need help on Arfer's why.tcl

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
D
DragonHeart
Voice
Posts: 8
Joined: Mon May 11, 2015 1:23 pm

Need help on Arfer's why.tcl

Post by DragonHeart »

This is the following code, which works perfectly fine. Just the problem is that I want to do this .chanset #channelname +cswhy

I dont want the bot to reply me on any and every channel. Please assist.

Code: Select all

# why.tcl 
# find out why users are op'd by chanserv services and onotice channel 

set vWhyServ "chanserv@services.dal.net" 
set vWhyTime 10 

bind MODE - "% +o" pWhySend 
bind NOTC - * pWhyReceive 

proc pWhyCancel {} { 
    global vWhyChan vWhyNick 
    foreach item [utimers] { 
        if {[string equal pWhyTimeout [lindex $item 1]]} { 
            killutimer [lindex $item 2] 
        } 
    } 
    if {[info exists vWhyNick]} {unset vWhyNick} 
    if {[info exists vWhyChan]} {unset vWhyChan} 
    return 0 
} 

proc pWhyReceive {nick uhost hand text dest} { 
    global vWhyNick vWhyChan vWhyServ 
    if {![regexp {^#} $dest]} { 
        if {[string equal -nocase $nick [lindex [split $vWhyServ @] 0]]} { 
            if {[info exists vWhyNick]} { 
                set response [stripcodes bcruag $text] 
                if {[string match -nocase *${vWhyNick}* [join [lrange [split $response] 0 2]]]} { 
                    putserv "NOTICE @$vWhyChan :$response" 
                    pWhyCancel 
                } 
            } 
        } 
    } 
    return 0 
} 

proc pWhySend {nick uhost hand chan mode target} { 
    global vWhyServ vWhyNick vWhyChan vWhyTime 
    if {[string equal -nocase $nick [lindex [split $vWhyServ @] 0]]} { 
        set vWhyNick $target 
        set vWhyChan $chan 
        putserv "PRIVMSG $vWhyServ :WHY $vWhyChan $vWhyNick" 
        utimer $vWhyTime pWhyTimeout 
    } 
    return 0 
} 

proc pWhyTimeout {} { 
    global vWhyNick vWhyChan 
    putserv "PRIVMSG @$vWhyChan :a /WHY command for $vWhyNick timed out without response" 
    pWhyCancel 
    return 0 
} 
DragonHeart
#India on DALnet
Post Reply