Beispiel #1
0
 async def faction_desc_set(self, ctx, *, description):
     description = re.sub("[^\S ]+", "", description)
     if not (len(description) <= 240):
         raise BadArgumentErrorWithMessage(
             ctx.s("faction.err.description_length"))
     sql.guild_faction_set(ctx.guild.id, desc=description)
     await ctx.send(ctx.s("faction.set_description"))
Beispiel #2
0
 async def faction_color_set(self, ctx, color: str):
     try:
         color = abs(int(color, 16) % 0xFFFFFF)
     except ValueError:
         await ctx.send(ctx.s("error.invalid_color"))
         return
     sql.guild_faction_set(ctx.guild.id, color=color)
     await ctx.send(ctx.s("faction.set_color"))
Beispiel #3
0
 async def faction_alias_set(self, ctx, new_alias):
     new_alias = re.sub("[^A-Za-z]+", "", new_alias).lower()
     if not (1 <= len(new_alias) <= 5):
         raise BadArgumentErrorWithMessage(ctx.s("faction.err.alias_length"))
     if sql.guild_get_by_faction_alias(new_alias):
         await ctx.send(ctx.s("faction.alias_already_exists"))
         return
     sql.guild_faction_set(ctx.guild.id, alias=new_alias)
     await ctx.send(ctx.s("faction.set_alias").format(new_alias))
Beispiel #4
0
 async def faction_name_set(self, ctx, new_name):
     new_name = re.sub("[^\S ]+", "", new_name)
     if not (6 <= len(new_name) <= 32):
         raise BadArgumentErrorWithMessage(ctx.s("faction.err.name_length"))
     if sql.guild_get_by_faction_name(new_name):
         await ctx.send(ctx.s("faction.name_already_exists"))
         return
     sql.guild_faction_set(ctx.guild.id, name=new_name)
     await ctx.send(ctx.s("faction.set_name").format(new_name))
Beispiel #5
0
    async def faction_emblem_set(self, ctx, emblem_url=None):
        if emblem_url:
            if not re.search('^(?:https?://)cdn\.discordapp\.com/', emblem_url):
                raise UrlError
        elif len(ctx.message.attachments) > 0:
            emblem_url = ctx.message.attachments[0].url

        if not emblem_url:
            return

        sql.guild_faction_set(ctx.guild.id, emblem=emblem_url)
        await ctx.send(ctx.s("faction.set_emblem"))
Beispiel #6
0
    async def assemble(self, ctx, name, alias=""):
        if sql.guild_is_faction(ctx.guild.id):
            await ctx.send(ctx.s("faction.already_faction"))
            return
        name = re.sub("[^\S ]+", "", name)
        if not (6 <= len(name) <= 32):
            raise BadArgumentErrorWithMessage(ctx.s("faction.err.name_length"))
        if sql.guild_get_by_faction_name(name):
            await ctx.send(ctx.s("faction.name_already_exists"))
            return
        alias = re.sub("[^A-Za-z]+", "", alias).lower()
        if alias and not (1 <= len(alias) <= 5):
            raise BadArgumentErrorWithMessage(ctx.s("faction.err.alias_length"))
        if sql.guild_get_by_faction_alias(alias):
            await ctx.send(ctx.s("faction.alias_already_exists"))
            return

        sql.guild_faction_set(ctx.guild.id, name=name, alias=alias)
        await ctx.send(ctx.s("faction.assembled").format(name))
Beispiel #7
0
 async def faction_invite_set(self, ctx, url=None):
     if url:
         try:
             invite = await self.bot.get_invite(url)
         except discord.NotFound:
             await ctx.send(ctx.s("faction.err.invalid_invite"))
             return
         if invite.guild.id != ctx.guild.id:
             await ctx.send(ctx.s("faction.err.invite_not_this_guild"))
             return
         if not re.match(r'(?:https?://)discord\.gg/\w+', url):
             url = "https://discord.gg/" + url
     else:
         if not ctx.channel.permissions_for(ctx.guild.me).create_instant_invite:
             raise NoSelfPermissionError
         invite = await ctx.channel.create_invite(reason="Invite for faction info page")
         url = invite.url
     sql.guild_faction_set(ctx.guild.id, invite=url)
     await ctx.send(ctx.s("faction.set_invite"))