Colorare la Nicklist

Cos'è la Nicklist?
E' la lista dei nicknames all'interno di un canale.
Colorandola possiamo individuare agevolmente lo stato di tutti gli utenti nel canale.

Tenete presente che $nick(#,0) sono N nicknames presenti in un canale, $vnick(#,0) sono N nicknames col voice, $opnick(#,0) sono N nicknames operatori.

Provando a scrivere in un canale: //echo $nick(#,0) vi ritornerà il numero degli utenti presenti in quest'ultimo. Noi dobbiamo ora solo colorarli in base al loro stato.

Andiamo negli alias e copiamo questo:

/colora-nicklist {
  if ($me ison $1) {
;controlliamo se sono dentro quel canale
    cline 4 $1 $me
;questo colorerà di rosso il tuo nick
    set %nicklist.nick $nick($1,0)
    set %nicklist.voice $vnick($1,0)
    set %nicklist.op $opnick($1,0)
;abbiamo settato le variabili di N nicknames
    :coloranick
    if ($nick($1,%nicklist.nick) == $null) { goto coloravoice }
    if ($nick($1,%nicklist.nick) != $me) { cline 2 $1 $nick($1,%nicklist.nick) }
    inc %nicklist.nick 1
    goto coloranick
;controlliamo ogni nick del canale e se è diverso da me lo colora
;se il nick è nullo allora coloriamo quelli col voice
    :coloravoice
    if ($vnick($1,%nicklist.voice) == $null) { goto coloraop }
    if ($vnick($1,%nicklist.voice) != $me) { cline 3 $1 $vnick($1,%nicklist.voice) }
    inc %nicklist.voice 1
    goto coloravoice
    :coloraop
    if ($opnick($1,%nicklist.op) == $null) { halt }
    if ($opnick($1,%nicklist.op) != $me) { cline 13 $1 $opnick($1,%nicklist.op) }
    inc %nicklist.op 1
    goto coloraop
  }
}

Poi scrivete in un canale: /colora-nicklist #canale e vi si coloreranno gli op di viola (13), i voice di verde (3), gli utenti normali di blu (2) e voi di rosso (4).

Poi se qualcuno entra o viene oppato o cose simili, dovete aggiornare la nicklist in questo modo:

on 1:JOIN:#:{ .timer 1 1 /colora-nicklist $chan }
on 1:OP:#:{ colora-nicklist $chan }
on 1:DEOP:#:{ colora-nicklist $chan }
on 1:VOICE:#:{ colora-nicklist $chan }
on 1:DEVOICE:#:{ colora-nicklist $chan }

Ricordiamo che il timer nell'on join è necessario, in quanto nell'evento on join non funziona il $nick($chan,0).
 


 


2001 Mondo IRC®. All rights reserved.
Mondo IRC non e' collegato ai siti linkati e non e' responsabile del loro contenuto.
E' vietata la riproduzione anche parziale.