Exemple #1
0
    async def lsar(self, ctx, page_number: int = 1):
        db_response = c.execute(
            "SELECT Role FROM SelfAssignableRoles WHERE Guild = " +
            str(ctx.guild.id) + " LIMIT 10 OFFSET " +
            str(10 * (page_number - 1))).fetchall()
        roles = list()
        purge = False
        for i in db_response:
            role = ctx.guild.get_role(i[0])
            if role:
                roles.append(role)
            else:
                purge = True
                c.execute("DELETE FROM SelfAssignableRoles WHERE Role = " +
                          str(i[0]))
                roles.append(str(i[0]) + ' - deleted role')

        if purge == True:
            conn.commit()

        embed = discord.Embed(
            title=get_lang(ctx.guild, 'ADMINISTRATION_selfassign_list'),
            description='\n'.join([str(role) for role in roles]),
            color=0x00FF00)
        embed.set_footer(text=get_lang(
            ctx.guild, 'ECONOMY_leaderboard_footer').format(str(page_number)))
        await ctx.send(embed=embed)
Exemple #2
0
	async def award(self, ctx, user_id: int, amount: int):
		if amount < 1:
			return await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_award_nocurr'), color = 0xFF0000))

		user = self.bot.get_user(user_id)
		if not user:
			try:
				user = await self.bot.get_user_info(user_id)
			except discord.NotFound:
				return await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_award_nouser'), color = 0xFF0000))

		if user.bot:
			return await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_award_nobot'), color = 0xFF0000))

		try:
			c.execute("INSERT INTO Currency (User, Amount) VALUES (" + str(user.id) + ", " + str(amount) + ")")
		except sqlite3.IntegrityError:
			c.execute("UPDATE Currency SET Amount = Amount + " + str(amount) + " WHERE User = " + str(user.id))
		conn.commit()
		await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_award_success').format(str(user), str(amount)), color = 0x00FF00))

		try:
			await user.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_award_dm').format(str(amount)), color = 0x00FF00))
		except discord.Forbidden:
			pass
Exemple #3
0
    async def ban(self, ctx, member: discord.Member, *, reason=None):
        if not ctx.guild.me.guild_permissions.ban_members:
            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_ban_me_noperms'),
                                               color=0xFF0000))

        if not check_perms(ctx.guild, ctx.author, member,
                           discord.Permissions.ban_members):

            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_ban_author_noperms'),
                                               color=0xFF0000))

        else:

            try:
                await member.send(
                    embed=dm_member(ctx.guild, 'ADMINISTRATION_dm_banned',
                                    ctx.guild, ctx.author, reason))
            except:
                pass

            await member.ban(delete_message_days=7, reason=reason)

            await ctx.send(embed=member_action_confirm(
                ctx.guild, 'ADMINISTRATION_method_feedback_banned', member,
                reason))
Exemple #4
0
    async def urlfilter(self, ctx, channel: discord.TextChannel = None):
        if not channel:
            channel = ctx.channel

        try:
            c.execute("INSERT INTO URLFilters VALUES (" + str(ctx.guild.id) +
                      ", " + str(ctx.channel.id) + ")")
            conn.commit()
            try:
                url_filters[ctx.guild.id].append(channel.id)
            except:
                url_filters[ctx.guild.id] = [channel.id]
            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_urlfilter_enabled'),
                                               color=0x00FF00))
        except sqlite3.IntegrityError:
            c.execute("DELETE FROM URLFilters WHERE Channel = " +
                      str(ctx.channel.id))
            conn.commit()
            url_filters[ctx.guild.id].remove(channel.id)
            if len(url_filters[ctx.guild.id]) == 0:
                del url_filters[ctx.guild.id]
            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_urlfilter_disabled'),
                                               color=0x00FF00))
Exemple #5
0
    async def permit(self, ctx, member: discord.Member):
        if ctx.guild.id not in url_filters.keys():
            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_permit_nochannel'),
                                               color=0xFF0000))
        elif member.guild_permissions.manage_messages:
            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_permit_fail'),
                                               color=0xFF0000))
        else:
            url_permit.append(member)
            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_permit_success').format(
                    member.mention),
                                               color=0x00FF00))

            def check(m):
                return m.author == member and m.channel.id in url_filters[
                    ctx.guild.id] and find_urls(m)

            try:
                await self.bot.wait_for('message', check=check, timeout=60)
            except asyncio.TimeoutError:
                url_permit.remove(member)
            else:
                url_permit.remove(member)
Exemple #6
0
	async def leavemsg(self, ctx, *, msg = None):
		if not msg:
			db_response = c.execute("SELECT LeaveMsg FROM ServerConfig WHERE Guild = " + str(ctx.guild.id)).fetchone()
			await ctx.send(embed = discord.Embed(title = get_lang(ctx.guild, 'MEMBERPRESENCE_leavemsg_currentmsg'), description = db_response[0], color = 0x00FF00))
		elif ctx.author.guild_permissions.manage_guild:
			c.execute("UPDATE ServerConfig SET LeaveMsg = '" + msg.replace('\'', '\'\'') + "' WHERE Guild = " + str(ctx.guild.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'MEMBERPRESENCE_leavemsg_updatemsg'), color = 0x00FF00))
Exemple #7
0
	async def greet(self, ctx):
		db_response = c.execute("SELECT GreetChannel FROM ServerConfig WHERE Guild = " + str(ctx.guild.id)).fetchone()
		if not db_response[0]:
			c.execute("UPDATE ServerConfig SET GreetChannel = " + str(ctx.channel.id) + " WHERE Guild = " + str(ctx.guild.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'MEMBERPRESENCE_greet_enabled'), color = 0x00FF00))
		else:
			c.execute("UPDATE ServerConfig SET GreetChannel = NULL WHERE Guild = " + str(ctx.guild.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'MEMBERPRESENCE_greet_disabled'), color = 0x00FF00))
Exemple #8
0
	async def greetdm(self, ctx):
		db_response = c.execute("SELECT GreetDmToggle FROM ServerConfig WHERE Guild = " + str(ctx.guild.id)).fetchone()
		if db_response[0] == 0:
			c.execute("UPDATE ServerConfig SET GreetDmToggle = 1 WHERE Guild = " + str(ctx.guild.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'MEMBERPRESENCE_greetdm_enabled'), color = 0x00FF00))
		else:
			c.execute("UPDATE ServerConfig SET GreetDmToggle = 0 WHERE Guild = " + str(ctx.guild.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'MEMBERPRESENCE_greetdm_disabled'), color = 0x00FF00))
Exemple #9
0
	async def claim(self, ctx):
		db_response = c.execute("SELECT Claimed FROM Currency WHERE User = "******"INSERT INTO Currency VALUES (" + str(ctx.author.id) + ", " + str(config['claim_amount']) + ", '" + str(datetime.datetime.utcnow()) + "')")
			except sqlite3.IntegrityError:
				c.execute("UPDATE Currency SET Amount = Amount + " + str(config['claim_amount']) + ", Claimed = '" + str(datetime.datetime.utcnow()) + "' WHERE User = " + str(ctx.author.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_claim_success').format(ctx.author.mention), color = 0x00FF00))
		else:
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_claim_fail'), color = 0xFF0000))
Exemple #10
0
	async def leavedel(self, ctx, arg: int = None):
		if not arg:
			c.execute("UPDATE ServerConfig SET LeaveDel = NULL WHERE Guild = " + str(ctx.guild.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'MEMBERPRESENCE_leavedel_disabled'), color = 0x00FF00))
		elif arg < 1 or arg > 120:
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'MEMBERPRESENCE_greetdel_fail'), color = 0xFF0000))
		else:
			c.execute("UPDATE ServerConfig SET LeaveDel = " + str(arg) + " WHERE Guild = " + str(ctx.guild.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'MEMBERPRESENCE_leavedel_enabled').format(str(arg)), color = 0x00FF00))
Exemple #11
0
 async def ping(self, ctx):
     now = time.time()
     msg = await ctx.send(content='*Pinging...*')
     ping = time.time() - now
     await msg.edit(content=None,
                    embed=discord.Embed(
                        description=':ping_pong: ' +
                        get_lang(ctx.guild, 'UTILITY_ping_message').format(
                            str(round(ping * 1000))) + '\n:desktop: ' +
                        get_lang(ctx.guild, 'UTILITY_ping_latency').format(
                            str(round(self.bot.latency * 1000))),
                        color=0x00FF00))
Exemple #12
0
    async def languages(self, ctx):
        langs = list()
        for i in response_string.keys():
            langs.append(i.capitalize())
        langs.sort()

        embed = discord.Embed(
            title=get_lang(ctx.guild, 'UTILITY_language_list'),
            description='\n'.join(['• ' + i for i in langs]),
            color=0x00FF00)
        embed.set_footer(text=get_lang(ctx.guild, 'UTILITY_language_footer'))
        await ctx.send(embed=embed)
Exemple #13
0
 async def setlang(self, ctx, lang):
     if lang.lower() not in response_string.keys():
         await ctx.send(embed=discord.Embed(description=get_lang(
             ctx.guild, 'UTILITY_language_set_fail'),
                                            color=0xFF0000))
     else:
         c.execute("UPDATE ServerConfig SET Language = '" + lang.lower() +
                   "' WHERE Guild = " + str(ctx.guild.id))
         conn.commit()
         server_config[ctx.guild.id]['language'] = lang.lower()
         await ctx.send(embed=discord.Embed(description=get_lang(
             ctx.guild, 'UTILITY_language_set_success'),
                                            color=0x00FF00))
Exemple #14
0
def dm_member(method, guild, moderator, reason):
    embed = discord.Embed(title=get_lang(guild, method), color=0xFFFF00)
    embed.set_thumbnail(url=guild.icon_url)
    embed.add_field(name=get_lang(guild, 'ADMINISTRATION_dm_guild'),
                    value=str(guild),
                    inline=True)
    embed.add_field(name=get_lang(guild, 'ADMINISTRATION_dm_moderator'),
                    value=str(moderator),
                    inline=True)
    if reason:
        embed.add_field(name=get_lang(guild, 'ADMINISTRATION_method_reason'),
                        value=reason,
                        inline=False)

    return embed
Exemple #15
0
def member_action_confirm(guild, method, member, reason):
    embed = discord.Embed(color=0xFFFF00)
    embed.set_author(name=get_lang(guild, method), icon_url=member.avatar_url)
    embed.add_field(name=get_lang(guild, 'ADMINISTRATION_method_member_name'),
                    value=str(member),
                    inline=True)
    embed.add_field(name=get_lang(guild, 'ADMINISTRATION_method_member_id'),
                    value=str(member.id),
                    inline=True)
    if reason:
        embed.add_field(name=get_lang(guild, 'ADMINISTRATION_method_reason'),
                        value=reason,
                        inline=False)

    return embed
Exemple #16
0
 async def rsar(self, ctx, *, role: discord.Role):
     conf = c.execute("SELECT * FROM SelfAssignableRoles WHERE Role = " +
                      str(role.id)).fetchone()
     if not conf:
         await ctx.send(embed=discord.Embed(description=get_lang(
             ctx.guild, 'ADMINISTRATION_selfassign_delete_fail').format(
                 role.mention),
                                            color=0xFF0000))
     else:
         c.execute("DELETE FROM SelfAssignableRoles WHERE Role = " +
                   str(role.id))
         conn.commit()
         await ctx.send(embed=discord.Embed(description=get_lang(
             ctx.guild, 'ADMINISTRATION_selfassign_delete_success').format(
                 role.mention),
                                            color=0x00FF00))
Exemple #17
0
	async def leaderboard(self, ctx, page_number: int = 1):
		db_response = c.execute("SELECT User, Amount FROM Currency ORDER BY Amount DESC LIMIT 10 OFFSET " + str(10 * (page_number - 1))).fetchall()
		position = 10 * (page_number - 1)
		users = list()
		for i in db_response:
			position += 1
			user = self.bot.get_user(i[0])
			if user:
				user = user
			else:
				user = i[0]
			users.append('`' + str(position) + '.` ' + str(user) + ' - **' + str(i[1]) + '** currency')

		embed = discord.Embed(title = get_lang(ctx.guild, 'ECONOMY_leaderboard_title'), description = '\n'.join(users), color = 0x00FF00)
		embed.set_footer(text = get_lang(ctx.guild, 'ECONOMY_leaderboard_footer').format(str(page_number)))
		await ctx.send(embed = embed)
Exemple #18
0
    async def lookup(self, ctx, code):
        try:
            invite = await self.bot.get_invite(code)
        except discord.NotFound:
            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'UTILITY_lookup_fail'),
                                               color=0xFF0000))
        else:

            def chan_type(channel):
                if isinstance(channel, discord.PartialInviteChannel):
                    if channel.type == discord.ChannelType.text:
                        return '#'
                    elif channel.type == discord.ChannelType.voice:
                        return '\\🔊'
                    else:
                        return ''
                else:
                    if isinstance(channel, discord.TextChannel):
                        return '#'
                    elif isinstance(channel, discord.VoiceChannel):
                        return '\\🔊'
                    else:
                        return ''

            desc = '• ' + get_lang(
                ctx.guild, 'UTILITY_lookup_server'
            ) + ': **' + str(invite.guild) + '** (' + str(
                invite.guild.id) + ')\n• ' + get_lang(
                    ctx.guild, 'UTILITY_lookup_channel') + ': **' + chan_type(
                        invite.channel) + str(invite.channel) + '** (' + str(
                            invite.channel.id) + ')\n• ' + get_lang(
                                ctx.guild, 'UTILITY_lookup_inviter'
                            ) + ': **' + str(invite.inviter) + '**' + (
                                ' (' + str(invite.inviter.id) +
                                ')' if invite.inviter else ''
                            ) + '\n\n• ' + get_lang(
                                ctx.guild, 'UTILITY_lookup_invitecode'
                            ) + ': **' + invite.code + '**' + (
                                '\n• ' + get_lang(
                                    ctx.guild, 'UTILITY_lookup_features') +
                                ': ' + ', '.join([
                                    '**' + str(feature) + '**'
                                    for feature in invite.guild.features
                                ]) if len(invite.guild.features) > 0 else ''
                            ) + '\n• ' + get_lang(
                                ctx.guild,
                                'UTILITY_lookup_activemembers') + ': **' + str(
                                    invite.approximate_presence_count
                                ) + '** / **' + str(
                                    invite.approximate_member_count) + '**'
            embed = discord.Embed(title=get_lang(ctx.guild,
                                                 'UTILITY_lookup_about'),
                                  description=desc,
                                  color=0x00FF00)
            embed.set_thumbnail(url=invite.guild.icon_url_as(size=128))
            await ctx.send(embed=embed)
Exemple #19
0
    async def userinfo(self, ctx, *, member: discord.Member = None):
        if not member:
            member = ctx.author

        embed = discord.Embed(title=get_lang(ctx.guild,
                                             'UTILITY_userinfo_about'),
                              color=0x00FF00)
        embed.set_thumbnail(url=member.avatar_url_as(size=128))
        embed.add_field(name=get_lang(ctx.guild, 'UTILITY_userinfo_id'),
                        value=str(member.id))
        embed.add_field(name=get_lang(ctx.guild, 'UTILITY_userinfo_username'),
                        value=str(member))
        if member.nick:
            embed.add_field(name=get_lang(ctx.guild,
                                          'UTILITY_userinfo_nickname'),
                            value=member.nick)
        embed.add_field(name=get_lang(ctx.guild,
                                      'UTILITY_userinfo_joined_discord'),
                        value=str(member.created_at))
        embed.add_field(name=get_lang(ctx.guild,
                                      'UTILITY_userinfo_joined_guild'),
                        value=str(member.joined_at))
        if len(member.roles) > 1:
            embed.add_field(name=get_lang(ctx.guild, 'UTILITY_userinfo_roles'),
                            value=', '.join([
                                '`' + str(role) + '`' for role in member.roles
                                if role != ctx.guild.default_role
                            ]),
                            inline=False)

        await ctx.send(embed=embed)
Exemple #20
0
 async def on_member_remove(self, member):
     if 'server_log' in server_config[member.guild.id].keys():
         channel = self.bot.get_channel(
             server_config[member.guild.id]['server_log'])
         if channel:
             embed = discord.Embed(
                 title=get_lang(member.guild,
                                'ADMINISTRATION_serverlog_member_leave'),
                 description=get_lang(
                     member.guild,
                     'ADMINISTRATION_serverlog_member_members').format(
                         str(member.guild.member_count)),
                 color=0xFF0000,
                 timestamp=datetime.datetime.utcnow())
             embed.set_footer(icon_url=member.avatar_url_as(size=128),
                              text=str(member) + ' (' + str(member.id) +
                              ')')
             await channel.send(embed=embed)
Exemple #21
0
    async def asar(self, ctx, *, role: discord.Role):
        db_response = c.execute(
            "SELECT * FROM SelfAssignableRoles WHERE Role = " +
            str(role.id)).fetchone()
        if db_response:
            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_selfassign_add_fail').format(
                    role.mention),
                                               color=0xFF0000))
        else:
            c.execute("INSERT INTO SelfAssignableRoles VALUES (" +
                      str(ctx.guild.id) + ", " + str(role.id) + ")")
            conn.commit()

            await ctx.send(embed=discord.Embed(description=get_lang(
                ctx.guild, 'ADMINISTRATION_selfassign_add_success').format(
                    role.mention),
                                               color=0x00FF00))
Exemple #22
0
	async def setstatus(self, ctx, status_type: int, *, status):
		status = status.split(' | ')

		if len(status) == 2:
			await self.bot.change_presence(activity = discord.Activity(name = status[0], type = status_type, url = status[1]))
		else:
			await self.bot.change_presence(activity = discord.Activity(name = status[0], type = status_type))

		await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'OWNERONLY_status'), color = 0x00FF00))
Exemple #23
0
	async def take(self, ctx, user_id: int, amount: int):
		if amount < 1:
			return await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_take_nocurr'), color = 0xFF0000))

		user = self.bot.get_user(user_id)
		if not user:
			try:
				user = await self.bot.get_user_info(user_id)
			except discord.NotFound:
				return await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_award_nouser'), color = 0xFF0000))

		db_response = c.execute("SELECT Amount FROM Currency WHERE User = "******"UPDATE Currency SET Amount = Amount - " + str(amount) + " WHERE User = " + str(user.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_take_success').format(str(user), str(amount)), color = 0x00FF00))
		else:
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_take_fail'), color = 0xFF0000))
Exemple #24
0
    async def on_message(self, message):
        if message.guild and not message.author.bot and not message.author.guild_permissions.manage_messages and message.guild.me.permissions_in(
                message.channel
        ).manage_messages and message.channel.id in url_filters[
                message.guild.id] and message.author not in url_permit:
            if len(find_urls(message)) > 0:
                return await message.delete()

        if isinstance(
                message.channel, discord.TextChannel
        ) and not message.author.bot and message.attachments and not message.channel.is_nsfw(
        ) and 'img_filter' in server_config[message.guild.id].keys(
        ) and message.guild.me.permissions_in(message.channel).manage_messages:
            del_msg = False
            for attachment in message.attachments:
                if attachment.url.lower().endswith(
                    ('.jpg', '.png', '.bmp', '.gif', '.webp')):
                    async with aiohttp.ClientSession() as session:
                        async with session.get(
                                'https://www.moderatecontent.com/api/v2?' +
                                urllib.parse.urlencode(
                                    {
                                        'key': config['moderatecontent_api'],
                                        'url': attachment.url
                                    })) as response:
                            response_json = await response.json()

                    if round(
                            response_json['predictions']['adult']
                    ) >= server_config[message.guild.id]['img_filter']:
                        del_msg = True
                        break

            if del_msg == True:
                await message.delete()
                await message.channel.send(embed=discord.Embed(
                    title=get_lang(message.guild,
                                   'ADMINISTRATION_imgfilter_deleted_title'),
                    description=get_lang(
                        message.guild,
                        'ADMINISTRATION_imgfilter_deleted_description').format(
                            message.author.mention,
                            str(round(response_json['predictions']['adult']))),
                    color=0xFF0000))
Exemple #25
0
    async def stats(self, ctx):
        seconds = time.time() - start_time
        minutes, seconds = divmod(seconds, 60)
        hours, minutes = divmod(minutes, 60)
        days, hours = divmod(hours, 24)

        embed = discord.Embed(color=0x00FF00)
        embed.set_author(name=self.bot.user.name,
                         icon_url=self.bot.user.avatar_url_as(size=128))
        embed.add_field(name=get_lang(ctx.guild, 'UTILITY_stats_uptime'),
                        value=str(int(days)) + ' days\n' + str(int(hours)) +
                        ' hours\n' + str(int(minutes)) + ' minutes')
        embed.add_field(name=get_lang(ctx.guild, 'UTILITY_stats_owners'),
                        value=('\n'.join([str(i) for i in config['owner_ids']])
                               if len(config['owner_ids']) > 0 else get_lang(
                                   ctx.guild, 'HELP_permission_none')))
        embed.add_field(name=get_lang(ctx.guild, 'UTILITY_stats_presence'),
                        value=str(len(self.bot.guilds)) + ' servers')
        await ctx.send(embed=embed)
Exemple #26
0
 async def on_member_update(self, before, after):
     if 'server_log' in server_config[after.guild.id].keys(
     ) and before.display_name != after.display_name:
         channel = self.bot.get_channel(
             server_config[after.guild.id]['server_log'])
         if channel:
             embed = discord.Embed(title=get_lang(
                 after.guild, 'ADMINISTRATION_serverlog_member_update'),
                                   color=0x8E44AD,
                                   timestamp=datetime.datetime.utcnow())
             embed.add_field(name=get_lang(
                 after.guild, 'ADMINISTRATION_serverlog_before'),
                             value=before.display_name)
             embed.add_field(name=get_lang(
                 after.guild, 'ADMINISTRATION_serverlog_after'),
                             value=after.display_name)
             embed.set_footer(icon_url=after.avatar_url_as(size=128),
                              text=str(after) + ' (' + str(after.id) + ')')
             await channel.send(embed=embed)
Exemple #27
0
 async def removerole(self, ctx, *, role: discord.Role):
     conf = c.execute("SELECT * FROM SelfAssignableRoles WHERE Role = " +
                      str(role.id)).fetchone()
     if not conf:
         await ctx.send(embed=discord.Embed(description=get_lang(
             ctx.guild, 'ADMINISTRATION_selfassign_notinlist'),
                                            color=0xFF0000))
     else:
         try:
             await ctx.author.remove_roles(role)
         except:
             await ctx.send(embed=discord.Embed(description=get_lang(
                 ctx.guild, 'ADMINISTRATION_selfassign_remove_fail'),
                                                color=0xFF0000))
         else:
             await ctx.send(embed=discord.Embed(description=get_lang(
                 ctx.guild, 'ADMINISTRATION_selfassign_remove_success').
                                                format(role.mention),
                                                color=0x00FF00))
Exemple #28
0
 async def memberpersistence(self, ctx):
     if server_config[ctx.guild.id]['member_persistence'] == 0:
         c.execute(
             "UPDATE ServerConfig SET MemberPersistence = 1 WHERE Guild = "
             + str(ctx.guild.id))
         conn.commit()
         server_config[ctx.guild.id]['member_persistence'] = 1
         await ctx.send(embed=discord.Embed(description=get_lang(
             ctx.guild, 'ADMINISTRATION_memberpersistence_enabled'),
                                            color=0x00FF00))
     else:
         c.execute(
             "UPDATE ServerConfig SET MemberPersistence = 0 WHERE Guild = "
             + str(ctx.guild.id))
         conn.commit()
         server_config[ctx.guild.id]['member_persistence'] = 0
         await ctx.send(embed=discord.Embed(description=get_lang(
             ctx.guild, 'ADMINISTRATION_memberpersistence_disabled'),
                                            color=0x00FF00))
Exemple #29
0
	async def give(self, ctx, user: discord.User, amount: int):
		if user.bot:
			return await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_give_nobot'), color = 0xFF0000))

		db_response = c.execute("SELECT Amount FROM Currency WHERE User = "******"UPDATE Currency SET Amount = Amount - " + str(amount) + " WHERE User = "******"INSERT INTO Currency (User, Amount) VALUES (" + str(user.id) + ", " + str(amount) + ")")
			except sqlite3.IntegrityError:
				c.execute("UPDATE Currency SET Amount = Amount + " + str(amount) + " WHERE User = " + str(user.id))
			conn.commit()
			await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_give_success').format(str(user), str(amount)), color = 0x00FF00))

			try:
				await user.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_give_dm').format(str(ctx.author), str(amount)), color = 0x00FF00))
			except discord.Forbidden:
				pass
Exemple #30
0
	async def currency(self, ctx, user: discord.User = None):
		if not user:
			user = ctx.author

		db_response = c.execute("SELECT Amount FROM Currency WHERE User = "******"INSERT INTO Currency (User, Amount) VALUES (" + str(user.id) + ", 0)")
			conn.commit()
			db_response = c.execute("SELECT Amount FROM Currency WHERE User = " + str(user.id)).fetchone()

		await ctx.send(embed = discord.Embed(description = get_lang(ctx.guild, 'ECONOMY_currency').format(user.mention, str(db_response[0])), color = 0x00FF00))