Catégorie / Domaine : | CommTools |
Compatibilité SCOL Voy@ger : | V 2.0 et supérieure |
Mise à jour : | 09/2000 |
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.
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 quil ne soit plus accepté ou tronqué)
(4) : Ajouter => Permet dajouter 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
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 lutilisateur nest pas déjà
connecté. Essaie de joindre le canal #xxx Quitte lancien canal si lutilisateur nest 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 lutilisateur nest pas dans le canal #xxx |
module.événement à irc.command | Permet de récupérer les actions et messages IRC entrés par lutilisateur |
module.événement à irc.avatarList | Permet de récupérer la liste des avatars présents dans le C3D3 (est utilisé pour sorienter dans la direction des avatars lorsque lutilisateur clique sur leur pseudonyme dans la liste des connectés) |
module.événement à irc.showLoginInterface | Affiche la fenêtre qui permet à lutilisateur de changer de pseudonyme |
module.événement à irc.showContextualMenu | Permet douvrir le menu contextuel quand lutilisateur clique sur lavatar dun 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 | Lorsquune erreur survient pendant la connexion au serveur IRC, une action est engendrée |
irc.disconnected à module Action | Lorsquun utilisateur est déconnecté du serveur IRC, une action est engendrée |
irc.channel#xxx_REGISTER_OK à module Action | Lorsque laction registerChannel#xxx a réussi, une action est engendrée |
irc.channel#xxx_REGISTER_ERROR à module Action | Lorsque laction registerChannel#na pas réussi, une action est engendrée |
irc.channel#xxx_UNREGISTERED à module Action | Lorque laction unregisterChannel#xxx a réussi ou bien lorsque lutilisateur a rejoint un nouveau canal et quitté lancien, une action est engendrée |
irc.channel#xxx_FORCEDPART à module Action |
Lorsque lutilisateur est expulsé du canal ou bien déconnecté du serveur IRC et quil est dans un canal, une action est engendrée |
irc.channelMsg à module Action | Lenvoi des messages du canal courant engendre une action |
irc.privateMsgWarning à module Action | Lorsque lutilisateur reçoit un message privé et que la fenêtre de messages privés nest pas ouverte ou na pas le focus, une action est engendrée |
irc.registerMacros à module Action |
Lenregistrement 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 sorienter dans leur direction, engendre une action |
irc.checkLoginPassword à module Action | La vérification dun pseudonyme dans une base de données dun utilisateur dun 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 laction !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)
[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