/* * This file is part of Baritone. * * Baritone is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Baritone is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Baritone. If not, see . */ package baritone.utils.command.defaults; import baritone.api.Settings; import baritone.api.process.IGetToBlockProcess; import baritone.api.utils.command.Command; import baritone.api.utils.command.exception.CommandInvalidStateException; import baritone.api.utils.command.helpers.arguments.ArgConsumer; import java.util.List; import java.util.stream.Stream; import static java.util.Arrays.asList; public class BlacklistCommand extends Command { public BlacklistCommand() { super("blacklist", "Blacklist closest block"); } @Override protected void executed(String label, ArgConsumer args, Settings settings) { args.requireMax(0); IGetToBlockProcess proc = baritone.getGetToBlockProcess(); if (!proc.isActive()) { throw new CommandInvalidStateException("GetToBlockProcess is not currently active"); } if (proc.blacklistClosest()) { logDirect("Blacklisted closest instances"); } else { throw new CommandInvalidStateException("No known locations, unable to blacklist"); } } @Override protected Stream tabCompleted(String label, ArgConsumer args, Settings settings) { return Stream.empty(); } @Override public List getLongDesc() { return asList( "While, for example, mining, this command blacklists the closest block so that Baritone won't attempt to get to it.", "", "Usage:", "> blacklist" ); } }