Class 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 Detail

      • shortText

        protected String shortText
      • fullText

        protected String fullText
      • amendedPermission

        protected String amendedPermission
    • Constructor Detail

      • HelpTopic

        public HelpTopic()
    • Method Detail

      • canSee

        public abstract boolean canSee​(@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
                                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 String getName()
        Returns the name of this help topic.
        Returns:
        The topic name.
      • getShortText

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

        @NotNull
        public String getFullText​(@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
                               String amendedShortText,
                               @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 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.
        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().