Mass update
Creation de l'extension administration Deplacement de command vers administration Ajout de plus de log au dèmarrage Embed power presque fini
This commit is contained in:
parent
5b8be19e8a
commit
ef6aa2aedc
8 changed files with 634 additions and 228 deletions
112
Administration.py
Normal file
112
Administration.py
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
import json
|
||||||
|
import discord
|
||||||
|
from discord.ext import commands
|
||||||
|
|
||||||
|
|
||||||
|
class Administration:
|
||||||
|
def __init__(self, bot):
|
||||||
|
self.bot = bot
|
||||||
|
|
||||||
|
with open('config.json') as json_data_file:
|
||||||
|
parameter = json.load(json_data_file)
|
||||||
|
|
||||||
|
owner = parameter['Perms']['Admin']
|
||||||
|
|
||||||
|
def is_owner(self, id):
|
||||||
|
for i in range(len(self.owner)):
|
||||||
|
if id == self.owner[i]:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
#Gestion des extension
|
||||||
|
@commands.group(pass_context=True)
|
||||||
|
async def extension(self, ctx):
|
||||||
|
if ctx.invoked_subcommand is None:
|
||||||
|
await ctx.invoke(self.help)
|
||||||
|
|
||||||
|
#Help des extension
|
||||||
|
@extension.command(pass_context=True)
|
||||||
|
async def help(self, ctx):
|
||||||
|
embed=discord.Embed(title="Extension", description="Aide", color=0xff0000)
|
||||||
|
embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
embed.add_field(name="load", value="Charge une extension", inline=True)
|
||||||
|
embed.add_field(name="unload", value="Décharge une extension", inline=True)
|
||||||
|
embed.add_field(name="reload", value="Recharge une extension", inline=True)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
#Charger une extension
|
||||||
|
@extension.command(pass_context=True)
|
||||||
|
async def load(self, ctx, ext):
|
||||||
|
if self.is_owner(ctx.message.author.id) == True:
|
||||||
|
self.bot.load_extension(ext)
|
||||||
|
print("Extention "+str(ext)+" charger par: "+str(ctx.message.author))
|
||||||
|
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
|
||||||
|
embed.add_field(name="Chargement", value="Extension "+str(ext)+" charger", inline=False)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("Refue de charger: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !")
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
#Décharger une extension
|
||||||
|
@extension.command(pass_context=True)
|
||||||
|
async def unload(self, ctx, ext):
|
||||||
|
if self.is_owner(ctx.message.author.id) == True:
|
||||||
|
self.bot.unload_extension(ext)
|
||||||
|
print("extention "+str(ext)+" décharger")
|
||||||
|
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
|
||||||
|
embed.add_field(name="Déchargement", value="Extension "+str(ext)+" décharger", inline=False)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("Refue 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.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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
#Recharger une extension
|
||||||
|
@extension.command(pass_context=True)
|
||||||
|
async def reload(self, ctx, ext):
|
||||||
|
if self.is_owner(ctx.message.author.id) == True:
|
||||||
|
self.bot.unload_extension(ext)
|
||||||
|
self.bot.load_extension(ext)
|
||||||
|
print("Extention "+str(ext)+" mis à jour par: "+str(ctx.message.author))
|
||||||
|
embed=discord.Embed(title="Administration", description="Modules", color=0xffff00)
|
||||||
|
embed.add_field(name="Reload", value="Extension "+str(ext)+" mis à jour", inline=False)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("Refue 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.add_field(name="Reload", value="Désoler <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !", inline=False)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
|
||||||
|
#Eteindre le bot
|
||||||
|
@commands.command(pass_context=True)
|
||||||
|
async def shutdown(self, ctx):
|
||||||
|
if self.is_owner(ctx.message.author.id) == True:
|
||||||
|
print("Arret du bot fait par:"+str(ctx.message.author)+" !")
|
||||||
|
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.add_field(name="Arret", value="FTW's Bot arréter", inline=False)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
await self.bot.logout()
|
||||||
|
await self.bot.close()
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("Arret du bot fait par:"+str(ctx.message.author)+" refuser")
|
||||||
|
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.add_field(name="Erreur", value="Désoler mais vous n'avez pas le droit !", inline=False)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
await self.bot.logout()
|
||||||
|
await self.bot.close()
|
||||||
|
|
||||||
|
|
||||||
|
def setup(bot):
|
||||||
|
bot.add_cog(Administration(bot))
|
||||||
|
print("Administration charger")
|
|
@ -136,3 +136,4 @@ class Ben:
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
bot.add_cog(Ben(bot))
|
bot.add_cog(Ben(bot))
|
||||||
|
print("Benne_a_ordure charger")
|
||||||
|
|
|
@ -19,14 +19,6 @@ class DefaultCMD:
|
||||||
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 lancer par: "+str(ctx.message.author)+" argument: "+str(something))
|
||||||
|
|
||||||
#Commande kick
|
|
||||||
@commands.command(pass_context=True)
|
|
||||||
async def kick(self, ctx, member:discord.Member):
|
|
||||||
"""Expulse un jouer"""
|
|
||||||
#await self.bot.kick(member)
|
|
||||||
await self.bot.say("Kick de: "+str(member)+" par: "+str(ctx.message.author))
|
|
||||||
print("Commande kick lancer par: "+str(ctx.message.author)+" sur: "+str(member))
|
|
||||||
|
|
||||||
#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):
|
||||||
|
@ -42,25 +34,8 @@ class DefaultCMD:
|
||||||
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 lancer par: "+str(ctx.message.author)+" argument: "+str(something))
|
||||||
|
|
||||||
#Groupe de commande role
|
|
||||||
@commands.group(pass_context=True)
|
|
||||||
async def role(self, ctx):
|
|
||||||
if ctx.invoked_subcommand is None:
|
|
||||||
"""Permet la gestion de roles"""
|
|
||||||
await self.bot.say("role: create; ...")
|
|
||||||
print("Commande role lancer par: "+str(ctx.message.author))
|
|
||||||
|
|
||||||
#Commande role create
|
|
||||||
@role.command(pass_context=True)
|
|
||||||
async def create(self, ctx, *, name):
|
|
||||||
"""Permer de crée un role"""
|
|
||||||
await self.bot.say("Creation du role : "+str(name))
|
|
||||||
print("Commande role create lancer par: "+str(ctx.message.author)+" argument: "+str(name))
|
|
||||||
|
|
||||||
@commands.command(pass_context=True, aliases=["id"])
|
|
||||||
async def ID(self, ctx):
|
|
||||||
await self.bot.say("ID de l'envoyeur: "+ctx.message.author.id)
|
|
||||||
print("Commande ID lancer par: "+str(ctx.message.author)+" résultat: "+str(ctx.message.author.id))
|
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
bot.add_cog(DefaultCMD(bot))
|
bot.add_cog(DefaultCMD(bot))
|
||||||
|
print("DefaultCMD charger")
|
||||||
|
|
|
@ -163,3 +163,4 @@ class REPL:
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
bot.add_cog(REPL(bot))
|
bot.add_cog(REPL(bot))
|
||||||
|
print("ExampleRepl charger")
|
||||||
|
|
493
Garou.py
493
Garou.py
|
@ -1,171 +1,430 @@
|
||||||
import discord
|
import discord
|
||||||
import random
|
import random
|
||||||
|
from random import randint
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
|
|
||||||
#Variables de base
|
|
||||||
game = 0
|
|
||||||
djoueurs = 0
|
|
||||||
gm = str()
|
|
||||||
joueurs = list()
|
|
||||||
|
|
||||||
#Vrai variables
|
|
||||||
minijoueurs = 5 #Le nombre minimum de joueurs qu'il faut pour lancer une partie
|
|
||||||
roles = ["", ""] #Les roles donner
|
|
||||||
|
|
||||||
|
|
||||||
def is_joueurs(target):
|
|
||||||
global joueurs
|
|
||||||
for i in range(len(joueurs)):
|
|
||||||
if target == joueurs[i]:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
|
|
||||||
class Garou:
|
class Garou:
|
||||||
def __init__(self, bot):
|
def __init__(self, bot):
|
||||||
self.bot = bot
|
self.bot = bot
|
||||||
|
self.discord = discord
|
||||||
|
|
||||||
|
#Variables de base
|
||||||
|
game = 0 #Dit si une partie est en cours
|
||||||
|
djoueurs = 0 #Dit si les joueurs sont defini ou entrain d'étres defini ou non
|
||||||
|
gm = () #Dit qui est le GM (ID)
|
||||||
|
list_joueurs = [] #Dit qui sont les joueurs (ID)
|
||||||
|
ult_list_joueurs = [] #Dit qui sont les joueurs (Object)
|
||||||
|
def_joueurs = dict() #Dit qui sont les joeurs defini avec leur roles
|
||||||
|
random = [0] #Liste des chiffre random tiré
|
||||||
|
num_joueurs = 0 #Nombre de joueurs dans la partie
|
||||||
|
|
||||||
|
#Vrai variables
|
||||||
|
minijoueurs = 1 #5, Le nombre minimum de joueurs qu'il faut pour lancer 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
|
||||||
|
|
||||||
|
#text time
|
||||||
|
def intro(self, role):
|
||||||
|
if role == "VG":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Villageois")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*A Thiercelieu les habitants sont victimes d’une 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "LG":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Loup-garou")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*Le village de Thiercelieu est victime d’une 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role =="VY":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 bute : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous pourrez connaitre le rôle d’une personne.**", inline=False)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "VO":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 n’est pas méchant, mais des gens disent qu’il 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role =="SO":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 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é qu’une seule fois.**", inline=False)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "CS":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "CU":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Cupidon")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*Qui recevra les flèches de l’amour lancées par ce petit être ? Ceux-ci se voueront un amour pur et total, et dépendrons l’un de l’autre.*", 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 l’une de l’autre, et si l’une meurt, l’autre se tuera de chagrin.**", inline=False)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "CL":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 bute : ", value="**En début de partie vous aurez le choix entre rejoindre les loups-garous ou les villageois.**", inline=False)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "AG":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Ange")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*Ce petit homme volant ce fiche éperdument du sort d’un petit village perdu au fond des landes. Tout ce qu’il veut c’est s’envoler 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "MA":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Maire")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*Tout village, même dans la terreur, a besoin d’un 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "IL":
|
||||||
|
ntro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 qu’elles 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "IPDL":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
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="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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "JDF":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
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="Votre personnage : ", value="*Cet homme, autrefois banni, et aujourd’hui 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "RE":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 bute : ", value="**Votre but est de tuer tous les loups-garous. Chaque nuit, vous voyez le rôle de trois personnes, mais si aucune d’elles n’est un loup-garou, vous perdez votre pouvoir.**", inline=False)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "GML":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
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="Votre personnage : ", value="*Il n’y 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 qu’aucun loup-garou n’est mort, vous pouvez tuer une personne supplémentaire par nuit.**", inline=False)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "LGB":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 l’inté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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "SA":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "AS":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Assassin")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*A Thiercelieu, il y a un fou qui n’avait 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "CER":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
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="Votre personnage : ", value="*Don Quigrince était un fier chevalier vaillant ayant participé à de nombreuses batailles. Aujourd’hui, le temps et le manque d’action se sont transformés en ennui. Il ne mange plus, dors peu, et ne s’est pas occupé de son épée depuis fort longtemps. Celle-ci s’est é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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "MO":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Montreur d’ours")
|
||||||
|
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 n’hé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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "AC":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Ancien")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*L’expérience amène la sagesse. Et la sagesse amène la maitrise de soi. Le doyen du village l’a bien compris. Bien qu’étant d’un âge avancé, il saura s’enfuir 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "SE":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Sœur")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*Rien n’est plus beau que la fraternité. Ces deux sœurs sont comme deux doigts d’une même main, ou deux cheveux d’une 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 l’autre sœur.**", inline=False)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "IDV":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Idiot du village")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*Les villageois ont beau essayer d’en 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "ES":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 s’intégrer dans le village, en prenant un modèle. Qui sait ce qu’il pourrait devenir s’il 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "BE":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Bouc-émissaire")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*Qu’est-ce que cet homme a bien pu faire pour être autant détester par le village ? En cas de doute, c’est 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "KZ":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
intro.add_field(name="Vous êtes : ", value="Kamikaze")
|
||||||
|
intro.add_field(name="Votre personnage : ", value="*Cet homme au passif si tumultueux n’a 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
elif role == "ISM":
|
||||||
|
intro=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
intro.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
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 qu’elle apprend le matin, à l’aube.*", 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)
|
||||||
|
return intro
|
||||||
|
|
||||||
|
#Erreur de partie deja en cours
|
||||||
|
erreur1=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
|
||||||
|
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)
|
||||||
|
|
||||||
|
#Erreur de partie non lancer
|
||||||
|
erreur2=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
|
||||||
|
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)
|
||||||
|
|
||||||
|
#Erreur de ne pas étre le GM
|
||||||
|
erreur3=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
#Pour verifier que la personne donner soit bien un joueur
|
||||||
|
def is_joueurs(self, target):
|
||||||
|
for j in self.def_joueurs:
|
||||||
|
if target in j:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
#Définition du groupe de commande lg
|
#Définition du groupe de commande lg
|
||||||
@commands.group(pass_context=True)
|
@commands.group(pass_context=True)
|
||||||
async def lg(self, ctx):
|
async def lg(self, ctx):
|
||||||
if ctx.invoked_subcommand is None:
|
if ctx.invoked_subcommand is None:
|
||||||
# do something that should only happen if no subcommands are called
|
#Affiche le help au cas ou de commande vide ou incorrecte
|
||||||
await self.bot.say("Jeux garou : start, joueurs, stop")
|
await ctx.invoke(self.help)
|
||||||
|
|
||||||
|
|
||||||
#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):
|
||||||
global game,gm
|
if self.game == 1: #Verification si une partie est deja lancer
|
||||||
if game == 1:
|
|
||||||
print("Commande lg start lancer par: "+str(ctx.message.author)+" refuser, partie deja lancer")
|
print("Commande lg start lancer par: "+str(ctx.message.author)+" refuser, partie deja lancer")
|
||||||
await self.bot.say("Désoler mais une partie est deja en cours !")
|
await self.bot.say(embed=self.erreur1)
|
||||||
|
|
||||||
elif game == 0:
|
|
||||||
game=1
|
|
||||||
gm=ctx.message.author
|
|
||||||
print("Commande lg start lancer par "+str(ctx.message.author))
|
|
||||||
#await self.bot.say("Lancement de la partie !")
|
|
||||||
await self.bot.say("Veuiller specifier les participants avec la commande: ```lg joueurs```.")
|
|
||||||
|
|
||||||
#Commande pour definir les participant du Garou
|
|
||||||
@lg.command(pass_context=True)
|
|
||||||
async def joueurs(self, ctx):
|
|
||||||
global djoueurs,joueurs,gm
|
|
||||||
if game == 0:
|
|
||||||
print("Commande lg joueurs lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !")
|
|
||||||
await self.bot.say("Désoler mais aucune partie n'est lancer.")
|
|
||||||
|
|
||||||
elif game == 1:
|
|
||||||
if djoueurs >= 1:
|
|
||||||
print("Commande lg joueurs lancer par: "+str(ctx.message.author)+" refuser, partie deja lacer !")
|
|
||||||
await self.bot.say("Désoler mais une partie est deja en cours !")
|
|
||||||
|
|
||||||
elif djoueurs == 0:
|
|
||||||
if gm == ctx.message.author:
|
|
||||||
djoueurs = 1
|
|
||||||
joueurs.insert(0, ctx.message.author.id)
|
|
||||||
print("Commande lg joueurs lancer par: "+str(ctx.message.author))
|
|
||||||
await self.bot.say("Rejoiner la partie avec la commande: ```lg join```.")
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("Commande lg joueurs lancer par: "+str(ctx.message.author)+", refuser car non GM")
|
if self.djoueurs >= 1: #Verification si les joueurs sont deja defini
|
||||||
await self.bot.say("Désoler mais vous n'étes pas le GM !")
|
print("Commande lg start lancer par: "+str(ctx.message.author)+" refuser, partie deja lancer")
|
||||||
|
await self.bot.say(embed=self.erreur1)
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("Commande lg start lancer par: "+str(ctx.message.author))
|
||||||
|
self.game=1 #On dit qu'une la partie est lancer
|
||||||
|
self.gm=ctx.message.author #On defini le GM
|
||||||
|
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.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.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)
|
||||||
|
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):
|
||||||
global djoueurs,joueurs
|
if self.game == 0: #Verification si une partie est deja lancer
|
||||||
if game == 0:
|
|
||||||
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !")
|
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !")
|
||||||
await self.bot.say("Désoler mais aucune partie n'est lancer.")
|
await self.bot.say(embed=self.erreur2)
|
||||||
|
|
||||||
elif game == 1:
|
|
||||||
if djoueurs == 0:
|
|
||||||
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, definition des joueurs non lancer !")
|
|
||||||
await self.bot.say("Désoler mais aucunne demande de joueurs est lancer !.")
|
|
||||||
|
|
||||||
elif djoueurs == 2:
|
|
||||||
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, joueurs deja defini !")
|
|
||||||
await self.bot.say("Désoler mais les joueurs sont deja defini.")
|
|
||||||
|
|
||||||
elif djoueurs == 1:
|
|
||||||
if gm == ctx.message.author:
|
|
||||||
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, c'est le GM !")
|
|
||||||
await self.bot.say("Désoler mais vous êtes le GM, vous avez deja rejoint par defaut.")
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
joueurs.append(ctx.message.author.id)
|
if self.djoueurs == 2: #Verification si les joueurs sont deja defini
|
||||||
print("Commande lg join lancer par: "+str(ctx.message.author))
|
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, joueurs deja defini !")
|
||||||
await self.bot.say("Vous avez rejoin la partie !")
|
await self.bot.say(embed=self.erreur1)
|
||||||
|
|
||||||
#Commande pour stoper la definition de joueurs
|
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
|
||||||
|
print("Commande lg join lancer par: "+str(ctx.message.author)+" refuser, c'est le GM !")
|
||||||
|
embed=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("Commande lg join lancer par: "+str(ctx.message.author))
|
||||||
|
self.list_joueurs.append(ctx.message.author.id)
|
||||||
|
self.ult_list_joueurs.append(ctx.message.author)
|
||||||
|
embed=discord.Embed(title="Garou", description="Dèmarrage", color=0xff0000)
|
||||||
|
embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
embed.add_field(name="Début de partie", value=str(ctx.message.author)+" a rejoint !", inline=False)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
|
||||||
|
#Commande pour lancer la partie
|
||||||
@lg.command(pass_context=True)
|
@lg.command(pass_context=True)
|
||||||
async def play(self, ctx):
|
async def play(self, ctx):
|
||||||
global joueurs,gm,djoueurs,minijoueurs
|
if self.game == 0: #Verification si une partie est deja lancer
|
||||||
if game == 0:
|
|
||||||
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !")
|
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !")
|
||||||
await self.bot.say("Désoler mais aucune partie n'est lancer.")
|
await self.bot.say(embed=self.erreur2)
|
||||||
|
|
||||||
elif game == 1:
|
|
||||||
if djoueurs == 0:
|
|
||||||
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, definition des joueurs non lancer !")
|
|
||||||
await self.bot.say("Désoler mais aucunne demande de joueurs est lancer !.")
|
|
||||||
|
|
||||||
elif djoueurs == 2:
|
|
||||||
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, joueurs deja defini !")
|
|
||||||
await self.bot.say("Désoler mais les joueurs sont deja defini.")
|
|
||||||
|
|
||||||
elif djoueurs == 1:
|
|
||||||
if gm == ctx.message.author:
|
|
||||||
if len(joueurs) < minijoueurs:
|
|
||||||
print("Commande lg play lancer par: "+str(ctx.message.author)+", refuser car minimum de joueurs pas atteint")
|
|
||||||
await self.bot.say("Désoler mais il n'y a que "+str(len(joueurs))+" joueur(s) dans la partie")
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
djoueurs=2
|
if self.djoueurs == 0: #Verification si les joueurs sont deja defini
|
||||||
|
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, definition des joueurs non lancer !")
|
||||||
|
await self.bot.say(embed=self.erreur2)
|
||||||
|
|
||||||
|
elif self.djoueurs == 2: #Verification si les joueurs sont deja defini
|
||||||
|
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, joueurs deja defini !")
|
||||||
|
await self.bot.say(embed=self.erreur1)
|
||||||
|
|
||||||
|
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 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")
|
||||||
|
embed=discord.Embed(title="Garou", description="Erreur", color=0xff0000)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.djoueurs=2 #On dit que les joueurs sont defini
|
||||||
|
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 lancer par: "+str(ctx.message.author))
|
||||||
await self.bot.say("Definitions de joueurs terminer !")
|
|
||||||
await self.bot.say("Il y a "+str(len(joueurs))+" joueurs dans la partie.")
|
#Definition des roles
|
||||||
await self.bot.say("Definitions du role de chacun des joueurs en cours...")
|
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.
|
||||||
|
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
|
||||||
|
if r not in self.random: #Si se chiffre a deja é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.random.append(r) #Ajoute le chiffre random dans la liste des chiffres deja tiré
|
||||||
|
|
||||||
|
#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
|
||||||
|
embed = self.intro(self.roles[r])
|
||||||
|
await self.bot.send_message(client, embed=embed)
|
||||||
|
|
||||||
|
|
||||||
|
print(self.def_joueurs) #On log les roles
|
||||||
|
|
||||||
|
embed=discord.Embed(title="Garou", description="Démarrage", color=0xff0000)
|
||||||
|
embed.set_thumbnail(url="https://i.imgur.com/XLPDenM.png")
|
||||||
|
embed.add_field(name="Début de partie", value="Definitions de joueurs terminer ! \nIl y a "+str(self.num_joueurs)+" joueurs dans la partie. \nDefinitions du role de chacun des joueurs en cours, ils vous seront envoyer par MP !", inline=False)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, pas le GM !")
|
print("Commande lg play lancer par: "+str(ctx.message.author)+" refuser, pas le GM !")
|
||||||
await self.bot.say("Désoler mais vous n'êtes pas le GM !")
|
await self.bot.say(embed=self.erreur3)
|
||||||
|
|
||||||
#Commande de test
|
|
||||||
@lg.command(pass_context=True)
|
|
||||||
async def test(self, ctx):
|
|
||||||
global gm,joueurs
|
|
||||||
await self.bot.say("Liste de joueurs: "+str(joueurs))
|
|
||||||
if gm == ctx.message.author:
|
|
||||||
await self.bot.say("vous etes le GM !")
|
|
||||||
elif is_joueurs(ctx.message.author.id) == True:
|
|
||||||
await self.bot.say("vous etes un joueurs !")
|
|
||||||
|
|
||||||
|
|
||||||
#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):
|
||||||
global game,djoueurs,gm
|
if self.game == 0:
|
||||||
if game == 0:
|
|
||||||
print("Commande lg stop lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !")
|
print("Commande lg stop lancer par: "+str(ctx.message.author)+" refuser, aucune partie lancer !")
|
||||||
await self.bot.say("Désoler mais aucune partie n'est lancer.")
|
await self.bot.say(embed=self.erreur2)
|
||||||
|
|
||||||
|
elif self.game == 1:
|
||||||
|
if self.gm == ctx.message.author:
|
||||||
|
print("Commande lg stop lancer par: "+str(ctx.message.author))
|
||||||
|
|
||||||
elif game == 1:
|
|
||||||
if gm == ctx.message.author:
|
|
||||||
#reset de toutes les variables
|
#reset de toutes les variables
|
||||||
game = 0
|
game = 0
|
||||||
djoueurs = 0
|
djoueurs = 0
|
||||||
gm = str()
|
gm = ()
|
||||||
joueurs = list()
|
list_joueurs = []
|
||||||
print("Commande lg stop lancer par: "+str(ctx.message.author))
|
ult_list_joueurs = []
|
||||||
await self.bot.say("La partie de garou est annuler !")
|
def_joueurs = dict()
|
||||||
|
random = [0]
|
||||||
|
num_joueurs = 0
|
||||||
|
|
||||||
|
embed=discord.Embed(title="Garou", description="Attention", color=0xff0000)
|
||||||
|
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)
|
||||||
|
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 lancer par: "+str(ctx.message.author)+" refuser car ce n'est pas le GM !")
|
||||||
await self.bot.say("Désoler mais vous n'avez pas le droit de faire ça, vous n'étes pas le GM !")
|
await self.bot.say(embed=self.erreur3)
|
||||||
|
|
||||||
|
#Commande help
|
||||||
|
@lg.command(pass_context=True)
|
||||||
|
async def help(self, ctx):
|
||||||
|
embed=discord.Embed(title="Garou", description="Aide", color=0xff0000)
|
||||||
|
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="join", value="Rejoidre la partie", inline=True)
|
||||||
|
embed.add_field(name="play", value="Demarre la partie", inline=True)
|
||||||
|
embed.add_field(name="stop", value="Termine la partie", inline=True)
|
||||||
|
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")
|
||||||
|
|
184
Music.py
184
Music.py
|
@ -60,7 +60,11 @@ 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()
|
||||||
await self.bot.send_message(self.current.channel, ' Joue maintenant ' + str(self.current))
|
print("Musi en cours lancer: "+str(self.current))
|
||||||
|
embed=discord.Embed(title="Music", description="En cours", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
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()
|
||||||
|
|
||||||
|
@ -99,37 +103,61 @@ class Music:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
#Definition du group music
|
||||||
async def join(self, ctx, *, channel : discord.Channel):
|
@commands.group(pass_context=True)
|
||||||
"""Rejoins le channel vocal. Ne fonctionne que si l'utilisateur est deja dans un channel.
|
async def music(self, ctx):
|
||||||
Ne semble pas fonctionner pour le moment."""
|
if ctx.invoked_subcommand is None:
|
||||||
try:
|
await ctx.invoke(self.help)
|
||||||
await self.create_voice_client(channel)
|
|
||||||
except discord.ClientException:
|
|
||||||
await self.bot.say('Already in a voice channel...')
|
|
||||||
except discord.InvalidArgument:
|
|
||||||
await self.bot.say('This is not a voice channel...')
|
|
||||||
else:
|
|
||||||
await self.bot.say('Ready to play audio in **' + channel.name)
|
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
#Un simple help
|
||||||
|
@music.command(pass_context=True, no_pm=True)
|
||||||
|
async def help(self, ctx):
|
||||||
|
embed=discord.Embed(title="Music", description="Aide", color=0x80ff00)
|
||||||
|
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="playing", value="Voir se qui passe", inline=True)
|
||||||
|
embed.add_field(name="pause", value="MEt en pause la musique, ne marche pas", inline=True)
|
||||||
|
embed.add_field(name="resume", value="Continue 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="summon", value="Faire apparaitre le bot", inline=True)
|
||||||
|
embed.add_field(name="volume", value="DEfinir le volume de la musique", inline=True)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
|
#Permmet de faire connecter vocalement le bot
|
||||||
|
@music.command(pass_context=True, no_pm=True)
|
||||||
async def summon(self, ctx):
|
async def summon(self, ctx):
|
||||||
"""Invoque le bot dans le channel vocal.
|
"""Invoque le bot dans le channel vocal.
|
||||||
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:
|
||||||
await self.bot.say('Are you sure your in a channel?')
|
print("Commande music summon lancer 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.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)
|
||||||
|
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))
|
||||||
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.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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
else:
|
else:
|
||||||
|
print("Commande music summon lancer 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.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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
#Permet de mettre a jouer une musique
|
||||||
|
@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 deja, alors elle est mise dans
|
||||||
|
@ -147,6 +175,10 @@ 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))
|
||||||
|
#embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
#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)
|
||||||
await self.bot.say("Chargement de la musique...")
|
await self.bot.say("Chargement de la musique...")
|
||||||
if not success:
|
if not success:
|
||||||
return
|
return
|
||||||
|
@ -155,23 +187,24 @@ class Music:
|
||||||
player = await state.voice.create_ytdl_player(song, ytdl_options=opts, after=state.toggle_next)
|
player = await state.voice.create_ytdl_player(song, ytdl_options=opts, after=state.toggle_next)
|
||||||
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```'
|
||||||
await self.bot.send_message(ctx.message.channel, fmt.format(type(e).__name__, e))
|
print("Commande music play lancer par: "+str(ctx.message.author)+" erreur: "+fmt.format(type(e).__name__, e))
|
||||||
|
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
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)
|
||||||
await self.bot.say('La musique ' + str(entry)+" a été mise en queue")
|
print("Commande music play lancer par: "+str(ctx.message.author)+" mise en queue")
|
||||||
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
await state.songs.put(entry)
|
await state.songs.put(entry)
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
|
||||||
async def listening(self, ctx):
|
|
||||||
voice_channel_id = ctx.message.author.voice_channel
|
|
||||||
if self.is_listening(voice_channel_id) == True:
|
|
||||||
await self.bot.say("Vous écouter le bot !")
|
|
||||||
|
|
||||||
elif self.is_listening(voice_channel_id) == False:
|
#Permmet de definit le volume
|
||||||
await self.bot.say("Vous n'écouter pas le bot !")
|
@music.command(pass_context=True, no_pm=True)
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
|
||||||
async def volume(self, ctx, value : int):
|
async def volume(self, ctx, value : int):
|
||||||
"""Définie le volume du bot."""
|
"""Définie le volume du bot."""
|
||||||
voice_channel_id = ctx.message.author.voice_channel
|
voice_channel_id = ctx.message.author.voice_channel
|
||||||
|
@ -180,25 +213,43 @@ class Music:
|
||||||
if state.is_playing():
|
if state.is_playing():
|
||||||
player = state.player
|
player = state.player
|
||||||
player.volume = value / 100
|
player.volume = value / 100
|
||||||
await self.bot.say('Volume mit à {:.0%}'.format(player.volume))
|
print("Commande music volume lancer par: "+str(ctx.message.author))
|
||||||
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
elif self.is_listening(voice_channel_id) == False:
|
elif self.is_listening(voice_channel_id) == False:
|
||||||
await self.bot.say("Désoler mais vous n'écouter pas le bot !")
|
print("Commande music volume lancer 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.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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
#Reprend la music
|
||||||
|
@music.command(pass_context=True, no_pm=True)
|
||||||
async def resume(self, ctx):
|
async def resume(self, ctx):
|
||||||
"""Relance la misique jouée."""
|
|
||||||
voice_channel_id = ctx.message.author.voice_channel
|
voice_channel_id = ctx.message.author.voice_channel
|
||||||
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():
|
||||||
player = state.player
|
player = state.player
|
||||||
player.resume()
|
player.resume()
|
||||||
|
print("Commande music resume lancer par: "+str(ctx.message.author))
|
||||||
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
elif self.is_listening(voice_channel_id) == False:
|
elif self.is_listening(voice_channel_id) == False:
|
||||||
await self.bot.say("Désoler mais vous n'écouter pas le bot !")
|
print("Commande music resume lancer 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.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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
#Arret la musique et fait quitter le bot
|
||||||
|
@music.command(pass_context=True, no_pm=True)
|
||||||
async def stop(self, ctx):
|
async def stop(self, ctx):
|
||||||
"""Arrete la musique jouée et quitte le channel.
|
"""Arrete la musique jouée et quitte le channel.
|
||||||
Cela vide aussi la queue.
|
Cela vide aussi la queue.
|
||||||
|
@ -216,14 +267,23 @@ 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()
|
||||||
await self.bot.say("Queue vidée et channel quitté. ")
|
print("Commande music stop lancer par: "+str(ctx.message.author))
|
||||||
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
elif self.is_listening(voice_channel_id) == False:
|
elif self.is_listening(voice_channel_id) == False:
|
||||||
await self.bot.say("Désoler mais vous n'écouter pas le bot !")
|
print("Commande music stop lancer 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.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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
#Permet de passer la musique en cours
|
||||||
|
@music.command(pass_context=True, no_pm=True)
|
||||||
async def skip(self, ctx):
|
async def skip(self, ctx):
|
||||||
"""Vote pour passer la chanson en cours.
|
"""Vote pour passer la chanson en cours.
|
||||||
Il faut trois votes pour passer la chanson.
|
Il faut trois votes pour passer la chanson.
|
||||||
|
@ -232,38 +292,68 @@ 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():
|
||||||
await self.bot.say("Aucune chanson n'est jouée actuellement...")
|
print("Commande music skip lancer par: "+str(ctx.message.author)+" refuser car rien est jouer")
|
||||||
|
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
return
|
return
|
||||||
|
|
||||||
voter = ctx.message.author
|
voter = ctx.message.author
|
||||||
if voter == state.current.requester:
|
if voter == state.current.requester:
|
||||||
await self.bot.say('Une requete pour passer la chanson a été faite.')
|
print("Commande music skip lancer par: "+str(ctx.message.author)+" requete envoyer")
|
||||||
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
state.skip()
|
state.skip()
|
||||||
elif voter.id not in state.skip_votes:
|
elif voter.id not in state.skip_votes:
|
||||||
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:
|
||||||
await self.bot.say('Vote pour passer effectué,chanson passée...')
|
print("Commande music skip lancer")
|
||||||
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
state.skip()
|
state.skip()
|
||||||
else:
|
else:
|
||||||
await self.bot.say('Vote pour passer effectué, actuellement à [{}/3]'.format(total_votes))
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
else:
|
else:
|
||||||
await self.bot.say('Vous avez deja voté pour passer cette chanson.')
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
elif self.is_listening(voice_channel_id) == False:
|
elif self.is_listening(voice_channel_id) == False:
|
||||||
await self.bot.say("Désoler mais vous n'écouter pas le bot !")
|
print("Commande music skip lancer 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.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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
@commands.command(pass_context=True, no_pm=True)
|
#Affiche la musique actuellement lancer
|
||||||
|
@music.command(pass_context=True, no_pm=True)
|
||||||
async def playing(self, ctx):
|
async def playing(self, ctx):
|
||||||
"""Montre des informations sur la chanson jouée."""
|
|
||||||
|
|
||||||
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:
|
||||||
await self.bot.say("Rien n'est joué.")
|
print("Commande music playing lancer par: "+str(ctx.message.author)+" refuser car rien est jouer")
|
||||||
|
embed=discord.Embed(title="Music", description="Erreur", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
else:
|
else:
|
||||||
skip_count = len(state.skip_votes)
|
skip_count = len(state.skip_votes)
|
||||||
await self.bot.say('Joue actuellement {} [skips: {}/3]'.format(state.current, skip_count))
|
print("Commande music playing lancer par: "+str(ctx.message.author))
|
||||||
|
embed=discord.Embed(title="Music", description="", color=0x80ff00)
|
||||||
|
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)
|
||||||
|
await self.bot.say(embed=embed)
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
bot.add_cog(Music(bot))
|
bot.add_cog(Music(bot))
|
||||||
print('Music is loaded')
|
print('Music charger')
|
||||||
|
|
|
@ -64,3 +64,4 @@ class Reactionner:
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
bot.add_cog(Reactionner(bot))
|
bot.add_cog(Reactionner(bot))
|
||||||
|
print("Reactionner charger")
|
||||||
|
|
65
bot.py
65
bot.py
|
@ -1,20 +1,14 @@
|
||||||
import json
|
import json
|
||||||
import discord
|
import discord
|
||||||
import random
|
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
|
|
||||||
|
|
||||||
with open('config.json') as json_data_file:
|
with open('config.json') as json_data_file:
|
||||||
parameter = json.load(json_data_file)
|
parameter = json.load(json_data_file)
|
||||||
|
|
||||||
bot = commands.Bot(command_prefix=parameter['Bot']['prefix'], description=parameter['Bot']['description'])
|
bot = commands.Bot(command_prefix=parameter['Bot']['prefix'], description=parameter['Bot']['description'])
|
||||||
|
bot.remove_command("help")
|
||||||
|
|
||||||
owner = ["177393521051959306"]
|
|
||||||
|
|
||||||
def is_owner(id):
|
|
||||||
for i in range(len(owner)):
|
|
||||||
if id == owner[i]:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
#Démarrage
|
#Démarrage
|
||||||
@bot.event
|
@bot.event
|
||||||
|
@ -25,8 +19,8 @@ async def on_ready():
|
||||||
print("Démarrage de DefaultCMD")
|
print("Démarrage de DefaultCMD")
|
||||||
bot.load_extension("DefaultCMD")
|
bot.load_extension("DefaultCMD")
|
||||||
|
|
||||||
print("Démarrage de ExampleRepl")
|
print("Démarrage de Administration")
|
||||||
bot.load_extension("ExampleRepl")
|
bot.load_extension("Administration")
|
||||||
|
|
||||||
print("Démarrage de Benne_a_ordure")
|
print("Démarrage de Benne_a_ordure")
|
||||||
bot.load_extension("Benne_a_ordure")
|
bot.load_extension("Benne_a_ordure")
|
||||||
|
@ -41,47 +35,20 @@ async def on_ready():
|
||||||
bot.load_extension("Music")
|
bot.load_extension("Music")
|
||||||
|
|
||||||
print("FTW's Bot operationelle")
|
print("FTW's Bot operationelle")
|
||||||
|
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.add_field(name="Démarrage", value="FTW's Bot operationelle", inline=False)
|
||||||
channel = bot.get_channel("389209382388498445")
|
channel = bot.get_channel("389209382388498445")
|
||||||
await bot.send_message(channel, "FTW's Bot operationelle")
|
await bot.send_message(channel, embed=embed)
|
||||||
|
|
||||||
@bot.command(pass_context = True)
|
@bot.command(pass_context=True)
|
||||||
async def load(ctx, ext):
|
async def help(ctx):
|
||||||
""": Charge une extension"""
|
embed=discord.Embed(title="Music", description="Aide", color=0x80ff00)
|
||||||
if is_owner(ctx.message.author.id) == True:
|
embed.set_thumbnail(url="https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-help-128.png")
|
||||||
bot.load_extension(ext)
|
embed.add_field(name="basic", value="Pour voir les commands basique faite: ```basic```", inline=True)
|
||||||
print("Extention "+str(ext)+" charger par: "+str(ctx.message.author))
|
embed.add_field(name="Garou", value="Pour voir les commands du Garou faite: ```lg help```", inline=True)
|
||||||
await bot.say("Extension "+str(ext)+" charger")
|
embed.add_field(name="Music", value="Pour voir les commandes pour la musique faite: ```music help```", inline=True)
|
||||||
else:
|
await bot.say(embed=embed)
|
||||||
await bot.say("Désoler <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !")
|
|
||||||
print("Refue de charger: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !")
|
|
||||||
|
|
||||||
@bot.command(pass_context = True)
|
|
||||||
async def unload(ctx,ext):
|
|
||||||
""": Décharge une extension"""
|
|
||||||
if is_owner(ctx.message.author.id) == True:
|
|
||||||
bot.unload_extension(ext)
|
|
||||||
print("extention "+str(ext)+" décharger")
|
|
||||||
await bot.say("Extension "+str(ext)+" décharger")
|
|
||||||
else:
|
|
||||||
await bot.say("Désoler <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !")
|
|
||||||
print("Refue de décharger: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !")
|
|
||||||
|
|
||||||
@bot.command(pass_context = True)
|
|
||||||
async def reload(ctx,ext):
|
|
||||||
""": Recharge une extension avec ses modifications"""
|
|
||||||
if is_owner(ctx.message.author.id) == True:
|
|
||||||
bot.unload_extension(ext)
|
|
||||||
bot.load_extension(ext)
|
|
||||||
print("Extention "+str(ext)+" mis à jour par: "+str(ctx.message.author))
|
|
||||||
await bot.say("Extension "+str(ext)+" mis à jour")
|
|
||||||
else:
|
|
||||||
await bot.say("Désoler <@"+str(ctx.message.author.id)+"> mais vous n'avez pas le droit de faire ca !")
|
|
||||||
print("Refue de mettre à jour: "+str(ext)+" car "+str(ctx.message.author)+" n'a pas le droit !")
|
|
||||||
|
|
||||||
"""
|
|
||||||
@bot.event
|
|
||||||
async def on_message(msg):
|
|
||||||
print(msg.content)
|
|
||||||
"""
|
|
||||||
|
|
||||||
bot.run(parameter['Bot']['token'])
|
bot.run(parameter['Bot']['token'])
|
||||||
|
|
Reference in a new issue