This commit is contained in:
Logan Darklock 2019-09-06 17:22:55 -07:00
parent 957f62ffbb
commit aefc82e47c
No known key found for this signature in database
GPG Key ID: B8C37CEDE1AC60EA
15 changed files with 44 additions and 338 deletions

View File

@ -17,32 +17,14 @@
package baritone.api.schematic; package baritone.api.schematic;
import baritone.api.IBaritone;
import baritone.api.utils.IPlayerContext;
import baritone.api.utils.ISchematic; import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.NonNullList;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
public abstract class AbstractSchematic implements ISchematic { public abstract class AbstractSchematic implements ISchematic {
protected final IBaritone baritone;
protected final IPlayerContext ctx;
protected int x; protected int x;
protected int y; protected int y;
protected int z; protected int z;
public AbstractSchematic(IBaritone baritone, int x, int y, int z) { public AbstractSchematic(int x, int y, int z) {
this.baritone = baritone;
this.ctx = baritone == null ? null : baritone.getPlayerContext();
this.x = x; this.x = x;
this.y = y; this.y = y;
this.z = z; this.z = z;

View File

@ -17,7 +17,6 @@
package baritone.api.schematic; package baritone.api.schematic;
import baritone.api.IBaritone;
import baritone.api.utils.ISchematic; import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
@ -38,8 +37,8 @@ public class CompositeSchematic extends AbstractSchematic {
} }
} }
public CompositeSchematic(IBaritone baritone, int x, int y, int z) { public CompositeSchematic(int x, int y, int z) {
super(baritone, x, y, z); super(x, y, z);
schematics = new ArrayList<>(); schematics = new ArrayList<>();
recalcArr(); recalcArr();
} }

View File

@ -17,7 +17,6 @@
package baritone.api.schematic; package baritone.api.schematic;
import baritone.api.IBaritone;
import baritone.api.utils.BlockOptionalMeta; import baritone.api.utils.BlockOptionalMeta;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
@ -27,8 +26,8 @@ import java.util.List;
public class FillSchematic extends AbstractSchematic { public class FillSchematic extends AbstractSchematic {
private final BlockOptionalMeta bom; private final BlockOptionalMeta bom;
public FillSchematic(IBaritone baritone, int x, int y, int z, BlockOptionalMeta bom) { public FillSchematic(int x, int y, int z, BlockOptionalMeta bom) {
super(baritone, x, y, z); super(x, y, z);
this.bom = bom; this.bom = bom;
} }

View File

@ -17,7 +17,6 @@
package baritone.api.schematic; package baritone.api.schematic;
import baritone.api.IBaritone;
import baritone.api.utils.ISchematic; import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
@ -26,8 +25,8 @@ import java.util.List;
public abstract class MaskSchematic extends AbstractSchematic { public abstract class MaskSchematic extends AbstractSchematic {
private final ISchematic schematic; private final ISchematic schematic;
public MaskSchematic(IBaritone baritone, ISchematic schematic) { public MaskSchematic(ISchematic schematic) {
super(baritone, schematic.widthX(), schematic.heightY(), schematic.lengthZ()); super(schematic.widthX(), schematic.heightY(), schematic.lengthZ());
this.schematic = schematic; this.schematic = schematic;
} }
@ -35,7 +34,7 @@ public abstract class MaskSchematic extends AbstractSchematic {
@Override @Override
public boolean inSchematic(int x, int y, int z, IBlockState currentState) { public boolean inSchematic(int x, int y, int z, IBlockState currentState) {
return schematic.inSchematic(x, y, z, currentState) && partOfMask(x, y, z, currentState); return partOfMask(x, y, z, currentState) && schematic.inSchematic(x, y, z, currentState);
} }
@Override @Override

View File

@ -17,7 +17,6 @@
package baritone.api.schematic; package baritone.api.schematic;
import baritone.api.IBaritone;
import baritone.api.utils.BlockOptionalMetaLookup; import baritone.api.utils.BlockOptionalMetaLookup;
import baritone.api.utils.ISchematic; import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
@ -26,15 +25,18 @@ public class ReplaceSchematic extends MaskSchematic {
private final BlockOptionalMetaLookup filter; private final BlockOptionalMetaLookup filter;
private final Boolean[][][] cache; private final Boolean[][][] cache;
public ReplaceSchematic(IBaritone baritone, ISchematic schematic, BlockOptionalMetaLookup filter) { public ReplaceSchematic(ISchematic schematic, BlockOptionalMetaLookup filter) {
super(baritone, schematic); super(schematic);
this.filter = filter; this.filter = filter;
this.cache = new Boolean[widthX()][heightY()][lengthZ()]; this.cache = new Boolean[widthX()][heightY()][lengthZ()];
} }
@Override
protected boolean partOfMask(int x, int y, int z, IBlockState currentState) { protected boolean partOfMask(int x, int y, int z, IBlockState currentState) {
return cache[x][y][z] == null if (cache[x][y][z] == null) {
? cache[x][y][z] = filter.has(currentState) cache[x][y][z] = filter.has(currentState);
: cache[x][y][z]; }
return cache[x][y][z];
} }
} }

View File

@ -17,15 +17,15 @@
package baritone.api.schematic; package baritone.api.schematic;
import baritone.api.IBaritone;
import baritone.api.utils.ISchematic; import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
public class ShellSchematic extends MaskSchematic { public class ShellSchematic extends MaskSchematic {
public ShellSchematic(IBaritone baritone, ISchematic schematic) { public ShellSchematic(ISchematic schematic) {
super(baritone, schematic); super(schematic);
} }
@Override
protected boolean partOfMask(int x, int y, int z, IBlockState currentState) { protected boolean partOfMask(int x, int y, int z, IBlockState currentState) {
return x == 0 || y == 0 || z == 0 || x == widthX() - 1 || y == heightY() - 1 || z == lengthZ() - 1; return x == 0 || y == 0 || z == 0 || x == widthX() - 1 || y == heightY() - 1 || z == lengthZ() - 1;
} }

View File

@ -17,15 +17,15 @@
package baritone.api.schematic; package baritone.api.schematic;
import baritone.api.IBaritone;
import baritone.api.utils.ISchematic; import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
public class WallsSchematic extends MaskSchematic { public class WallsSchematic extends MaskSchematic {
public WallsSchematic(IBaritone baritone, ISchematic schematic) { public WallsSchematic(ISchematic schematic) {
super(baritone, schematic); super(schematic);
} }
@Override
protected boolean partOfMask(int x, int y, int z, IBlockState currentState) { protected boolean partOfMask(int x, int y, int z, IBlockState currentState) {
return x == 0 || z == 0 || x == widthX() - 1 || z == lengthZ() - 1; return x == 0 || z == 0 || x == widthX() - 1 || z == lengthZ() - 1;
} }

View File

@ -28,7 +28,7 @@ public class ArgParserManager {
public static final Registry<ArgParser> REGISTRY = new Registry<>(); public static final Registry<ArgParser> REGISTRY = new Registry<>();
static { static {
DefaultArgParsers.all.forEach(REGISTRY::register); DefaultArgParsers.ALL.forEach(REGISTRY::register);
} }
/** /**

View File

@ -113,7 +113,7 @@ public class DefaultArgParsers {
} }
} }
public static final List<ArgParser<?>> all = asList( public static final List<ArgParser<?>> ALL = asList(
IntArgumentParser.INSTANCE, IntArgumentParser.INSTANCE,
LongArgumentParser.INSTANCE, LongArgumentParser.INSTANCE,
FloatArgumentParser.INSTANCE, FloatArgumentParser.INSTANCE,

View File

@ -28,7 +28,6 @@ import net.minecraft.util.EnumFacing;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.NoSuchElementException;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -67,15 +66,10 @@ public class CommandArgument {
* @see ArgConsumer#getEnumOrNull(Class) * @see ArgConsumer#getEnumOrNull(Class)
*/ */
public <E extends Enum<?>> E getEnum(Class<E> enumClass) { public <E extends Enum<?>> E getEnum(Class<E> enumClass) {
try { return Arrays.stream(enumClass.getEnumConstants())
//noinspection OptionalGetWithoutIsPresent .filter(e -> e.name().equalsIgnoreCase(value))
return Arrays.stream(enumClass.getEnumConstants()) .findFirst()
.filter(e -> e.name().equalsIgnoreCase(value)) .orElseThrow(() -> new CommandInvalidTypeException(this, enumClass.getSimpleName()));
.findFirst()
.get();
} catch (NoSuchElementException e) {
throw new CommandInvalidTypeException(this, enumClass.getSimpleName());
}
} }
/** /**

View File

@ -25,8 +25,6 @@ import baritone.api.utils.command.helpers.tabcomplete.TabCompleteHelper;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Stream; import java.util.stream.Stream;
public class ForWaypoints implements IDatatypeFor<IWaypoint[]> { public class ForWaypoints implements IDatatypeFor<IWaypoint[]> {
@ -88,14 +86,8 @@ public class ForWaypoints implements IDatatypeFor<IWaypoint[]> {
} }
public static IWaypoint[] getWaypointsByName(String name) { public static IWaypoint[] getWaypointsByName(String name) {
Set<IWaypoint> found = new HashSet<>(); return Arrays.stream(getWaypoints())
.filter(waypoint -> waypoint.getName().equalsIgnoreCase(name))
for (IWaypoint waypoint : getWaypoints()) { .toArray(IWaypoint[]::new);
if (waypoint.getName().equalsIgnoreCase(name)) {
found.add(waypoint);
}
}
return found.toArray(new IWaypoint[0]);
} }
} }

View File

@ -39,13 +39,13 @@ public class PlayerByUsername implements IDatatypeFor<EntityPlayer> {
public PlayerByUsername(ArgConsumer consumer) { public PlayerByUsername(ArgConsumer consumer) {
String username = consumer.getString(); String username = consumer.getString();
if (isNull( player = players
player = players .stream()
.stream() .filter(s -> s.getName().equalsIgnoreCase(username))
.filter(s -> s.getName().equalsIgnoreCase(username)) .findFirst()
.findFirst() .orElse(null);
.orElse(null)
)) { if (isNull(player)) {
throw new IllegalArgumentException("no player found by that username"); throw new IllegalArgumentException("no player found by that username");
} }
} }

View File

@ -420,22 +420,6 @@ public class ArgConsumer implements Cloneable {
* @param datatype The datatype to get * @param datatype The datatype to get
* @return The datatype instance * @return The datatype instance
* @see IDatatype * @see IDatatype
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
*/ */
public <T extends IDatatype> T peekDatatype(Class<T> datatype) { public <T extends IDatatype> T peekDatatype(Class<T> datatype) {
return clone().getDatatype(datatype); return clone().getDatatype(datatype);
@ -453,22 +437,6 @@ public class ArgConsumer implements Cloneable {
* @param datatype The datatype to get * @param datatype The datatype to get
* @return The datatype instance, or {@code null} if it throws an exception * @return The datatype instance, or {@code null} if it throws an exception
* @see IDatatype * @see IDatatype
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
*/ */
public <T extends IDatatype> T peekDatatypeOrNull(Class<T> datatype) { public <T extends IDatatype> T peekDatatypeOrNull(Class<T> datatype) {
return clone().getDatatypeOrNull(datatype); return clone().getDatatypeOrNull(datatype);
@ -487,22 +455,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance * @return The datatype instance
* @see IDatatype * @see IDatatype
* @see IDatatypePost * @see IDatatypePost
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
*/ */
public <T, O, D extends IDatatypePost<T, O>> T peekDatatypePost(Class<D> datatype, O original) { public <T, O, D extends IDatatypePost<T, O>> T peekDatatypePost(Class<D> datatype, O original) {
return clone().getDatatypePost(datatype, original); return clone().getDatatypePost(datatype, original);
@ -522,22 +474,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance, or {@code def} if it throws an exception * @return The datatype instance, or {@code def} if it throws an exception
* @see IDatatype * @see IDatatype
* @see IDatatypePost * @see IDatatypePost
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
*/ */
public <T, O, D extends IDatatypePost<T, O>> T peekDatatypePostOrDefault(Class<D> datatype, O original, T def) { public <T, O, D extends IDatatypePost<T, O>> T peekDatatypePostOrDefault(Class<D> datatype, O original, T def) {
return clone().getDatatypePostOrDefault(datatype, original, def); return clone().getDatatypePostOrDefault(datatype, original, def);
@ -556,22 +492,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance, or {@code null} if it throws an exception * @return The datatype instance, or {@code null} if it throws an exception
* @see IDatatype * @see IDatatype
* @see IDatatypePost * @see IDatatypePost
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
*/ */
public <T, O, D extends IDatatypePost<T, O>> T peekDatatypePostOrNull(Class<D> datatype, O original) { public <T, O, D extends IDatatypePost<T, O>> T peekDatatypePostOrNull(Class<D> datatype, O original) {
return peekDatatypePostOrDefault(datatype, original, null); return peekDatatypePostOrDefault(datatype, original, null);
@ -590,22 +510,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance * @return The datatype instance
* @see IDatatype * @see IDatatype
* @see IDatatypeFor * @see IDatatypeFor
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
*/ */
public <T, D extends IDatatypeFor<T>> T peekDatatypeFor(Class<D> datatype) { public <T, D extends IDatatypeFor<T>> T peekDatatypeFor(Class<D> datatype) {
return clone().peekDatatypeFor(datatype); return clone().peekDatatypeFor(datatype);
@ -625,22 +529,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance, or {@code def} if it throws an exception * @return The datatype instance, or {@code def} if it throws an exception
* @see IDatatype * @see IDatatype
* @see IDatatypeFor * @see IDatatypeFor
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
*/ */
public <T, D extends IDatatypeFor<T>> T peekDatatypeForOrDefault(Class<D> datatype, T def) { public <T, D extends IDatatypeFor<T>> T peekDatatypeForOrDefault(Class<D> datatype, T def) {
return clone().peekDatatypeForOrDefault(datatype, def); return clone().peekDatatypeForOrDefault(datatype, def);
@ -659,22 +547,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance, or {@code null} if it throws an exception * @return The datatype instance, or {@code null} if it throws an exception
* @see IDatatype * @see IDatatype
* @see IDatatypeFor * @see IDatatypeFor
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
*/ */
public <T, D extends IDatatypeFor<T>> T peekDatatypeForOrNull(Class<D> datatype) { public <T, D extends IDatatypeFor<T>> T peekDatatypeForOrNull(Class<D> datatype) {
return peekDatatypeForOrDefault(datatype, null); return peekDatatypeForOrDefault(datatype, null);
@ -849,22 +721,6 @@ public class ArgConsumer implements Cloneable {
* @param datatype The datatype to get * @param datatype The datatype to get
* @return The datatype instance * @return The datatype instance
* @see IDatatype * @see IDatatype
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
*/ */
public <T extends IDatatype> T getDatatype(Class<T> datatype) { public <T extends IDatatype> T getDatatype(Class<T> datatype) {
try { try {
@ -888,22 +744,6 @@ public class ArgConsumer implements Cloneable {
* @param datatype The datatype to get * @param datatype The datatype to get
* @return The datatype instance, or {@code null} if it throws an exception * @return The datatype instance, or {@code null} if it throws an exception
* @see IDatatype * @see IDatatype
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
*/ */
public <T extends IDatatype> T getDatatypeOrNull(Class<T> datatype) { public <T extends IDatatype> T getDatatypeOrNull(Class<T> datatype) {
List<CommandArgument> argsSnapshot = new ArrayList<>(args); List<CommandArgument> argsSnapshot = new ArrayList<>(args);
@ -932,22 +772,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance * @return The datatype instance
* @see IDatatype * @see IDatatype
* @see IDatatypePost * @see IDatatypePost
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
*/ */
public <T, O, D extends IDatatypePost<T, O>> T getDatatypePost(Class<D> datatype, O original) { public <T, O, D extends IDatatypePost<T, O>> T getDatatypePost(Class<D> datatype, O original) {
return getDatatype(datatype).apply(original); return getDatatype(datatype).apply(original);
@ -967,22 +791,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance, or {@code def} if it throws an exception * @return The datatype instance, or {@code def} if it throws an exception
* @see IDatatype * @see IDatatype
* @see IDatatypePost * @see IDatatypePost
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
*/ */
public <T, O, D extends IDatatypePost<T, O>> T getDatatypePostOrDefault(Class<D> datatype, O original, T def) { public <T, O, D extends IDatatypePost<T, O>> T getDatatypePostOrDefault(Class<D> datatype, O original, T def) {
List<CommandArgument> argsSnapshot = new ArrayList<>(args); List<CommandArgument> argsSnapshot = new ArrayList<>(args);
@ -1013,22 +821,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance, or {@code null} if it throws an exception * @return The datatype instance, or {@code null} if it throws an exception
* @see IDatatype * @see IDatatype
* @see IDatatypePost * @see IDatatypePost
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
*/ */
public <T, O, D extends IDatatypePost<T, O>> T getDatatypePostOrNull(Class<D> datatype, O original) { public <T, O, D extends IDatatypePost<T, O>> T getDatatypePostOrNull(Class<D> datatype, O original) {
return getDatatypePostOrDefault(datatype, original, null); return getDatatypePostOrDefault(datatype, original, null);
@ -1045,22 +837,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance * @return The datatype instance
* @see IDatatype * @see IDatatype
* @see IDatatypeFor * @see IDatatypeFor
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
*/ */
public <T, D extends IDatatypeFor<T>> T getDatatypeFor(Class<D> datatype) { public <T, D extends IDatatypeFor<T>> T getDatatypeFor(Class<D> datatype) {
return getDatatype(datatype).get(); return getDatatype(datatype).get();
@ -1080,22 +856,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance, or {@code def} if it throws an exception * @return The datatype instance, or {@code def} if it throws an exception
* @see IDatatype * @see IDatatype
* @see IDatatypeFor * @see IDatatypeFor
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
*/ */
public <T, D extends IDatatypeFor<T>> T getDatatypeForOrDefault(Class<D> datatype, T def) { public <T, D extends IDatatypeFor<T>> T getDatatypeForOrDefault(Class<D> datatype, T def) {
List<CommandArgument> argsSnapshot = new ArrayList<>(args); List<CommandArgument> argsSnapshot = new ArrayList<>(args);
@ -1126,22 +886,6 @@ public class ArgConsumer implements Cloneable {
* @return The datatype instance, or {@code null} if it throws an exception * @return The datatype instance, or {@code null} if it throws an exception
* @see IDatatype * @see IDatatype
* @see IDatatypeFor * @see IDatatypeFor
* @see #getDatatype(Class)
* @see #getDatatypeOrNull(Class)
* @see #getDatatypePost(Class, Object)
* @see #getDatatypePostOrDefault(Class, Object, Object)
* @see #getDatatypePostOrNull(Class, Object)
* @see #getDatatypeFor(Class)
* @see #getDatatypeForOrDefault(Class, Object)
* @see #getDatatypeForOrNull(Class)
* @see #peekDatatype(Class)
* @see #peekDatatypeOrNull(Class)
* @see #peekDatatypePost(Class, Object)
* @see #peekDatatypePostOrDefault(Class, Object, Object)
* @see #peekDatatypePostOrNull(Class, Object)
* @see #peekDatatypeFor(Class)
* @see #peekDatatypeForOrDefault(Class, Object)
* @see #peekDatatypeForOrNull(Class)
*/ */
public <T, D extends IDatatypeFor<T>> T getDatatypeForOrNull(Class<D> datatype) { public <T, D extends IDatatypeFor<T>> T getDatatypeForOrNull(Class<D> datatype) {
return getDatatypeForOrDefault(datatype, null); return getDatatypeForOrDefault(datatype, null);

View File

@ -47,12 +47,7 @@ import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import static org.lwjgl.opengl.GL11.GL_LIGHTING_BIT; import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.opengl.GL11.GL_LINES;
import static org.lwjgl.opengl.GL11.GL_LINE_LOOP;
import static org.lwjgl.opengl.GL11.GL_LINE_STRIP;
import static org.lwjgl.opengl.GL11.glPopAttrib;
import static org.lwjgl.opengl.GL11.glPushAttrib;
/** /**
* @author Brady * @author Brady

View File

@ -137,7 +137,7 @@ public class SelCommand extends Command {
} }
BetterBlockPos origin = selections[0].min(); BetterBlockPos origin = selections[0].min();
CompositeSchematic composite = new CompositeSchematic(baritone, 0, 0, 0); CompositeSchematic composite = new CompositeSchematic(0, 0, 0);
for (ISelection selection : selections) { for (ISelection selection : selections) {
BetterBlockPos min = selection.min(); BetterBlockPos min = selection.min();
@ -152,14 +152,14 @@ public class SelCommand extends Command {
Vec3i size = selection.size(); Vec3i size = selection.size();
BetterBlockPos min = selection.min(); BetterBlockPos min = selection.min();
ISchematic schematic = new FillSchematic(baritone, size.getX(), size.getY(), size.getZ(), type); ISchematic schematic = new FillSchematic(size.getX(), size.getY(), size.getZ(), type);
if (action == Action.WALLS) { if (action == Action.WALLS) {
schematic = new WallsSchematic(baritone, schematic); schematic = new WallsSchematic(schematic);
} else if (action == Action.SHELL) { } else if (action == Action.SHELL) {
schematic = new ShellSchematic(baritone, schematic); schematic = new ShellSchematic(schematic);
} else if (action == Action.REPLACE) { } else if (action == Action.REPLACE) {
schematic = new ReplaceSchematic(baritone, schematic, replaces); schematic = new ReplaceSchematic(schematic, replaces);
} }
composite.put(schematic, min.x - origin.x, min.y - origin.y, min.z - origin.z); composite.put(schematic, min.x - origin.x, min.y - origin.y, min.z - origin.z);