Class HelpFilters

java.lang.Object
studio.mevera.imperat.command.tree.help.HelpFilters

public final class HelpFilters extends Object
Factory class providing common help filters.
  • Method Details

    • executable

      public static <S extends Source> HelpFilter<S> executable()
      Creates a filter that only includes executable nodes.
    • commands

      public static <S extends Source> HelpFilter<S> commands()
      Creates a filter that only includes command nodes.
    • arguments

      public static <S extends Source> HelpFilter<S> arguments()
      Creates a filter that excludes command nodes (only arguments).
    • depth

      public static <S extends Source> HelpFilter<S> depth(int minDepth, int maxDepth)
      Creates a filter based on node depth.
      Parameters:
      minDepth - minimum depth (inclusive)
      maxDepth - maximum depth (inclusive)
    • hasPermission

      public static <S extends Source> HelpFilter<S> hasPermission(S source, PermissionChecker<S> checker)
      Creates a filter that checks if a source has permission for the node.
      Parameters:
      source - the source to check permissions for
      checker - the permission checker
    • hasPermission

      public static <S extends Source> HelpFilter<S> hasPermission(S source, Context<S> context)
      Creates a filter that checks if a source has permission for the node.
      Parameters:
      source - the source to check permissions for
      context - the context.
    • hasPermission

      public static <S extends Source> HelpFilter<S> hasPermission(S source, CommandHelp<S> help)
      Creates a filter that checks if a source has permission for the node.
      Parameters:
      source - the source to check permissions for
      help - the command help.
    • withPermission

      public static <S extends Source> HelpFilter<S> withPermission(String permission)
      Creates a filter that only includes nodes with a specific permission.
      Parameters:
      permission - the required permission
    • noPermission

      public static <S extends Source> HelpFilter<S> noPermission()
      Creates a filter that only includes nodes without any permission requirement.
    • nameMatches

      public static <S extends Source> HelpFilter<S> nameMatches(String pattern)
      Creates a filter that matches node names against a pattern.
      Parameters:
      pattern - regex pattern to match
    • nameContains

      public static <S extends Source> HelpFilter<S> nameContains(String substring)
      Creates a filter that matches node names containing a substring.
      Parameters:
      substring - the substring to search for (case-insensitive)
    • optional

      public static <S extends Source> HelpFilter<S> optional()
      Creates a filter for optional parameters only.
    • required

      public static <S extends Source> HelpFilter<S> required()
      Creates a filter for required parameters only.
    • all

      public static <S extends Source> HelpFilter<S> all()
      Creates a filter that always passes (includes all nodes).
    • none

      public static <S extends Source> HelpFilter<S> none()
      Creates a filter that never passes (excludes all nodes).
    • allOf

      @SafeVarargs public static <S extends Source> HelpFilter<S> allOf(HelpFilter<S>... filters)
      Creates a composite filter from multiple filters (AND logic).
      Parameters:
      filters - the filters to combine
    • anyOf

      @SafeVarargs public static <S extends Source> HelpFilter<S> anyOf(HelpFilter<S>... filters)
      Creates a composite filter from multiple filters (OR logic).
      Parameters:
      filters - the filters to combine
    • childrenOnly

      @NotNull public static <S extends Source> @NotNull HelpFilter<S> childrenOnly()