irc 1.0

Catégorie / Domaine : CommTools
Compatibilité SCOL Voy@ger : V 2.0 et supérieure
Mise à jour : 09/2000

Fonction

Le module IRC permet de se connecter à des serveurs IRC à partir des mondes virtuels 3D SCOL. Les utilisateurs des mondes 3D et des chats 2D peuvent donc communiquer.
Le visiteur ne peut se connecterqu'à un seul canal à la fois, les noms des serveurs & des canaux sont définis dans le site (l'utilisateur ne peut choisir que parmi ceux prédénis).
Le principe de connexion entre les chats 2D et 3D retenu est le suivant : une cellule 3D SCOL = un canal de discussion IRC.

NOTES IMPORTANTES :
- le timeout à la connection au serveur IRC est de 30 secondes
- nécessité de la version 1.3 ou supérieure du module colorTerm
- pour la cellule 3D SCOL connectée sur l'irc
- ne pas utiliser la liste d'utilisateurs du C3D mais celle du module IRC (UsersList)
- ne pas connecter le colorTerm au C3D pour le chat, le chat passe désormais par le module IRC
- ne pas se connecter sur plusieurs serveurs IRC en même temps, sinon il risque d'avoir des "conflits" avec les pseudos (par exemple si un pseudo est accepté par un serveur et pas par un autre). il est nécessaire d'avoir un parfaite synchronisation entres les noms des utilisateurs sue le serveur SCOL et sur le serveur IRC.

Configuration


Figure 1 : Interface du module irc

(1) : Serveur hôte => Adresse du serveur IRC

(2) : Port du serveur => Port du serveur IRC

(3) : Longueur max. du pseudo accepté par le serveur => Nombre maximum de caractères acceptés par le serveur pour le pseudonyme (pour connaître cette valeur, mettre la valeur maximum [20 représente la valeur maximum sous SCOL autorisée par les différents modules de login], se connecter sur le serveur et changer de pseudonyme jusqu’à ce qu’il ne soit plus accepté ou tronqué)

(4) : Ajouter => Permet d’ajouter un canal de discussion

(5) : Supprimer => Supprime le canal de discussion sélectionné

(6) : Couleur de fond => Détermine la couleur du fond de la zone contenant le topic du canal

(7) : Couleur de texte => Détermine la couleur du texte de la zone du topic du canal

(8) : Quitter URL => Adresse du site 3D du Scolmaster vers laquelle est renvoyé tout utilisateur IRC-3D qui se déconnecte du serveur IRC

(9) : Vérifier le login Scol => A cocher si le module IRC est utilisé avec le module LoginP3

(10) : Autoriser les commandes NickServ/ChanServ => A cocher pour respecter la compatibilité avec les services IRC Nickserv et Chanserv

Mise en oeuvre

Ouvrez l'arbre de création du SCS. Sélectionnez le dossier CommTools puis double-cliquez sur irc 1.0.
Etablissez les liens nécessaires au projet.

Action Fonction
module.événement à irc.start Démarre le module IRC chez le client
module.événement à irc.destroy Détruit le module chez le client
module.événement à irc.connect Etablit la connexion au serveur IRC
module.événement à irc.disconnect Se déconnecte du serveur IRC
module.événement à irc.connectAndRegisterChannel#xxx Connexion au serveur IRC si l’utilisateur n’est pas déjà connecté.
Essaie de joindre le canal #xxx
Quitte l’ancien canal si l’utilisateur n’est pas déjà dans un canal et que le nouveau canal a bien été rejoint
module.événement à irc.unregisterChannel#xxx Quitte le canal #xxx
module.événement à irc.unregisterChannel#xxxAndDisconnect Quitte le canal #xxx
Se déconnecte du serveur IRC
Action sans effet si l’utilisateur n’est pas dans le canal #xxx
module.événement à irc.command Permet de récupérer les actions et messages IRC entrés par l’utilisateur
module.événement à irc.avatarList Permet de récupérer la liste des avatars présents dans le C3D3 (est utilisé pour s’orienter dans la direction des avatars lorsque l’utilisateur clique sur leur pseudonyme dans la liste des connectés)
module.événement à irc.showLoginInterface Affiche la fenêtre qui permet à l’utilisateur de changer de pseudonyme
module.événement à irc.showContextualMenu Permet d’ouvrir le menu contextuel quand l’utilisateur clique sur l’avatar d’un utilisateur par exemple

Evénement Fonction
irc.in à module Action Le démarrage du module engendre une action
irc.destroyed à module Action La destruction du module engendre une action
irc.connection_OK à module Action Lorsque la connexion au serveur IRC est réussie, une action est engendrée
irc.connection_ERROR à module Action Lorsqu’une erreur survient pendant la connexion au serveur IRC, une action est engendrée
irc.disconnected à module Action Lorsqu’un utilisateur est déconnecté du serveur IRC, une action est engendrée
irc.channel#xxx_REGISTER_OK à module Action Lorsque l’action registerChannel#xxx a réussi, une action est engendrée
irc.channel#xxx_REGISTER_ERROR à module Action Lorsque l’action registerChannel#n’a pas réussi, une action est engendrée
irc.channel#xxx_UNREGISTERED à module Action Lorque l’action unregisterChannel#xxx a réussi ou bien lorsque l’utilisateur a rejoint un nouveau canal et quitté l’ancien, une action est engendrée
irc.channel#xxx_FORCEDPART à module Action

Lorsque l’utilisateur est expulsé du canal ou bien déconnecté du serveur IRC et qu’il est dans un canal, une action est engendrée

irc.channelMsg à module Action L’envoi des messages du canal courant engendre une action
irc.privateMsgWarning à module Action Lorsque l’utilisateur reçoit un message privé et que la fenêtre de messages privés n’est pas ouverte ou n’a pas le focus, une action est engendrée
irc.registerMacros à module Action

L’enregistrement des macros IRC (auprès du ColorTerm par exemple) engendre une action

irc.unregisterMacros à module Action Le désenregistrement des macros IRC (auprès du ColorTerm par exemple) engendre une action
irc.centerOnPlayer à module Action Le fait de cliquer sur un avatar dans la liste, pour s’orienter dans leur direction, engendre une action
irc.checkLoginPassword à module Action La vérification d’un pseudonyme dans une base de données d’un utilisateur d’un module de gestion sécurisée des logins (le module LoginP3 par exemple), engendre une action
irc.loginChanged à module Action Quand un utilisateur change de login, une action est engendrée (traditionnellement vers l’action !chgLogin du C3D3)

Zone Fonction Interface Affectation
irc.ChannelTopic Affiche le topic du canal avec barre de défilement Client Non
Irc.UserList

Affiche la liste des utilisateurs IRC (avec le nombre de personnes dans le canal)

Client Non

* PREMIER EXEMPLE :
- à partir d'une première cellule 3D non connectée sur l'irc, on souhaite, quand on clique sur une porte, se connecter sur un serveur IRC et joindre un canal.
- si on est accepté par le serveur et dans le canal, on rentre dans une pièce.
- quand on quitte cette pièce, on se déconnecte du serveur (donc du canal) et on retourne dans la première cellule SCOL (sans IRC).
- dans l'exemple on se connecte au canal #exemple (à ajouter dans l'éditeur du module) :

[C3D_IRC] = cellule 3D SCOL avec connexion au serveur IRC et à un canal #exemple
[C3D_SCOL] = cellule 3D SCOL sans connexion IRC

[LOGIN_IRC_BUTTON] = bouton permettant d'activer l'interface de changement de pseudo sur le serveur irc (le changement sous scol se fera par l'évènement !chgLogin).
[LOGIN_SCOL_BUTTON] = bouton permettant d'activer le module de changement de pseudo sous scol. (module utilisé quand il n'y a aucune connexion au serveur IRC).

[SHELL] start -> [IRC] start (démarre le module chez le client)

[COLORTERM] command -> [IRC] command (réception des lignes de commandes tapées dans le colorterm)
[COLORTERM] extMacroCommand -> [IRC] command (réception des macros IRC tapées dans le colorterm)
[IRC] channelMsg -> [COLORTERM] privateMsg (envoie des messages des canaux IRC au colorterm)

[C3D_SCOL] lienVersIRC -> [IRC] connectAndRegisterChannel#exemple (connexion au serveur IRC, demande de connexion au canal #exemple)

[IRC] channel#exemple_REGISTER_OK -> [C3D_IRC] pos_enter (pour ne rentrer dans la cellule 3D-IRC que si on a joint le canal IRC #exemple)

[C3D_IRC] lienVersSCOL -> [IRC] disconnectAndUnregisterChannel#exemple (quitte le canal #exemple et se déconnecte du serveur IRC)
[C3D_IRC] lienVersSCOL -> [C3D_SCOL] pos_from_#exemple (retourne dans la cellule SCOL)

[IRC] channel#exemple_FORCEDPART -> [C3D3_SCOL] pos_from_#exemple (si kické du canal ou deconnecté du serveur irc suite à un flood par exemple)

[IRC] loginChanged -> !chglogin (des différents modules SCOL dont le colorTerm)

[IRC] registerMacros -> [COLORTERM] registerExtMacro (enregistrement des macros IRC auprès du colorterm)
[IRC] unregisterMacros -> [COLORTERM] unregisterExtMacro (désenregistrement des macros IRC auprès du colorterm)

[C3D_IRC] avatarList -> [IRC] avatarList (permet de s'orienter vers un utilisateur 3D quand on clique dans la liste des utilisateurs du module IRC)
[IRC] centerOnPlayer -> [C3D_IRC] !centerOnPlayer (permet de s'orienter vers un utilisateur 3D quand on clique dans la liste des utilisateurs du module IRC)
[C3D_IRC] select2 -> [IRC] showContextualMenu (permet d'ouvrir le menu contextuel sur un utilisateur quand on clique avec le bouton droit de la souris sur son avatar dans la 3D)

[LOGIN_IRC_BUTTON] click -> [IRC] showLoginInterface (ouvre l'interface de login lors du clique)
[IRC] connection_OK -> [LOGIN_IRC_BUTTON] start (création du bouton quand connexion au serveur irc)
[IRC] connection_OK -> [LOGIN_SCOL_BUTTON] destroy (destruction du bouton quand connexion au serveur irc)
[IRC] disconnected -> [LOGIN_IRC_BUTTON] destroy (destruction du bouton quand déconnexion du serveur irc)
[IRC] disconnected -> [LOGIN_SCOL_BUTTON] start (création du bouton quand déconnexion du serveur irc)

* DEUXIEME EXEMPLE :
- dans cet exemple, on se connecte sur le serveur IRC quand on accède à une cellule 3D du site.
- depuis cette cellule, on peut cliquer sur différentes portes, chacune donne accès à un canal IRC particulier, chaque canal correspond à une cellule SCOL 3D
dans notre exemple, on se contentera de deux canaux.
- il est possible de passer d'un canal à un autre, sans revenir par la cellule principale.

[C3D_SCOL] = cellule 3D SCOL sans connexion IRC
[C3D_IRC_SERVER] = cellule 3D SCOL avec connexion au serveur IRC
[C3D_IRC_CANAL_1] = cellule 3D SCOL avec connexion IRC au serveur IRC et au canal #canal1
[C3D_IRC_CANAL_2] = cellule 3D SCOL avec connexion IRC au serveur IRC et au canal #canal2

[LOGIN_IRC_BUTTON] = bouton permettant d'activer l'interface de changement de pseudo sur le serveur irc (le changement sous scol se fera par l'évènement !chgLogin)
[LOGIN_SCOL_BUTTON] = bouton permettant d'activer le module de changement de pseudo sous scol. (module utilisé quand il n'y a aucune connexion au serveur IRC)



[SHELL] start -> [IRC] start (démarre le module chez le client)

[COLORTERM] command -> [IRC] command (réception des lignes de commandes tapées dans le colorterm)
[COLORTERM] extMacroCommand -> [IRC] command (réception des macros IRC tapées dans le colorterm)
[IRC] channelMsg -> [COLORTERM] privateMsg (envoie des messages des canaux IRC au colorterm)

[C3D_SCOL] lienVersIRC -> [IRC] connect (connexion au serveur IRC)

[IRC] connection_OK -> [C3D_IRC_SERVER] pos_enter (entrée dans la cellule IRC connectée au serveur)
[IRC] disconnected -> [C3D_SCOL] pos_from_irc (retour à la cellule SCOL si deconnecté du serveur IRC)

[C3D_IRC_SERVER] lienVersCanal1 -> [IRC] connectAndRegisterChannel#canal1 (demande de connexion au canal #canal1)
[C3D_IRC_SERVER] lienVersCanal2 -> [IRC] connectAndRegisterChannel#canal2 (demande de connexion au canal #canal2)

[IRC] channel#canal1_REGISTER_OK -> [C3D_IRC_CANAL_1] pos_enter (pour ne rentrer dans la cellule que si on a joint le canal IRC #canal1)
[IRC] channel#canal2_REGISTER_OK -> [C3D_IRC_CANAL_2] pos_enter (pour ne rentrer dans la cellule que si on a joint le canal IRC #canal2)

[C3D_IRC_CANAL_1] lienVersCelluleIRCserveur -> [IRC] unregisterChannel#canal1(quitte le canal #canal1)
[C3D_IRC_CANAL_1] lienVersCelluleIRCserveur -> [C3D_IRC_SERVER] pos_from_#canal1 (retourne dans la cellule connectée au serveur uniquement)

[C3D_IRC_CANAL_2] lienVersCelluleIRCserveur -> [IRC] unregisterChannel#canal1(quitte le canal #canal2)
[C3D_IRC_CANAL_2] lienVersCelluleIRCserveur -> [C3D_IRC_SERVER] pos_from_#canal2 (retourne dans la cellule connectée au serveur uniquement)

[IRC] channel#canal1_FORCEDPART -> [C3D_IRC_SERVER] pos_from_#canal1 (si kické du canal ou deconnecté du serveur irc suite à un flood par exemple)
[IRC] channel#canal2_FORCEDPART -> [C3D_IRC_SERVER] pos_from_#canal2 (si kické du canal ou deconnecté du serveur irc suite à un flood par exemple)

[C3D_IRC_CANAL_1] lienVersCanal2 -> [IRC] connectAndRegisterChannel#canal2 (demande de connexion au canal #canal2, se deconencte de #canal1 si acceptée)
[C3D_IRC_CANAL_2] lienVersCanal2 -> [IRC] connectAndRegisterChannel#canal1 (demande de connexion au canal #canal1, se deconencte de #canal2 si acceptée)

[IRC] loginChanged -> !chglogin (des différents modules SCOL dont le colorTerm)

[IRC] registerMacros -> [COLORTERM] registerExtMacro (enregistrement des macros IRC auprès du colorterm)
[IRC] unregisterMacros -> [COLORTERM] unregisterExtMacro (désenregistrement des macros IRC auprès du colorterm)

[C3D_IRC_CANAL_1] avatarList -> [IRC] avatarList (permet de s'orienter vers un utilisateur 3D quand on clique dans la liste des utilisateurs du module IRC)
[C3D_IRC_CANAL_2] avatarList -> [IRC] avatarList (permet de s'orienter vers un utilisateur 3D quand on clique dans la liste des utilisateurs du module IRC)
[IRC] centerOnPlayer -> [C3D_IRC_CANAL_1] !centerOnPlayer (permet de s'orienter vers un utilisateur 3D quand on clique dans la liste des utilisateurs du module IRC)
[IRC] centerOnPlayer -> [C3D_IRC_CANAL_2] !centerOnPlayer (permet de s'orienter vers un utilisateur 3D quand on clique dans la liste des utilisateurs du module IRC)
[C3D_IRC_CANAL_1] select2 -> [IRC] showContextualMenu (permet d'ouvrir le menu contextuel sur un utilisateur quand on clique avec le bouton droit de la souris sur son avatar dans la 3D)
[C3D_IRC_CANAL_2] select2 -> [IRC] showContextualMenu (permet d'ouvrir le menu contextuel sur un utilisateur quand on clique avec le bouton droit de la souris sur son avatar dans la 3D)

[LOGIN_IRC_BUTTON] click -> [IRC] showLoginInterface (ouvre l'interface de login lors du clique)
[IRC] connection_OK -> [LOGIN_IRC_BUTTON] start (création du bouton quand connexion au serveur irc)
[IRC] connection_OK -> [LOGIN_SCOL_BUTTON] destroy (destruction du bouton quand connexion au serveur irc)
[IRC] disconnected -> [LOGIN_IRC_BUTTON] destroy (destruction du bouton quand déconnexion du serveur irc)
[IRC] disconnected -> [LOGIN_SCOL_BUTTON] start (création du bouton quand déconnexion du serveur irc)


* COMPATIBILITE AVEC LES PSEUDOS SECURISES SOUS SCOL :
- nécessité de la version 2.1 du module LOGINP3
- paramètres de l'éditeur : il faut cocher l'option "check SCOL secured login".
-lien supplémentaire à mettre en place :
[IRC] checkLoginPassword -> [LOGINP3] check


* COMPATIBILITE AVEC LES SERVICES IRC NICKSERV ET CHANSERV :
- paramètres de l'éditeur : il faut cocher l'option "Enable NickServ/ChanServ commands"
- pour plus d'informations, consultez l'aide en ligne du module par la commande /irchelp