// Path: src/main/java/org/tyrannyofheaven/bukkit/util/ToHStringUtils.java
// public static boolean hasText(String text) {
//     return text != null && text.trim().length() > 0;
// }


import static org.tyrannyofheaven.bukkit.util.ToHStringUtils.hasText;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.bukkit.command.CommandSender;
    /**
     * Set the current handler object.
     * 
     * @param handler the handler object
     * @return this HelpBuilder
     */
    public HelpBuilder withHandler(Object handler) {
        if (handler == null)
            throw new IllegalArgumentException("handler cannot be null");
        
        this.handler = handler;
        return this;
    }

    // Retrieve the current handler object, complaining if one hasn't been set
    private Object getHandler() {
        if (handler == null)
            throw new IllegalStateException("handler has not been set");
        return handler;
    }

    /**
     * Generate a usage message for a particular sibling command.
     * 
     * @param command the sibling command
     * @param usePermissions true if permissions should be checked. If the current
     *   sender fails the check, no usage is generated.
     * @return this HelpBuilder
     */
    public HelpBuilder forSiblingCommand(String command, boolean usePermissions) {
// Path: src/main/java/org/tyrannyofheaven/bukkit/util/ToHStringUtils.java
// public static boolean hasText(String text) {
//     return text != null && text.trim().length() > 0;
// }


// Path: src/main/java/org/tyrannyofheaven/bukkit/util/command/HelpBuilder.java
import static org.tyrannyofheaven.bukkit.util.ToHStringUtils.hasText;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.bukkit.command.CommandSender;

    /**
     * Set the current handler object.
     * 
     * @param handler the handler object
     * @return this HelpBuilder
     */
    public HelpBuilder withHandler(Object handler) {
        if (handler == null)
            throw new IllegalArgumentException("handler cannot be null");
        
        this.handler = handler;
        return this;
    }

    // Retrieve the current handler object, complaining if one hasn't been set
    private Object getHandler() {
        if (handler == null)
            throw new IllegalStateException("handler has not been set");
        return handler;
    }

    /**
     * Generate a usage message for a particular sibling command.
     * 
     * @param command the sibling command
     * @param usePermissions true if permissions should be checked. If the current
     *   sender fails the check, no usage is generated.
     * @return this HelpBuilder
     */
    public HelpBuilder forSiblingCommand(String command, boolean usePermissions) {
        if (!hasText(command))