Il peut être souhaitable que certaines lignes d'un script ne soient actives que sur demande. Par exemple, on peut imaginer un système anti-insultes: une liste de lignes qui réagissent quand des insultes sont proférées sur un canal.

On peut ensuite souhaiter que ces lignes ne réagissent que si on le désire, et soient inactives sinon. L'activation ou la désactivation du système "anti-insultes" pourrait se faire, par exemple, par un menu prévu à cet effet.

La méthode consiste à encadrer les lignes sus-dites par un nom de groupe préfixé par un #, et suivi par un mot clé. Voyons l'exemple:

#insultes off

on 1:text:*salopard*:#pouet:{ 
  if ($me isop $chan) kick $chan $nick Soigne ton vocabulaire!
else { notice $nick Espèce de malpoli! }
}
on 1:text:*merde*:#pouet:{ 
  if ($me isop $chan) kick $chan $nick Soigne ton vocabulaire!
else { notice $nick Espèce de malpoli! }
}

#insultes end
Le nom du groupe est #insultes (toujours le préfixer d'un #) suivi d'un on ou d'un off, suivant que l'on souhaite ou non qu'il soit actif par défaut. Le groupe se termine par le nom du groupe à nouveau, suivi du mot end.

Pour activer un groupe, c'est /enable <#groupe>. Pour le désactiver: /disable <#groupe>. Pour l'activer depuis un popup, on peut imaginer mettre à jour le menu commandes de cette manière:
Commands
...

Anti-insultes
.Activer: .enable #insultes
.Désactiver: .disable #insultes

...
A noter que le point . rajouté devant enable et disable: cela supprime l'écho sur l'écran lors de l'appel d'une commande. Sans le point, vous verriez apparaître:
#insultes enabled
à l'appel de /enable.

Vous verrez en parcourant la suite du cours, et particulièrement dans la section "événements de serveur", que ce système de groupes est particulièrement utile.

Précédent: Les niveaux   Suivant: Les événements de serveur   Début de page   Sommaire