Package org.bukkit.help

# Interface HelpTopicFactory<TCommand extends Command>

Type Parameters:
  `TCommand` - The base class for your custom commands.

public interface HelpTopicFactory<TCommand extends Command>
A HelpTopicFactory is used to create custom `HelpTopic` objects from commands that inherit from a common base class or have executors that inherit from a common base class. You can use a custom HelpTopic to change the way all the commands in your plugin display in the help. If your plugin implements a complex permissions system, a custom help topic may also be appropriate.

To automatically bind your plugin's commands to your custom HelpTopic implementation, first make sure all your commands or executors derive from a custom base class (it doesn't have to do anything). Next implement a custom HelpTopicFactory that accepts your custom command base class and instantiates an instance of your custom HelpTopic from it. Finally, register your HelpTopicFactory against your command base class using the `HelpMap.registerHelpTopicFactory(Class, HelpTopicFactory)` method.

As the help system iterates over all registered commands to make help topics, it first checks to see if there is a HelpTopicFactory registered for the command's base class. If so, the factory is used to make a help topic rather than a generic help topic. If no factory is found for the command's base class and the command derives from `PluginCommand`, then the type of the command's executor is inspected looking for a registered HelpTopicFactory. Finally, if no factory is found, a generic help topic is created for the command.

## Method Summary

Modifier and Type
Method
Description
`@Nullable HelpTopic`
`createTopic(TCommand command)`
This method accepts a command deriving from a custom command base class and constructs a custom HelpTopic for it.

## Method Details

### createTopic

@Nullable @Nullable HelpTopic createTopic(@NotNull TCommand command)
This method accepts a command deriving from a custom command base class and constructs a custom HelpTopic for it.

Parameters:
  `command` - The custom command to build a help topic for.
Returns:
  A new custom help topic or `null` to intentionally NOT create a topic.