code: def event(self, coro):
          
  
          if not asyncio.iscoroutinefunction(coro):
              raise TypeError('event registered must be a coroutine function')
  
          setattr(self, coro.__name__, coro)
          log.debug('%s has successfully been registered as an event', coro.__name__)
          return coro
docs: A decorator that registers an event to listen to.
  
          You can find more info about the events on the :ref:`documentation below <discord-api-events>`.
  
          The events must be a |corourl|_, if not, :exc:`TypeError` is raised.
  
          Example
          ---------
  
          .. code-block:: python3
  
              @client.event
              async def on_ready():
                  print('Ready!')
  
          Raises
          --------
          TypeError
              The coroutine passed is not actually a coroutine.