# Durée du voice en minutes
set duration 1
# Canal visé
set vchan "#Debat"
# Commande à utiliser en privé
bind msgm - "%parole" voice:adqueue
set voiceq {}
set voiced ""
set voicec 0
# Procédure : Couleurs
proc mirc_strip {{args ""}} {
set switches ""
if {$switches == ""} { set switches all }
set arg [lindex $args 0]
set all [expr {([lsearch -exact $switches all] >= 0) ? 1 : 0}]
set list [list \002 "" \017 "" \026 "" \037 ""]
regsub -all -- "\003(\[0-9\]\[0-9\]?(,\[0-9\]\[0-9\]?)?)?" $arg "" arg
#set arg [replace -- $arg [join $list]]
set arg [string map {\002 "" \017 "" \026 "" \037 ""} $arg]
return $arg
}
# Procédure : Enléve l'asv à un nick
proc retour_nick_sans_asv { } {
set VoicedSex [lindex [split $::voiced "|" ] 0]
if { [string match "*|????f??" $::voiced ] } {
putquick "PRIVMSG $::vchan :\00305C'est maintenant à\00313 $VoicedSex \00305de prendre la parole."
} elseif { [string match "*|????m??" $::voiced ] } {
putquick "PRIVMSG $::vchan :\00305C'est maintenant à\00302 $VoicedSex \00305de prendre la parole."
} else {
putquick "PRIVMSG $::vchan :\00305C'est maintenant à\00301 $VoicedSex \00305de prendre la parole."
}
}
# Procédure principale : ajout dans la file d'attente
proc voice:adqueue {nick uhost handle args} {
if {![onchan $nick $::vchan]} { putquick "PRIVMSG $nick :\00305Tu n'es pas sur le salon des débats, tu ne peux donc pas y participer. Rejoind le !"; return 0}
if {($nick == $::voiced) || ([lsearch -exact $::voiceq $nick] >= 0)} {
putserv "PRIVMSG $nick :\00305Tu es déjà sur la liste des personnes qui vont debattre, patiente un peu ;)!"
return 0
} else {
putserv "PRIVMSG $nick :\00305Tu as bien été ajouté à la liste des personnes qui vont prendre la parole!"
}
lappend ::voiceq $nick
voice:checknext
}
# Procédure très importante : choix du nouveau voicé
proc voice:checknext {} {
if {$::voiced == "" && [llength $::voiceq] > 0} {
set ::voiced [lindex $::voiceq 0]
if {[onchan $::voiced $::vchan]} {
set delay [expr $::duration * 30000]
set ::voicec [after $delay voice:del]
set ::voiceq [lrange $::voiceq 1 end]
retour_nick_sans_asv
pushmode $::vchan +v $::voiced
} else {
set ::voiced [lindex $::voiceq 1]
set delay [expr $::duration * 30000]
set ::voicec [after $delay voice:del]
set ::voiceq [lrange $::voiceq 1 end]
retour_nick_sans_asv
pushmode $::vchan +v $::voiced
}
}
}
# Arrêt du voice
proc voice:del {} {
pushmode $::vchan -v $::voiced
set ::voiced ""
voice:checknext
}
# Gestion de la déconnexion
bind part - $::vchan voice:part
bind sign - $::vchan voice:part
proc voice:part {nick uhost handle chan msg} {
if {$::voiced == $nick} {
after cancel $::voicec
set ::voiced ""
voice::checknext
}
}
# Gestion du !Termine
bind pubm - %!abso help
proc help {nick uhost handle chan args} {
putserv "PRIVMGS $chan :Bonjour $nick !"
}
# Procédure : Join d'un(e) user
bind join - $::vchan debat:join
proc debat:join {nick host hand arg} {
if {[string match "*|????f??" $nick ]} {
putquick "PRIVMSG $nick :\00305Salut \00313$JoinSexPv\00305, tu viens de rejoindre le salon dans lequel tu peux debattre avec les autres chatteurs."
putquick "PRIVMSG $nick :\00305Le sujet du moment est : \00310Hahahhah\00305. Si tu veux y paticiper, il te suffit de taper \"\!Participer\"\ dans ce pv."
} elseif {[string match "*|????m??" $nick ]} {
putquick "PRIVMSG $nick :\00305Salut \00302$JoinSexPv\00305, tu viens de rejoindre le salon dans lequel tu peux debattre avec les autres chatteurs."
putquick "PRIVMSG $nick :\00305Le sujet du moment est : \00310Hahahhah\00305. Si tu veux y paticiper, il te suffit de taper \"\!Participer\"\ dans ce pv."
} else {
putquick "PRIVMSG $nick :\00305Salut \00301$JoinSexPv\00305, tu viens de rejoindre le salon dans lequel tu peux debattre avec les autres chatteurs "
putquick "PRIVMSG $nick :\00305Le sujet du moment est : \00310Hahahhah\00305. Si tu veux y paticiper, il te suffit de taper \"\!Participer\"\ dans ce pv."
}
}