X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2FpageMinichat%2Fcommandes.js;h=f49ce9a102f3ce3f3164490f58092ec1775f11d5;hp=0a2c38ef5f86a2b51f5137c2161946f03b2bf7da;hb=7cf389481b133c57d6563b5e6747131f4abbf589;hpb=7e471788d9356b1cb8659513674df9a883101807 diff --git a/js/pageMinichat/commandes.js b/js/pageMinichat/commandes.js index 0a2c38e..f49ce9a 100644 --- a/js/pageMinichat/commandes.js +++ b/js/pageMinichat/commandes.js @@ -33,6 +33,23 @@ euphorik.Commandes = function(client) { euphorik.Commandes.statut = {ok : 0, pas_une_commande : 1, erreur_commande : 2}; +euphorik.Commandes.liste = { + "nick" : { + usage : "/nick ", + exec : function(args, client) { + + if (args.length === 0) { + return [euphorik.Commandes.statut.erreur_commande, 'Utilisation de la commande : ' + this.usage]; + } + + client.pseudo = args[0]; + $("form#posterMessage input.pseudo").val(client.pseudo); + + return [euphorik.Commandes.statut.ok, '']; + } + } +}; + /** * Execute une commande. * @return [statut, message], 'message' n'est utilisé que pour le statut 'erreur_commande'. @@ -40,29 +57,21 @@ euphorik.Commandes.statut = {ok : 0, pas_une_commande : 1, erreur_commande : 2}; euphorik.Commandes.prototype.exec = function(chaine) { chaine = chaine.trim(); - var fragments = chaine.split(/\s*/); + var fragments = chaine.split(/\s+/); if (fragments.length === 0 || fragments[0].charAt(0) != '/') { return [euphorik.Commandes.statut.pas_une_commande, '']; } - var commande = fragments[0].slice(1); + var nomCommande = fragments[0].slice(1); var args = fragments.slice(1); - switch (commande) { - case "" : return [euphorik.Commandes.statut.erreur_commande, 'La commande est vide']; - case "nick" : return this.commandeNick(args); + if (nomCommande === "") { + return [euphorik.Commandes.statut.erreur_commande, 'La commande est vide']; } - return [euphorik.Commandes.statut.erreur_commande, 'La commande \\' + commande + ' est inconnue']; -}; - -euphorik.Commandes.prototype.commandeNick = function(args) { - if (args.length === 0) { - return [euphorik.Commandes.statut.erreur_commande, 'Utilisation de la commande : "\nick "']; + if (euphorik.Commandes.liste.hasOwnProperty(nomCommande)) { + return euphorik.Commandes.liste[nomCommande].exec(args, this.client); } - this.client.pseudo = args[0]; - $("form#posterMessage input.pseudo").val(this.client.pseudo); - - return [euphorik.Commandes.statut.ok, '']; + return [euphorik.Commandes.statut.erreur_commande, 'La commande /' + nomCommande + ' est inconnue']; };