package openblocks.rubbish; import static openmods.utils.CommandUtils.error; import static openmods.utils.CommandUtils.fiterPlayerNames; import static openmods.utils.CommandUtils.getPlayer; import static openmods.utils.CommandUtils.respond; import com.google.common.collect.Lists; import java.util.List; import net.minecraft.command.ICommand; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import openblocks.enchantments.FlimFlamEnchantmentsHandler; public class CommandLuck implements ICommand { private static final String NAME = "luck"; @Override public int compareTo(Object o) { return NAME.compareTo(((ICommand)o).getCommandName()); } @Override public String getCommandName() { return NAME; } @Override public String getCommandUsage(ICommandSender icommandsender) { return NAME + " <player> [<amount>]"; } @Override @SuppressWarnings("rawtypes") public List getCommandAliases() { return null; } @Override public void processCommand(ICommandSender sender, String[] params) { if (params.length < 1) throw error("openblocks.misc.command.invalid"); String playerName = params[0]; EntityPlayer player = getPlayer(sender, playerName); if (params.length == 1) { int result = FlimFlamEnchantmentsHandler.getLuck(player); respond(sender, "openblocks.misc.command.luck_current", playerName, result); } else if (params.length == 2) { int amount; try { amount = Integer.parseInt(params[1]); } catch (NumberFormatException e) { throw error("openblocks.misc.command.invalid"); } int result = FlimFlamEnchantmentsHandler.modifyLuck(player, amount); respond(sender, "openblocks.misc.command.luck_added", playerName, result); } else throw error("openblocks.misc.command.invalid"); } @Override public boolean canCommandSenderUseCommand(ICommandSender sender) { return sender.canCommandSenderUseCommand(4, NAME); // OP } @Override @SuppressWarnings("rawtypes") public List addTabCompletionOptions(ICommandSender sender, String[] params) { if (params.length == 1) { String playerPrefix = params[0]; return fiterPlayerNames(playerPrefix); } return Lists.newArrayList(); } @Override public boolean isUsernameIndex(String[] astring, int i) { return i == 0; } }