// Copyright (c) 2015, Christopher "BlayTheNinth" Baker
package net.blay09.mods.eirairc.command;
import com.google.common.collect.Lists;
import net.blay09.mods.eirairc.api.SubCommand;
import net.blay09.mods.eirairc.util.Utils;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.BlockPos;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public final class SubCommandWrapper implements ICommand {
public final SubCommand command;
public SubCommandWrapper(SubCommand command) {
this.command = command;
}
@Override
public String getCommandName() {
return command.getCommandName();
}
@Override
public final String getCommandUsage(ICommandSender sender) {
return command.getCommandUsage(sender);
}
@Override
public final List<String> getCommandAliases() {
String[] aliases = command.getAliases();
if(aliases != null) {
List<String> list = new ArrayList<>();
Collections.addAll(list, aliases);
return list;
}
return Collections.emptyList();
}
@Override
public boolean canCommandSenderUseCommand(ICommandSender sender) {
return command.canCommandSenderUseCommand(sender);
}
@Override
public boolean isUsernameIndex(String[] args, int idx){
return command.isUsernameIndex(args, idx);
}
@Override
public void processCommand(ICommandSender sender, String[] args) throws CommandException {
command.processCommand(sender, Utils.getSuggestedTarget(), args, Utils.isServerSide());
}
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
List<String> list = Lists.newArrayList();
command.addTabCompletionOptions(list, sender, args);
return list;
}
@Override
public int compareTo(ICommand o) {
return getCommandName().compareTo(o.getCommandName());
}
}