Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[Astuce] Avoir des Binds PUB qui ce déclenche meme avec de la couleurs
#1
Pour ma part depuis longtemps, je trouve que le fait que les binds pubs ne réagisse pas aux commandes qui auraient de la couleur, du gras, ou tout autre code de styles est embêtant.

Bien que leurs sensibilités (aux binds pubs) soit sensé. J'avais fait la demande aux eggheads pour faire quelques choses. Vous pouvez voir ma demande ici et rien n'a été dans ce sens pour l'instant.

Les seules solutions proposées me déplaisent, parce que comme ici: ça consiste à remplacer le comportement des PRIVMSG entrant de manière général au eggdrops.

Ce que je trouve trop dangereux, de plus, si un script a besoin de s'exécuter sur un code de style comme des couleurs ?

Finalement, ont à l'un ou l'autre choix, mais pas les deux.

Alors soyons fou, je vais essayer une idée d'approche qui nous donnerait une alternative :


tcl
# nous allons nommer les pubs insensibles 'PUBSC' dans cet exemple pour 'PubStripCodes'
# On crée une fonction pour faciliter la création des PUBS qui se déclenche même s'il y a de la couleur
 
# Commençons par créer une petite procédure, un pubm qui se déclenche à chaque entrée de message sur l'eggdrop
bind pubm - * PUBSC:MAIN;
 
proc PUBSC:MAIN { nick host hand chan arg } {
    # On enlève tout style de couleurs
    set arg                [stripcodes * ${arg}];
 
    # On récupère la commande de arg
    set CMD_NAME    [lindex ${arg} 0]
 
    # on enlève les préfixes possibles de la commande (commenter si inutile)
    set CMD_NAME      [string trimleft "!" ${CMD_NAME}]
 
    # On récupère le contenu de la commande
    set CMD_NAME    [lrange ${arg} 1 end]
 
    # Nous vérifions à présent si la commande, sans couleurs ni préfixe, corresponds à une procédure du même nom - en majuscule) qui débuterait par "PUBSC:"
    if { [info commands "PUBSC:[string toupper ${CMD_NAME}]"] ne "" } {
    # Si c'est le cas, on l'appelle avec les arguments
        PUBSC:[string toupper ${CMD_NAME}] ${nick} ${host} ${hand} ${chan} ${arg}
    }
}
# Maintenant rien de plus simple : Création d'une commande "!coucou"
 
proc PUBSC:COUCOU  { nick host hand chan arg } {
    putquick "PRIVMSG $chan :Oui, bien le coucou $nick !"
}


Si nous voulons que les arguments garde les couleurs , mais qu'il se déclenche tout de même avec ou sans sur la commande on va modifier légèrement l'emplacement du stripcodes

tcl
proc PUBSC:MAIN { nick host hand chan arg } {
 
 
    # On récupère la commande de arg
    set CMD_NAME    [lindex ${arg} 0]
 
    # On enlève tout style de couleurs sur la commande 
    set CMD_NAME      [stripcodes * ${CMD_NAME}];
 
    # on enlève les préfixes possibles de la commande (commenter si inutile)
    set CMD_NAME      [string trimleft "!" ${CMD_NAME}]
 
    # On récupère le contenu de la commande
    set CMD_NAME    [lrange ${arg} 1 end]
 
    # Nous vérifions à présent si la commande, sans couleurs ni préfixe, corresponds à une procédure du même nom - en majuscule) qui débuterait par "PUBSC:"
    if { [info commands "PUBSC:[string toupper ${CMD_NAME}]"] ne "" } {
    # Si c'est le cas, on l'appelle avec les arguments
        PUBSC:[string toupper ${CMD_NAME}] ${nick} ${host} ${hand} ${chan} ${arg}
    }
}

Retrouvez les dernières modifications de mes scripts TCL (versions Alpha/Bêta) ainsi que d'autres de mes réalisations sur ma page GitHub et les versions stables dans la section scripts de ce site  8-)
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Putlog en couleurs CrazyCat 3 4,007 15/01/2018, 18:06
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)