/* * Decompiled with CFR 0.152. * * Could not load the following classes: * com.mojang.brigadier.ImmutableStringReader * com.mojang.brigadier.StringReader * com.mojang.brigadier.exceptions.CommandSyntaxException * com.mojang.brigadier.exceptions.DynamicCommandExceptionType * com.mojang.brigadier.suggestion.Suggestions * com.mojang.brigadier.suggestion.SuggestionsBuilder * com.mojang.serialization.Codec * com.mojang.serialization.DataResult * com.mojang.serialization.DynamicOps */ package net.minecraft.util.parsing.packrat.commands; import com.mojang.brigadier.ImmutableStringReader; import com.mojang.brigadier.StringReader; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.mojang.serialization.Codec; import com.mojang.serialization.DataResult; import com.mojang.serialization.DynamicOps; import java.util.concurrent.CompletableFuture; import java.util.function.Function; public interface CommandArgumentParser { public T parseForCommands(StringReader var1) throws CommandSyntaxException; public CompletableFuture parseForSuggestions(SuggestionsBuilder var1); default public CommandArgumentParser mapResult(final Function mapper) { return new CommandArgumentParser(){ @Override public S parseForCommands(StringReader reader) throws CommandSyntaxException { return mapper.apply(CommandArgumentParser.this.parseForCommands(reader)); } @Override public CompletableFuture parseForSuggestions(SuggestionsBuilder suggestionsBuilder) { return CommandArgumentParser.this.parseForSuggestions(suggestionsBuilder); } }; } default public CommandArgumentParser withCodec(final DynamicOps ops, final CommandArgumentParser valueParser, final Codec codec, final DynamicCommandExceptionType exceptionType) { return new CommandArgumentParser(){ @Override public T parseForCommands(StringReader reader) throws CommandSyntaxException { int cursor = reader.getCursor(); Object tag = valueParser.parseForCommands(reader); DataResult result = codec.parse(ops, tag); return result.getOrThrow(message -> { reader.setCursor(cursor); return exceptionType.createWithContext((ImmutableStringReader)reader, message); }); } @Override public CompletableFuture parseForSuggestions(SuggestionsBuilder suggestionsBuilder) { return CommandArgumentParser.this.parseForSuggestions(suggestionsBuilder); } }; } }