@staticmethod
async def layer(ctx, template_uris):
    try:
        templates = (await tracked_templates.get_templates(template_uris))
    except ValueError as e:
        return (await ctx.send(f'❌ {e}'))
    start = time.time()
    (ox, oy, palettized_array) = layer(templates)
    if (palettized_array.size == 0):
        return (await ctx.send('❌ No placeable pixels in the layered template.'))
    img = Image.fromarray(stats.palettize_array(palettized_array))
    end = time.time()
    embed = disnake.Embed(color=6735308, title='Layered')
    embed.set_footer(text=f'Layered in {round((end - start), 3)}s')
    file = (await image_to_file(img, 'layered.png', embed))
    template = Combo(None, palettized_array, ox, oy, None, None, None)
    view = CreateTemplateView(ctx, template)
    m = (await ctx.send(file=file, embed=embed, view=view))
    if isinstance(ctx, disnake.AppCmdInter):
        m = (await ctx.original_message())
    view.template_image_url = m.embeds[0].image.url
    view.message = m
@staticmethod
async def layer(ctx, template_uris):
    try:
        templates = (await tracked_templates.get_templates(template_uris))
    except ValueError as e:
        return (await ctx.send(f'❌ {e}'))
    start = time.time()
    (ox, oy, palettized_array) = layer(templates)
    if (palettized_array.size == 0):
        return (await ctx.send('❌ No placeable pixels in the layered template.'))
    img = Image.fromarray(stats.palettize_array(palettized_array))
    end = time.time()
    embed = disnake.Embed(color=6735308, title='Layered')
    embed.set_footer(text=f'Layered in {round((end - start), 3)}s')
    file = (await image_to_file(img, 'layered.png', embed))
    template = Combo(None, palettized_array, ox, oy, None, None, None)
    view = CreateTemplateView(ctx, template)
    m = (await ctx.send(file=file, embed=embed, view=view))
    if isinstance(ctx, disnake.AppCmdInter):
        m = (await ctx.original_message())
    view.template_image_url = m.embeds[0].image.url
    view.message = m