package joshie.harvest.tools.command; import joshie.harvest.api.core.ITiered; import joshie.harvest.core.commands.CommandManager.CommandLevel; import joshie.harvest.core.commands.HFCommand; import net.minecraft.command.*; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.server.MinecraftServer; import javax.annotation.Nonnull; @HFCommand @SuppressWarnings("unused") public class HFCommandTool extends CommandBase { @Override @Nonnull public String getCommandName() { return "tool"; } @Override @Nonnull public String getCommandUsage(@Nonnull ICommandSender sender) { return "/hf tool [player] <value>"; } @Override public int getRequiredPermissionLevel() { return CommandLevel.OP_AFFECT_GAMEPLAY.ordinal(); } private boolean applyLevel(ItemStack stack, double level) { return !(stack == null || !(stack.getItem() instanceof ITiered)) && ((ITiered) stack.getItem()).setLevel(stack, level); } @Override public void execute(@Nonnull MinecraftServer server, @Nonnull ICommandSender sender, @Nonnull String[] parameters) throws CommandException { if (parameters.length == 1 || parameters.length == 2) { double level = Double.parseDouble(parameters[parameters.length - 1]); EntityPlayerMP player = parameters.length == 1 ? CommandBase.getCommandSenderAsPlayer(sender) : CommandBase.getPlayer(server, sender, parameters[0]); if (!applyLevel(player.getHeldItemOffhand(), level)) applyLevel(player.getHeldItemMainhand(), level); } else throw new WrongUsageException(getCommandUsage(sender)); } }