2017-12-05 10:02:52 +01:00
import discord
2017-12-08 23:21:21 +01:00
import random
2017-12-05 10:02:52 +01:00
from discord . ext import commands
game = 0
2017-12-05 18:56:30 +01:00
djoueurs = 0
joueurs = str ( " 0 " )
2017-12-05 10:02:52 +01:00
2017-12-05 18:56:30 +01:00
2017-12-05 10:02:52 +01:00
class Garou :
def __init__ ( self , bot ) :
self . bot = bot
2017-12-06 22:37:53 +01:00
self . games = { } # contiendra toutes les partie en cours
def create_game ( self , channel_id ) : # créer une game : ajout d'option possible
game = {
' channel ' : channel_id ,
' player ' : [ ] ,
2017-12-07 22:18:52 +01:00
' message ' : None
2017-12-06 22:37:53 +01:00
}
return game
2017-12-07 22:18:52 +01:00
def get_game ( self , channel_id ) :
for game in self . games :
if channel_id == game [ ' channel ' ] :
return game
return None
def embed ( self ) :
info = discord . Embed ( )
info . title = ' Garou : Choose the player '
info . colour = random . randint ( 0 , 0xFFFFFF )
info . add_field ( name = ' Description ' , value = " Voici une description ndu jeu " )
info . add_field ( name = ' Info ' , value = " Choose the player by react on this message ! " )
info . set_footer ( text = " Loup Garou by jbdo99 & flifloo " )
return info
2017-12-06 22:37:53 +01:00
2017-12-07 22:18:52 +01:00
2017-12-05 10:02:52 +01:00
#Commande de démarrage du Garou
2017-12-08 23:21:21 +01:00
@commands.command ( pass_context = True , name = " lg " )
2017-12-06 22:37:53 +01:00
async def start ( self , ctx ) :
""" Commence la partie """
2017-12-07 22:18:52 +01:00
if self . get_game ( ctx . message . channel ) == None : # on verifie si il n y pas de partie en cours dans ce salon
self . games [ ctx . message . channel ] = self . create_game ( ctx . message . channel ) # on créer le jeu
2017-12-08 23:21:21 +01:00
game = self . games [ ctx . message . channel ]
game [ ' message ' ] = await self . bot . send_message ( ctx . message . channel , embed = self . embed ( ) ) # on affiche le message et on le met dans le game
for emoji in [ " 💚 " ] :
2017-12-09 13:04:23 +01:00
await self . bot . add_reaction ( message = game [ " message " ] , emoji = emoji ) #on fait apparaitre le/les reac du bot
nopi = True #boucle infin (a ccorriger, j vais mettre une time out)
2017-12-07 22:18:52 +01:00
while nopi :
2017-12-09 13:04:23 +01:00
waiter = await self . bot . wait_for_reaction ( message = game [ " message " ] , timeout = 40.0 ) #on attend les reac (le timeout est mis a 40, j vais modif ca + tard)
if not waiter == None : # si c est pas none
if ( waiter [ 0 ] . emoji == " 💚 " and waiter [ 1 ] != self . bot . user ) : # si la rec est la bonne et que c est pas le bot (car discord prend du temp a mettre les reac et le bot croie que sa propre reac est une nouvelle)
await self . bot . say ( " Un joueur en plus ! " ) #ici on mettre l ajout d un utilisateur
2017-12-07 22:18:52 +01:00
else :
await self . bot . say ( " A game already started " )
2017-12-08 23:21:21 +01:00
"""
2017-12-05 10:02:52 +01:00
#Commande pour definir les participant du Garou
@commands.command ( pass_context = True )
2017-12-05 18:56:30 +01:00
async def gjoueurs ( self , ctx , * , CMDjoueurs ) :
global djoueurs
global joueurs
2017-12-05 10:02:52 +01:00
if game == 0 :
2017-12-05 18:56:30 +01:00
print ( " Commande gjoueurs lancer par: " + str ( ctx . message . author ) + " refuser, aucune partie lancer ! " )
2017-12-05 10:02:52 +01:00
await self . bot . say ( " Désoler mais aucune partie n ' est lancer. " )
2017-12-05 18:56:30 +01:00
2017-12-05 10:02:52 +01:00
elif game == 1 :
2017-12-05 18:56:30 +01:00
if djoueurs == 1 :
print ( " Commande gjoueurs lancer par: " + str ( ctx . message . author ) + " refuser, partie deja lacer ! " )
2017-12-08 23:21:21 +01:00
await self . bot . say ( " Désoler mais une partie est deja en cours ! " )
2017-12-05 18:56:30 +01:00
elif djoueurs == 0 :
djoueurs = 1
joueurs = CMDjoueurs
print ( " Commande gjoueurs lancer par: " + str ( ctx . message . author ) + " argument: " + str ( CMDjoueurs ) )
await self . bot . say ( " Les jouer de cette partie sont: " + str ( joueurs ) )
2017-12-05 10:02:52 +01:00
#Commande de test
@commands.command ( pass_content = True )
async def gtest ( self , ctx ) :
2017-12-06 12:52:53 +01:00
sender = ctx . message . author
if is_joueurs ( sender ) == True :
2017-12-05 18:56:30 +01:00
await self . bot . say ( " Vous ete bien un joueurs ! " )
2017-12-05 10:02:52 +01:00
elif gm == ctx . message . author :
2017-12-05 18:56:30 +01:00
await self . bot . say ( " Vous ete le GM ! " )
2017-12-05 10:02:52 +01:00
else :
2017-12-05 18:56:30 +01:00
await self . bot . say ( " Vous n ' ete pas un joueurs ! " )
2017-12-05 10:02:52 +01:00
#Commande pour annuler le Garou
@commands.command ( pass_context = True )
async def gstop ( self , ctx ) :
2017-12-05 18:56:30 +01:00
global game , djoueurs
2017-12-05 10:02:52 +01:00
if game == 0 :
print ( " Commande gstop lancer par: " + str ( ctx . message . author ) + " refuser, aucune partie lancer ! " )
await self . bot . say ( " Désoler mais aucune partie n ' est lancer. " )
2017-12-05 18:56:30 +01:00
2017-12-05 10:02:52 +01:00
elif game == 1 :
if gm == ctx . message . author :
#reset de toutes les variables
game = 0
2017-12-05 18:56:30 +01:00
djoueurs = 0
2017-12-05 10:02:52 +01:00
gm = 0
print ( " Partie de garou annuler ! " )
await self . bot . say ( " La partie de garou est annuler ! " )
2017-12-05 18:56:30 +01:00
2017-12-05 10:02:52 +01:00
else :
print ( " Commande gstop mancer par: " + str ( ctx . message . author ) + " refuser car ce n ' est pas le gm ! " )
await self . bot . say ( " Désoler mais vous n ' avez pas le droit de faire ça, vous n ' étes pas le gm ! " )
2017-12-08 23:21:21 +01:00
"""
2017-12-05 10:02:52 +01:00
def setup ( bot ) :
bot . add_cog ( Garou ( bot ) )