CommandArgumentParser.java

net.minecraft.util.parsing.packrat.commands.CommandArgumentParser

信息

  • 全限定名:net.minecraft.util.parsing.packrat.commands.CommandArgumentParser
  • 类型:public interface
  • 包:net.minecraft.util.parsing.packrat.commands
  • 源码路径:src/main/java/net/minecraft/util/parsing/packrat/commands/CommandArgumentParser.java
  • 起始行号:L15
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

T parseForCommands(StringReader reader) @ L16

  • 方法名:parseForCommands
  • 源码定位:L16
  • 返回类型:T
  • 修饰符:package-private

参数:

  • reader: StringReader

说明:

TODO

CompletableFuture<Suggestions> parseForSuggestions(SuggestionsBuilder suggestionsBuilder) @ L18

  • 方法名:parseForSuggestions
  • 源码定位:L18
  • 返回类型:CompletableFuture
  • 修饰符:package-private

参数:

  • suggestionsBuilder: SuggestionsBuilder

说明:

TODO

default <S> CommandArgumentParser<S> mapResult(Function<T,S> mapper) @ L20

  • 方法名:mapResult
  • 源码定位:L20
  • 返回类型: CommandArgumentParser
  • 修饰符:default

参数:

  • mapper: Function<T,S>

说明:

TODO

default <T,O> CommandArgumentParser<T> withCodec(DynamicOps<O> ops, CommandArgumentParser<O> valueParser, Codec<T> codec, DynamicCommandExceptionType exceptionType) @ L38

  • 方法名:withCodec
  • 源码定位:L38
  • 返回类型:<T,O> CommandArgumentParser
  • 修饰符:default

参数:

  • ops: DynamicOps
  • valueParser: CommandArgumentParser
  • codec: Codec
  • exceptionType: DynamicCommandExceptionType

说明:

TODO

代码

public interface CommandArgumentParser<T> {
    T parseForCommands(StringReader reader) throws CommandSyntaxException;
 
    CompletableFuture<Suggestions> parseForSuggestions(SuggestionsBuilder suggestionsBuilder);
 
    default <S> CommandArgumentParser<S> mapResult(Function<T, S> mapper) {
        return new CommandArgumentParser<S>() {
            {
                Objects.requireNonNull(CommandArgumentParser.this);
            }
 
            @Override
            public S parseForCommands(StringReader reader) throws CommandSyntaxException {
                return mapper.apply((T)CommandArgumentParser.this.parseForCommands(reader));
            }
 
            @Override
            public CompletableFuture<Suggestions> parseForSuggestions(SuggestionsBuilder suggestionsBuilder) {
                return CommandArgumentParser.this.parseForSuggestions(suggestionsBuilder);
            }
        };
    }
 
    default <T, O> CommandArgumentParser<T> withCodec(
        DynamicOps<O> ops, CommandArgumentParser<O> valueParser, Codec<T> codec, DynamicCommandExceptionType exceptionType
    ) {
        return new CommandArgumentParser<T>() {
            {
                Objects.requireNonNull(CommandArgumentParser.this);
            }
 
            @Override
            public T parseForCommands(StringReader reader) throws CommandSyntaxException {
                int cursor = reader.getCursor();
                O tag = valueParser.parseForCommands(reader);
                DataResult<T> result = codec.parse(ops, tag);
                return result.getOrThrow(message -> {
                    reader.setCursor(cursor);
                    return exceptionType.createWithContext(reader, message);
                });
            }
 
            @Override
            public CompletableFuture<Suggestions> parseForSuggestions(SuggestionsBuilder suggestionsBuilder) {
                return CommandArgumentParser.this.parseForSuggestions(suggestionsBuilder);
            }
        };
    }
}

引用的其他类