Esempio n. 1
0
    async def groupmessage(self, ctx: Context, role_name: str, message: str):
        """Broadcast a message to a group you belong to, es `groupmessage mygroup`"""
        if message is None or len(message) <= 2:
            return await ctx.channel.send(
                'Message "{0}" is too short'.format(message))

        member = ctx.message.author
        role = _get_role_by_name(member.guild, role_name)

        if role is None:
            return await ctx.channel.send('Group "{0}" doesn\'t exists'.format(
                role.name))

        if not _has_role(member, role) and not _is_admin(ctx):
            return await ctx.channel.send(
                'You are not in the group "{0}"'.format(role.name))

        broadcastlimit = 1000
        if len(role.members) > broadcastlimit:
            return await ctx.channel.send(
                'There are "{0}" users in {1}, broadcast is limited to {2}'.
                format(len(role.members), role.name, broadcastlimit))

        await ctx.channel.send('{0} says "{1}" to "{2}"'.format(
            member.mention, message, role.name))

        for m in role.members:
            await m.create_dm()
            await m.dm_channel.send('{0} says:'.format(member.mention))
            await m.dm_channel.send(message)
Esempio n. 2
0
 def del_default_role(guild: discord.Guild, role_name: str) -> str:
     role = _get_role_by_name(guild, role_name)
     if role is None:
         return 'Role "{0}" doesn"t exists'.format(role_name)
     roles = (DefaultRole.select().where(DefaultRole.guild_id == guild.id,
                                         DefaultRole.role_id == role.id))
     if not any(roles):
         return 'Role not configured'
     else:
         roles[0].delete_instance()
         return 'Removed default role "{0}"'.format(role_name)
 def del_member_role(guild: discord.Guild, role_name: str) -> str:
     role = _get_role_by_name(guild, role_name)
     if role is None:
         return 'Role "{0}" doesn"t exists'.format(role.name)
     roles = (MemberRole.select().where(MemberRole.guild_id == guild.id,
                                        MemberRole.role_id == role.id))
     if not any(roles):
         return 'Role not set'
     else:
         roles[0].delete_instance()
         return 'Removed member role "{0}"'.format(role.name)
Esempio n. 4
0
 def add_admin(guild: discord.Guild, rolename: str) -> str:
     role = _get_role_by_name(guild, rolename)
     if role is None:
         return 'Role "{0}" doesn"t exists in guild "{1}"'.format(role.name, guild.name)
     roles = (BotAdminRole
              .select()
              .where(BotAdminRole.guild_id == guild.id, BotAdminRole.role_id == role.id))
     if not any(roles):
         BotAdminRole.create(guild_id=guild.id, role_id=role.id, role_name=role.name)
         return 'Added role "{0}" as bot admin'.format(role.name)
     return 'Role "{0}" already exists in guild "{1}"'.format(role.name, guild.name)
Esempio n. 5
0
 def add_member_role(guild: discord.Guild, role_name: str) -> str:
     role = _get_role_by_name(guild, role_name)
     if role is None:
         return 'Role "{0}" doesn"t exists'.format(role_name)
     roles = (MemberRole
              .select()
              .where(MemberRole.guild_id == guild.id, MemberRole.role_id == role.id))
     if not any(roles):
         MemberRole.create(guild_id=guild.id, role_id=role.id, role_name=role.name)
         return 'Adding member role "{0}"'.format(role_name)
     else:
         return 'Role already configured'
Esempio n. 6
0
 def remove_admin(guild: discord.Guild, rolename) -> str:
     role = _get_role_by_name(guild, rolename)
     if role is None:
         return f'Role "{role.name}" doesn"t exists in guild "{guild.name}"'
     BotAdminRole.delete().where(BotAdminRole.guild_id == guild.id, BotAdminRole.role_id == role.id).execute()
     return f'Removed role "{role.name}" as bot admin'