aIRC — File Browser
aIRCv0.8.69 / aIRCv0.8.69 / script / nicklistcol.mrc
nicklistcol.mrc — 11.83 KB — Download this file
;/**********************************************************************
; *
; * aIRC
; * Colored Nicklist
; *
; **********************************************************************/
alias nickcol { _dialog -m _nickcol _nickcol }
alias _loadsetup.nicklistcol {
var %cols = $_nickol.fix
if ($_getsetup(script,_nicklistcol.state)) {
.enable #_nicklistcol.d
$iif($_getsetup(script,_nicklistcol.userflags),.enable,.disable) #_nicklistcol.u
}
else { .disable #_nicklistcol.* }
}
#_nicklistcol.d off
;
;;
;
; /_nicklist.col.channick <channel> <nick> <colflags> <fulladdress> <handle> <userflags> <forcecolor>
; colflags: h - don't lookup handle
; q - don't colour
;
alias _nicklist.col.channick {
var %rc
if ($2 ison $1) {
var %chan = $1,%nick = $2,%colflags = $3,%addy = $4,%handle = $5,%uflags = $6,%fc = $7,%rc,%cols = $_getsetup(script,_nicklistcol.cols),%procflags = $_getsetup(script,_nicklistcol.userflags),%procignores = $_getsetup(script,_nicklistcol.ignores),%notify = $_notify.nicksvars(%nick)
if (%fc isnum 0-15) { %rc = $ifmatch }
elseif (%nick == $me) { %rc = $gettok(%cols,1,32) }
elseif ($_isircop(%nick)) { %rc = $gettok(%cols,2,32) }
else {
if (%addy == $null) && ((%procignores) || (%procflags)) {
if ($address(%nick,5) != $null) { %addy = $ifmatch }
else { %addy = %nick $+ !*@* }
}
if (%procflags) && (%uflags == $null) && (%handle == $null) && (h !isin %colflags) { var %handle = $_finduser(%addy),%uflags = $_nickflags(%handle,%chan) }
if (%procflags) && (%handle != $null) {
if (k isincs %uflags) { %rc = $gettok(%cols,9,32) }
elseif (n isincs %uflags) { %rc = $gettok(%cols,10,32) }
elseif (m isincs %uflags) { %rc = $gettok(%cols,11,32) }
elseif (b isincs %uflags) { %rc = $gettok(%cols,12,32) }
elseif (o isincs %uflags) { %rc = $gettok(%cols,13,32) }
elseif (v isincs %uflags) { %rc = $gettok(%cols,14,32) }
elseif (f isincs %uflags) { %rc = $gettok(%cols,15,32) }
else { %rc = $gettok(%cols,16,32) }
}
elseif (%procignores) && (%addy isignore) { %rc = $gettok(%cols,8,32) }
elseif (%notify == passed) { %rc = $gettok(%cols,3,32) }
elseif (%notify == failed) { %rc = $gettok(%cols,4,32) }
elseif (%nick isop %chan) { %rc = $gettok(%cols,5,32) }
elseif (%nick isvo %chan) { %rc = $gettok(%cols,6,32) }
else { %rc = $gettok(%cols,7,32) }
}
if (%rc == 16) { %rc = $colour(listbox text) }
if (%rc isnum 0-15) && (q !isincs %colflags) { cline %rc %chan %nick }
}
if ($len(%rc) == 1) { %rc = 0 $+ %rc }
return %rc
}
; /_nicklist.col.addy <address> <chan|*>
alias _nicklist.col.addy {
var %addy = $1,%chan = $2,%i = $ialchan(%addy,%chan,0)
while (%i) {
var %fa = $ialchan(%addy,%chan,%i),%nick = $gettok(%fa,1,33)
_nicklist.col.nick %nick %fa
dec %i
}
}
; /_nicklist.col.nick <nick> <fulladdress>
; (all channels)
alias _nicklist.col.nick {
var %nick = $1,%fa = $2,%i = $comchan(%nick,0)
while (%i) {
_nicklist.col.channick $comchan(%nick,%i) %nick - %fa
dec %i
}
}
alias _nicklist.col.chandle {
if ($_getsetup(script,_nicklistcol.userflags)) {
if (t isin $1) {
.timer_nicklistcolhandle $+ $2 $+ $3 off
_nicklist.col.handle $1-
}
else { .timer_nicklistcolhandle $+ $2 $+ $3 -m 1 500 _nicklist.col.handle $1- }
}
}
raw 366:*:{
if ($_not($_get(junk,colorednicklist,$2))) && ($_rchini(_updateial,$2) != 1) {
_setd junk colorednicklist $2 1
return $_nicklist.col.chan($2)
}
}
ON *:KICK:#:{
if ($knick == $me) { _setd junk colorednicklist $chan 0 }
}
ON ME:*:PART:#:{ _setd junk colorednicklist $2 0 }
ON *:CONNECT:{ hdel -w _aircjunk colorednicklist_* }
ON *:DISCONNECT:{ hdel -w _aircjunk colorednicklist_* }
ON *:JOIN:#:{ return $_nicklist.col.channick($chan,$nick,h,%++fulladdress,%++handle,%++flags,$null) }
ON *:VOICE:#:{ return $_nicklist.col.channick($chan,$vnick,h,%++fulladdress2,%++handle2,%++flags2,$null) }
ON *:DEVOICE:#:{ return $_nicklist.col.channick($chan,$vnick,h,%++fulladdress2,%++handle2,%++flags2,$null) }
ON *:OP:#:{ return $_nicklist.col.channick($chan,$opnick,h,%++fulladdress2,%++handle2,%++flags2,$null) }
ON *:SERVEROP:#:{ return $_nicklist.col.channick($chan,$opnick,h,%++fulladdress2,%++handle2,%++flags2,$null) }
ON *:DEOP:#:{ return $_nicklist.col.channick($chan,$opnick,h,%++fulladdress2,%++handle2,%++flags2,$null) }
ON *:OWNER:#:{ return $_nicklist.col.channick($chan,$opnick,h,%++fulladdress2,%++handle2,%++flags2,$null) }
ON *:DEOWNER:#:{ return $_nicklist.col.channick($chan,$opnick,h,%++fulladdress2,%++handle2,%++flags2,$null) }
raw 352:*:{ _nicklist.col.channick $2 $6 - $6 $+ ! $+ $3 $+ @ $+ $4 }
; script2.mrc ; ON *:NOTIFY:{ _nicklist.col.nick $nick }
#_nicklistcol.d end
#_nicklistcol.u off
ON *:NICK:{ _nicklist.col.nick $newnick $newnick $+ ! $+ $address }
#_nicklistcol.u end
; /_nicklist.col.handle <flags> <handle> <chan|*>
; flags: r - removing handle...
alias _nicklist.col.handle {
var %comflags = $1,%handle = $2,%chan = $3,%hosts = $_ruini(%handle,hosts),%n = $numtok(%hosts,32),%hh,%ialtot,%x,%t,%r,%tmp,%uflags,%fhandle
while (%n) {
%hh = $gettok(%hosts,%n,32)
%x = 1
%ialtot = $ialchan(%hh,%chan,0)
while (%x <= %ialtot) {
%t = $ialchan(%hh,%chan,%x)
if ($_finduser(%t) == %handle) {
%t = $gettok(%t,1,33)
if ($len(%r) < 900) { %r = $addtok(%r,%t,44) }
if (%chan == *) {
var %ci = $chan(0),%ct
while (%ci) {
var %uflags,%ct = $chan(%ci),%fhandle = %handle
if (r isin %comflags) { var %fhandle }
else { %uflags = $_nickflags(%handle,%ct) }
%tmp = $_nicklist.col.channick(%ct,%t,h,$null,%fhandle,%uflags,$null)
dec %ci
}
}
else {
var %uflags,%fhandle = %handle
if (r isin %comflags) { var %fhandle }
else { %uflags = $_nickflags(%handle,%chan) }
%tmp = $_nicklist.col.channick(%chan,%t,h,$null,%fhandle,%uflags,$null)
}
}
inc %x
}
dec %n
}
}
alias _nicklist.col.chan {
if ($me !ison $1) { return }
var %i = 1,%n = $nick($1,0)
while (%i <= %n) {
_nicklist.col.channick $1 $nick($1,%i)
inc %i
}
}
alias _nicklist.col.all {
var %i = $chan(0)
while (%i) {
_nicklist.col.chan $chan(%i)
dec %i
}
}
alias _nicklist.col.no {
var %i = $chan(0),%chan,%t
while (%i) {
%chan = $chan(%i)
%t = $nick(%chan,0)
while (%t) {
cline -r %chan $nick(%chan,%t)
dec %t
}
dec %i
}
}
dialog _nickcol {
size -1 -1 140 150
option dbu
title "Nicklist Colours"
check "Nicklist Colours (slowdown)",1001,5 5 80 8
check "Process user flags (BIG slowdown)",1002,5 15 98 8
check "Process ignores (HUGE slowdown)",1003,5 25 98 8
box "",1011,5 35 65 95
box "",1012,5 35 130 95
text "You",1501,10 46 42 8,right
icon 1601,55 45 8 8
text "Ircop",1502,10 56 42 8,right
icon 1602,55 55 8 8
text "Notify",1503,10 66 42 8,right
icon 1603,55 65 8 8
text "Failed Notify",1504,10 76 42 8,right
icon 1604,55 75 8 8
text "Channel Operator",1505,10 86 42 8,right
icon 1605,55 85 8 8
text "Channel voice",1506,10 96 42 8,right
icon 1606,55 95 8 8
text "Channel regular",1507,10 106 42 8,right
icon 1607,55 105 8 8
text "Ignored",1508,10 116 42 8,right
icon 1608,55 115 8 8
text "+k user (akick)",1509,75 46 42 8,right
icon 1609,120 45 8 8
text "+n user (owner)",1510,75 56 42 8,right
icon 1610,120 55 8 8
text "+m user (master)",1511,75 66 42 8,right
icon 1611,120 65 8 8
text "+b user (bot)",1512,75 76 42 8,right
icon 1612,120 75 8 8
text "+o user (op)",1513,75 86 42 8,right
icon 1613,120 85 8 8
text "+v user (voice)",1514,75 96 42 8,right
icon 1614,120 95 8 8
text "+f user (friend)",1515,75 106 42 8,right
icon 1615,120 105 8 8
text "other users",1516,75 116 42 8,right
icon 1616,120 115 8 8
edit "",2048,100 100 100 10,autohs hide
button "White Def.",2993,5 135 31 13
button "Black Def.",2994,39 135 31 13
button "Ok",2995,72 135 31 13,ok
button "Cancel",2996,105 135 31 13,cancel
}
ON *:DIALOG:_nickcol:init:0:{
_mdx.init $_icofile(nickcol.ico)
_refreshcolorbmps
did $iif($_getsetup(script,_nicklistcol.state),-c,-u) $dname 1001
did $iif($_getsetup(script,_nicklistcol.userflags),-c,-u) $dname 1002
did $iif($_getsetup(script,_nicklistcol.ignores),-c,-u) $dname 1003
_nickcol.paintitblack $_nickol.fix
_nickcol.refresh
_dummy $_lang.loaddialog($dname,$dname,00086969,main.lang,$scriptdir)
}
ON *:DIALOG:_nickcol:sclick:1001,1002,1003:{ _nickcol.refresh }
ON *:DIALOG:_nickcol:sclick:2993:{ _nickcol.paintitblack $_nickol.whitedefault }
ON *:DIALOG:_nickcol:sclick:2994:{ _nickcol.paintitblack $_nickol.blackdefault }
ON *:DIALOG:_nickcol:sclick:2995:{
var %com
if ($_getsetup(script,_nicklistcol.state)) && ($_not($did($dname,1001).state)) { %com = _nicklist.col.no }
elseif ($_not($_getsetup(script,_nicklistcol.state))) && ($did($dname,1001).state) { %com = _nicklist.col.all }
elseif ($did($dname,1001).state) && ($did($dname,2048) != $_getsetup(script,_nicklistcol.cols)) { %com = _nicklist.col.all }
elseif ($did($dname,1001).state) && ($did($dname,1002).state != $_getsetup(script,_nicklistcol.userflags)) { %com = _nicklist.col.all }
elseif ($did($dname,1001).state) && ($did($dname,1003).state != $_getsetup(script,_nicklistcol.ignores)) { %com = _nicklist.col.all }
_setsetup script _nicklistcol.cols $did($dname,2048)
_setsetup script _nicklistcol.state $did($dname,1001).state
_setsetup script _nicklistcol.userflags $did($dname,1002).state
_setsetup script _nicklistcol.ignores $did($dname,1003).state
_nickol.fix
_loadsetup.nicklistcol
if (%com != $null) { $ifmatch }
}
ON *:DIALOG:_nickcol:sclick:*:{
if (16?? iswm $did) { _nickcol.change }
}
alias -l _nickcol.refresh {
var %d = $dname
if ($did(%d,1001).state) {
did -e %d 1002,1003,1501,1601,1502,1602,1503,1603,1504,1604,1505,1605,1506,1606,1507,1607
did $iif($did(%d,1003).state,-e,-b) %d 1508,1608
did $iif($did(%d,1002).state,-e,-b) %d 1509,1609,1510,1610,1511,1611,1512,1612,1513,1613,1514,1614,1515,1615,1516,1616
}
else { did -b %d 1002,1003,1501,1601,1502,1602,1503,1603,1504,1604,1505,1605,1506,1606,1507,1607,1508,1608,1509,1609,1510,1610,1511,1611,1512,1612,1513,1613,1514,1614,1515,1615,1516,1616 }
}
alias _nickol.fix {
var %def = $_nickol.currdedault,%i = 1,%old = $_getsetup(script,_nicklistcol.cols),%set,%z
while (%i <= 16) {
var %z
if ($gettok(%old,%i,32) isnum 0-16) { %z = $ifmatch }
else { %z = $gettok(%def,%i,32) }
if ($len(%z) == 1) { %z = 0 $+ %z }
%set = %set %z
inc %i
}
_setsetup script _nicklistcol.cols %set
return %set
}
alias -l _nickcol.change {
var %d = $dname,%col = $_pickcol(1,default,Pick Colour),%n = $did - 1600
if (%col isnum 0-16) {
did -o %d 2048 1 $puttok($did(%d,2048),%col,%n,32)
_nickcol.draw %n %col
}
}
alias -l _nickcol.paintitblack {
var %cols = $1-
did -o $dname 2048 1 %cols
var %i = 1601
while (%i <= 1616) {
_nickcol.draw %i $gettok(%cols,$calc(%i - 1600),32)
inc %i
}
}
alias -l _nickcol.draw {
var %d = $dname,%m,%did = $1,%z = $2
if (%did < 1600) { inc %did 1600 }
if (%z == 16) { %z = $colour(listbox text) }
if ($len(%z) == 1) { %z = 0 $+ %z }
%m = mircol $+ %z $+ _*.bmp
did -g $dname %did " $+ $findfile($mircdiretc\bmps\,%m,1,1) $+ "
}
alias _nickol.whitedefault { return 12 13 10 06 10 02 02 04 04 12 12 05 10 03 03 03 }
alias _nickol.blackdefault { return 11 13 12 00 12 15 15 04 04 11 11 08 12 09 09 09 }
alias _nickol.currdedault { return $iif($colour(listbox) == 1,$_nickol.blackdefault,$_nickol.whitedefault) }