Package org.bukkit.help

# Class HelpTopic

java.lang.Object
org.bukkit.help.HelpTopic

Direct Known Subclasses:
  `GenericCommandHelpTopic`, `IndexHelpTopic`

public abstract class HelpTopic extends Object
HelpTopic implementations are displayed to the user when the user uses the /help command.

Custom implementations of this class can work at two levels. A simple implementation only needs to set the value of `name`, `shortText`, and `fullText` in the constructor. This base class will take care of the rest.

Complex implementations can be created by overriding the behavior of all the methods in this class.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected String`
`amendedPermission`
`protected String`
`fullText`
`protected String`
`name`
`protected String`
`shortText`

## Constructor Summary

Constructors
Constructor
Description
`HelpTopic()`

## Method Summary

Modifier and Type
Method
Description
`void`
`amendCanSee(@Nullable String amendedPermission)`
Allows the server administrator to override the permission required to see a help topic.
`void`
`amendTopic(@Nullable String amendedShortText, @Nullable String amendedFullText)`
Allows the server admin (or another plugin) to add or replace the contents of a help topic.
`protected @NotNull String`
`applyAmendment(@NotNull String baseText, @Nullable String amendment)`
Developers implementing their own custom HelpTopic implementations can use this utility method to ensure their implementations comply with the expected behavior of the `amendTopic(String, String)` method.
`abstract boolean`
`canSee(@NotNull CommandSender player)`
Determines if a `Player` is allowed to see this help topic.
`@NotNull String`
`getFullText(@NotNull CommandSender forWho)`
Returns the full description of this help topic that is displayed when the user requests this topic's details.
`@NotNull String`
`getName()`
Returns the name of this help topic.
`@NotNull String`
`getShortText()`
Returns a brief description that will be displayed in the topic index.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### name

protected String name

### shortText

protected String shortText

### fullText

protected String fullText

### amendedPermission

protected String amendedPermission

## Constructor Details

### HelpTopic

public HelpTopic()

## Method Details

### canSee

public abstract boolean canSee(@NotNull @NotNull CommandSender player)
Determines if a `Player` is allowed to see this help topic.

HelpTopic implementations should take server administrator wishes into account as set by the `amendCanSee(String)` function.

Parameters:
  `player` - The Player in question.
Returns:
  True of the Player can see this help topic, false otherwise.

### amendCanSee

public void amendCanSee(@Nullable @Nullable String amendedPermission)
Allows the server administrator to override the permission required to see a help topic.

HelpTopic implementations should take this into account when determining topic visibility on the `canSee(org.bukkit.command.CommandSender)` function.

Parameters:
  `amendedPermission` - The permission node the server administrator wishes to apply to this topic.

### getName

@NotNull public @NotNull String getName()
Returns the name of this help topic.

Returns:
  The topic name.

### getShortText

@NotNull public @NotNull String getShortText()
Returns a brief description that will be displayed in the topic index.

Returns:
  A brief topic description.

### getFullText

@NotNull public @NotNull String getFullText(@NotNull @NotNull CommandSender forWho)
Returns the full description of this help topic that is displayed when the user requests this topic's details.

The result will be paginated to properly fit the user's client.

Parameters:
  `forWho` - The player or console requesting the full text. Useful for further security trimming the command's full text based on sub-permissions in custom implementations.
Returns:
  A full topic description.

### amendTopic

public void amendTopic(@Nullable @Nullable String amendedShortText, @Nullable @Nullable String amendedFullText)
Allows the server admin (or another plugin) to add or replace the contents of a help topic.

A null in either parameter will leave that part of the topic unchanged. In either amending parameter, the string <text> is replaced with the existing contents in the help topic. Use this to append or prepend additional content into an automatically generated help topic.

Parameters:
  `amendedShortText` - The new topic short text to use, or null to leave alone.
  `amendedFullText` - The new topic full text to use, or null to leave alone.

### applyAmendment

@NotNull protected @NotNull String applyAmendment(@NotNull @NotNull String baseText, @Nullable @Nullable String amendment)
Developers implementing their own custom HelpTopic implementations can use this utility method to ensure their implementations comply with the expected behavior of the `amendTopic(String, String)` method.

Parameters:
  `baseText` - The existing text of the help topic.
  `amendment` - The amending text from the amendTopic() method.
Returns:
  The application of the amending text to the existing text, according to the expected rules of amendTopic().