code: def has_plugin(self, name=None, plugin_type=None):
          
          # 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
docs: 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: