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.

whois help

Help for those learning Tcl or writing their own scripts.
Post Reply
User avatar
abah
Halfop
Posts: 74
Joined: Sun Dec 01, 2013 3:04 am
Location: Indonesia

whois help

Post by abah »

I asked for help editing this script where I just want this script serves to channel operator only and not for normal user

Code: Select all

bind pub - .whois whois:nick
bind pub - !whois whois:nick

proc whois:nick { nickname hostname handle channel arguments } {
global whois
set target [lindex [split $arguments] 0]
if {$target == ""} {
putquick "PRIVMSG $channel :Maaf kakak perintahnya !whois 14nicknya siapa siapa kakak."
return 0
}
if {[string length $target] >= "31"} {
putquick "PRIVMSG $channel :kakak 14$nickname nickname 14$target terlalu panjang kakak."; return
}
putquick "WHOIS $target $target"
set ::whoischannel $channel
set ::whoistarget $target
bind RAW - 401 whois:nosuch
bind RAW - 311 whois:info
bind RAW - 319 whois:channels
bind RAW - 301 whois:away
bind RAW - 312 whois:server
bind RAW - 313 whois:ircop
bind RAW - 330 whois:auth
bind RAW - 317 whois:idle
}

proc whois:putmsg { channel arguments } {
putquick "PRIVMSG $channel :$arguments"
}

proc whois:info { from keyword arguments } {
set channel $::whoischannel
set nickname [lindex [split $arguments] 1]
set ident [lindex [split $arguments] 2]
set host [lindex [split $arguments] 3]
set realname [string range [join [lrange $arguments 5 end]] 1 end]
whois:putmsg $channel "\[4Whois\] Informasi untuk nick kakak 4$nickname 12:"
whois:putmsg $channel "\[4Whois\] Nickname 12: 14$nickname"
whois:putmsg $channel "\[4Whois\] Identd 12: 14$ident"
whois:putmsg $channel "\[4Whois\] Hostname 12: 14$host"
whois:putmsg $channel "\[4Whois\] Realname 12: 14$realname"
unbind RAW - 311 whois:info
}

proc whois:server { from keyword arguments } {
set channel $::whoischannel
set target $::whoistarget
whois:putmsg $channel "\[4Whois\] status 12: 14$server"
unbind RAW - 312 whois:server
}

proc whois:ircop { from keyword arguments } {
set channel $::whoischannel
set target $::whoistarget
whois:putmsg $channel "\[4Whois\] status 12: IRC Operator"
unbind RAW - 313 whois:ircop
}

proc whois:away { from keyword arguments } {
set channel $::whoischannel
set target $::whoistarget
set awaymessage [string range [join [lrange $arguments 2 end]] 1 end]
whois:putmsg $channel "\[4Whois\] Away 12: 14$awaymessage"
unbind RAW - 301 whois:away
}

proc whois:channels { from keyword arguments } {
set channel $::whoischannel
set channels [string range [join [lrange $arguments 2 end]] 1 end]
set target $::whoistarget
whois:putmsg $channel "\[4Whois\] Channels 12: 14$channels"
unbind RAW - 319 whois:channels
}

proc whois:auth { from keyword arguments } {
set channel $::whoischannel
set target $::whoistarget
set authname [lindex [split $arguments] 2]
whois:putmsg $channel "\[4Whois\] status 12: authed 14$authname"
unbind RAW - 330 whois:auth
}

proc whois:nosuch { from keyword arguments } {
set channel $::whoischannel
set target $::whoistarget
whois:putmsg $channel "Kakak 14$nickname nggak online 4$target kakak."
unbind RAW - 401 whois:nosuch
}

proc whois:idle { from keyword arguments } {
set channel $::whoischannel
set target $::whoistarget
set idletime [lindex [split $arguments] 2]
set signon [lindex [split $arguments] 3]
whois:putmsg $channel "\[4Whois\] Idle 12: 14[duration $idletime]. signon time [ctime $signon]"
unbind RAW - 317 whois:idle
}
User avatar
caesar
Mint Rubber
Posts: 3778
Joined: Sun Oct 14, 2001 8:00 pm
Location: Mint Factory

Post by caesar »

If you mean channel operator, as in who as @ in front of their nick, then before the "global whois" line add a new one with:

Code: Select all

if {![isop $nick $chan]} return
Once the game is over, the king and the pawn go back in the same box.
User avatar
abah
Halfop
Posts: 74
Joined: Sun Dec 01, 2013 3:04 am
Location: Indonesia

Post by abah »

if the script can be used for all of the script?
User avatar
caesar
Mint Rubber
Posts: 3778
Joined: Sun Oct 14, 2001 8:00 pm
Location: Mint Factory

Post by caesar »

I don't understand what you asked, but yes, if you add that line will work only for channel operators (@ in front of the nick).
Once the game is over, the king and the pawn go back in the same box.
User avatar
Get_A_Fix
Master
Posts: 206
Joined: Sat May 07, 2005 6:11 pm
Location: New Zealand

Post by Get_A_Fix »

You may also notice that for the whois:nick procedure, you've opened 3 { with only 2 close } - I'm surprised this hasn't produced an error for you. This is the same proc that you would add the code posted above by caesar. Because of the arguments you've used, his code would be done as

Code: Select all

if {![isop $nickname $channel]} return
We explore.. and you call us criminals. We seek after knowledge.. and you call us criminals. We exist without skin color, without nationality, without religious bias.. and you call us criminals.
Post Reply