diff --git a/cogs/info.py b/cogs/info.py
index 95a58638..167e61d7 100644
--- a/cogs/info.py
+++ b/cogs/info.py
@@ -15,16 +15,18 @@
# along with this program. If not, see .
import datetime
+import io
import string
from asyncio.subprocess import Process
from platform import python_version
from time import time
from typing import Optional, Union
-from discord import Embed, Role
+from PIL import Image
+from discord import Embed, Role, File
from discord import Member, TextChannel
from discord import __version__ as discord_version
-from discord.ext.commands import BucketType, cooldown, bot_has_permissions, guild_only, Cog
+from discord.ext.commands import bot_has_permissions, guild_only, Cog, group
from discord.ext.commands import command
from psutil import Process, virtual_memory
@@ -436,8 +438,7 @@ class Info(Cog):
await ctx.send(embed=stats)
- @command(name="avatar")
- @cooldown(1, 1, BucketType.user)
+ @group(name="avatar", invoke_without_command=True, case_insensitive=True, usage="`[member]| [member]`")
@bot_has_permissions(embed_links=True)
async def get_user_avatar(self, ctx, *, member: Optional[Member] = None):
"""
@@ -460,6 +461,32 @@ class Info(Cog):
await ctx.send(embed=embed)
+ @get_user_avatar.command(name="greyscale", aliases=["gs"])
+ @bot_has_permissions(embed_links=True)
+ async def greyscale_user_avatar(self, ctx, *, member: Optional[Member] = None):
+ """Get the greyscale avatar of the member"""
+
+ # Get member mentioned or set to author
+ member = ctx.author if not member else member
+
+ attach = await member.avatar_url.read()
+ image = Image.open(io.BytesIO(attach)).convert('LA')
+
+ # Save new grayscale image as bytes
+ file = io.BytesIO()
+ image.save(file, format='PNG')
+ file.seek(0)
+
+ # Send image in an embed
+ f = File(file, "image.png")
+ embed = Embed(title=f"{member}'s Avatar | Greyscale",
+ colour=self.bot.admin_colour,
+ timestamp=datetime.datetime.utcnow())
+ embed.set_image(url="attachment://image.png")
+ embed.set_footer(text=f"Requested by {ctx.author}", icon_url=ctx.author.avatar_url)
+
+ await ctx.send(file=f, embed=embed)
+
def setup(bot):
bot.add_cog(Info(bot))