text: from discord import Embed, Member
  from discord.ext import commands
  from discord.ext.commands import Context
  
  from libary.db_wrapper import Bank
  from libary.developer import Developer
  from libary.emotes import CustomEmotes
  from libary.logger import logger
  from libary.permissions import can_use, is_owner, is_premium
  from libary.utils import color, env
  from libary.yml_wrapper import ConfigReader
  
  y = ConfigReader()
  
  
  class InfoCog(commands.Cog, name="Information"):
      def __init__(self, client):
          self.client = client
  
      @commands.Cog.listener()
      async def on_ready(self):
          logger.debug("InfoCog loaded!")
  
      @commands.command(
          name="github",
          description="Command to get the link to the code on github",
          brief="show github link",
          aliases=["git"],
      )
      async def github(self, ctx: Context):
          embed = Embed(
              title="NekoFanatic/kaiji",
              url="https://github.com/NekoFanatic/kaiji",
              color=color(ctx),
              description="Gamble Bot for the KS-Community Server"
          )
          embed.set_author(name="GitHub", icon_url="https://github.com/fluidicon.png")
          embed.set_thumbnail(url=self.client.user.avatar_url)
  
          await ctx.reply(embed=embed)
  
      @commands.command(
          name="developer",
          description="Command to show all the developer of the bot",
          brief="show developer",
          aliases=["dev"],
      )
      async def developer(self, ctx: Context):
          desc = ""
          for mention in Developer.__dict__.values():
              if str(mention) in env("OWNER"):
                  desc += f"\n:small_blue_diamond: <@{mention}>"
              else:
                  desc += f"\n:small_orange_diamond: <@{mention}>" if isinstance(mention, int) else ""
          embed = Embed(
              title=f"{CustomEmotes().bot_dev}Developer",
              color=color(ctx),
              description=desc
          )
  
          await ctx.reply(embed=embed)
  
      @commands.command(
          name="userinfo",
          description="Command to get information of a certain user",
          brief="get userinformation",
          aliases=["ui"],
      )
      async def userinfo(self, ctx: Context, user: Member = None):
          if user is None:
              user = ctx.author
          embed = Embed(
              title=f":crown: {user.display_name}" if ctx.guild.owner == user else f"{user.display_name}",
              color=color(ctx)
          )
          embed.add_field(name=":adult: Name", value=user.mention)
          embed.add_field(name=":dna: ID", value=user.id)
          embed.add_field(name=":inbox_tray: Joined", value=user.joined_at.strftime("%A %Y-%m-%d %H:%M:%S"))
          if user.bot:
              embed.add_field(name=":robot: Bot", value="True")
          if ctx.guild.owner == user:
              embed.add_field(name=":crown: Server-Owner", value="True")
          embed.set_thumbnail(url=user.avatar_url)
          if user.premium_since:
              embed.add_field(name=f"{CustomEmotes().booster} Server-Booster", value=user.premium_since.strftime('%A %Y-%m-%d %H:%M:%S'))
          if str(user.id) == env("OWNER"):
              embed.add_field(name=":star: Bot-Owner", value="True")
          if user.id in Developer.__dict__.values():
              embed.add_field(name=f"{CustomEmotes().bot_dev} Bot-Developer", value="True")
          if is_premium(ctx):
              embed.add_field(name=":tada: Premium User", value="True")
          if is_owner(ctx, user):
              s = "3"
          elif can_use(ctx):
              s = "2"
          else:
              s = "1"
          embed.add_field(name=":zap: Permission Level", value=s)
          embed.add_field(name=":moneybag: Wallet", value=str(Bank().get_user_value(user.id)))
  
          await ctx.reply(embed=embed)
  
  
  def setup(client):
      client.add_cog(InfoCog(client))
  