package net.minecraft.command.selectors;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.SyntaxErrorException;
import net.minecraft.command.arg.ArgWrapper;
import net.minecraft.command.arg.CommandArg;
import net.minecraft.command.collections.TypeIDs;
import net.minecraft.command.descriptors.SelectorDescriptorSingleArg.ParserDataSingleArg;
import net.minecraft.command.descriptors.SelectorDescriptorSingleArg.SingleArgConstructable;
public class SelectorTiming extends CommandArg<Integer>
{
public static final SingleArgConstructable constructable = new SingleArgConstructable()
{
@Override
public ArgWrapper<Integer> construct(final ParserDataSingleArg parserData) throws SyntaxErrorException
{
return TypeIDs.Integer.wrap(new SelectorTiming(parserData.getRequiredArg(TypeIDs.Integer)));
}
};
private final CommandArg<Integer> command;
public SelectorTiming(final CommandArg<Integer> command)
{
this.command = command;
}
@Override
public Integer eval(final ICommandSender sender) throws CommandException
{
final long start = System.nanoTime();
this.command.eval(sender);
return (int) ((System.nanoTime() - start) / 1000);
}
}