コード例 #1
0
    async def army(self, ctx):
        """Spawn une armée de minis Ulians et Moth de 10 à 50 membres dévoués et sanguinaires."""
        ggr_utilities.logger(ctx, ctx.message.content)
        timeUser = self.hasUserCoolDown(ctx.author)["date"]
        if (time.time() >= timeUser):
            for u in self.saveFileCoolDown:
                if u["name"] == ctx.author.name:
                    u["date"] = time.time() + 300  #5min
            #game = discord.Game("envoyer une armée")
            #await bot.change_presence(status=discord.Status.online, activity=game)
            self.saveToFileCoolDown()

            retarmy = self.spawnArmy()
            army = retarmy[0]
            armytotmembers = retarmy[1]
            armyGold = retarmy[2]
            await ctx.send(army)
            for emojinmb in ggr_utilities.numbersToEmojis(armytotmembers):
                await ctx.message.add_reaction(emojinmb)
            if armyGold > 0:
                await ctx.send("Cette armée vous rapporte **" + str(armyGold) +
                               " WADs**")
                await ctx.message.add_reaction(ggr_emotes.WAD)
                eco.Eco.changeBallance(ctx.author, armyGold)
        else:
            await ctx.send(
                "Votre armée de saloperies n'est pas prête.\nRéessayez dans **"
                + str(
                    math.trunc(
                        self.hasUserCoolDown(ctx.author)["date"] -
                        time.time())) + "** secondes.")
            await ctx.message.add_reaction("❌")
コード例 #2
0
 async def jeanfoutre(self, ctx):
     """Affiche le jean-foutre des saloperies et son score."""
     ggr_utilities.logger(ctx, ctx.message.content)
     msg = "Le jean-foutre des saloperie est **" + self.data['worst'][
         'user'] + "** avec un score de minabke de **" + str(
             self.data['worst']['score']) + "** saloperies invoqués"
     await ctx.send(msg)
コード例 #3
0
 async def maitre(self, ctx):
     """Affiche le maître des saloperies et son record."""
     ggr_utilities.logger(ctx, ctx.message.content)
     msg = "Le maître des saloperie est **" + self.data['best'][
         'user'] + "** avec un score de **" + str(
             self.data['best']['score']) + "** saloperies invoqués"
     await ctx.send(msg)
コード例 #4
0
 async def armydory(self, ctx):
     """Affiche une belle armée de soldats dorés."""
     ggr_utilities.logger(ctx, ctx.message.content)
     armynbr = random.randint(10, 60)
     army = ""
     for x in range(0, armynbr):
         army += ggr_emotes.Saloperiedoree
     await ctx.send(army)
コード例 #5
0
ファイル: eco.py プロジェクト: guigur/longduzbot
    async def wad(self, ctx):
        """Affiche le nombre de WADs que vous disposez dans la banque des WADs"""
        ggr_utilities.logger(ctx, ctx.message.content)

        user = self.checkUserExist(ctx.author)
        userImg, guildImg = ggr_utilities.userServerIcon(ctx)
        card = certif.generateMoneyCard(userImg, guildImg, ctx,
                                        user["balance"])
        await ctx.send(file=discord.File('tmp/card_filled.png'))
コード例 #6
0
ファイル: eco.py プロジェクト: guigur/longduzbot
 def changeBallance(self, user, diff):
     self.checkUserExist(user)
     ggr_utilities.logger(None,
                          "add " + str(diff) + " wads to " + user.name)
     self.loadFromFile(self)
     for u in self.saveFile:
         if u["name"] == user.name:
             u["balance"] += diff
     self.saveToFile(self)
コード例 #7
0
ファイル: teub.py プロジェクト: guigur/longduzbot
	async def teub(self, ctx):
		"""Juste teub."""
		ggr_utilities.logger(ctx, ctx.message.content)
		if 'Tim' in message.content:
			msg = faces["Tim"] + teub
		else:
			msg = "Je ne trouve pas l'émote demandée \némotes disponibles : Tim"
			ggr_utilities.logger(ctx, "emote not found")
		await message.channel.send(msg)
コード例 #8
0
def load_extentions():
    for extension in startup_extensions:
        try:
            bot.load_extension(extension)
            ggr_utilities.logger(None, "Loaded extension " + extension)
        except Exception as e:
            exc = '{}: {}'.format(type(e).__name__, e)
            ggr_utilities.logger(
                None, "Failed to load extension " + extension + " \n" + exc)
コード例 #9
0
ファイル: ulian.py プロジェクト: guigur/longduzbot
 async def ulian(self, ctx):
     """Spawn un imposant Ulian devant vous. Serez-vous prêt à faire face ?"""
     ggr_utilities.logger(ctx, ctx.message.content)
     if "teub" in ctx.message.content:  #not working anymore
         head = ggr_emotes.teub
     else:
         head = ggr_emotes.lilinkhisface
         body = ggr_emotes.lilinkhisrightelbow + head + ggr_emotes.lilinkhisleftelbow + "\n"
         body += ggr_emotes.lilinkhisrightarm + ggr_emotes.lilinkhisbody + ggr_emotes.lilinkhisleftarm + "\n"
         body += ggr_emotes.lilinkhisrightleg + ggr_emotes.lilinkhiscrotch + ggr_emotes.lilinkhisleftleg + "\n"
         body += ggr_emotes.lilinkhisrightfoot + ggr_emotes.lilinkhisleftfoot + ggr_emotes.lilinkhislefttoes
         await ctx.message.channel.send(body)
コード例 #10
0
    def hasUserCoolDown(self, user):
        ggr_utilities.logger(None, "Check if user cool down exist.")
        self.loadFromFileCoolDown()
        for u in self.saveFileCoolDown:
            if u["name"] == user.name:
                return u
        ggr_utilities.logger(
            None, "User " + user.name +
            " not found adding him/her to cool down file")
        newUserJson = {"name": user.name, "id": user.id, "date": time.time()}

        self.saveFileCoolDown.append(newUserJson)
        self.saveToFileCoolDown()
        return newUserJson
コード例 #11
0
ファイル: eco.py プロジェクト: guigur/longduzbot
    def checkUserExist(self, user):
        ggr_utilities.logger(None, "Check if user exist.")
        self.loadFromFile(self)
        for u in self.saveFile:
            if u["name"] == user.name:
                return u
        ggr_utilities.logger(
            None, "User " + user.name +
            " not found adding him/her to the economy file")
        newUserJson = {"name": user.name, "id": user.id, "balance": 1}

        self.saveFile.append(newUserJson)
        self.saveToFile(self)
        return newUserJson
コード例 #12
0
    def loadFromFileCoolDown(self):
        filename = "army_cool_down.json"
        if os.path.exists(filename):
            mode = "r"
        else:
            mode = "w+"
            ggr_utilities.logger(None, filename + " is non existant. Creating")

        with open(filename, mode, encoding='utf-8') as json_file:
            filesize = os.path.getsize(filename)
            print(str(filesize))
            if filesize == 0:
                ggr_utilities.logger(None,
                                     filename + " is empty. Initializing")
                self.saveFileCoolDown = json.loads("[]")
            else:
                self.saveFileCoolDown = json.load(json_file)
コード例 #13
0
ファイル: Com.py プロジェクト: guigur/longduzbot
 def stop_server(self):
     ggr_utilities.logger(None, "Stopping server")
     asyncio.run_coroutine_threadsafe(bot.logout(), self.loop)
コード例 #14
0
async def on_ready():
    global timeReady
    timeReady = time.time()
    ggr_utilities.logger(
        None, "Logged in as " + bot.user.name + " " + str(bot.user.id))
コード例 #15
0
ファイル: eco.py プロジェクト: guigur/longduzbot
 def saveToFile(self):
     ggr_utilities.logger(None, "Saving to file the new balance of an user")
     with open('economy.json', 'w') as json_file:
         json.dump(self.saveFile, json_file)
コード例 #16
0
 def saveToFileCoolDown(self):
     ggr_utilities.logger(None, "Saving to file army cool down")
     with open('army_cool_down.json', 'w') as json_file:
         json.dump(self.saveFileCoolDown, json_file)
コード例 #17
0
 def saveDataToFile(self):
     ggr_utilities.logger(None, "Saving data")
     with open('data.json', 'w') as json_file:
         json.dump(self.data, json_file)
コード例 #18
0
    async def megaarmy(self, ctx):
        """Spawn une imposante armée de minis Ulians et Moth sur plusieurs lignes (5 à 20). Cette commande ne peut être utilisé qu'une fois toutes les 20 minutes."""
        ggr_utilities.logger(ctx, ctx.message.content)
        armytotmembers = 0
        armyGold = 0
        if ctx.author.name != self.data['best']['user']:
            if time.time() > self.timeReady:
                #game = discord.Game("envoyer une megaarmée")
                #await bot.change_presence(status=discord.Status.online, activity=game)

                ggr_utilities.logger(
                    None, "User " + ctx.author.name + " summoned a megaarmy")
                self.timeReady = time.time() + random.randint(
                    900, 1500)  #entre 15 et 25 min

                armyLines = random.randint(5, 20)
                for x in range(0, armyLines):
                    retarmy = self.spawnArmy()
                    army = retarmy[0]
                    armytotmembers += retarmy[1]
                    armyGold += retarmy[2]

                    await ctx.send(army)
                for emojinmb in ggr_utilities.numbersToEmojis(armyLines):
                    await ctx.message.add_reaction(emojinmb)
                ggr_utilities.logger(
                    None, "User " + ctx.author.name + " summoned " +
                    str(armytotmembers) + " saloperies")
                await ctx.send("Votre armée compte **" + str(armytotmembers) +
                               "** saloperies. Beau travail.")
                if armyGold > 0:
                    await ctx.send("Cette armée vous rapporte **" +
                                   str(armyGold) + " WADs**")
                    await ctx.message.add_reaction(ggr_emotes.WAD)
                    eco.Eco.changeBallance(ctx.author, armyGold)
                if armytotmembers > self.data['best']['score']:
                    ggr_utilities.logger(
                        None, "User " + ctx.author.name +
                        " is now the master of saloperies")
                    user = ctx.author
                    #TODO: Remove the old master
                    #oldmaitre = user.guild.members() #199222032787963904) #user = client.get_user()
                    #await user.remove_roles(discord.utils.get(user.guild.roles, name="Maître des Saloperies")) #remove the role

                    self.data['best']['score'] = armytotmembers
                    self.data['best']['user'] = ctx.author.name
                    self.data['best']['userid'] = ctx.author.id
                    self.data['best']['date'] = datetime.datetime.timestamp(
                        datetime.datetime.now())

                    if armytotmembers < self.data['worst'][
                            'score']:  #if the worst has not been choosen yetm we lower the minimum to the best score yet
                        self.data['worst']['score'] = armytotmembers

                    self.saveDataToFile()
                    await ctx.send(
                        "Félicitations " + user.mention +
                        " vous êtes le nouveau **Maître des Saloperies**")
                    url = ctx.author.avatar_url_as(format='png')
                    picture = certif.generateCertifMaster(
                        requests.get(url, stream=True).raw, ctx.author.name,
                        armytotmembers)
                    await ctx.send(
                        file=discord.File('tmp/certif_best_filled.png'))
                    await ctx.send(
                        "Ce certificat prouve votre titre de **Maître des Saloperies**\nN'hésitez pas à mentionner ce titre prestigieux sur votre CV."
                    )
                    try:
                        await user.add_roles(
                            discord.utils.get(user.guild.roles,
                                              name="Maître des Saloperies"))
                    except discord.Forbidden:
                        pass
                elif armytotmembers < self.data['worst']['score']:
                    ggr_utilities.logger(
                        None, "User " + ctx.author.name +
                        " is now the good-for-nothing of saloperies")
                    user = ctx.author

                    self.data['worst']['score'] = armytotmembers
                    self.data['worst']['user'] = ctx.author.name
                    self.data['worst']['userid'] = ctx.author.id
                    self.data['worst']['date'] = datetime.datetime.timestamp(
                        datetime.datetime.now())

                    self.saveDataToFile()
                    await ctx.send(
                        "Félicitations " + user.mention +
                        " vous êtes le nouveau **Jean-foutre des Saloperies**")
                    url = ctx.author.avatar_url_as(format='png')
                    picture = certif.generateCertifBitch(
                        requests.get(url, stream=True).raw, ctx.author.name,
                        armytotmembers)
                    await ctx.send(
                        file=discord.File('tmp/certif_worst_filled.png'))
                    await ctx.send(
                        "Ce certificat prouve votre titre de **Jean-foutre des Saloperies**\nVous êtes un bon à rien, un cloporte, un ectoplasme à roulettes. Bref, pas ouf quoi."
                    )
                else:
                    #TODO: mettre differentes reactions en fonction du score
                    await ctx.send("Bien mais il y a mieux")
            else:
                await ctx.send(
                    "La méga armée de saloperies n'est pas prête.\nRéessayez dans quelques minutes."
                )
                await ctx.message.add_reaction("❌")
        else:
            await ctx.send(
                "Un maître n'a pas besoin de prouver sa valeur.\nLa votre est de **"
                + str(self.data['best']['score']) + "** Saloperies.")
コード例 #19
0
ファイル: Com.py プロジェクト: guigur/longduzbot
 def do_restart(self, arg):
     'Restart the server'
     ggr_utilities.logger(None, "Restarting server")
     os.execl(sys.executable, os.path.abspath(__file__), *sys.argv)
コード例 #20
0
ファイル: eco.py プロジェクト: guigur/longduzbot
 async def buy(self, ctx):
     """La boutique !"""
     ggr_utilities.logger(ctx, ctx.message.content)
     user = self.checkUserExist(ctx.author)