Archived
1
0
Fork 0
This repository has been archived on 2024-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
FTW-Bot/Garou.py
2017-12-07 22:18:52 +01:00

128 lines
4.5 KiB
Python

import discord
from discord.ext import commands
game = 0
djoueurs = 0
joueurs = str("0")
class Garou:
def __init__(self, bot):
self.bot = bot
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' : [],
'message' : None
}
return game
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
@self.bot.group(pass_content= True, name= "lg") #on créer ici un groupe de sous commande
async def loup_garou(self, ctx):
"""Group of sub command for Garou"""
try:
if ctx.invoked_subcommand is None:
await self.bot.say('Pour commencer, taper lg start')
except:
pass
#Commande de démarrage du Garou
@loup_garou.command(pass_context=True)
async def start(self, ctx):
"""Commence la partie"""
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
game['message'] = await self.bot.send_message(ctx.message.channel,embed=self.embed())
for emoji in ["▶️"]:
await self.bot.add_reaction(message=game["message"],emoji=emoji)
nopi = True
while nopi:
waiter = await self.bot.wait_for_reaction(message=game["message"],timeout=40.0)
if not waiter == None:
if (waiter[0].emoji == "▶️"):
await self.bot.say("Un joueur en plus !")
else:
await self.bot.say("A game already started")
#Commande pour definir les participant du Garou
@commands.command(pass_context=True)
async def gjoueurs(self, ctx, *, CMDjoueurs):
global djoueurs
global joueurs
if game == 0:
print("Commande gjoueurs lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !")
await self.bot.say("Désoler mais aucune partie n'est lancer.")
elif game == 1:
if djoueurs == 1:
print("Commande gjoueurs lancer par: "+str(ctx.message.author)+" refuser, partie deja lacer !")
await slef.bot.say("Désoler mais une partie est deja en cours !")
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))
#Commande de test
@commands.command(pass_content=True)
async def gtest(self, ctx):
sender = ctx.message.author
if is_joueurs(sender) == True:
await self.bot.say("Vous ete bien un joueurs !")
elif gm == ctx.message.author:
await self.bot.say("Vous ete le GM !")
else:
await self.bot.say("Vous n'ete pas un joueurs !")
#Commande pour annuler le Garou
@commands.command(pass_context=True)
async def gstop(self, ctx):
global game,djoueurs
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.")
elif game == 1:
if gm == ctx.message.author:
#reset de toutes les variables
game = 0
djoueurs = 0
gm = 0
print("Partie de garou annuler !")
await self.bot.say("La partie de garou est annuler !")
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 !")
def setup(bot):
bot.add_cog(Garou(bot))