Ejemplo n.º 1
0
    async def on_ready(self):
        print(f'{self.bot.user} has connected to Discord!')
        print('Connected to guilds:')
        for guild in self.bot.guilds:
            print(f'\t-{guild.name}(id: {guild.id})')

            # initialise all members in the guild to the database
            for member in guild.members:
                if not member.bot:
                    Users.add_guild(member.id, guild.id)
Ejemplo n.º 2
0
    async def on_member_join(self, member):
        self.logger.info(f'{member.name} Joined Guild {member.guild.name}')
        # do nothing if it's a bot
        if member.bot:
            return
        Users.add_guild(member.id, member.guild.id)

        channel = member.guild.system_channel
        if channel is not None:
            await channel.send('It\'s Ya Boi {0.mention}.'.format(member))
Ejemplo n.º 3
0
    async def topTen(self, ctx):
        self.logger.info(
            f'{ctx.author.name} getting Top 10 for: {ctx.guild.name}')
        # Get the top 10 users
        top_ten = Users.top_ten(ctx.guild.id)

        # Create an embed
        myEmbed = discord.Embed(title=f"{ctx.guild.name} Top Ten Members",
                                color=0x0000ff)
        myEmbed.set_thumbnail(url=ctx.guild.icon_url)

        # Create a field for all the users
        for user in top_ten:
            member = ctx.guild.get_member(int(user['ID']))
            if member is None:
                continue
            # prefer guild nicknames
            if member.nick is None:
                name = member.name
            else:
                name = member.nick

            myEmbed.add_field(name=name,
                              value=f"Lvl: {user['level']}\n"
                              f"Exp: {user['experience']}",
                              inline=True)

        await ctx.send(embed=myEmbed)
Ejemplo n.º 4
0
 async def removeWarning(self, ctx, member: discord.Member, id: int):
     self.logger.info(f'{ctx.author} Removing warning {id} for '
                      f'{member.name}')
     removed = Users.remove_warning(member.id, id)
     if removed:
         await ctx.send("Warning removed")
     else:
         await ctx.send("Warning ID not found")
Ejemplo n.º 5
0
 async def editWarning(self, ctx, member: discord.Member, id: int,
                       *, new_warning):
     self.logger.info(f'{ctx.author} editing warning {id} for '
                      f'{member.name}')
     edited = Users.edit_warning_text(member.id, id, new_warning)
     if edited:
         await ctx.send("Warning Edited")
     else:
         await ctx.send("Warning ID not found")
Ejemplo n.º 6
0
    async def __do_xp_give(self, msg_content, author, channel):
        # Get the amount of xp gained for the message
        xp = XP.getXPFromMessage(msg_content)
        leveledUp, newLevel = Users.GiveXP(str(author.id), xp, channel.guild.id)

        # If the user leveled up, let them know and congratulate them
        if(leveledUp):
            await channel.send(f'Congratulations!!'
                               f' {author.mention}'
                               f' leveled up to lvl: {newLevel}')
Ejemplo n.º 7
0
 async def userInfo(self, ctx, member: discord.Member = None):
     if (member is None):
         member = ctx.author
     self.logger.info(f'{ctx.author.name} getting info for: {member.name}')
     uInfo = Users.get_info(member.id, ctx.guild.id)
     myEmbed = discord.Embed(title=f"{member.name}'s info:", color=0x0000ff)
     myEmbed.set_thumbnail(url=member.avatar_url)
     for line in uInfo:
         sLine = line.split(':')
         myEmbed.add_field(name=sLine[0], value=sLine[1], inline=True)
     await ctx.send(embed=myEmbed)
Ejemplo n.º 8
0
    async def getWarnings(self, ctx, member: discord.Member):
        self.logger.info(f'{ctx.author} Getting warnings for {member.name}'
                         f' From {ctx.guild.name}')

        warnings = Users.get_warnings(member.id, ctx.guild.id)

        embedVar = discord.Embed(title=f"({len(warnings)}) Warnings for "
                                 f"{member.name}", color=0xff0000)
        for warn in warnings:
            embedVar.add_field(name=f"{warn['id']} - {warn['dateTime']}",
                               value=warn['warning'],
                               inline=False)

        await ctx.send(embed=embedVar)
Ejemplo n.º 9
0
 async def expired_warning_timeout(self):
     now = datetime.now()
     # if it is 1AM check the warnings
     if now.hour == 1:
         self.logger.info("Clearing expired warnings")
         Users.clear_expired_warnings()
Ejemplo n.º 10
0
 async def on_member_remove(self, member):
     self.logger.info(f'{member.name} Left Guild {member.guild.name}')
     Users.remove_guild(member.id, member.guild.id)
Ejemplo n.º 11
0
 async def addWarning(self, ctx, member: discord.Member, *, warning: str):
     Users.add_warning(member.id, ctx.guild.id, warning)
     await ctx.send(f"You {member.mention} have been warnned!!")
     await self.getWarnings(ctx, member)