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 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().