package net.minecraft.command.type.management.relations;
import net.minecraft.command.SyntaxErrorException;
import net.minecraft.command.arg.CommandArg;
import net.minecraft.command.type.management.Convertable;
import net.minecraft.command.type.management.Converter;
import net.minecraft.command.type.management.SConverter;
public class RelCommandArg extends Relation
{
public RelCommandArg()
{
super("CommandArg");
}
public final <T> void registerPair(final Convertable<T, ?, ?> base, final Convertable<CommandArg<T>, ?, SyntaxErrorException> rel)
{
base.addAttribute(new Att<>(rel));
}
public class Att<T> extends Attribute
{
public final Convertable<CommandArg<T>, ?, SyntaxErrorException> rel;
private Att(final Convertable<CommandArg<T>, ?, SyntaxErrorException> rel)
{
this.rel = rel;
}
// Checked...
public final <U> void apply(final Convertable<CommandArg<U>, ?, SyntaxErrorException> target, final Converter<T, U, ?> converter, final int dist)
{
this.rel.addConverter(target, new SConverter<CommandArg<T>, CommandArg<U>>()
{
@Override
public CommandArg<U> convert(final CommandArg<T> toConvert)
{
return converter.transform(toConvert);
}
}, dist);
}
}
}