From f4bf3677378d33615022e346810720012e416ae0 Mon Sep 17 00:00:00 2001 From: nemesis Date: Wed, 24 Aug 2022 22:18:34 +0200 Subject: [PATCH] card / carte / save --- asmodee.py | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/asmodee.py b/asmodee.py index 33c37f7..46f6d41 100755 --- a/asmodee.py +++ b/asmodee.py @@ -16,7 +16,6 @@ import nio from datetime import datetime,timedelta import requests import html2text -import json # Var bot = None @@ -34,6 +33,17 @@ bieres = {} # Boissons a offrir salons = {} # liste de salons recommandés welcome = {} # Messages d'accueil des salons clock = {} # horloges pbta +paquets = {} # paquets de cartes des salons + +cartes_base = ["As de carreau", "2 de carreau", "3 de carreau", "4 de carreau", "5 de carreau", "6 de carreau", \ +"7 de carreau", "8 de carreau", "9 de carreau", "10 de carreau", "Valet de carreau", "Dame de carreau", \ +"Roi de carreau", "As de coeur", "2 de coeur", "3 de coeur", "4 de coeur", "5 de coeur", "6 de coeur", \ +"7 de coeur", "8 de coeur", "9 de coeur", "10 de coeur", "Valet de coeur", "Dame de coeur", "Roi de coeur", \ +"As de pique", "2 de pique", "3 de pique", "4 de pique", "5 de pique", "6 de pique", "7 de pique", "8 de pique", \ +"9 de pique", "10 de pique", "Valet de pique", "Dame de pique", "Roi de pique", "As de trefle", "2 de trefle", \ +"3 de trefle", "4 de trefle", "5 de trefle", "6 de trefle", "7 de trefle", "8 de trefle", "9 de trefle", \ +"10 de trefle", "Valet de trefle", "Dame de trefle", "Roi de trefle", "Joker rouge", "Joker noir"] + # Connexion du bot config = configparser.ConfigParser() @@ -128,8 +138,17 @@ def prive_read(): prive = loader.load() except: prive = {} + +def paquets_read(): + global cartes + try: + with open("paquets", "rb") as fichier: + loader = pickle.Unpickler(fichier) + paquets = loader.load() + except: + paquets = {} -def save_obj(room=None, event=None): +def save_obj(room=None, message=None): with open("moderateurs", "wb") as fichier: saver = pickle.Pickler(fichier) saver.dump(modos) @@ -162,6 +181,10 @@ def save_obj(room=None, event=None): with open("welcome", "wb") as fichier: saver = pickle.Pickler(fichier) saver.dump(welcome) + if ('cartes' in liste_mod): + with open("paquets", "wb") as fichier: + saver = pickle.Pickler(fichier) + saver.dump(paquets) def signal_handler(signal, frame): # Sauvegarder les données persistantes avant sortie save_obj(None,None) @@ -1306,6 +1329,41 @@ async def showquote(room, message): # afficher les citations mode reponse matrix await reponses(room,phrases,True) else: await msg(room,"Je n'ai pas de citations pour ce salon",sender) + +async def card(room, message): # Tirer une carte du paquet sans la retirer + global modules + try: + rmod = modules[room.room_id, 'card'] + except: + modules[room.room_id, 'card'] = False + if (modules[room.room_id, 'card']): + reponse = cartes_base[random.randrange(0,len(cartes_base))] + await msg(room,reponse,getUser(message)) + +async def carte(room, message): # Tirer une carte du paquet en la retirant ensuite + global modules + try: + rmod = modules[room.room_id, 'carte'] + except: + modules[room.room_id, 'carte'] = False + if (modules[room.room_id, 'carte']): + global paquets + sender = getUser(message) + cartes = paquets.get(room.room_id) + if (cartes is None): + cartes = list(cartes_base) + args = getMessage(message).split() + if (len(args) > 1): + cartes=list(cartes_base) + await msg(room,"Le paquet est melange",sender) + else: + if (len(cartes) < 1): + cartes=list(cartes_base) + await msg(room,"Le paquet est melange",sender) + i = random.randrange(0,len(cartes)) + await msg(room,cartes[i],sender) + cartes.pop(i) + paquets[room.room_id]=cartes async def help(room, message): # Aide en message privé await help_center(room,message,"help",True) @@ -1401,6 +1459,23 @@ async def help_center(room,message,name,private): # Aide sur les commandes dispo 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 callSave(room, message): + match = botlib.MessageMatch(room, message, bot, PREFIX) + if match.is_not_from_this_bot() and match.prefix() and match.command("save"): + save_obj(room, message) + +@bot.listener.on_message_event +async def callCard(room, message): + match = botlib.MessageMatch(room, message, bot, PREFIX) + if match.is_not_from_this_bot() and match.prefix() and match.command("card"): + await card(room, message) + +@bot.listener.on_message_event +async def callCarte(room, message): + match = botlib.MessageMatch(room, message, bot, PREFIX) + if match.is_not_from_this_bot() and match.prefix() and match.command("carte"): + await carte(room, message) @bot.listener.on_message_event async def callHelp(room, message):