From 4c66040b09afcaeb35de92d933d750662d1af2c0 Mon Sep 17 00:00:00 2001 From: nemesis Date: Wed, 24 Aug 2022 21:18:22 +0200 Subject: [PATCH] aide / help --- asmodee.py | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/asmodee.py b/asmodee.py index 0e520cf..51592ff 100755 --- a/asmodee.py +++ b/asmodee.py @@ -1307,6 +1307,113 @@ async def showquote(room, message): # afficher les citations mode reponse matrix else: await msg(room,"Je n'ai pas de citations pour ce salon",sender) +async def help(room, message): # Aide en message privé + await help_center(room,message,"help",True) + +async def aide(room, message): # Aide dans le salon + await help_center(room,message,"aide",False) +async def help_center(room,message,name,private): # Aide sur les commandes disponibles + args = getMessage(message).split() + args.pop(0) + salon = room + sender = getUser(message) + if (private): + salon = await verifPMRoom(room,message) + if (len(args) > 0): + if (re.search("roll", args[0])): + await msg(salon,":roll (+-modifs ou des)\n\n- exemple :roll vr4g3 6d6 - \#g\#r3d6 +2 x3 : lance avec les details 6d6 en relancant les des avec un resultat de 4+ et en gardant les trois meilleurs, puis en retranchant 3d6 sans relancer les 4+ et en gardant tout, enfin ajouter 2. L'operation sera executee trois fois.\n\n- v : details (verbose) du jet\n- n : no add, chaque de est traite separement\n- e : explosif, si un de fait le maximum, on le relance et on additionne\n- z : Star Zars, le premier de est explosif. Mais s'il sort un 1, on retire ce 1 et la plus grande valeur des autres des\n- f : difficulte a atteindre par de avec option n\n- g : nombre de des conserves\n- r : relance si le de a obtenu au moins ce nombre\n- m : Enleve un succes si ce nombre ou moins est atteint\n- s : seuil a atteindre et niveaux de reussites\n- w : lance un wild die avec les autres.",sender, False) + elif (re.search("sw", args[0])): + await msg(salon,"- :sw : Lance les des en mode Savage Worlds\nVerbose/Noadd/Explosif/Seuil 4/Niveau de reussite 4/Wild Die d6.",sender, False) + elif (re.search("dom", args[0])): + await msg(salon,"- :dom : Lance les dommages en mode Savage Worlds\nVerbose/Explosif/seuil 4/Niveau de reussite 4.",sender, False) + elif (re.search("owod", args[0])): + await msg(salon,"- :owod : Lance les des en mode Ancien Monde des Tenebres\nVerbose/Noadd/Difficulte 6/Relance les 10/Les 1 enleve un succes.",sender, False) + elif (re.search("wod", args[0])): + await msg(salon,"- :wod : Lance les des en mode Nouveau Monde des Tenebres\nVerbose/Noadd/Difficulte 8/Relance les 10.",sender, False) + elif (re.search("ars", args[0])): + await msg(salon,"- :ars : Lance les des en mode Ars Magicka : de de tension\nVerbose/Noadd/Sur un 1, on relance et on double.",sender, False) + elif (re.search("des", args[0])): + await msg(salon,"- :des : Lance des des de desastre\nVerbose/Noadd/Difficulte 10.",sender, False) + elif (re.search("star", args[0])): + await msg(salon,"- :star : Lance des des en mode star wars. Le premier de est explosif. Mais s'il sort un 1, on retire ce 1 et la plus grande valeur des autres des.",sender, False) + elif (re.search("carte", args[0])): + await msg(salon,"- !carte : Tire une carte et la retire du paquet\n- !carte m : remelange le paquet.",sender, False) + elif (re.search("card", args[0])): + await msg(salon,"- !card : tire une carte sans la retirer du paquet.",sender, False) + elif (re.search("liste", args[0])): + await msg(salon,"- !liste [Nombre d'elements souhaites] : retourne ce nombre d'elements de la liste.",sender, False) + elif (re.search("horloge", args[0])): + await msg(salon,"- !horloge : Affiche les horloges\n- !horloge : Crée ou modifie une horloge en lui mettant un niveau (normalement de 0 à 6)\n- !horloge del : Supprime cette horloge.",sender, False) + elif (re.search("last", args[0])): + await msg(salon,"- !last : Date de son dernier post\n- !last : Date du dernier post de la personne\n- !last inactifs <[+-]nombre de jours> : liste de personnes (en privé) ayant posté depuis + ou - le nombre de jours spécifiés et ayant au maximum le nombre de messages spécifiés.\n",sender, False) + elif (re.search("actif", args[0])): + await msg(salon,"- !actif : Nombre de ses messages et taille moyenne de ceux ci\n- !actif : Nombre des messages de cette personne et taille moyenne de ceux ci\n",sender, False) + elif (re.search("quote", args[0])): + await msg(salon,"- !quote : Affiche une citation du salon au hasard\n- !quote : Affiche une citation d'une personne du salon au hasard\n- !quote add : : Enregistre une citation\n- !quote list [Personne] : Affiche les citation du salon ou d'une personne du salon en message privé\n- !quote list all : Affiche toutes les citations de tous les salons en message privé\n- !quote del : Supprime la citation avec l'id spécifié",sender, False) + elif (re.search("biere", args[0])): + await msg(salon,"- !biere : Fournit une boisson du salon au hasard\n- !biere : Fournit une boisson spécifique du salon\n- !biere give [:Nom du Breuvage] : Offre une boisson (spécifique en option) à la personne spécifiée\n- !biere add : : Enregistre une phrase pour ce breuvage\n- !biere list [Nom de Breuvage] : Affiche les phrases des breuvages du salon ou celles d'un breuvage spécifique du salon en message privé\n- !biere list all : Affiche toutes les citations de tous breuvages de tous les salons en message privé\n- !biere del : Supprime la phrase avec l'id spécifié",sender, False) + elif (re.search("accueil", args[0])): + await msg(salon,"- !accueil : Modifie le message d'accueil avec message. Il sera affiché à tout nouvel arrivant précédé de la mention 'Bienvenue sur le salon XXX, YYY.'",sender, False) + elif (re.search("kick", args[0])): + await msg(salon,"- !kick <@mxid> [@mxid] ... : kick les users listés",sender, False) + elif (re.search("titre", args[0])): + await msg(salon,"- !titre : retourne le titre de la page",sender, False) + elif (re.search("mails", args[0]) or re.search("mail", args[0])): + await msg(salon,"- !mail add : s'abonner aux messages du salon par mail.\n -!mail del : se désabonner aux messages du salon par mail.",sender, False) + elif (re.search("modo", args[0])): + await msg(salon,"- !modo : Affiche la liste des modérateurs (ils peuvent gérer le message d'accueil, supprimer des citations ou des boissons, ajouter/retirer des modules, ajouter/retirer des modérateurs)\n- !modo add : Ajoute une personne comme modérateur du salon\n- !modo del : Retire une personne des modérateurs.",sender, False) + elif (re.search("module", args[0])): + await msg(salon,"- !module : Affiche la liste des modules actifs sur le salon ainsi que celle des modules disponibles\n- !module add : Active un module sur le salon\n- !module del : Désactive un module sur le salon.",sender, False) + elif (re.search("cristal", args[0])): + await msg(salon,"- !cristal : Réponds à une question posée commençant par Est-ce, Combien, Pourquoi, Quand, Comment, Où et se terminant par un point d'interrogation.",sender, False) + else: + await msg(salon,"A venir",sender, False) + else: + rid = room.room_id + message = "Commandes disponibles:" + for cle,valeur in modules.items(): + if (cle[0] == rid and cle[1] == "card" and valeur): + message += "\n- !card" + if (cle[0] == rid and cle[1] == "carte" and valeur): + message += "\n- !carte" + if (cle[0] == rid and cle[1] == "liste" and valeur): + message += "\n- !liste [Nombre d'elements souhaites]" + if (cle[0] == rid and cle[1] == "horloge" and valeur): + message += "\n- !horloge : gestion des horloges PBTA" + if (cle[0] == rid and cle[1] == "stats" and valeur): + message += "\n- !last : Date de dernier post\n- !actif : Nombre de message et taille moyenne de ceux ci" + if (cle[0] == rid and cle[1] == "quote" and valeur): + message += "\n- !quote : citations du salon" + if (cle[0] == rid and cle[1] == "biere" and valeur): + message += "\n- !biere : breuvages du salon" + if (cle[0] == rid and cle[1] == "cristal" and valeur): + message += "\n- !cristal : Posez une question à la boule de cristal" + if (cle[0] == rid and cle[1] == "welcome" and valeur): + message += "\n- !accueil : Modifie le message d'accueil" + if (cle[0] == rid and cle[1] == "kick" and valeur): + message += "\n- !kick <@mxid> [@mxid] ... : kick les users listés" + if (cle[0] == rid and cle[1] == "titre" and valeur): + message += "\n- !titre : retourne le titre de la page en paramètre si celle ci possède une balise titre" + if (cle[0] == rid and cle[1] == "mails" and valeur): + message += "\n- !mail : s'abonner aux messages du salon par mail." + if (cle[0] == rid and cle[1] == "roll" and valeur): + message += "\n- :roll \n- :sw \n- :dom \n- :wod \n- :owod \n- :ars \n- :des \n- :star " + message += "\n- !modo : Gère les modérateurs du salon\n- !module : Gère les modules actifs sur le salon\n\n- Pour plus de details, tapez !" + name + " \n\nRetrouvez Asmodee sur https://git.ombreport.info/nemesis/asmodee_matrix" + await msg(salon,message,sender, False) + + +@bot.listener.on_message_event +async def callHelp(room, message): + match = botlib.MessageMatch(room, message, bot, PREFIX) + if match.is_not_from_this_bot() and match.prefix() and match.command("help"): + await help(room, message) + +@bot.listener.on_message_event +async def callAide(room, message): + match = botlib.MessageMatch(room, message, bot, PREFIX) + if match.is_not_from_this_bot() and match.prefix() and match.command("aide"): + await aide(room, message) + @bot.listener.on_message_event async def callShowquote(room, message): match = botlib.MessageMatch(room, message, bot, PREFIX)