Example #1
0
 async def membersadvanced(self, ctx, *, settings):
     settings = settings.split(" ")
     if len(settings) % 2 != 0:
         return await ctx.send(embed=badEmbed(
             "Looks like you entered the settings incorrectly."))
     people = []
     for i in range(len(settings)):
         if i % 2 != 0:
             continue
         role = None
         for r in ctx.guild.roles:
             if r.name.lower().startswith(settings[i + 1]):
                 role = r
         if role is None:
             return await ctx.send(embed=badEmbed(
                 f"{settings[i + 1]} doesn't look like a valid role."))
         if settings[i] == "-r":
             for m in ctx.guild.members:
                 if role in m.roles:
                     if m in people:
                         people.remove(m)
         elif settings[i] == "-a":
             for m in ctx.guild.members:
                 if role in m.roles:
                     people.append(m)
     msg = ""
     for p in people:
         msg = msg + f"{str(p)}\n"
     await ctx.send(embed=discord.Embed(
         colour=discord.Colour.orange(), description=msg, title="Members:"))
Example #2
0
    async def blacklist_check(self, ctx, tag: str):
        """
        Check whether a person is blacklisted
        """
        await ctx.trigger_typing()

        if ctx.guild.id == 724202847822151680 and ctx.author.top_role < ctx.guild.get_role(822458522322599956):
            return await ctx.send("You can't use this command.")
        if ctx.guild.id != 724202847822151680 and not ctx.author.guild_permissions.kick_members:
            return await ctx.send("You can't use this command.")

        tag = tag.lower().replace('o', '0')
        if tag.startswith("#"):
            tag = tag.strip('#')

        blacklisted = False
        guild = ""
        name = ""
        reason = ""
        servers = await self.config.all_guilds()
        for server in servers:
            serverobj = self.bot.get_guild(server)
            if serverobj is not None:
                try:
                    name = await self.config.guild(serverobj).blacklisted.get_raw(tag, "ign")
                    reason = await self.config.guild(serverobj).blacklisted.get_raw(tag, "reason")
                    guild = serverobj.name
                    blacklisted = True
                except KeyError:
                    continue

        if blacklisted:
            await ctx.send(embed=goodEmbed(f"{name} is blacklisted in {guild} ({reason})!"))
        else:
            await ctx.send(embed=badEmbed(f"Looks like this tag isn't blacklisted anywhere!"))
Example #3
0
    async def blacklist_remove(self, ctx, tag: str):
        """
        Remove a person from blacklist
        """
        await ctx.trigger_typing()

        if ctx.guild.id == 724202847822151680 and not ctx.author.guild_permissions.administrator:
            return await ctx.send("You can't use this command.")
        if ctx.guild.id != 724202847822151680 and not ctx.author.guild_permissions.kick_members:
            return await ctx.send("You can't use this command.")

        tag = tag.lower().replace('o', '0')
        if tag.startswith("#"):
            tag = tag.strip('#')

        try:
            ign = await self.config.guild(ctx.guild
                                          ).blacklisted.get_raw(tag, "ign")
            await self.config.guild(ctx.guild).blacklisted.clear_raw(tag)
            await ctx.send(embed=goodEmbed(
                f"{ign} was successfully removed from this server's blacklist!"
            ))
        except KeyError:
            await ctx.send(
                embed=badEmbed(f"#{tag} isn't blacklisted in this server!"))
Example #4
0
    async def blacklist_add(self, ctx, tag: str, *, reason: str = ""):
        """
        Add a player to blacklist
        """
        await ctx.trigger_typing()

        if ctx.guild.id == 724202847822151680 and not ctx.author.guild_permissions.administrator:
            return await ctx.send("You can't use this command.")
        if ctx.guild.id != 724202847822151680 and not ctx.author.guild_permissions.kick_members:
            return await ctx.send("You can't use this command.")

        tag = tag.lower().replace('o', '0')
        if tag.startswith("#"):
            tag = tag.strip('#')

        if tag in (await self.config.guild(ctx.guild).blacklisted()).keys():
            return await ctx.send(
                embed=badEmbed("This person is already blacklisted!"))

        try:
            player = await self.ofcbsapi.get_player(tag)
            player_in_club = "name" in player.raw_data["club"]
            if player_in_club:
                clubname = player.club.name
            else:
                clubname = "No club"
            result = {"ign": player.name, "club": clubname, "reason": reason}
            await self.config.guild(ctx.guild
                                    ).blacklisted.set_raw(tag, value=result)
            await ctx.send(
                embed=goodEmbed(f"{player.name} was successfully blacklisted!")
            )

        except brawlstats.errors.NotFoundError as e:
            return await ctx.send(
                embed=badEmbed("No player with this tag found, try again!"))

        except brawlstats.errors.RequestError as e:
            return await ctx.send(embed=badEmbed(
                f"BS API is offline, please try again later! ({str(e)})"))

        except Exception as e:
            return await ctx.send(
                f"**Something went wrong, please send a personal message to LA Modmail bot or try again!** ({e})"
            )
Example #5
0
    async def coc_clan_remove(self, ctx, key: str):
        await ctx.trigger_typing()
        key = key.lower()

        try:
            name = await self.config.guild(ctx.guild).clans.get_raw(key, "name")
            await self.config.guild(ctx.guild).clans.clear_raw(key)
            await ctx.send(embed=goodEmbed(f"{name} was successfully removed from this server!"))
        except KeyError:
            await ctx.send(embed=badEmbed(f"{key.title()} isn't saved club!"))
Example #6
0
    async def setrole(self, ctx, key, role: discord.Role = None):
        await ctx.trigger_typing()
        key = key.lower()

        try:
            await self.config.guild(ctx.guild).roles.set_raw(
                key, value=role.id if role is not None else None)
            name = role.name if role is not None else "None"
            await ctx.send(embed=goodEmbed(f"Value {key} set to {name}."))
        except KeyError:
            await ctx.send(embed=badEmbed(
                f"{key.title()} isn't a valid keyword in this server."))
Example #7
0
    async def coc_clan_add(self, ctx, key: str, tag: str):
        await ctx.trigger_typing()

        if key in (await self.config.guild(ctx.guild).clans()).keys():
            return await ctx.send(embed=badEmbed("This clan is already saved!"))

        try:
            clan = self.apirequest("clans/%23" + tag.replace("#", ""))
            result = {
                "name": clan['name'],
                "nick": key.title(),
                "tag": clan['tag'].replace("#", ""),
                "lastMemberCount": clan['members'],
                "lastRequirement": clan['requiredTrophies'],
                "lastPoints": clan['clanPoints'],
                "lastVersusPoints": clan['clanVersusPoints'],
                "info": ""
            }
            key = key.lower()
            await self.config.guild(ctx.guild).clans.set_raw(key, value=result)
            await ctx.send(embed=goodEmbed(f"{clan['name']} was successfully saved in this server!"))

        except Exception as e:
            return await ctx.send(f"**Something went wrong: {str(e)}.**")
Example #8
0
    async def newcomer(self, ctx, tag, member: discord.Member = None):
        staff = ctx.guild.get_role(await
                                   self.config.guild(ctx.guild).roles.staff())
        language = await self.config.guild(ctx.guild).roles.language()

        if staff not in ctx.author.roles and not ctx.author.guild_permissions.kick_members and ctx.author.id != 359131399132807178 and ctx.guild.id != 460550486257565697:
            if language == 'en':
                return await ctx.send("You can't use this command.")
            elif language == 'es':
                return await ctx.send("No puedes usar este comando.")

        await ctx.trigger_typing()

        roles_config = await self.config.guild(ctx.guild).roles()
        family = ctx.guild.get_role(roles_config['family'])
        guest = ctx.guild.get_role(roles_config['guest'])
        newcomer = ctx.guild.get_role(roles_config['remove'])
        brawlstars = ctx.guild.get_role(roles_config['bs'])
        vp = ctx.guild.get_role(roles_config['vp'])
        pres = ctx.guild.get_role(roles_config['pres'])
        otherclubs = ctx.guild.get_role(roles_config['otherclubs'])
        leader = ctx.guild.get_role(roles_config['leader'])
        mmber = ctx.guild.get_role(roles_config['member'])
        memberclub = ctx.guild.get_role(roles_config['memberclub'])
        senior = ctx.guild.get_role(roles_config['senior'])

        if member is not None:
            if newcomer in ctx.author.roles:
                return
        elif member is None:
            member = ctx.author

        if ctx.guild.id == 460550486257565697 and member == ctx.author:
            if newcomer not in member.roles:
                return await ctx.send("No puedes usar este comando.")

        tag = tag.lower().replace('O', '0')
        if tag.startswith("#"):
            tag = tag.strip('#')

        msg = ""
        try:
            player = await self.ofcbsapi.get_player(tag)
            await self.bsconfig.user(member).tag.set(tag.replace("#", ""))
            if language == 'en':
                cl_name = f"<:bsband:600741378497970177> {player.club.name}" if "name" in player.raw_data[
                    "club"] else "<:noclub:661285120287834122> No club"
            elif language == 'es':
                cl_name = f"<:bsband:600741378497970177> {player.club.name}" if "name" in player.raw_data[
                    "club"] else "<:noclub:661285120287834122> Sin club"
            msg += f"**{player.name}** <:bstrophy:552558722770141204> {player.trophies} {cl_name}\n"
        except brawlstats.errors.NotFoundError:
            if language == 'en':
                return await ctx.send(
                    embed=badEmbed("No player with this tag found!"))
            elif language == 'es':
                return await ctx.send(embed=badEmbed(
                    "¡No se ha encontrado ningún jugador con este tag!"))

        except brawlstats.errors.RequestError as e:
            if language == 'en':
                return await ctx.send(embed=badEmbed(
                    f"BS API is offline, please try again later! ({str(e)})"))
            elif langauage == 'es':
                return await ctx.send(embed=badEmbed(
                    f"BS API está fuera de línea, por favor inténtalo de nuevo más tarde! ({str(e)})"
                ))

        except Exception as e:
            if language == 'en':
                return await ctx.send(
                    "**Something went wrong, please send a personal message to LA Modmail bot or try again!****"
                )
            elif language == 'es':
                return await ctx.send(
                    "**¡Algo ha ido mal, por favor envía un mensaje personal al bot LA Modmail o inténtalo de nuevo!**"
                )

        nick = f"{player.name}"
        try:
            await member.edit(nick=nick[:31])
            if language == 'en':
                msg += f"New nickname: **{nick[:31]}**\n"
            elif language == 'es':
                msg += f"Nuevo apodo: **{nick[:31]}**\n"
        except discord.Forbidden:
            if language == 'en':
                msg += f"I dont have permission to change nickname of this user!\n"
            elif language == 'es':
                msg += f"¡No tengo permisos para cambiar el apodo de este usuario!\n"
        except Exception as e:
            if language == 'en':
                return await ctx.send(embed=discord.Embed(
                    colour=discord.Colour.blue(),
                    description=f"Something went wrong: {str(e)}"))
            elif language == 'es':
                return await ctx.send(embed=discord.Embed(
                    colour=discord.Colour.blue(),
                    description=f"¡Algo ha ido mal: {str(e)}"))

        player_in_club = "name" in player.raw_data["club"]

        member_role_expected = None
        tags = []
        localtags = []
        if player_in_club:
            clubs = await self.bsconfig.guild(ctx.guild).clubs()
            labs = self.bot.get_guild(401883208511389716)
            officialclubs = await self.bsconfig.guild(labs).clubs()
            for key in clubs.keys():
                if "#" + clubs[key]["tag"] == player.club.tag:
                    member_role_expected = ctx.guild.get_role(
                        clubs[key]["role"])
                localtags.append("#" + clubs[key]["tag"])
            for ofkey in officialclubs.keys():
                tags.append("#" + officialclubs[ofkey]["tag"])

        msg += await self.removeroleifpresent(member, newcomer)

        if not player_in_club:
            msg += await self.addroleifnotpresent(member, guest, brawlstars)

        if player_in_club and player.club.tag not in tags:
            msg += await self.addroleifnotpresent(member, guest, brawlstars)

        if player_in_club and player.club.tag in tags and player.club.tag not in localtags:
            if ctx.guild.id == 460550486257565697 or ctx.guild.id == 593732431551660063:
                msg += await self.addroleifnotpresent(member, otherclubs,
                                                      family)
            else:
                msg += await self.addroleifnotpresent(member, otherclubs,
                                                      mmber, brawlstars)

        if player_in_club and player.club.tag in localtags:
            if member_role_expected is None:
                msg += await self.addroleifnotpresent(member, guest,
                                                      brawlstars)
                if language == 'en':
                    msg += f"Role for the club {player.club.name} not found.\n"
                elif language == 'es':
                    msg += f"No se ha encontrado un rol para el club {player.club.name}.\n"
                return await ctx.send(embed=discord.Embed(
                    colour=discord.Colour.blue(), description=msg))
            msg += await self.addroleifnotpresent(member, mmber, family,
                                                  brawlstars,
                                                  member_role_expected)
            try:
                player_club = await self.ofcbsapi.get_club(player.club.tag)
                for mem in player_club.members:
                    if mem.tag == player.raw_data['tag']:
                        if mem.role.lower() == 'vicepresident':
                            msg += await self.addroleifnotpresent(
                                member, vp, leader)
                        elif mem.role.lower() == 'president':
                            msg += await self.addroleifnotpresent(
                                member, pres, leader)
                        elif mem.role.lower() == 'senior':
                            msg += await self.addroleifnotpresent(
                                member, senior)
                        elif mem.role.lower() == 'member':
                            msg += await self.addroleifnotpresent(
                                member, memberclub)
                        break
            except brawlstats.errors.RequestError:
                msg += "<:offline:642094554019004416> Couldn't retrieve player's club role."
        if msg != "":
            await ctx.send(embed=discord.Embed(colour=discord.Colour.blue(),
                                               description=msg))
Example #9
0
    async def blacklisted(self, ctx):
        """View all blacklisted people"""
        await ctx.trigger_typing()

        if ctx.guild.id == 724202847822151680 and ctx.author.top_role < ctx.guild.get_role(
                822458522322599956):
            return await ctx.send("You can't use this command.")
        if ctx.guild.id != 724202847822151680 and not ctx.author.guild_permissions.kick_members:
            return await ctx.send("You can't use this command.")

        if len((await self.config.guild(ctx.guild).blacklisted()).keys()) < 1:
            return await ctx.send(
                embed=badEmbed(f"This server doesn't have anyone blacklisted!")
            )

        players = []
        keys = (await self.config.guild(ctx.guild).blacklisted()).keys()
        errored = ""
        for key in keys:
            try:
                player = await self.ofcbsapi.get_player(key.replace("o", "0"))
                players.append(player)
                await asyncio.sleep(0.04)
            except brawlstats.errors.RequestError:
                errored += f"{key}\n"
        if errored != "":
            await ctx.send(embed=badEmbed(
                f"BS API Error - some players aren't displayed!\nErrors in following tags:\n{errored}"
            ))

        msg = ""
        alertembed = False
        messages = []
        for plr in players:
            alert = False
            key = ""
            clubname = ""
            for k in (await self.config.guild(ctx.guild).blacklisted()).keys():
                if plr.tag.replace("#", "").lower() == k:
                    key = k

            player_in_club = "name" in plr.raw_data["club"]
            if player_in_club:
                clubname = plr.club.name
            else:
                clubname = "No club"

            await self.config.guild(ctx.guild
                                    ).blacklisted.set_raw(key,
                                                          'ign',
                                                          value=plr.name)
            await self.config.guild(ctx.guild
                                    ).blacklisted.set_raw(key,
                                                          'club',
                                                          value=clubname)

            clubs = []
            for keey in (await
                         self.get_bs_config().guild(ctx.guild).clubs()).keys():
                club = await self.get_bs_config().guild(
                    ctx.guild).clubs.get_raw(keey, "tag")
                clubs.append(club)

            if player_in_club:
                if plr.club.tag.strip("#") in clubs:
                    alert = True
                    alertembed = True

            keyforembed = "#" + key.upper()

            if len(msg) > 1800:
                messages.append(msg)
                msg = ""

            reason = await self.config.guild(ctx.guild
                                             ).blacklisted.get_raw(key,
                                                                   "reason",
                                                                   default="")
            if alert:
                msg += f"--->{plr.name}({keyforembed}) <:bsband:600741378497970177> **{clubname}** Reason: {reason}<---\n"
            if not alert:
                msg += f"{plr.name}({keyforembed}) <:bsband:600741378497970177> **{clubname}** Reason: {reason}\n"

        if len(msg) > 0:
            messages.append(msg)

        for m in messages:
            if m == m[0]:
                if alertembed:
                    await ctx.send(
                        embed=discord.Embed(color=discord.Colour.red(),
                                            description=m,
                                            title="Blacklist"))
                elif not alertembed:
                    await ctx.send(
                        embed=discord.Embed(color=discord.Colour.green(),
                                            description=m,
                                            title="Blacklist"))
            else:
                if alertembed:
                    await ctx.send(embed=discord.Embed(
                        color=discord.Colour.red(), description=m))
                elif not alertembed:
                    await ctx.send(embed=discord.Embed(
                        color=discord.Colour.green(), description=m))
Example #10
0
    async def achievements(self,
                           ctx,
                           *,
                           member: Union[discord.Member, str] = None):
        """Check yours or other person's achievements"""
        if ctx.guild.id != 401883208511389716:
            return await ctx.send(embed=badEmbed("Can't use this here, sorry.")
                                  )

        await ctx.trigger_typing()

        member = ctx.author if member is None else member

        if not isinstance(member, discord.Member):
            try:
                member = self.bot.get_user(int(member))
            except ValueError:
                member = discord.utils.get(ctx.guild.members, name=member)

        roles = await self.checkforroles(member)
        if roles != "":
            rembed = discord.Embed(color=discord.Colour.green(),
                                   description=f"**{roles}**")
            await ctx.send(embed=rembed)

        aembed = discord.Embed(color=discord.Colour.blue())
        aembed.set_author(icon_url=member.avatar_url,
                          name=f"{member.display_name}'s achievements")
        aembed.set_thumbnail(
            url=
            "https://cdn.discordapp.com/attachments/472117791604998156/736896897872035960/0a00e865c445d42dfb9f64bedfab8cf8.png"
        )

        gg = ""
        ggcount = 0
        if await self.config.user(member).carrier():
            ggcount = ggcount + 1
            gg = gg + "Carrier\n"
        if await self.config.user(member).teamwork():
            ggcount = ggcount + 1
            gg = gg + "Teamwork\n"
        if await self.config.user(member).gthief():
            ggcount = ggcount + 1
            gg = gg + "Gem Thief\n"
        if gg != "":
            aembed.add_field(
                name=f"<:GemGrab:729650153388114002> Gem Grab ({ggcount}/3)",
                value=gg,
                inline=False)

        bounty = ""
        bountycount = 0
        if await self.config.user(member).assassin():
            bountycount = bountycount + 1
            bounty = bounty + "Assassin\n"
        if await self.config.user(member).massacre():
            bountycount = bountycount + 1
            bounty = bounty + "Massacre\n"
        if await self.config.user(member).bounty():
            bountycount = bountycount + 1
            bounty = bounty + "Bounty Hunter\n"
        if bounty != "":
            aembed.add_field(
                name=f"<:Bounty:729650154638016532> Bounty ({bountycount}/3)",
                value=bounty,
                inline=False)

        heist = ""
        heistcount = 0
        if await self.config.user(member).thief():
            heistcount = heistcount + 1
            heist = heist + "Thief\n"
        if await self.config.user(member).close():
            heistcount = heistcount + 1
            heist = heist + "Close Call\n"
        if await self.config.user(member).guardian():
            heistcount = heistcount + 1
            heist = heist + "Guardian\n"
        if await self.config.user(member).deadlock():
            heistcount = heistcount + 1
            heist = heist + "Deadlock\n"
        if heist != "":
            aembed.add_field(
                name=f"<:Heist:729650154139025449> Heist ({heistcount}/4)",
                value=heist,
                inline=False)

        bb = ""
        bbcount = 0
        if await self.config.user(member).turbo():
            bbcount = bbcount + 1
            bb = bb + "Turbo\n"
        if await self.config.user(member).pro():
            bbcount = bbcount + 1
            bb = bb + "Pro Ball\n"
        if bb != "":
            aembed.add_field(
                name=
                f"<:BrawlBall:729650154919034882> Brawl Ball ({bbcount}/2)",
                value=bb,
                inline=False)

        siege = ""
        siegecount = 0
        if await self.config.user(member).stale():
            siegecount = siegecount + 1
            siege = siege + "Stalemate\n"
        if await self.config.user(member).op():
            siegecount = siegecount + 1
            siege = siege + "OP Bot\n"
        if await self.config.user(member).clutch():
            siegecount = siegecount + 1
            siege = siege + "Clutch\n"
        if siege != "":
            aembed.add_field(
                name=f"<:Siege:729650155673878558> Siege ({siegecount}/3)",
                value=siege,
                inline=False)

        hz = ""
        hzcount = 0
        if await self.config.user(member).nailb():
            hzcount = hzcount + 1
            hz = hz + "Nail Biter\n"
        if await self.config.user(member).zoned():
            hzcount = hzcount + 1
            hz = hz + "Zoned Out\n"
        if await self.config.user(member).domination():
            hzcount = hzcount + 1
            hz = hz + "Domination\n"
        if hz != "":
            aembed.add_field(
                name=f"<:HotZone:729650153723789413> Hot Zone ({hzcount}/3)",
                value=hz,
                inline=False)

        ss = ""
        sscount = 0
        if await self.config.user(member).trident():
            sscount = sscount + 1
            ss = ss + "Trident\n"
        if await self.config.user(member).over():
            sscount = sscount + 1
            ss = ss + "Overload\n"
        if await self.config.user(member).survivalist():
            sscount = sscount + 1
            ss = ss + "Survivalist\n"
        if await self.config.user(member).after():
            sscount = sscount + 1
            ss = ss + "Afterlife\n"
        if ss != "":
            aembed.add_field(
                name=
                f"<:Showdown:729650153669132359> Solo Showdown ({sscount}/4)",
                value=ss,
                inline=False)

        ds = ""
        dscount = 0
        if await self.config.user(member).pinch():
            dscount = dscount + 1
            ds = ds + "Pinched\n"
        if await self.config.user(member).dynamic():
            dscount = dscount + 1
            ds = ds + "Dynamic Duo\n"
        if ds != "":
            aembed.add_field(
                name=
                f"<:DuoShowdown:729650154092625970> Duo Showdown ({dscount}/2)",
                value=ds,
                inline=False)

        events = ""
        eventscount = 0
        if await self.config.user(member).shut():
            eventscount = eventscount + 1
            events = events + "Shutdown\n"
        if await self.config.user(member).robo():
            eventscount = eventscount + 1
            events = events + "Robo Destroyer\n"
        if await self.config.user(member).defender():
            eventscount = eventscount + 1
            events = events + "Defender\n"
        if await self.config.user(member).city():
            eventscount = eventscount + 1
            events = events + "City Protector\n"
        if events != "":
            aembed.add_field(
                name=
                f"<:RoboRumble:729650158106574898> Events ({eventscount}/4)",
                value=events,
                inline=False)

        misc = ""
        misccount = 0
        if await self.config.user(member).draw():
            misccount = misccount + 1
            misc = misc + "Draw Star\n"
        if await self.config.user(member).max():
            misccount = misccount + 1
            misc = misc + "Max Power\n"
        if await self.config.user(member).brawlm():
            misccount = misccount + 1
            misc = misc + "Brawl Master\n"
        if await self.config.user(member).brawll():
            misccount = misccount + 1
            misc = misc + "Brawl Legend\n"
        if await self.config.user(member).portrait():
            misccount = misccount + 1
            misc = misc + "Portrait OG\n"
        if await self.config.user(member).landscape():
            misccount = misccount + 1
            misc = misc + "Landscape OG\n"
        if await self.config.user(member).globalog():
            misccount = misccount + 1
            misc = misc + "Global OG\n"
        if await self.config.user(member).bling():
            misccount = misccount + 1
            misc = misc + "Bling\n"
        if await self.config.user(member).shiny():
            misccount = misccount + 1
            misc = misc + "Shiny Looks\n"
        if await self.config.user(member).celeb():
            misccount = misccount + 1
            misc = misc + "Celebrity\n"
        if await self.config.user(member).beast():
            misccount = misccount + 1
            misc = misc + "Beast Brawler\n"
        if await self.config.user(member).god():
            misccount = misccount + 1
            misc = misc + "God Brawler\n"
        if await self.config.user(member).divine():
            misccount = misccount + 1
            misc = misc + "Divine Brawler\n"
        if misc != "":
            aembed.add_field(
                name=
                f"<:LoneStar:729650156491767849> Miscellaneous ({misccount}/13)",
                value=misc,
                inline=False)

        exp = ""
        if await self.config.user(member).expa():
            exp = exp + "Exp Amateur\n"
        elif await self.config.user(member).expp():
            exp = exp + "Exp Pro\n"
        elif await self.config.user(member).expg():
            exp = exp + "Exp God\n"
        if exp != "":
            aembed.add_field(
                name="<:exp:614517287809974405> Experience Levels",
                value=exp,
                inline=False)

        troph = ""
        if await self.config.user(member).trophya():
            troph = troph + "Trophy Amateur\n"
        elif await self.config.user(member).trophyp():
            troph = troph + "Trophy Pro\n"
        elif await self.config.user(member).trophyg():
            troph = troph + "Trophy God\n"
        if troph != "":
            aembed.add_field(name="<:bstrophy:552558722770141204> Trophies",
                             value=troph,
                             inline=False)

        tvt = ""
        if await self.config.user(member).trioa():
            tvt = tvt + "3v3 Amateur\n"
        elif await self.config.user(member).triop():
            tvt = tvt + "3v3 Pro\n"
        elif await self.config.user(member).triog():
            tvt = tvt + "3v3 God\n"
        if tvt != "":
            aembed.add_field(name="<:3v3:754367572048216094> 3v3 Wins",
                             value=tvt,
                             inline=False)

        solo = ""
        if await self.config.user(member).soloa():
            solo = solo + "Solo Amateur\n"
        elif await self.config.user(member).solop():
            solo = solo + "Solo Pro\n"
        elif await self.config.user(member).solog():
            solo = solo + "Solo God\n"
        if solo != "":
            aembed.add_field(
                name="<:Showdown:729650153669132359> Solo Showdown",
                value=solo,
                inline=False)

        duo = ""
        if await self.config.user(member).duoa():
            duo = duo + "Duo Amateur\n"
        elif await self.config.user(member).duop():
            duo = duo + "Duo Pro\n"
        elif await self.config.user(member).duog():
            duo = duo + "Duo God\n"
        if duo != "":
            aembed.add_field(
                name="<:DuoShowdown:729650154092625970> Duo Showdown",
                value=duo,
                inline=False)

        pp = ""
        if await self.config.user(member).pla():
            pp = pp + "Power League Amateur\n"
        elif await self.config.user(member).plp():
            pp = pp + "Power League Pro\n"
        elif await self.config.user(member).plg():
            pp = pp + "Power League God\n"
        if pp != "":
            aembed.add_field(name="<:pl:844147379561299988> Power League",
                             value=pp,
                             inline=False)

        return await ctx.send(embed=aembed)
Example #11
0
    async def logros(self, ctx, *, member: Union[discord.Member, str] = None):
        """Check yours or other person's achievements"""
        if ctx.guild.id != 460550486257565697:
            return await ctx.send(
                embed=badEmbed("No puedo usar esto aqui, lo siento."))

        await ctx.trigger_typing()

        member = ctx.author if member is None else member

        if not isinstance(member, discord.Member):
            try:
                member = self.bot.get_user(int(member))
            except ValueError:
                member = discord.utils.get(ctx.guild.members, name=member)

        aembed = discord.Embed(color=discord.Colour.blue(),
                               title="Achievements",
                               description=f"{str(member)}'s achievements:")
        aembed.set_thumbnail(
            url=
            "https://cdn.discordapp.com/attachments/472117791604998156/736896897872035960/0a00e865c445d42dfb9f64bedfab8cf8.png"
        )

        gg = ""
        if await self.config.user(member).trabajo():
            gg = gg + "Trabajo en equipo\n"
        if await self.config.user(member).carr():
            gg = gg + "Carrito\n"
        if await self.config.user(member).joy():
            gg = gg + "Joyería Exprés\n"
        if gg != "":
            aembed.add_field(name="Gem Grab", value=gg, inline=False)

        bounty = ""
        if await self.config.user(member).astr():
            bounty = bounty + "Astrónomo\n"
        if await self.config.user(member).mas():
            bounty = bounty + "Masacre\n"
        if await self.config.user(member).caza():
            bounty = bounty + "Caza Estrellas\n"
        if await self.config.user(member).ast():
            bounty = bounty + "Astronomía Básica\n"
        if await self.config.user(member).calc():
            bounty = bounty + "Calculado\n"
        if bounty != "":
            aembed.add_field(name="Bounty", value=bounty, inline=False)

        heist = ""
        if await self.config.user(member).into():
            heist = heist + "Intocable\n"
        if await self.config.user(member).alli():
            heist = heist + "Al Límite\n"
        if await self.config.user(member).conj():
            heist = heist + "Conjuro Espejo\n"
        if await self.config.user(member).lad():
            heist = heist + "Ladrón\n"
        if await self.config.user(member).apa():
            heist = heist + "A Palazos\n"
        if heist != "":
            aembed.add_field(name="Heist", value=heist, inline=False)

        bb = ""
        if await self.config.user(member).goleador():
            bb = bb + "Goleador Veloz\n"
        if await self.config.user(member).partida():
            bb = bb + "Partida Veloz\n"
        if await self.config.user(member).ul():
            bb = bb + "Último Empujón\n"
        if bb != "":
            aembed.add_field(name="Brawl Ball", value=bb, inline=False)

        siege = ""
        if await self.config.user(member).pro():
            siege = siege + "Protector\n"
        if await self.config.user(member).ator():
            siege = siege + "Atornillado\n"
        if await self.config.user(member).muer():
            siege = siege + "Muerte súbita\n"
        if await self.config.user(member).destor():
            siege = siege + "Destornillador Veloz\n"
        if await self.config.user(member).chata():
            siege = siege + "Chatarrero\n"
        if siege != "":
            aembed.add_field(name="Siege", value=siege, inline=False)

        hz = ""
        if await self.config.user(member).control():
            hz = hz + "Control Total\n"
        if await self.config.user(member).igua():
            hz = hz + "Igualados\n"
        if await self.config.user(member).por():
            hz = hz + "Por Los Pelos\n"
        if await self.config.user(member).domi():
            hz = hz + "Dominación\n"
        if hz != "":
            aembed.add_field(name="Hot Zone", value=hz, inline=False)

        ss = ""
        if await self.config.user(member).tri():
            ss = ss + "Tridente\n"
        if await self.config.user(member).dina():
            ss = ss + "Dinámico\n"
        if await self.config.user(member).hum():
            ss = ss + "Humildad\n"
        if await self.config.user(member).vict():
            ss = ss + "Victoria Invertida\n"
        if ss != "":
            aembed.add_field(name="Solo Showdown", value=ss, inline=False)

        ds = ""
        if await self.config.user(member).duoe():
            ds = ds + "Dúo estelar\n"
        if await self.config.user(member).huma():
            ds = ds + "Humildad a pares\n"
        if ds != "":
            aembed.add_field(name="Duo Showdown", value=ds, inline=False)

        events = ""
        if await self.config.user(member).destr():
            events = events + "Destructor de Robots\n"
        if await self.config.user(member).mata():
            events = events + "Mata Gigantes\n"
        if await self.config.user(member).ases():
            events = events + "Asesino\n"
        if await self.config.user(member).cazam():
            events = events + "Caza Monstruos\n"
        if events != "":
            aembed.add_field(name="Special Events", value=events, inline=False)

        misc = ""
        if await self.config.user(member).juga():
            misc = misc + "Jugador Vip\n"
        if await self.config.user(member).estr():
            misc = misc + "Estrella\n"
        if await self.config.user(member).famo():
            misc = misc + "Famoso\n"
        if await self.config.user(member).maxe():
            misc = misc + "Maxeado\n"
        if await self.config.user(member).braw():
            misc = misc + "Brawler Dios\n"
        if await self.config.user(member).aho():
            misc = misc + "Ahorrador\n"
        if await self.config.user(member).empate():
            misc = misc + "Empate Estelar\n"
        if await self.config.user(member).prob():
            misc = misc + "Pro Brawler\n"
        if await self.config.user(member).og():
            misc = misc + "OG\n"
        if await self.config.user(member).derr():
            misc = misc + "Derrota Estelar\n"
        if await self.config.user(member).crack():
            misc = misc + "Crack del push\n"
        if await self.config.user(member).vicia():
            misc = misc + "Viciado\n"
        if misc != "":
            aembed.add_field(name="Extras", value=misc, inline=False)

        exp = ""
        if await self.config.user(member).novxp():
            exp = exp + "Novato XP\n"
        elif await self.config.user(member).prop():
            exp = exp + "Pro XP\n"
        elif await self.config.user(member).diosxp():
            exp = exp + "Dios XP\n"
        if exp != "":
            aembed.add_field(name="Experience Levels", value=exp, inline=False)

        troph = ""
        if await self.config.user(member).novc():
            troph = troph + "Novato Copas\n"
        elif await self.config.user(member).proc():
            troph = troph + "Pro Copas\n"
        elif await self.config.user(member).diosc():
            troph = troph + "Dios Copas\n"
        if troph != "":
            aembed.add_field(name="Trophies", value=troph, inline=False)

        tvt = ""
        if await self.config.user(member).novtr():
            tvt = tvt + "Novato 3vs3\n"
        elif await self.config.user(member).protr():
            tvt = tvt + "Pro 3vs3\n"
        elif await self.config.user(member).diostr():
            tvt = tvt + "Dios 3vs3\n"
        if tvt != "":
            aembed.add_field(name="3v3 Wins", value=tvt, inline=False)

        solo = ""
        if await self.config.user(member).novs():
            solo = solo + "Novato Solo\n"
        elif await self.config.user(member).pros():
            solo = solo + "Pro Solo\n"
        elif await self.config.user(member).dios():
            solo = solo + "Dios Solo\n"
        if solo != "":
            aembed.add_field(name="Solo Showdown Wins",
                             value=solo,
                             inline=False)

        duo = ""
        if await self.config.user(member).novd():
            duo = duo + "Novato Dúo\n"
        elif await self.config.user(member).prod():
            duo = duo + "Pro Dúo\n"
        elif await self.config.user(member).diosd():
            duo = duo + "Dios Dúo\n"
        if duo != "":
            aembed.add_field(name="Duo Showdown Wins", value=duo, inline=False)

        pp = ""
        if await self.config.user(member).novr():
            pp = pp + "Novato Rankeds\n"
        elif await self.config.user(member).pror():
            pp = pp + "Pro Rankeds\n"
        elif await self.config.user(member).diosr():
            pp = pp + "Dios Rankeds\n"
        if pp != "":
            aembed.add_field(name="Power Play", value=pp, inline=False)

        return await ctx.send(embed=aembed)
Example #12
0
    async def achievements(self, ctx, *, member: Union[discord.Member, str] = None):
        """Check yours or other person's achievements"""
        if ctx.guild.id != 401883208511389716:
            return await ctx.send(embed=badEmbed("Can't use this here, sorry."))

        await ctx.trigger_typing()

        member = ctx.author if member is None else member

        if not isinstance(member, discord.Member):
            try:
                member = self.bot.get_user(int(member))
            except ValueError:
                member = discord.utils.get(ctx.guild.members, name=member)

        aembed = discord.Embed(color=discord.Colour.blue(), title="Achievements", description=f"{str(member)}'s achievements:")
        aembed.set_thumbnail(url="https://cdn.discordapp.com/attachments/472117791604998156/736896897872035960/0a00e865c445d42dfb9f64bedfab8cf8.png")

        gg = ""
        if await self.config.user(member).carrier():
            gg = gg + "Carrier\n"
        if await self.config.user(member).teamwork():
            gg = gg + "Teamwork\n"
        if gg != "":
            aembed.add_field(name="Gem Grab", value=gg, inline=False)

        bounty = ""
        if await self.config.user(member).assassin():
            bounty = bounty + "Assassin\n"
        if await self.config.user(member).massacre():
            bounty = bounty + "Massacre\n"
        if await self.config.user(member).bounty():
            bounty = bounty + "Bounty Hunter\n"
        if bounty != "":
            aembed.add_field(name="Bounty", value=bounty, inline=False)

        heist = ""
        if await self.config.user(member).thief():
            heist = heist + "Thief\n"
        if await self.config.user(member).close():
            heist = heist + "Close Call\n"
        if await self.config.user(member).guardian():
            heist = heist + "Guardian\n"
        if await self.config.user(member).deadlock():
            heist = heist + "Deadlock\n"
        if heist != "":
            aembed.add_field(name="Heist", value=heist, inline=False)

        bb = ""
        if await self.config.user(member).turbo():
            bb = bb + "Turbo\n"
        if await self.config.user(member).pro():
            bb = bb + "Pro Ball\n"
        if bb != "":
            aembed.add_field(name="Brawl Ball", value=bb, inline=False)

        siege = ""
        if await self.config.user(member).stale():
            siege = siege + "Stalemate\n"
        if await self.config.user(member).op():
            siege = siege + "OP Bot\n"
        if await self.config.user(member).clutch():
            siege = siege + "Clutch\n"
        if siege != "":
            aembed.add_field(name="Siege", value=siege, inline=False)

        hz = ""
        if await self.config.user(member).nailb():
            hz = hz + "Nail Biter\n"
        if await self.config.user(member).zoned():
            hz = hz + "Zoned Out\n"
        if await self.config.user(member).domination():
            hz = hz + "Domination\n"
        if hz != "":
            aembed.add_field(name="Hot Zone", value=hz, inline=False)

        ss = ""
        if await self.config.user(member).trident():
            ss = ss + "Trident\n"
        if await self.config.user(member).over():
            ss = ss + "Overload\n"
        if await self.config.user(member).survivalist():
            ss = ss + "Survivalist\n"
        if await self.config.user(member).after():
            ss = ss + "Afterlife\n"
        if ss != "":
            aembed.add_field(name="Solo Showdown", value=ss, inline=False)

        ds = ""
        if await self.config.user(member).pinch():
            ds = ds + "Pinched\n"
        if await self.config.user(member).dynamic():
            ds = ds + "Dynamic Duo\n"
        if ds != "":
            aembed.add_field(name="Duo Showdown", value=ds, inline=False)

        events = ""
        if await self.config.user(member).shut():
            events = events + "Shutdown\n"
        if await self.config.user(member).robo():
            events = events + "Robo Destroyer\n"
        if await self.config.user(member).defender():
            events = events + "Defender\n"
        if await self.config.user(member).city():
            events = events + "City Protector\n"
        if events != "":
            aembed.add_field(name="Events", value=events, inline=False)

        misc = ""
        if await self.config.user(member).draw():
            misc = misc + "Draw Star\n"
        if await self.config.user(member).max():
            misc = misc + "Max Power\n"
        if await self.config.user(member).brawlm():
            misc = misc + "Brawl Master\n"
        if await self.config.user(member).brawll():
            misc = misc + "Brawl Legend\n"
        if await self.config.user(member).portrait():
            misc = misc + "Portrait OG\n"
        if await self.config.user(member).landscape():
            misc = misc + "Landscape OG\n"
        if await self.config.user(member).globalog():
            misc = misc + "Global OG\n"
        if await self.config.user(member).bling():
            misc = misc + "Bling\n"
        if await self.config.user(member).celeb():
            misc = misc + "Celebrity\n"
        if await self.config.user(member).beast():
            misc = misc + "Beast Brawler\n"
        if await self.config.user(member).god():
            misc = misc + "God Brawler\n"
        if misc != "":
            aembed.add_field(name="Miscellaneous", value=misc, inline=False)

        exp = ""
        if await self.config.user(member).expa():
            exp = exp + "Exp Amateur\n"
        elif await self.config.user(member).expp():
            exp = exp + "Exp Pro\n"
        elif await self.config.user(member).expg():
            exp = exp + "Exp God\n"
        if exp != "":
            aembed.add_field(name="Experience Levels", value=exp, inline=False)

        troph = ""
        if await self.config.user(member).trophya():
            troph = troph + "Trophy Amateur\n"
        elif await self.config.user(member).trophyp():
            troph = troph + "Trophy Pro\n"
        elif await self.config.user(member).trophyg():
            troph = troph + "Trophy God\n"
        if troph != "":
            aembed.add_field(name="Trophies", value=troph, inline=False)

        tvt = ""
        if await self.config.user(member).trioa():
            tvt = tvt + "3v3 Amateur\n"
        elif await self.config.user(member).triop():
            tvt = tvt + "3v3 Pro\n"
        elif await self.config.user(member).triog():
            tvt = tvt + "3v3 God\n"
        if tvt != "":
            aembed.add_field(name="3v3 Wins", value=tvt, inline=False)

        solo = ""
        if await self.config.user(member).soloa():
            solo = solo + "Solo Amateur\n"
        elif await self.config.user(member).solop():
            solo = solo + "Solo Pro\n"
        elif await self.config.user(member).solog():
            solo = solo + "Solo God\n"
        if solo != "":
            aembed.add_field(name="Solo Showdown", value=solo, inline=False)

        duo = ""
        if await self.config.user(member).duoa():
            duo = duo + "Duo Amateur\n"
        elif await self.config.user(member).duop():
            duo = duo + "Duo Pro\n"
        elif await self.config.user(member).duog():
            duo = duo + "Duo God\n"
        if duo != "":
            aembed.add_field(name="Duo Showdown", value=duo, inline=False)

        pp = ""
        if await self.config.user(member).ppa():
            pp = pp + "PowerPlay Amateur\n"
        elif await self.config.user(member).ppp():
            pp = pp + "PowerPlay Pro\n"
        elif await self.config.user(member).ppg():
            pp = pp + "PowerPlay God\n"
        if pp != "":
            aembed.add_field(name="Power Play Points", value=pp, inline=False)

        return await ctx.send(embed=aembed)
Example #13
0
    async def coc_clans(self, ctx):
        """View all clans saved in a server"""
        if len((await self.config.guild(ctx.guild).clans()).keys()) < 1:
            return await ctx.send(
                embed=badEmbed(f"This server has no clans saved. Save a club by using {ctx.prefix}coc_clan add!"))

        saved_clans = await self.config.guild(ctx.guild).clans()

        try:
            clans = []
            keys = saved_clans.keys()
            for k in keys:
                clan = self.apirequest("clans/%23" + saved_clans[k]['tag'])
                clans.append(clan)

            embedFields = []
            
            for i in range(len(clans)):
                key = ""
                for k in saved_clans.keys():
                    if clans[i]['tag'].replace("#", "") == saved_clans[k]['tag']:
                        key = k

                saved_clans[key]['lastMemberCount'] = clans[i]['members']
                saved_clans[key]['lastRequirement'] = clans[i]['requiredTrophies']
                saved_clans[key]['lastPoints'] = clans[i]['clanPoints']
                saved_clans[key]['lastPosition'] = i
                saved_clans[key]['lastVersusPoints'] = clans[i]['clanVersusPoints']

                info = saved_clans[key]["info"] if "info" in saved_clans[key] else ""

                e_name = f"<:bsband:600741378497970177> {clans[i]['name']} [{key}] {clans[i]['tag']} {info}"
                e_value = f"🏆`{clans[i]['clanPoints']}` 🏆`{clans[i]['clanVersusPoints']}`"
                e_value += f" `{clans[i]['requiredTrophies']}+` <:icon_gameroom:553299647729238016>`{clans[i]['members']}`"
                embedFields.append([e_name, e_value])

            await self.config.guild(ctx.guild).set_raw("clans", value=saved_clans)


            colour = choice([discord.Colour.green(),
                             discord.Colour.blue(),
                             discord.Colour.purple(),
                             discord.Colour.orange(),
                             discord.Colour.red(),
                             discord.Colour.teal()])

            embedsToSend = []
            for i in range(0, len(embedFields), 8):
                embed = discord.Embed(colour=colour)
                embed.set_author(
                    name=f"{ctx.guild.name} clans",
                    icon_url=ctx.guild.icon_url)
                page = (i // 8) + 1
                footer = f"[{page}/{len(embedFields)//8+1}]"
                embed.set_footer(text=footer)
                for e in embedFields[i:i + 8]:
                    embed.add_field(name=e[0], value=e[1], inline=False)
                embedsToSend.append(embed)

            if len(embedsToSend) > 1:
                await menu(ctx, embedsToSend, {"⬅": prev_page, "➡": next_page, }, timeout=2000)
            elif len(embedsToSend) == 1:
                await ctx.send(embed=embedsToSend[0])
            else:
                await ctx.send("No clans found!")

        except ZeroDivisionError as e:
            return await ctx.send(
                "**Something went wrong, please send a personal message to LA Modmail bot or try again!**")