Annotation Type Parser


  • @Target(METHOD)
    @Retention(RUNTIME)
    public @interface Parser
    This annotation allows you to create annotated methods that behave like argument parsers. The method must have this exact signature:
    
     ﹫Parser("name") // Name may be left out
     public ParsedType methodName(CommandContext<YourSender> sender, Queue<String> input) {
     }

    The method can throw exceptions, and the thrown exceptions will automatically be wrapped by a ArgumentParseResult.failure(Throwable)

    Since:
    1.3.0
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.String name
      The name of the parser.
      java.lang.String suggestions
      Name of the suggestions provider to use.
    • Element Detail

      • name

        java.lang.String name
        The name of the parser. If this is left empty, the parser will be registered as a default parser for the return type of the method
        Returns:
        Parser name
        Default:
        ""
      • suggestions

        java.lang.String suggestions
        Name of the suggestions provider to use. If the string is left empty, the default provider for the Argument will be used. Otherwise, the ParserRegistry instance in the CommandManager will be queried for a matching suggestion provider.

        For this to work, the suggestion needs to be registered in the parser registry. To do this, use ParserRegistry.registerSuggestionProvider(String, BiFunction). The registry instance can be retrieved using CommandManager.getParserRegistry().

        Returns:
        The name of the suggestion provider, or ""
        Default:
        ""