def add_command(self, command):
if not isinstance(command, Command):<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>if isinstance(self, Command):<EOL><INDENT>command.parent = self<EOL><DEDENT>if command.name in self.all_commands:<EOL><INDENT>raise discord.ClientException('<STR_LIT>'.format(command))<EOL><DEDENT>self.all_commands[command.name] = command<EOL>for alias in command.aliases:<EOL><INDENT>if alias in self.all_commands:<EOL><INDENT>raise discord.ClientException('<STR_LIT>'.format(alias))<EOL><DEDENT>self.all_commands[alias] = command<EOL><DEDENT>
Adds a :class:`.Command` or its subclasses into the internal list
        of commands.

        This is usually not called, instead the :meth:`~.GroupMixin.command` or
        :meth:`~.GroupMixin.group` shortcut decorators are used instead.

        Parameters
        -----------
        command
            The command to add.

        Raises
        -------
        :exc:`.ClientException`
            If the command is already registered.
        TypeError
            If the command passed is not a subclass of :class:`.Command`.