Check if the manager has a plugin / plugin(s), either by its name, type, or simply checking if the
        manager has any plugins registered in it.

        Utilizing the name argument will check if a plugin with that name exists in the manager.
        Using both the name and plugin_type arguments will check if a plugin with that name, and type, exists.

        Using only the plugin_type argument will check if any plugins matching the type specified are registered
        in the plugin manager.
        :param name: Name of the plugin to check for.
        :param plugin_type: Plugin Type to check for.
        :return:

def has_plugin(self, name=None, plugin_type=None):
        """
        Check if the manager has a plugin / plugin(s), either by its name, type, or simply checking if the
        manager has any plugins registered in it.

        Utilizing the name argument will check if a plugin with that name exists in the manager.
        Using both the name and plugin_type arguments will check if a plugin with that name, and type, exists.

        Using only the plugin_type argument will check if any plugins matching the type specified are registered
        in the plugin manager.
        :param name: Name of the plugin to check for.
        :param plugin_type: Plugin Type to check for.
        :return:
        """
        # If there's no arguments passed to this, then we check if there's simply any plugins
        # Registered in the plugin manager.
        if name is None and plugin_type is None:
            return len(self.plugins) > 0

        # If there's a name and plugin type, we just want to verify the manager
        # Has a plugin with that name, and that plugin is of the given type!
        if name is not None and plugin_type is not None:
            return name in self.plugins and isinstance(self.plugins[name],
                                                       plugin_type if inspect.isclass(plugin_type) else type(
                                                           plugin_type))

        # If only the type is given, then just assure we have atleast one plugin with the
        # desired type registered in the manager
        if plugin_type is not None:
            return len(
                self.get_plugins(plugin_type=plugin_type if inspect.isclass(plugin_type) else type(plugin_type))) > 0

        # Lastly, however, we're doing a simple name check; Assuring the manager
        # has a plugin registered with the given name!
        return name in self.plugins