Archived
1
0
Fork 0

Fautes d'orthographe, gitignore & default_config

Correction des fautes d'orthographe (merci WORMS !), ajout d'un fichier dans le gitignore et mise a jour du default_config.
This commit is contained in:
Ethanell 2018-03-15 10:21:52 +01:00
parent 9d9d67606f
commit d69f55caa5
12 changed files with 460 additions and 459 deletions

6
.gitignore vendored
View file

@ -1,11 +1,9 @@
config.json config.json
__pycache__\
log_test.txt log_test.txt
__pycache__/ __pycache__/
.vscode/ .vscode/
.vscode\
.zedstate

View file

@ -39,15 +39,15 @@ class Administration:
async def load(self, ctx, ext): async def load(self, ctx, ext):
if self.is_owner(ctx.message.author.id) == True: if self.is_owner(ctx.message.author.id) == True:
self.bot.load_extension(ext) self.bot.load_extension(ext)
print("Extention "+str(ext)+" charger par: "+str(ctx.message.author)) print("Extension "+str(ext)+" chargée par: "+str(ctx.message.author))
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00) embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
embed.add_field(name="Chargement", value="Extension "+str(ext)+" charger", inline=False) embed.add_field(name="Chargement", value="Extension "+str(ext)+" chargée", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
print("Refue de charger: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !") print("Refus de charger: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !")
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00) embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
embed.add_field(name="Chargement", value="Désoler <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !", inline=False) embed.add_field(name="Chargement", value="Désolé <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
#Décharger une extension #Décharger une extension
@ -55,15 +55,15 @@ class Administration:
async def unload(self, ctx, ext): async def unload(self, ctx, ext):
if self.is_owner(ctx.message.author.id) == True: if self.is_owner(ctx.message.author.id) == True:
self.bot.unload_extension(ext) self.bot.unload_extension(ext)
print("extention "+str(ext)+" décharger") print("Extension "+str(ext)+" déchargée")
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00) embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
embed.add_field(name="Déchargement", value="Extension "+str(ext)+" décharger", inline=False) embed.add_field(name="Déchargement", value="Extension "+str(ext)+" déchargée", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
print("Refue de décharger: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !") print("Refus de décharger: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !")
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00) embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
embed.add_field(name="Déchargement", value="Désoler <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !", inline=False) embed.add_field(name="Déchargement", value="Désolé <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
#Recharger une extension #Recharger une extension
@ -72,15 +72,15 @@ class Administration:
if self.is_owner(ctx.message.author.id) == True: if self.is_owner(ctx.message.author.id) == True:
self.bot.unload_extension(ext) self.bot.unload_extension(ext)
self.bot.load_extension(ext) self.bot.load_extension(ext)
print("Extention "+str(ext)+" mis à jour par: "+str(ctx.message.author)) print("Extension "+str(ext)+" mise à jour par: "+str(ctx.message.author))
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00) embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
embed.add_field(name="Reload", value="Extension "+str(ext)+" mis à jour", inline=False) embed.add_field(name="Reload", value="Extension "+str(ext)+" mise à jour", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
print("Refue de mettre à jour: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !") print("Refus de mettre à jour: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !")
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00) embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
embed.add_field(name="Reload", value="Désoler <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !", inline=False) embed.add_field(name="Reload", value="Désolé <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -88,19 +88,19 @@ class Administration:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def shutdown(self, ctx): async def shutdown(self, ctx):
if self.is_owner(ctx.message.author.id) == True: if self.is_owner(ctx.message.author.id) == True:
print("Arret du bot fait par:"+str(ctx.message.author)+" !") print("Arrêt du bot fait par:"+str(ctx.message.author)+" !")
embed=discord.Embed(title="Administration", description="", color=0xffff00) embed=discord.Embed(title="Administration", description="", color=0xffff00)
embed.set_thumbnail(url="https://icon-icons.com/icons2/562/PNG/512/on-off-power-button_icon-icons.com_53938.png") embed.set_thumbnail(url="https://icon-icons.com/icons2/562/PNG/512/on-off-power-button_icon-icons.com_53938.png")
embed.add_field(name="Arret", value="FTW's Bot arréter", inline=False) embed.add_field(name="Arrêt", value="FTW's Bot arrêté", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
await self.bot.logout() await self.bot.logout()
await self.bot.close() await self.bot.close()
else: else:
print("Arret du bot fait par:"+str(ctx.message.author)+" refuser") print("Arrêt du bot fait par:"+str(ctx.message.author)+" refuser")
embed=discord.Embed(title="Administration", description="", color=0xffff00) embed=discord.Embed(title="Administration", description="", color=0xffff00)
embed.set_thumbnail(url="https://icon-icons.com/icons2/562/PNG/512/on-off-power-button_icon-icons.com_53938.png") embed.set_thumbnail(url="https://icon-icons.com/icons2/562/PNG/512/on-off-power-button_icon-icons.com_53938.png")
embed.add_field(name="Erreur", value="Désoler mais vous n'avez pas le droit !", inline=False) embed.add_field(name="Erreur", value="Désolé mais vous n'avez pas le droit !", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
await self.bot.logout() await self.bot.logout()
await self.bot.close() await self.bot.close()

View file

@ -13,14 +13,9 @@ cons_symbole = "♻" #Réaction permettant la conservation du post.
authorized_to_start_deletion = ["156484695083843585","177393521051959306"] authorized_to_start_deletion = ["156484695083843585","177393521051959306"]
blocked_from_deleted = [".156484695083843585",".384104235375001632"] blocked_from_deleted = [".156484695083843585",".384104235375001632"]
reactDict = {} reactDict = {}
messageDict = {} messageDict = {}
def authorized_verif(id): def authorized_verif(id):
for i in range(len(authorized_to_start_deletion)): for i in range(len(authorized_to_start_deletion)):
if id == authorized_to_start_deletion[i]: if id == authorized_to_start_deletion[i]:
@ -36,15 +31,14 @@ def anti_delete(id):
async def first_reaction(self , reaction , user): async def first_reaction(self , reaction , user):
if authorized_verif(user.id): if authorized_verif(user.id):
print("creation") print("Création")
if reaction.emoji == delet_symbole: if reaction.emoji == delet_symbole:
reactDict[reaction.message.id]=-1 reactDict[reaction.message.id]=-1
elif reaction.emoji == cons_symbole: elif reaction.emoji == cons_symbole:
reactDict[reaction.message.id]=1 reactDict[reaction.message.id]=1
date,heure = timeCorrect(reaction.message.timestamp) date,heure = timeCorrect(reaction.message.timestamp)
message = str(reaction.message.author.mention)+" a reçu un vote pour la suppression ou la conservation de son message du "+str(reaction.message.timestamp)+".Si vous souhaitez voir son message supprimé, votez "+delet_symbole+". Si vous pensez que son message est correct, votez "+str(cons_symbole)+"."
message = str(reaction.message.author.mention)+" a recut un vote pour la suppression ou la conservation de son message du "+str(reaction.message.timestamp)+".Si vous souhaitez voir son message supprimé, votez "+delet_symbole+". Si vous pensez que son message est correct, votez "+str(cons_symbole)+"."
m = await self.bot.send_message(reaction.message.channel,message) m = await self.bot.send_message(reaction.message.channel,message)
messageDict[reaction.message.id]=m messageDict[reaction.message.id]=m
await self.bot.add_reaction(reaction.message,cons_symbole) await self.bot.add_reaction(reaction.message,cons_symbole)
@ -54,24 +48,16 @@ async def delete(self , reaction , user):
await self.bot.delete_message(reaction.message) await self.bot.delete_message(reaction.message)
await self.bot.delete_message(messageDict[reaction.message.id]) await self.bot.delete_message(messageDict[reaction.message.id])
def timeCorrect(temps): def timeCorrect(temps):
date = "5" date = "5"
heure = "6" heure = "6"
return date,heure return date,heure
class Ben: class Ben:
def __init__(self,bot): def __init__(self,bot):
self.bot = bot self.bot = bot
f = open("log_test.txt","a") #Montres le début de l'enregistrement dans les logs. f = open("log_test.txt","a") #Montres le début de l'enregistrement dans les logs.
f.write("\n\nDébut de l'enregistrement des réactions.\n\n\n") f.write("\nDébut de l'enregistrement des réactions.\n")
f.close f.close
@ -107,11 +93,11 @@ class Ben:
print(user.name) print(user.name)
print(reaction.message.id) print(reaction.message.id)
if anti_delete(reaction.message.author.id)== True: if anti_delete(reaction.message.author.id)== True:
print("message autorise") print("Message autorisé")
if str(reaction.emoji) == cons_symbole: if str(reaction.emoji) == cons_symbole:
if reactDict.get(reaction.message.id)!=None: if reactDict.get(reaction.message.id)!=None:
reactDict[reaction.message.id]+=1 reactDict[reaction.message.id]+=1
print("message present") print("Message présent")
else: else:
await first_reaction(self,reaction,user) await first_reaction(self,reaction,user)
@ -120,7 +106,7 @@ class Ben:
if str(reaction.emoji) == delet_symbole: if str(reaction.emoji) == delet_symbole:
if reactDict.get(reaction.message.id)!=None: if reactDict.get(reaction.message.id)!=None:
reactDict[reaction.message.id]-=1 reactDict[reaction.message.id]-=1
print("message present") print("Message présent")
else: else:
await first_reaction(self,reaction,user) await first_reaction(self,reaction,user)
@ -132,8 +118,8 @@ class Ben:
else: else:
print(reactDict[reaction.message.id]) print(reactDict[reaction.message.id])
print("tzdsqdzqs"+str(reactDict[reaction.message.id])) #print("tzdsqdzqs"+str(reactDict[reaction.message.id]))
def setup(bot): def setup(bot):
bot.add_cog(Ben(bot)) bot.add_cog(Ben(bot))
print("Benne_a_ordure charger") print("Benne_a_ordure chargée")

View file

@ -10,21 +10,21 @@ class DefaultCMD:
async def ping(self, ctx): async def ping(self, ctx):
"""La commande la plus stupide de se bot""" """La commande la plus stupide de se bot"""
await self.bot.say("Pong!") await self.bot.say("Pong!")
print("Commande ping lancer par: "+str(ctx.message.author)) print("Commande ping lancée par: "+str(ctx.message.author))
#Commande dis #Commande dis
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def dis(self, ctx, *, something): async def dis(self, ctx, *, something):
"""Un mode peroquet""" """Un mode peroquet"""
await self.bot.say(something) await self.bot.say(something)
print("Commande dis lancer par: "+str(ctx.message.author)+" argument: "+str(something)) print("Commande dis lancée par: "+str(ctx.message.author)+" argument: "+str(something))
#Commande flash #Commande flash
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def flash(self, ctx, *, something): async def flash(self, ctx, *, something):
"""Fait apparaitre un text siblimiquement""" """Fait apparaitre un text siblimiquement"""
await self.bot.delete_message(ctx.message) await self.bot.delete_message(ctx.message)
print("Commande flash lancer par: "+str(ctx.message.author)+" argument: "+str(something)) print("Commande flash lancée par: "+str(ctx.message.author)+" argument: "+str(something))
#Commande indirect #Commande indirect
@commands.command(pass_context=True) @commands.command(pass_context=True)
@ -32,10 +32,10 @@ class DefaultCMD:
"""Fait passer un message indirectement""" """Fait passer un message indirectement"""
await self.bot.say("**{} said:** {}".format(str(ctx.message.author), something)) await self.bot.say("**{} said:** {}".format(str(ctx.message.author), something))
await self.bot.delete_message(ctx.message) await self.bot.delete_message(ctx.message)
print("Commande say lancer par: "+str(ctx.message.author)+" argument: "+str(something)) print("Commande say lancée par: "+str(ctx.message.author)+" argument: "+str(something))
def setup(bot): def setup(bot):
bot.add_cog(DefaultCMD(bot)) bot.add_cog(DefaultCMD(bot))
print("DefaultCMD charger") print("DefaultCMD chargée")

View file

@ -163,4 +163,4 @@ class REPL:
def setup(bot): def setup(bot):
bot.add_cog(REPL(bot)) bot.add_cog(REPL(bot))
print("ExampleRepl charger") print("ExampleRepl chargée")

134
Garou.py
View file

@ -20,7 +20,7 @@ class Garou:
num_joueurs = 0 #Nombre de joueurs dans la partie num_joueurs = 0 #Nombre de joueurs dans la partie
#Vrai variables #Vrai variables
minijoueurs = 1 #5, Le nombre minimum de joueurs qu'il faut pour lancer une partie minijoueurs = 1 #5, Le nombre minimum de joueurs qu'il faut pour lancée une partie
roles = ["0", "LG", "VY", "VO", "SO", "VG", "VG", "CS", "CU", "LG", "CL", "AG", "MA", "IL", "IPDL", "JDF", "VG", "RE", "GML", "VG", "LGB", "VG", "SA", "LG", "AS", "CER", "MO", "AC", "SE", "SE", "IDV", "BE", "ES", "KZ", "ISM", "VG"] #Les roles donner roles = ["0", "LG", "VY", "VO", "SO", "VG", "VG", "CS", "CU", "LG", "CL", "AG", "MA", "IL", "IPDL", "JDF", "VG", "RE", "GML", "VG", "LGB", "VG", "SA", "LG", "AS", "CER", "MO", "AC", "SE", "SE", "IDV", "BE", "ES", "KZ", "ISM", "VG"] #Les roles donner
#text time #text time
@ -30,7 +30,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Villageois") intro.add_field(name="Vous êtes : ", value="Villageois")
intro.add_field(name="Votre personnage : ", value="*A Thiercelieu les habitants sont victimes dune terrible malédiction, chaque jour ils tentent de tuer un loup-garou en votant*", inline=False) intro.add_field(name="Votre personnage : ", value="*A Thiercelieu les habitants sont victimes dune terrible malédiction, chaque jour ils tentent de tuer un loup-garou en votant*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous, à chaque journée, vous votez avec le reste des joueurs pour tenter déliminer les loups-garous.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous, à chaque journée, vous votez avec le reste des joueurs pour tenter déliminer les loups-garous.**", inline=False)
return intro return intro
elif role == "LG": elif role == "LG":
@ -38,7 +38,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Loup-garou") intro.add_field(name="Vous êtes : ", value="Loup-garou")
intro.add_field(name="Votre personnage : ", value="*Le village de Thiercelieu est victime dune terrible malédiction. Des loups-garous terrorisent les habitants de cette petite bourgade et dévorent les villageois.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Le village de Thiercelieu est victime dune terrible malédiction. Des loups-garous terrorisent les habitants de cette petite bourgade et dévorent les villageois.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but et de tuer tous les villageois. Chaque nuit, vous décidez, avec les autres loups-garous, de tuer une personne.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but et de tuer tous les villageois. Chaque nuit, vous décidez, avec les autres loups-garous, de tuer une personne.**", inline=False)
return intro return intro
elif role =="VY": elif role =="VY":
@ -46,7 +46,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Voyante") intro.add_field(name="Vous êtes : ", value="Voyante")
intro.add_field(name="Votre personnage : ", value="*Cette personne si secrète pourra-t-elle faire la lumière sur les évènements de Thiercelieu ? Ces dons bizarres pour la voyance lui permettent de connaitre la véritable nature des gens.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Cette personne si secrète pourra-t-elle faire la lumière sur les évènements de Thiercelieu ? Ces dons bizarres pour la voyance lui permettent de connaitre la véritable nature des gens.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous pourrez connaitre le rôle dune personne.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous pourrez connaitre le rôle dune personne.**", inline=False)
return intro return intro
elif role == "VO": elif role == "VO":
@ -54,7 +54,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Voleur") intro.add_field(name="Vous êtes : ", value="Voleur")
intro.add_field(name="Votre personnage : ", value="*Qui est donc ce chapardeur qui met la confusion dans la tête des gens ? Il nest pas méchant, mais des gens disent quil manipulerait les autres.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Qui est donc ce chapardeur qui met la confusion dans la tête des gens ? Il nest pas méchant, mais des gens disent quil manipulerait les autres.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but et de tuer tous les loups-garous. Toutes les deux nuits, vous échangerez les rôles de deux personnes. **", inline=False) intro.add_field(name="Votre but : ", value="**Votre but et de tuer tous les loups-garous. Toutes les deux nuits, vous échangerez les rôles de deux personnes. **", inline=False)
return intro return intro
elif role =="SO": elif role =="SO":
@ -62,7 +62,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Sorcière") intro.add_field(name="Vous êtes : ", value="Sorcière")
intro.add_field(name="Votre personnage : ", value="*Quelle est cette femme qui concocte ses potions en secret, décidant du sort de ses victimes ? On la dit capable de soigner, mais aussi de tuer.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Quelle est cette femme qui concocte ses potions en secret, décidant du sort de ses victimes ? On la dit capable de soigner, mais aussi de tuer.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous pouvez soigner ou tuer une personne, ou ne rien faire. Attention, chaque potion ne peut être utilisé quune seule fois.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous pouvez soigner ou tuer une personne, ou ne rien faire. Attention, chaque potion ne peut être utilisé quune seule fois.**", inline=False)
return intro return intro
elif role == "CS": elif role == "CS":
@ -70,7 +70,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Chasseur") intro.add_field(name="Vous êtes : ", value="Chasseur")
intro.add_field(name="Votre personnage : ", value="*Cet homme seul à décider de prendre les armes et de traquer les loups-garous qui terrorisent le village. Qui sait ce que pourrait faire un homme armé au bord de la mort ?*", inline=False) intro.add_field(name="Votre personnage : ", value="*Cet homme seul à décider de prendre les armes et de traquer les loups-garous qui terrorisent le village. Qui sait ce que pourrait faire un homme armé au bord de la mort ?*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but et de tuer tous les loups-garous. Si vous êtes tué, vous pourrez tuer une autre personne avant de mourir.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but et de tuer tous les loups-garous. Si vous êtes tué, vous pourrez tuer une autre personne avant de mourir.**", inline=False)
return intro return intro
elif role == "CU": elif role == "CU":
@ -78,7 +78,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Cupidon") intro.add_field(name="Vous êtes : ", value="Cupidon")
intro.add_field(name="Votre personnage : ", value="*Qui recevra les flèches de lamour lancées par ce petit être ? Ceux-ci se voueront un amour pur et total, et dépendrons lun de lautre.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Qui recevra les flèches de lamour lancées par ce petit être ? Ceux-ci se voueront un amour pur et total, et dépendrons lun de lautre.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. En début de partie, vous rendrez deux personnes amoureuses. Celles-ci seront dépendante lune de lautre, et si lune meurt, lautre se tuera de chagrin.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. En début de partie, vous rendrez deux personnes amoureuses. Celles-ci seront dépendante lune de lautre, et si lune meurt, lautre se tuera de chagrin.**", inline=False)
return intro return intro
elif role == "CL": elif role == "CL":
@ -86,7 +86,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Chien-loup") intro.add_field(name="Vous êtes : ", value="Chien-loup")
intro.add_field(name="Votre personnage : ", value="*Il existe à Thiercelieu une espèce de chien très rares, pouvant adopter des comportements violents. Deviendra-t-il loup-garou, ou restera t-il un chien docile ?*", inline=False) intro.add_field(name="Votre personnage : ", value="*Il existe à Thiercelieu une espèce de chien très rares, pouvant adopter des comportements violents. Deviendra-t-il loup-garou, ou restera t-il un chien docile ?*", inline=False)
intro.add_field(name="Votre bute : ", value="**En début de partie vous aurez le choix entre rejoindre les loups-garous ou les villageois.**", inline=False) intro.add_field(name="Votre but : ", value="**En début de partie vous aurez le choix entre rejoindre les loups-garous ou les villageois.**", inline=False)
return intro return intro
elif role == "AG": elif role == "AG":
@ -94,7 +94,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Ange") intro.add_field(name="Vous êtes : ", value="Ange")
intro.add_field(name="Votre personnage : ", value="*Ce petit homme volant ce fiche éperdument du sort dun petit village perdu au fond des landes. Tout ce quil veut cest senvoler un retrouver le calme des cieux.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Ce petit homme volant ce fiche éperdument du sort dun petit village perdu au fond des landes. Tout ce quil veut cest senvoler un retrouver le calme des cieux.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but et de gagner la partie seul. Si vous êtes tué par les villageois au premier jour, vous remportez la partie. Sinon, vous devenez simple villageois.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but et de gagner la partie seul. Si vous êtes tué par les villageois au premier jour, vous remportez la partie. Sinon, vous devenez simple villageois.**", inline=False)
return intro return intro
elif role == "MA": elif role == "MA":
@ -102,7 +102,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Maire") intro.add_field(name="Vous êtes : ", value="Maire")
intro.add_field(name="Votre personnage : ", value="*Tout village, même dans la terreur, a besoin dun leader en qui avoir confiance.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Tout village, même dans la terreur, a besoin dun leader en qui avoir confiance.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but et de tuer tous les loups-garous. Votre vote compte double.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but et de tuer tous les loups-garous. Votre vote compte double.**", inline=False)
return intro return intro
elif role == "IL": elif role == "IL":
@ -110,7 +110,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Illettré") intro.add_field(name="Vous êtes : ", value="Illettré")
intro.add_field(name="Votre personnage : ", value="*Léducation est privilège dont tout le monde devrait avoir accès. Cette personne étrangère ne comprend rien aux paroles des autres habitants. De temps en temps il aime se balader la nuit, il voit des choses étranges, sans savoir ce quelles sont.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Léducation est privilège dont tout le monde devrait avoir accès. Cette personne étrangère ne comprend rien aux paroles des autres habitants. De temps en temps il aime se balader la nuit, il voit des choses étranges, sans savoir ce quelles sont.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but et de tuer tous les loups-garous. Chaque nuit, vous percevez des morceaux de la conversation des loups-garous.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but et de tuer tous les loups-garous. Chaque nuit, vous percevez des morceaux de la conversation des loups-garous.**", inline=False)
return intro return intro
elif role == "IPDL": elif role == "IPDL":
@ -118,7 +118,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Infect père des loups") intro.add_field(name="Vous êtes : ", value="Infect père des loups")
intro.add_field(name="Votre personnage : ", value="*Même les loups-garous ont une famille. Cette famille-là est ancienne est terrible, capable de pervertir le cœur des plus nobles.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Même les loups-garous ont une famille. Cette famille-là est ancienne est terrible, capable de pervertir le cœur des plus nobles.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les villageois. Une fois par partie, vous pouvez infecter une personne désignée comme victime par les loups-garous. Celle-ci ne sera pas tuée mais deviendra secrètement un loup-garou.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les villageois. Une fois par partie, vous pouvez infecter une personne désignée comme victime par les loups-garous. Celle-ci ne sera pas tuée mais deviendra secrètement un loup-garou.**", inline=False)
return intro return intro
elif role == "JDF": elif role == "JDF":
@ -126,7 +126,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Joueur de flûte") intro.add_field(name="Vous êtes : ", value="Joueur de flûte")
intro.add_field(name="Votre personnage : ", value="*Cet homme, autrefois banni, et aujourdhui oublié, revient au village pour se venger. Armé de sa flûte à bec, il prend peu à peu possession du village à qui il souhaite donner une leçon.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Cet homme, autrefois banni, et aujourdhui oublié, revient au village pour se venger. Armé de sa flûte à bec, il prend peu à peu possession du village à qui il souhaite donner une leçon.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de contaminer tous les habitants du village. Chaque nuit, vous contaminez une ou deux personnes.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de contaminer tous les habitants du village. Chaque nuit, vous contaminez une ou deux personnes.**", inline=False)
return intro return intro
elif role == "RE": elif role == "RE":
@ -134,7 +134,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Renard") intro.add_field(name="Vous êtes : ", value="Renard")
intro.add_field(name="Votre personnage : ", value="*Les loups ne sont pas les seuls animaux à Thiercelieu. Ce renard rusé serait capable de sentir lâme des gens ainsi que leurs intentions.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Les loups ne sont pas les seuls animaux à Thiercelieu. Ce renard rusé serait capable de sentir lâme des gens ainsi que leurs intentions.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous voyez le rôle de trois personnes, mais si aucune delles nest un loup-garou, vous perdez votre pouvoir.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous voyez le rôle de trois personnes, mais si aucune delles nest un loup-garou, vous perdez votre pouvoir.**", inline=False)
return intro return intro
elif role == "GML": elif role == "GML":
@ -142,7 +142,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Grand méchant loup") intro.add_field(name="Vous êtes : ", value="Grand méchant loup")
intro.add_field(name="Votre personnage : ", value="*Il ny a pas que les trois petits cochons qui craignent le grand méchant loup. Celui est encore plus meurtrier est assoiffé de sang que ses semblables.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Il ny a pas que les trois petits cochons qui craignent le grand méchant loup. Celui est encore plus meurtrier est assoiffé de sang que ses semblables.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les villageois. Tant quaucun loup-garou nest mort, vous pouvez tuer une personne supplémentaire par nuit.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les villageois. Tant quaucun loup-garou nest mort, vous pouvez tuer une personne supplémentaire par nuit.**", inline=False)
return intro return intro
elif role == "LGB": elif role == "LGB":
@ -150,7 +150,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Loup-garou blanc") intro.add_field(name="Vous êtes : ", value="Loup-garou blanc")
intro.add_field(name="Votre personnage : ", value="*Il y aurait un traitre dans les rangs des loups-garous. Celui-ci les éliminerait de lintérieur, un à un.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Il y aurait un traitre dans les rangs des loups-garous. Celui-ci les éliminerait de lintérieur, un à un.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de finir la partie seul. Toutes les deux nuits, vous pouvez tuer un loup-garou, en plus de la victime de chaque nuit.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de finir la partie seul. Toutes les deux nuits, vous pouvez tuer un loup-garou, en plus de la victime de chaque nuit.**", inline=False)
return intro return intro
elif role == "SA": elif role == "SA":
@ -158,7 +158,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Salvateur") intro.add_field(name="Vous êtes : ", value="Salvateur")
intro.add_field(name="Votre personnage : ", value="*A Thiercelieu, ce personnage est devenu une légende. Sa bénédiction permettrait de se protéger des événements récents.*", inline=False) intro.add_field(name="Votre personnage : ", value="*A Thiercelieu, ce personnage est devenu une légende. Sa bénédiction permettrait de se protéger des événements récents.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous accordez votre bénédiction à une personne. Celle-ci ne pourra pas être tuée pendant la nuit.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous accordez votre bénédiction à une personne. Celle-ci ne pourra pas être tuée pendant la nuit.**", inline=False)
return intro return intro
elif role == "AS": elif role == "AS":
@ -166,7 +166,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Assassin") intro.add_field(name="Vous êtes : ", value="Assassin")
intro.add_field(name="Votre personnage : ", value="*A Thiercelieu, il y a un fou qui navait jusque-là jamais été dangereux. Mais les récents évènements ont perturbé sa santé mentale. Depuis, il vit dans une folie meurtrière qui ne peut contrôler.*", inline=False) intro.add_field(name="Votre personnage : ", value="*A Thiercelieu, il y a un fou qui navait jusque-là jamais été dangereux. Mais les récents évènements ont perturbé sa santé mentale. Depuis, il vit dans une folie meurtrière qui ne peut contrôler.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de finir la partie seul. Chaque matin, vous tuez une personne au hasard.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de finir la partie seul. Chaque matin, vous tuez une personne au hasard.**", inline=False)
return intro return intro
elif role == "CER": elif role == "CER":
@ -174,7 +174,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Chevalier à lépée rouillée") intro.add_field(name="Vous êtes : ", value="Chevalier à lépée rouillée")
intro.add_field(name="Votre personnage : ", value="*Don Quigrince était un fier chevalier vaillant ayant participé à de nombreuses batailles. Aujourdhui, le temps et le manque daction se sont transformés en ennui. Il ne mange plus, dors peu, et ne sest pas occupé de son épée depuis fort longtemps. Celle-ci sest émoussée, et pourrait surement empoissonner un loup trop gourmand.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Don Quigrince était un fier chevalier vaillant ayant participé à de nombreuses batailles. Aujourdhui, le temps et le manque daction se sont transformés en ennui. Il ne mange plus, dors peu, et ne sest pas occupé de son épée depuis fort longtemps. Celle-ci sest émoussée, et pourrait surement empoissonner un loup trop gourmand.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. Si vous êtes tué par les loup-garou, celui qui avait proposé votre mort sera tué la nuit suivante.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. Si vous êtes tué par les loup-garou, celui qui avait proposé votre mort sera tué la nuit suivante.**", inline=False)
return intro return intro
elif role == "MO": elif role == "MO":
@ -182,7 +182,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Montreur dours") intro.add_field(name="Vous êtes : ", value="Montreur dours")
intro.add_field(name="Votre personnage : ", value="*En plus des loups-garous, il y a un ours qui rode dans les bois de Thiercelieu. Celui-ci est très grincheux, et nhésitera pas à grogner pour effrayer les loups-garous trop curieux.*", inline=False) intro.add_field(name="Votre personnage : ", value="*En plus des loups-garous, il y a un ours qui rode dans les bois de Thiercelieu. Celui-ci est très grincheux, et nhésitera pas à grogner pour effrayer les loups-garous trop curieux.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, si un loup-garou se trouve à coté de vous, vous grognez.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, si un loup-garou se trouve à coté de vous, vous grognez.**", inline=False)
return intro return intro
elif role == "AC": elif role == "AC":
@ -190,7 +190,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Ancien") intro.add_field(name="Vous êtes : ", value="Ancien")
intro.add_field(name="Votre personnage : ", value="*Lexpérience amène la sagesse. Et la sagesse amène la maitrise de soi. Le doyen du village la bien compris. Bien quétant dun âge avancé, il saura senfuir face aux loups-garous qui essayeraient de le tuer. Cependant, sa mort démoraliserait tous les villageois.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Lexpérience amène la sagesse. Et la sagesse amène la maitrise de soi. Le doyen du village la bien compris. Bien quétant dun âge avancé, il saura senfuir face aux loups-garous qui essayeraient de le tuer. Cependant, sa mort démoraliserait tous les villageois.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer les loups-garous. Si vous êtes tué par les loups garous, vous pourrez échanger votre rôle avec une personne au hasard la nuit suivante. Si vous êtes tué une deuxième fois, tous les villageois restants perdrons leurs pouvoirs.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer les loups-garous. Si vous êtes tué par les loups garous, vous pourrez échanger votre rôle avec une personne au hasard la nuit suivante. Si vous êtes tué une deuxième fois, tous les villageois restants perdrons leurs pouvoirs.**", inline=False)
return intro return intro
elif role == "SE": elif role == "SE":
@ -198,7 +198,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Sœur") intro.add_field(name="Vous êtes : ", value="Sœur")
intro.add_field(name="Votre personnage : ", value="*Rien nest plus beau que la fraternité. Ces deux sœurs sont comme deux doigts dune même main, ou deux cheveux dune même mèche. Elles se comprennent sans même se parler.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Rien nest plus beau que la fraternité. Ces deux sœurs sont comme deux doigts dune même main, ou deux cheveux dune même mèche. Elles se comprennent sans même se parler.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les villageois. Certaines nuits, vous serez appelés, et pourrait communiquer avec lautre sœur.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les villageois. Certaines nuits, vous serez appelés, et pourrait communiquer avec lautre sœur.**", inline=False)
return intro return intro
elif role == "IDV": elif role == "IDV":
@ -206,7 +206,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Idiot du village") intro.add_field(name="Vous êtes : ", value="Idiot du village")
intro.add_field(name="Votre personnage : ", value="*Les villageois ont beau essayer den faire quelque chose, il ne comprend rien de rien. Cependant, ils ne pourront jamais lui faire de mal. Même au moment de le tuer, ils décideront de ne rien lui faire, et de ne plus lui parler. Qui écouterait un idiot ?*", inline=False) intro.add_field(name="Votre personnage : ", value="*Les villageois ont beau essayer den faire quelque chose, il ne comprend rien de rien. Cependant, ils ne pourront jamais lui faire de mal. Même au moment de le tuer, ils décideront de ne rien lui faire, et de ne plus lui parler. Qui écouterait un idiot ?*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. Si vous êtes tué par les villageois, vous serez acquitté mais perdrez votre droit de vote.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. Si vous êtes tué par les villageois, vous serez acquitté mais perdrez votre droit de vote.**", inline=False)
return intro return intro
elif role == "ES": elif role == "ES":
@ -214,7 +214,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Enfant sauvage") intro.add_field(name="Vous êtes : ", value="Enfant sauvage")
intro.add_field(name="Votre personnage : ", value="*Cet enfant est sorti de la forêt un jour, sans prévenir. Il a été élevé par les loups, dans les bois. Cependant, il essaye de sintégrer dans le village, en prenant un modèle. Qui sait ce quil pourrait devenir sil lui arrivait quelque chose ?*", inline=False) intro.add_field(name="Votre personnage : ", value="*Cet enfant est sorti de la forêt un jour, sans prévenir. Il a été élevé par les loups, dans les bois. Cependant, il essaye de sintégrer dans le village, en prenant un modèle. Qui sait ce quil pourrait devenir sil lui arrivait quelque chose ?*", inline=False)
intro.add_field(name="Votre bute : ", value="**En début de partie, vous choisissez un modèle. Tant que cette personne est en vie, vous restez villageois, mais si elle meurt, vous vous transformez en loup-garou.**", inline=False) intro.add_field(name="Votre but : ", value="**En début de partie, vous choisissez un modèle. Tant que cette personne est en vie, vous restez villageois, mais si elle meurt, vous vous transformez en loup-garou.**", inline=False)
return intro return intro
elif role == "BE": elif role == "BE":
@ -222,7 +222,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Bouc-émissaire") intro.add_field(name="Vous êtes : ", value="Bouc-émissaire")
intro.add_field(name="Votre personnage : ", value="*Quest-ce que cet homme a bien pu faire pour être autant détester par le village ? En cas de doute, cest toujours de sa faute.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Quest-ce que cet homme a bien pu faire pour être autant détester par le village ? En cas de doute, cest toujours de sa faute.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups-garous. Si les villageois doutent sur qui tuer pendant le vote, vous serez tué par défaut.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups-garous. Si les villageois doutent sur qui tuer pendant le vote, vous serez tué par défaut.**", inline=False)
return intro return intro
elif role == "KZ": elif role == "KZ":
@ -230,7 +230,7 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Kamikaze") intro.add_field(name="Vous êtes : ", value="Kamikaze")
intro.add_field(name="Votre personnage : ", value="*Cet homme au passif si tumultueux na plus rien à perdre. Il serait prêt à risquer sa vie pour faire entendre raison aux autres villageois.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Cet homme au passif si tumultueux na plus rien à perdre. Il serait prêt à risquer sa vie pour faire entendre raison aux autres villageois.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups garous. Une fois par partie, vous pouvez à tout moment tuer une autre personne, mais vous mourrez en faisant cela.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups garous. Une fois par partie, vous pouvez à tout moment tuer une autre personne, mais vous mourrez en faisant cela.**", inline=False)
return intro return intro
elif role == "ISM": elif role == "ISM":
@ -238,23 +238,23 @@ class Garou:
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
intro.add_field(name="Vous êtes : ", value="Insomniaque") intro.add_field(name="Vous êtes : ", value="Insomniaque")
intro.add_field(name="Votre personnage : ", value="*Les problèmes de sommeil sont terribles. Mais cela permet de savoir tout avant les autres. Impossible de savoir ce qui empêche cette femme de dormir. Peut-être ce quelle apprend le matin, à laube.*", inline=False) intro.add_field(name="Votre personnage : ", value="*Les problèmes de sommeil sont terribles. Mais cela permet de savoir tout avant les autres. Impossible de savoir ce qui empêche cette femme de dormir. Peut-être ce quelle apprend le matin, à laube.*", inline=False)
intro.add_field(name="Votre bute : ", value="**Votre but est de tuer tous les loups garous. Toutes les nuits, vous saurez le dérouler exact de tout la nuit.**", inline=False) intro.add_field(name="Votre but : ", value="**Votre but est de tuer tous les loups garous. Toutes les nuits, vous saurez le dérouler exact de tout la nuit.**", inline=False)
return intro return intro
#Erreur de partie deja en cours #Erreur de partie déjà en cours
erreur1=discord.Embed(title="Garou", description="Erreur", color=0xff0000) erreur1=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
erreur1.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") erreur1.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
erreur1.add_field(name="Imposible", value="Désoler mais une partie est deja en cours !", inline=False) erreur1.add_field(name="Impossible", value="Désolé mais une partie est déjà en cours !", inline=False)
#Erreur de partie non lancer #Erreur de partie non lancée
erreur2=discord.Embed(title="Garou", description="Erreur", color=0xff0000) erreur2=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
erreur2.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") erreur2.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
erreur2.add_field(name="Imposible", value="Désoler mais aucune partie en cours !", inline=False) erreur2.add_field(name="Impossible", value="Désolé mais aucune partie en cours !", inline=False)
#Erreur de ne pas étre le GM #Erreur de ne pas étre le GM
erreur3=discord.Embed(title="Garou", description="Erreur", color=0xff0000) erreur3=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
erreur3.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") erreur3.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
erreur3.add_field(name="Imposible", value="Désoler mais vous n'étes pas le GM !", inline=False) erreur3.add_field(name="Impossible", value="Désolé mais vous n'étes pas le GM !", inline=False)
#Pour verifier que la personne donner soit bien un joueur #Pour verifier que la personne donner soit bien un joueur
@ -275,50 +275,50 @@ class Garou:
#Commande pour démarre le jeux #Commande pour démarre le jeux
@lg.command(pass_context=True) @lg.command(pass_context=True)
async def start(self, ctx): async def start(self, ctx):
if self.game == 1: #Verification si une partie est deja lancer if self.game == 1: #Verification si une partie est déjà lancée
print("Commande lg start lancer par: "+str(ctx.message.author)+" refuser, partie deja lancer") print("Commande lg start lancée par: "+str(ctx.message.author)+" refusée, partie déjà lancée")
await self.bot.say(embed=self.erreur1) await self.bot.say(embed=self.erreur1)
else: else:
if self.djoueurs >= 1: #Verification si les joueurs sont deja defini if self.djoueurs >= 1: #Verification si les joueurs sont déjà defini
print("Commande lg start lancer par: "+str(ctx.message.author)+" refuser, partie deja lancer") print("Commande lg start lancée par: "+str(ctx.message.author)+" refusée, partie déjà lancée")
await self.bot.say(embed=self.erreur1) await self.bot.say(embed=self.erreur1)
else: else:
print("Commande lg start lancer par: "+str(ctx.message.author)) print("Commande lg start lancée par: "+str(ctx.message.author))
self.game=1 #On dit qu'une la partie est lancer self.game=1 #On dit qu'une la partie est lancée
self.gm=ctx.message.author #On defini le GM self.gm=ctx.message.author #On defini le GM
self.djoueurs = 1 #On dit qu'on defini les joueurs self.djoueurs = 1 #On dit qu'on defini les joueurs
self.list_joueurs.insert(0, ctx.message.author.id) #On ajoute le GM dans la liste de joueurs (ID) self.list_joueurs.insert(0, ctx.message.author.id) #On ajoute le GM dans la liste de joueurs (ID)
self.ult_list_joueurs.insert(0,ctx.message.author) #On ajoute le GM dans la liste de joueurs (Object) self.ult_list_joueurs.insert(0,ctx.message.author) #On ajoute le GM dans la liste de joueurs (Object)
embed=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000) embed=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
embed.add_field(name="Début de partie", value="Une partie a été lancer par: "+str(ctx.message.author)+" ! \nPour rejoindre, taper la commande: ```lg join```", inline=False) embed.add_field(name="Début de partie", value="Une partie a été lancée par: "+str(ctx.message.author)+" ! \nPour rejoindre, taper la commande: ```lg join```", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
#Commande pour rejoindre la partie #Commande pour rejoindre la partie
@lg.command(pass_context=True) @lg.command(pass_context=True)
async def join(self, ctx): async def join(self, ctx):
if self.game == 0: #Verification si une partie est deja lancer if self.game == 0: #Verification si une partie est déjà lancée
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !") print("Commande lg join lancée par: "+str(ctx.message.author)+" refusée, aucune partie lancée !")
await self.bot.say(embed=self.erreur2) await self.bot.say(embed=self.erreur2)
else: else:
if self.djoueurs == 2: #Verification si les joueurs sont deja defini if self.djoueurs == 2: #Verification si les joueurs sont déjà defini
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, joueurs deja defini !") print("Commande lg join lancée par: "+str(ctx.message.author)+" refusée, joueurs déjà defini !")
await self.bot.say(embed=self.erreur1) await self.bot.say(embed=self.erreur1)
elif self.djoueurs == 1: #Verification si les joueurs sont en cours de definition elif self.djoueurs == 1: #Verification si les joueurs sont en cours de definition
if self.gm == ctx.message.author: #Verification si c'est le GM if self.gm == ctx.message.author: #Verification si c'est le GM
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, c'est le GM !") print("Commande lg join lancée par: "+str(ctx.message.author)+" refusée, c'est le GM !")
embed=discord.Embed(title="Garou", description="Erreur", color=0xff0000) embed=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
embed.add_field(name="Imposible", value="Désoler mais vous êtes le GM, vous avez deja rejoint par defaut.", inline=False) embed.add_field(name="Impossible", value="Désolé mais vous êtes le GM, vous avez déjà rejoint par defaut.", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
print("Commande lg join lancer par: "+str(ctx.message.author)) print("Commande lg join lancée par: "+str(ctx.message.author))
self.list_joueurs.append(ctx.message.author.id) self.list_joueurs.append(ctx.message.author.id)
self.ult_list_joueurs.append(ctx.message.author) self.ult_list_joueurs.append(ctx.message.author)
embed=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000) embed=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
@ -327,44 +327,44 @@ class Garou:
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
#Commande pour lancer la partie #Commande pour lancée la partie
@lg.command(pass_context=True) @lg.command(pass_context=True)
async def play(self, ctx): async def play(self, ctx):
if self.game == 0: #Verification si une partie est deja lancer if self.game == 0: #Verification si une partie est déjà lancée
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !") print("Commande lg play lancée par: "+str(ctx.message.author)+" refusée, aucune partie lancée !")
await self.bot.say(embed=self.erreur2) await self.bot.say(embed=self.erreur2)
else: else:
if self.djoueurs == 0: #Verification si les joueurs sont deja defini if self.djoueurs == 0: #Verification si les joueurs sont déjà defini
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, definition des joueurs non lancer !") print("Commande lg play lancée par: "+str(ctx.message.author)+" refusée, definition des joueurs non lancée !")
await self.bot.say(embed=self.erreur2) await self.bot.say(embed=self.erreur2)
elif self.djoueurs == 2: #Verification si les joueurs sont deja defini elif self.djoueurs == 2: #Verification si les joueurs sont déjà defini
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, joueurs deja defini !") print("Commande lg play lancée par: "+str(ctx.message.author)+" refusée, joueurs déjà defini !")
await self.bot.say(embed=self.erreur1) await self.bot.say(embed=self.erreur1)
elif self.djoueurs == 1: #Verification si les joueurs sont en cours de definition elif self.djoueurs == 1: #Verification si les joueurs sont en cours de definition
if self.gm == ctx.message.author: #Verification si c'est le GM if self.gm == ctx.message.author: #Verification si c'est le GM
if len(self.list_joueurs) < self.minijoueurs: #Verification du nombre de joueurs minimal requi if len(self.list_joueurs) < self.minijoueurs: #Verification du nombre de joueurs minimal requi
print("Commande lg play lancer par: "+str(ctx.message.author)+", refuser car minimum de joueurs pas atteint") print("Commande lg play lancée par: "+str(ctx.message.author)+", refusée car minimum de joueurs pas atteint")
embed=discord.Embed(title="Garou", description="Erreur", color=0xff0000) embed=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
embed.add_field(name="Imposible", value="Désoler mais il n'y a que "+str(len(self.list_joueurs))+" joueur(s) dans la partie", inline=False) embed.add_field(name="Impossible", value="Désolé mais il n'y a que "+str(len(self.list_joueurs))+" joueur(s) dans la partie", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
self.djoueurs=2 #On dit que les joueurs sont defini self.djoueurs=2 #On dit que les joueurs sont defini
self.num_joueurs=len(self.list_joueurs) #On defini combien de joueurs en tout self.num_joueurs=len(self.list_joueurs) #On defini combien de joueurs en tout
print("Commande lg play lancer par: "+str(ctx.message.author)) print("Commande lg play lancée par: "+str(ctx.message.author))
#Definition des roles #Definition des roles
for j in range(0,self.num_joueurs): #Un boucle qui fait autent de fois qu'il y a de joueurs for j in range(0,self.num_joueurs): #Un boucle qui fait autent de fois qu'il y a de joueurs
target = self.list_joueurs[j] #Prend dans la liste des joueurs le joueur en question. target = self.list_joueurs[j] #Prend dans la liste des joueurs le joueur en question.
while self.is_joueurs(target) != True: #Boucle tant que le jouer n'est pas dans la liste des personnes défini while self.is_joueurs(target) != True: #Boucle tant que le jouer n'est pas dans la liste des personnes défini
r = randint(1,self.num_joueurs) #Tire un chiffre random entre 1 et le nombre de jouers r = randint(1,self.num_joueurs) #Tire un chiffre random entre 1 et le nombre de jouers
if r not in self.random: #Si se chiffre a deja éter tiré, alors sela relance le while if r not in self.random: #Si se chiffre a déjà éter tiré, alors sela relance le while
self.def_joueurs[target] = self.roles[r] #Ajoute dans le dico le joueur et assigne son role grace au chiffre random self.def_joueurs[target] = self.roles[r] #Ajoute dans le dico le joueur et assigne son role grace au chiffre random
self.random.append(r) #Ajoute le chiffre random dans la liste des chiffres deja tiré self.random.append(r) #Ajoute le chiffre random dans la liste des chiffres déjà tiré
#Envoie du message de role #Envoie du message de role
client = self.ult_list_joueurs[j] #Cible le joueur en question mais cette fois son objet et non son ID client = self.ult_list_joueurs[j] #Cible le joueur en question mais cette fois son objet et non son ID
@ -381,19 +381,19 @@ class Garou:
else: else:
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, pas le GM !") print("Commande lg play lancée par: "+str(ctx.message.author)+" refusée, pas le GM !")
await self.bot.say(embed=self.erreur3) await self.bot.say(embed=self.erreur3)
#Commande pour annuler le Garou #Commande pour annuler le Garou
@lg.command(pass_context=True) @lg.command(pass_context=True)
async def stop(self, ctx): async def stop(self, ctx):
if self.game == 0: if self.game == 0:
print("Commande lg stop lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !") print("Commande lg stop lancée par: "+str(ctx.message.author)+" refusée, aucune partie lancée !")
await self.bot.say(embed=self.erreur2) await self.bot.say(embed=self.erreur2)
elif self.game == 1: elif self.game == 1:
if self.gm == ctx.message.author: if self.gm == ctx.message.author:
print("Commande lg stop lancer par: "+str(ctx.message.author)) print("Commande lg stop lancée par: "+str(ctx.message.author))
#reset de toutes les variables #reset de toutes les variables
game = 0 game = 0
@ -407,11 +407,11 @@ class Garou:
embed=discord.Embed(title="Garou", description="Attention", color=0xff0000) embed=discord.Embed(title="Garou", description="Attention", color=0xff0000)
embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
embed.add_field(name="Partie annuler", value="Désoler mais la partie de Garou a éter annuler.", inline=False) embed.add_field(name="Partie annuler", value="Désolé mais la partie de Garou a éter annuler.", inline=False)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
print("Commande lg stop lancer par: "+str(ctx.message.author)+" refuser car ce n'est pas le GM !") print("Commande lg stop lancée par: "+str(ctx.message.author)+" refusée car ce n'est pas le GM !")
await self.bot.say(embed=self.erreur3) await self.bot.say(embed=self.erreur3)
#Commande help #Commande help
@ -420,11 +420,11 @@ class Garou:
embed=discord.Embed(title="Garou", description="Aide", color=0xff0000) embed=discord.Embed(title="Garou", description="Aide", color=0xff0000)
embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png") embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
embed.add_field(name="start", value="Lancement de la partie", inline=True) embed.add_field(name="start", value="Lancement de la partie", inline=True)
embed.add_field(name="join", value="Rejoidre la partie", inline=True) embed.add_field(name="join", value="Rejoindre la partie", inline=True)
embed.add_field(name="play", value="Demarre la partie", inline=True) embed.add_field(name="play", value="Démarre la partie", inline=True)
embed.add_field(name="stop", value="Termine la partie", inline=True) embed.add_field(name="stop", value="Termine la partie", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
def setup(bot): def setup(bot):
bot.add_cog(Garou(bot)) bot.add_cog(Garou(bot))
print("Garou charger") print("Garou chargé")

122
Music.py
View file

@ -60,17 +60,17 @@ class VoiceState:
while True: while True:
self.play_next_song.clear() self.play_next_song.clear()
self.current = await self.songs.get() self.current = await self.songs.get()
print("Musi en cours lancer: "+str(self.current)) print("Musique en cours lancée: "+str(self.current))
#await self.bot.change_presence(game=discord.Game(name='faire de la musique: '+str(self.current))) #await self.bot.change_presence(game=discord.Game(name='faire de la musique: '+str(self.current)))
embed=discord.Embed(title="Music", description="En cours", color=0x80ff00) embed=discord.Embed(title="Musique", description="En cours", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="play", value="Joue maintenant \n" + str(self.current), inline=True) embed.add_field(name="play", value="Jouée acutellement: \n" + str(self.current), inline=True)
await self.bot.send_message(self.current.channel, embed=embed) await self.bot.send_message(self.current.channel, embed=embed)
self.current.player.start() self.current.player.start()
await self.play_next_song.wait() await self.play_next_song.wait()
class Music: class Musique:
"""Commandes de musique. """Commandes de musique.
""" """
def __init__(self, bot): def __init__(self, bot):
@ -124,16 +124,16 @@ class Music:
#Un simple help #Un simple help
@music.command(pass_context=True, no_pm=True) @music.command(pass_context=True, no_pm=True)
async def help(self, ctx): async def help(self, ctx):
embed=discord.Embed(title="Music", description="Aide", color=0x80ff00) embed=discord.Embed(title="Musique", description="Aide", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="play", value="Lancer une musique", inline=True) embed.add_field(name="play", value="Lancer une musique", inline=True)
embed.add_field(name="playing", value="Voir se qui passe", inline=True) embed.add_field(name="playing", value="Voir quelle musique est lancée", inline=True)
embed.add_field(name="pause", value="Met en pause la musique, ne marche pas", inline=True) embed.add_field(name="pause", value="Met en pause la musique", inline=True)
embed.add_field(name="resume", value="Continue la musique", inline=True) embed.add_field(name="resume", value="Résume la musique", inline=True)
embed.add_field(name="skip", value="Passer la musique", inline=True) embed.add_field(name="skip", value="Passer la musique", inline=True)
embed.add_field(name="stop", value="Arreter la musique", inline=True) embed.add_field(name="stop", value="Arrêter la musique", inline=True)
embed.add_field(name="summon", value="Faire apparaitre le bot", inline=True) embed.add_field(name="summon", value="Faire apparaître le bot", inline=True)
embed.add_field(name="volume", value="Definir le volume de la musique", inline=True) embed.add_field(name="volume", value="Définir le volume de la musique", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
#Permmet de faire connecter vocalement le bot #Permmet de faire connecter vocalement le bot
@ -143,25 +143,25 @@ class Music:
Ne fonctionne que si l'utilisateur est déja dans un channel.""" Ne fonctionne que si l'utilisateur est déja dans un channel."""
summoned_channel = ctx.message.author.voice_channel summoned_channel = ctx.message.author.voice_channel
if summoned_channel is None: if summoned_channel is None:
print("Commande music summon lancer par: "+str(ctx.message.author)+" refuser car il n'est pas dans un channel vocal") print("Commande musique summon lancée par: "+str(ctx.message.author)+" refuser car il n'est pas dans un channel vocal")
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="summon", value="Vous n'étes pas dans un channel vocal !", inline=True) embed.add_field(name="summon", value="Vous n'êtes pas dans un channel vocal !", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
return False return False
state = self.get_voice_state(ctx.message.server) state = self.get_voice_state(ctx.message.server)
if state.voice is None: if state.voice is None:
print("Commande music summon lancer par: "+str(ctx.message.author)) print("Commande musique summon lancée par: "+str(ctx.message.author))
state.voice = await self.bot.join_voice_channel(summoned_channel) state.voice = await self.bot.join_voice_channel(summoned_channel)
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="summon", value="Il se materialise a vous !", inline=True) embed.add_field(name="summon", value="Il se matérialise devant vous !", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
print("Commande music summon lancer par: "+str(ctx.message.author)) print("Commande music summon lancée par: "+str(ctx.message.author))
await state.voice.move_to(summoned_channel) await state.voice.move_to(summoned_channel)
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="summon", value="Il se téléporte a vous !", inline=True) embed.add_field(name="summon", value="Il se téléporte a vous !", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -172,7 +172,7 @@ class Music:
@music.command(pass_context=True, no_pm=True) @music.command(pass_context=True, no_pm=True)
async def play(self, ctx, *, song : str): async def play(self, ctx, *, song : str):
"""Joue une musique. """Joue une musique.
S'il y a une musique qui joue deja, alors elle est mise dans S'il y a une musique qui joue déjà, alors elle est mise dans
la queue jusqu'a la derniere musique de la queue. la queue jusqu'a la derniere musique de la queue.
Le bot recherche automatiquement sur youtube. Le bot recherche automatiquement sur youtube.
La liste des sites supportés est trouvée ici: La liste des sites supportés est trouvée ici:
@ -187,8 +187,8 @@ class Music:
if state.voice is None: if state.voice is None:
success = await ctx.invoke(self.summon) success = await ctx.invoke(self.summon)
print("Commande music play lancer par: "+str(ctx.message.author)) print("Commande musique play lancée par: "+str(ctx.message.author))
#embed=discord.Embed(title="Music", description="", color=0x80ff00) #embed=discord.Embed(title="Musique", description="", color=0x80ff00)
#embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") #embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
#embed.add_field(name="play", value="Chargement de la musique...", inline=True) #embed.add_field(name="play", value="Chargement de la musique...", inline=True)
message = await self.bot.say("Chargement de la musique...") message = await self.bot.say("Chargement de la musique...")
@ -202,16 +202,16 @@ class Music:
except Exception as e: except Exception as e:
fmt = 'Une erreur est arrivé lors du traitement de la requete: ```py\n{}: {}\n```' fmt = 'Une erreur est arrivé lors du traitement de la requete: ```py\n{}: {}\n```'
print("Commande music play lancer par: "+str(ctx.message.author)+" erreur: "+fmt.format(type(e).__name__, e)) print("Commande musique play lancée par: "+str(ctx.message.author)+" erreur: "+fmt.format(type(e).__name__, e))
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="play", value=fmt.format(type(e).__name__, e), inline=True) embed.add_field(name="play", value=fmt.format(type(e).__name__, e), inline=True)
await self.bot.send_message(ctx.message.channel, embed=embed) await self.bot.send_message(ctx.message.channel, embed=embed)
else: else:
player.volume = 0.6 player.volume = 0.6
entry = VoiceEntry(ctx.message, player) entry = VoiceEntry(ctx.message, player)
print("Commande music play lancer par: "+str(ctx.message.author)+" mise en queue") print("Commande musique play lancée par: "+str(ctx.message.author)+" mise en queue")
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="play", value="La musique \n" + str(entry)+" \na été mise en queue", inline=True) embed.add_field(name="play", value="La musique \n" + str(entry)+" \na été mise en queue", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -227,15 +227,15 @@ class Music:
if state.is_playing(): if state.is_playing():
player = state.player player = state.player
player.volume = value / 100 player.volume = value / 100
print("Commande music volume lancer par: "+str(ctx.message.author)) print("Commande music volume lancée par: "+str(ctx.message.author))
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="volume", value='Volume mit à {:.0%}'.format(player.volume), inline=True) embed.add_field(name="volume", value='Volume mit à {:.0%}'.format(player.volume), inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
elif self.is_listening(voice_channel_id) == False: elif self.is_listening(voice_channel_id) == False:
print("Commande music volume lancer par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal") print("Commande music volume lancée par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal")
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="volume", value="Vous n'étes pas dans le channel vocal !", inline=True) embed.add_field(name="volume", value="Vous n'étes pas dans le channel vocal !", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -247,16 +247,16 @@ class Music:
if self.is_listening(voice_channel_id) == True: if self.is_listening(voice_channel_id) == True:
state = self.get_voice_state(ctx.message.server) state = self.get_voice_state(ctx.message.server)
if state.is_playing(): if state.is_playing():
print("Commande music pause lancer par: "+str(ctx.message.author)) print("Commande musique pause lancée par: "+str(ctx.message.author))
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="pause", value="Mis ene pause de la musique", inline=True) embed.add_field(name="pause", value="Mis ene pause de la musique", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
await self.set_pause(ctx.message.author.server) await self.set_pause(ctx.message.author.server)
elif self.is_listening(voice_channel_id) == False: elif self.is_listening(voice_channel_id) == False:
print("Commande music resume lancer par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal") print("Commande musique resume lancée par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal")
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="resume", value="Vous n'étes pas dans le channel vocal !", inline=True) embed.add_field(name="resume", value="Vous n'étes pas dans le channel vocal !", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -269,16 +269,16 @@ class Music:
if self.is_listening(voice_channel_id) == True: if self.is_listening(voice_channel_id) == True:
state = self.get_voice_state(ctx.message.server) state = self.get_voice_state(ctx.message.server)
if state.is_playing(): if state.is_playing():
print("Commande music resume lancer par: "+str(ctx.message.author)) print("Commande musique resume lancée par: "+str(ctx.message.author))
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="resume", value="Reprise de la musique", inline=True) embed.add_field(name="resume", value="Reprise de la musique", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
await self.set_resume(ctx.message.author.server) await self.set_resume(ctx.message.author.server)
elif self.is_listening(voice_channel_id) == False: elif self.is_listening(voice_channel_id) == False:
print("Commande music resume lancer par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal") print("Commande musique resume lancée par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal")
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="resume", value="Vous n'étes pas dans le channel vocal !", inline=True) embed.add_field(name="resume", value="Vous n'étes pas dans le channel vocal !", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -315,8 +315,8 @@ class Music:
state.audio_player.cancel() state.audio_player.cancel()
del self.voice_states[server.id] del self.voice_states[server.id]
await state.voice.disconnect() await state.voice.disconnect()
print("Commande music stop lancer par: "+str(ctx.message.author)) print("Commande musique stop lancée par: "+str(ctx.message.author))
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="stop", value="Queue vidée et channel quitté.", inline=True) embed.add_field(name="stop", value="Queue vidée et channel quitté.", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -324,8 +324,8 @@ class Music:
pass pass
elif self.is_listening(voice_channel_id) == False: elif self.is_listening(voice_channel_id) == False:
print("Commande music stop lancer par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal") print("Commande musique stop lancée par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal")
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="stop", value="Vous n'étes pas dans le channel vocal !", inline=True) embed.add_field(name="stop", value="Vous n'étes pas dans le channel vocal !", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -340,8 +340,8 @@ class Music:
if self.is_listening(voice_channel_id) == True: if self.is_listening(voice_channel_id) == True:
state = self.get_voice_state(ctx.message.server) state = self.get_voice_state(ctx.message.server)
if not state.is_playing(): if not state.is_playing():
print("Commande music skip lancer par: "+str(ctx.message.author)+" refuser car rien est jouer") print("Commande musique skip lancée par: "+str(ctx.message.author)+" refuser car rien est jouer")
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="skip", value="Aucune chanson n'est jouée actuellement...", inline=True) embed.add_field(name="skip", value="Aucune chanson n'est jouée actuellement...", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -349,8 +349,8 @@ class Music:
voter = ctx.message.author voter = ctx.message.author
if voter == state.current.requester: if voter == state.current.requester:
print("Commande music skip lancer par: "+str(ctx.message.author)+" requete envoyer") print("Commande musique skip lancée par: "+str(ctx.message.author)+" requete envoyer")
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="skip", value="Une requete pour passer la chanson a été faite.", inline=True) embed.add_field(name="skip", value="Une requete pour passer la chanson a été faite.", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@ -359,49 +359,49 @@ class Music:
state.skip_votes.add(voter.id) state.skip_votes.add(voter.id)
total_votes = len(state.skip_votes) total_votes = len(state.skip_votes)
if total_votes >= 3: if total_votes >= 3:
print("Commande music skip lancer") print("Commande musique skip lancée")
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="skip", value="Vote pour passer effectué, chanson passée...", inline=True) embed.add_field(name="skip", value="Vote pour passer effectué, chanson passée...", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
state.skip() state.skip()
else: else:
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="skip", value="Vote pour passer effectué, actuellement à [{}/3]".format(total_votes), inline=True) embed.add_field(name="skip", value="Vote pour passer effectué, actuellement à [{}/3]".format(total_votes), inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="skip", value="Vous avez deja voté pour passer cette chanson.", inline=True) embed.add_field(name="skip", value="Vous avez déjà voté pour passer cette chanson.", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
elif self.is_listening(voice_channel_id) == False: elif self.is_listening(voice_channel_id) == False:
print("Commande music skip lancer par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal") print("Commande musique skip lancée par: "+str(ctx.message.author)+" refuser car il n'est pas dans le channel vocal")
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="skip", value="Vous n'étes pas dans le channel vocal !", inline=True) embed.add_field(name="skip", value="Vous n'étes pas dans le channel vocal !", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
#Affiche la musique actuellement lancer #Affiche la musique actuellement lancée
@music.command(pass_context=True, no_pm=True) @music.command(pass_context=True, no_pm=True)
async def playing(self, ctx): async def playing(self, ctx):
state = self.get_voice_state(ctx.message.server) state = self.get_voice_state(ctx.message.server)
if state.current is None: if state.current is None:
print("Commande music playing lancer par: "+str(ctx.message.author)+" refuser car rien est jouer") print("Commande musique playing lancée par: "+str(ctx.message.author)+" refuser car rien est jouer")
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00) embed=discord.Embed(title="Musique", description="Erreur", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="playing", value="Aucune chanson n'est jouée actuellement...", inline=True) embed.add_field(name="playing", value="Aucune chanson n'est jouée actuellement...", inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
else: else:
skip_count = len(state.skip_votes) skip_count = len(state.skip_votes)
print("Commande music playing lancer par: "+str(ctx.message.author)) print("Commande musique playing lancée par: "+str(ctx.message.author))
embed=discord.Embed(title="Music", description="", color=0x80ff00) embed=discord.Embed(title="Musique", description="", color=0x80ff00)
embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png") embed.set_thumbnail(url="http://www.icone-png.com/png/16/15638.png")
embed.add_field(name="playing", value="Joue actuellement {} [skips: {}/3]".format(state.current, skip_count), inline=True) embed.add_field(name="playing", value="Jouée actuellement {} [skips: {}/3]".format(state.current, skip_count), inline=True)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
def setup(bot): def setup(bot):
bot.add_cog(Music(bot)) bot.add_cog(Musique(bot))
print('Music charger') print('Musique chargée')

View file

@ -1,13 +1,13 @@
## Bienvenue sur le GitHub du FTW's Bot ## Bienvenue sur le GitHub du FTW's Bot
Ce bot est celui lier au serveur Discord FTW (https://discord.gg/PtvK2ym). Ce bot est celui lié au serveur Discord FTW (https://discord.gg/PtvK2ym).
Le bot token mit sur les pages est un exemple non fonctionelle ;) Le bot token mit sur les pages est un example non fonctionel ;)
### Mais pourquoi mettre ce bot sur GitHub ? ### Mais pourquoi mettre ce bot sur GitHub ?
Simplement pour qu'entre dev on travaille plus facillement et aussi que pour les membres du FTW puisse siganler des problems ou demander des nouveauté. Simplement pour qu'entres devs on puisse travailler plus facilement et aussi que pour les membres de FTW puisse signaler des problèmes ou demander des nouveautés.
### Il faut quoi ? ### Il faut quoi ?
Du côter python (avec pip) : Discord (obviouse), PyNaCl et youtube_dl Du côté python (avec pip) : Discord.py (forcément), PyNaCl et youtube_dl
Du côter géneral : ffmpeg Du côté géneral : ffmpeg

View file

@ -2,10 +2,10 @@ import discord
from discord.ext import commands from discord.ext import commands
licorne_symbole = "🦄" licorne_symbole = "🦄"
licorne = ["licorne", "pony"] licorne = ["licorne", "pony", "poney"]
caca_symbole = "💩" caca_symbole = "💩"
caca = ["caca", "merde"] caca = ["caca", "merde", "crotte", "bouse"]
sel_symbole = ":PJSalt:232086190545829888" sel_symbole = ":PJSalt:232086190545829888"
sel = ["sel", "salty", "putain"] sel = ["sel", "salty", "putain"]
@ -14,7 +14,7 @@ troll_symbole = ":troll:232080409083641856"
troll = ["troll", "trol", "trololo"] troll = ["troll", "trol", "trololo"]
dog_symbole = "🐶" dog_symbole = "🐶"
dog = ["waf", "chien", "dog"] dog = ["waf", "ouaf", "chien", "dog", "wouaf"]
perfect_symbole = "👌" perfect_symbole = "👌"
perfect = ["parfait", "perfect", "ok"] perfect = ["parfait", "perfect", "ok"]
@ -29,39 +29,39 @@ class Reactionner:
async def on_message(self, message): async def on_message(self, message):
for i in range(len(licorne)): for i in range(len(licorne)):
if licorne[i] in message.content.lower(): if licorne[i] in message.content.lower():
print("licorne detecter !") print("Licorne detectée !")
await self.bot.add_reaction(message,licorne_symbole) await self.bot.add_reaction(message,licorne_symbole)
for i in range(len(caca)): for i in range(len(caca)):
if caca[i] in message.content.lower(): if caca[i] in message.content.lower():
print("caca detecter !") print("Caca detecté !")
await self.bot.add_reaction(message,caca_symbole ) await self.bot.add_reaction(message,caca_symbole )
for i in range(len(sel)): for i in range(len(sel)):
if sel[i] in message.content.lower(): if sel[i] in message.content.lower():
print("sel detecter !") print("Sel detecté !")
await self.bot.add_reaction(message,sel_symbole) await self.bot.add_reaction(message,sel_symbole)
for i in range(len(troll)): for i in range(len(troll)):
if troll[i] in message.content.lower(): if troll[i] in message.content.lower():
print("troll detecter !") print("Troll detecté !")
await self.bot.add_reaction(message,troll_symbole) await self.bot.add_reaction(message,troll_symbole)
for i in range(len(dog)): for i in range(len(dog)):
if dog[i] in message.content.lower(): if dog[i] in message.content.lower():
print("Chien detecter !") print("Chien detecté !")
await self.bot.add_reaction(message,dog_symbole) await self.bot.add_reaction(message,dog_symbole)
for i in range(len(perfect)): for i in range(len(perfect)):
if perfect[i] in message.content.lower(): if perfect[i] in message.content.lower():
print("Perfection detecter !") print("Perfection detecté !")
await self.bot.add_reaction(message,perfect_symbole) await self.bot.add_reaction(message,perfect_symbole)
for i in range(len(plus)): for i in range(len(plus)):
if plus[i] in message.content.lower(): if plus[i] in message.content.lower():
print("Plus detecter !") print("Plus detecté !")
await self.bot.add_reaction(message,plus_symbole) await self.bot.add_reaction(message,plus_symbole)
def setup(bot): def setup(bot):
bot.add_cog(Reactionner(bot)) bot.add_cog(Reactionner(bot))
print("Reactionner charger") print("Reactions chargé")

12
bot.py
View file

@ -13,7 +13,7 @@ bot.remove_command("help")
#Démarrage #Démarrage
@bot.event @bot.event
async def on_ready(): async def on_ready():
print("Définition du statu de base") print("Définition du statut de base")
await bot.change_presence(game=discord.Game(name=parameter['Bot']['statu'])) await bot.change_presence(game=discord.Game(name=parameter['Bot']['statu']))
print("Démarrage de DefaultCMD") print("Démarrage de DefaultCMD")
@ -34,10 +34,10 @@ async def on_ready():
print("Démarrage de Music") print("Démarrage de Music")
bot.load_extension("Music") bot.load_extension("Music")
print("FTW's Bot operationelle") print("FTW's Bot opérationel")
embed=discord.Embed(title="Administration", description="", color=0xffff00) embed=discord.Embed(title="Administration", description="", color=0xffff00)
embed.set_thumbnail(url="https://icon-icons.com/icons2/562/PNG/512/on-off-power-button_icon-icons.com_53938.png") embed.set_thumbnail(url="https://icon-icons.com/icons2/562/PNG/512/on-off-power-button_icon-icons.com_53938.png")
embed.add_field(name="Démarrage", value="FTW's Bot operationelle", inline=False) embed.add_field(name="Démarrage", value="FTW's Bot opérationel", inline=False)
channel = bot.get_channel("389209382388498445") channel = bot.get_channel("389209382388498445")
await bot.send_message(channel, embed=embed) await bot.send_message(channel, embed=embed)
@ -45,9 +45,9 @@ async def on_ready():
async def help(ctx): async def help(ctx):
embed=discord.Embed(title="Music", description="Aide", color=0x80ff00) embed=discord.Embed(title="Music", description="Aide", color=0x80ff00)
embed.set_thumbnail(url="https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-help-128.png") embed.set_thumbnail(url="https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-help-128.png")
embed.add_field(name="basic", value="Pour voir les commands basique faite: ```basic```", inline=True) embed.add_field(name="Bases", value="Pour voir les commandes basiques, écrivez: ```basic```", inline=True)
embed.add_field(name="Garou", value="Pour voir les commands du Garou faite: ```lg help```", inline=True) embed.add_field(name="Garou", value="Pour voir les commandes du Garou, écrivez: ```lg help```", inline=True)
embed.add_field(name="Music", value="Pour voir les commandes pour la musique faite: ```music help```", inline=True) embed.add_field(name="Music", value="Pour voir les commandes pour la musique, écrivez: ```music help```", inline=True)
await bot.say(embed=embed) await bot.say(embed=embed)

View file

@ -1,8 +1,13 @@
{ {
"Bot" : { "Bot" : {
"name": "Bot Name", "name": "FTW - Bot",
"description": "A simple description", "description": "[Description du bot]",
"prefix": "What wille summon the bot ?", "prefix": "<@[id du bot]> ",
"token": "They login Token" "token": "[Tocken du bot]",
"statu": "[Statut du bot par défaut]"
},
"Perms" : {
"Admin": ["[Admin 1]", "[Admin 2]", "[etc...]"]
} }
} }

12
run.sh Normal file
View file

@ -0,0 +1,12 @@
printf "Démarrage du FTW-Bot.\n"
printf "\nMise a jour des dépendance...\n"
if [ "$EUID" -ne 0 ]
then echo "Pour que le bot fonctionne correctement, merci de le lancer en root !"
exit
fi
python3.6 -m pip install --upgrade Discord
python3.6 -m pip install --upgrade PyNaCl
python3.6 -m pip install --upgrade youtube_dl
printf "\nMise a jour terminer !\n"
printf "\nLancement du FTW-Bot...\n"
python3.6 bot.py