diff --git a/src/api/java/baritone/api/process/IBuilderProcess.java b/src/api/java/baritone/api/process/IBuilderProcess.java
index efd96d9fa..97701b7bc 100644
--- a/src/api/java/baritone/api/process/IBuilderProcess.java
+++ b/src/api/java/baritone/api/process/IBuilderProcess.java
@@ -17,7 +17,7 @@
package baritone.api.process;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.util.math.BlockPos;
diff --git a/src/api/java/baritone/api/schematic/AbstractSchematic.java b/src/api/java/baritone/api/schematic/AbstractSchematic.java
index 7a24e803f..3cd14747d 100644
--- a/src/api/java/baritone/api/schematic/AbstractSchematic.java
+++ b/src/api/java/baritone/api/schematic/AbstractSchematic.java
@@ -17,8 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
-
public abstract class AbstractSchematic implements ISchematic {
protected int x;
diff --git a/src/api/java/baritone/api/schematic/CompositeSchematic.java b/src/api/java/baritone/api/schematic/CompositeSchematic.java
index 21df29b4d..2f119de1b 100644
--- a/src/api/java/baritone/api/schematic/CompositeSchematic.java
+++ b/src/api/java/baritone/api/schematic/CompositeSchematic.java
@@ -17,7 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState;
import java.util.ArrayList;
diff --git a/src/api/java/baritone/api/schematic/CompositeSchematicEntry.java b/src/api/java/baritone/api/schematic/CompositeSchematicEntry.java
index a26f356bf..10260542f 100644
--- a/src/api/java/baritone/api/schematic/CompositeSchematicEntry.java
+++ b/src/api/java/baritone/api/schematic/CompositeSchematicEntry.java
@@ -17,8 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
-
public class CompositeSchematicEntry {
public final ISchematic schematic;
diff --git a/src/api/java/baritone/api/utils/ISchematic.java b/src/api/java/baritone/api/schematic/ISchematic.java
similarity index 99%
rename from src/api/java/baritone/api/utils/ISchematic.java
rename to src/api/java/baritone/api/schematic/ISchematic.java
index 2adcbdd58..88cfc8999 100644
--- a/src/api/java/baritone/api/utils/ISchematic.java
+++ b/src/api/java/baritone/api/schematic/ISchematic.java
@@ -15,7 +15,7 @@
* along with Baritone. If not, see .
*/
-package baritone.api.utils;
+package baritone.api.schematic;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.EnumFacing;
diff --git a/src/api/java/baritone/api/schematic/MaskSchematic.java b/src/api/java/baritone/api/schematic/MaskSchematic.java
index fa9b81269..229f58d5b 100644
--- a/src/api/java/baritone/api/schematic/MaskSchematic.java
+++ b/src/api/java/baritone/api/schematic/MaskSchematic.java
@@ -17,7 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState;
import java.util.List;
diff --git a/src/api/java/baritone/api/schematic/ReplaceSchematic.java b/src/api/java/baritone/api/schematic/ReplaceSchematic.java
index 988cfd7f1..f064435e0 100644
--- a/src/api/java/baritone/api/schematic/ReplaceSchematic.java
+++ b/src/api/java/baritone/api/schematic/ReplaceSchematic.java
@@ -18,7 +18,6 @@
package baritone.api.schematic;
import baritone.api.utils.BlockOptionalMetaLookup;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState;
public class ReplaceSchematic extends MaskSchematic {
diff --git a/src/api/java/baritone/api/schematic/ShellSchematic.java b/src/api/java/baritone/api/schematic/ShellSchematic.java
index 4ead61b6c..275a4926d 100644
--- a/src/api/java/baritone/api/schematic/ShellSchematic.java
+++ b/src/api/java/baritone/api/schematic/ShellSchematic.java
@@ -17,7 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState;
public class ShellSchematic extends MaskSchematic {
diff --git a/src/api/java/baritone/api/schematic/WallsSchematic.java b/src/api/java/baritone/api/schematic/WallsSchematic.java
index e05de1e70..6e1cfa5f5 100644
--- a/src/api/java/baritone/api/schematic/WallsSchematic.java
+++ b/src/api/java/baritone/api/schematic/WallsSchematic.java
@@ -17,7 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.state.IBlockState;
public class WallsSchematic extends MaskSchematic {
diff --git a/src/api/java/baritone/api/utils/BlockOptionalMeta.java b/src/api/java/baritone/api/utils/BlockOptionalMeta.java
index 5c32a9221..6175f48f8 100644
--- a/src/api/java/baritone/api/utils/BlockOptionalMeta.java
+++ b/src/api/java/baritone/api/utils/BlockOptionalMeta.java
@@ -17,7 +17,7 @@
package baritone.api.utils;
-import baritone.api.accessor.IItemStack;
+import baritone.api.utils.accessor.IItemStack;
import com.google.common.collect.ImmutableSet;
import net.minecraft.block.*;
import net.minecraft.block.state.IBlockState;
diff --git a/src/api/java/baritone/api/accessor/IItemStack.java b/src/api/java/baritone/api/utils/accessor/IItemStack.java
similarity index 95%
rename from src/api/java/baritone/api/accessor/IItemStack.java
rename to src/api/java/baritone/api/utils/accessor/IItemStack.java
index 480c713fa..229027794 100644
--- a/src/api/java/baritone/api/accessor/IItemStack.java
+++ b/src/api/java/baritone/api/utils/accessor/IItemStack.java
@@ -15,7 +15,7 @@
* along with Baritone. If not, see .
*/
-package baritone.api.accessor;
+package baritone.api.utils.accessor;
public interface IItemStack {
diff --git a/src/launch/java/baritone/launch/mixins/MixinGuiScreen.java b/src/launch/java/baritone/launch/mixins/MixinGuiScreen.java
index 9f91beaab..39f78fd3c 100644
--- a/src/launch/java/baritone/launch/mixins/MixinGuiScreen.java
+++ b/src/launch/java/baritone/launch/mixins/MixinGuiScreen.java
@@ -17,7 +17,7 @@
package baritone.launch.mixins;
-import baritone.api.accessor.IGuiScreen;
+import baritone.utils.accessor.IGuiScreen;
import net.minecraft.client.gui.GuiScreen;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
diff --git a/src/launch/java/baritone/launch/mixins/MixinItemStack.java b/src/launch/java/baritone/launch/mixins/MixinItemStack.java
index 12cda8b3f..dd6af902a 100644
--- a/src/launch/java/baritone/launch/mixins/MixinItemStack.java
+++ b/src/launch/java/baritone/launch/mixins/MixinItemStack.java
@@ -17,7 +17,7 @@
package baritone.launch.mixins;
-import baritone.api.accessor.IItemStack;
+import baritone.api.utils.accessor.IItemStack;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.spongepowered.asm.mixin.Final;
diff --git a/src/main/java/baritone/behavior/InventoryBehavior.java b/src/main/java/baritone/behavior/InventoryBehavior.java
index 3dada966b..d45893e4d 100644
--- a/src/main/java/baritone/behavior/InventoryBehavior.java
+++ b/src/main/java/baritone/behavior/InventoryBehavior.java
@@ -151,7 +151,7 @@ public final class InventoryBehavior extends Behavior {
public boolean throwaway(boolean select, Predicate super ItemStack> desired) {
EntityPlayerSP p = ctx.player();
NonNullList inv = p.inventory.mainInventory;
- for (byte i = 0; i < 9; i++) {
+ for (int i = 0; i < 9; i++) {
ItemStack item = inv.get(i);
// this usage of settings() is okay because it's only called once during pathing
// (while creating the CalculationContext at the very beginning)
@@ -171,7 +171,7 @@ public final class InventoryBehavior extends Behavior {
// we've already checked above ^ and the main hand can't possible have an acceptablethrowawayitem
// so we need to select in the main hand something that doesn't right click
// so not a shovel, not a hoe, not a block, etc
- for (byte i = 0; i < 9; i++) {
+ for (int i = 0; i < 9; i++) {
ItemStack item = inv.get(i);
if (item.isEmpty() || item.getItem() instanceof ItemPickaxe) {
if (select) {
diff --git a/src/main/java/baritone/command/BaritoneChatControl.java b/src/main/java/baritone/command/BaritoneChatControl.java
index d428d6f89..1d0ecfb33 100644
--- a/src/main/java/baritone/command/BaritoneChatControl.java
+++ b/src/main/java/baritone/command/BaritoneChatControl.java
@@ -20,7 +20,7 @@ package baritone.command;
import baritone.api.BaritoneAPI;
import baritone.api.IBaritone;
import baritone.api.Settings;
-import baritone.api.accessor.IGuiScreen;
+import baritone.utils.accessor.IGuiScreen;
import baritone.api.event.events.ChatEvent;
import baritone.api.event.events.TabCompleteEvent;
import baritone.api.event.listener.AbstractGameEventListener;
diff --git a/src/main/java/baritone/command/defaults/SelCommand.java b/src/main/java/baritone/command/defaults/SelCommand.java
index 97cae9a61..6f242f0b0 100644
--- a/src/main/java/baritone/command/defaults/SelCommand.java
+++ b/src/main/java/baritone/command/defaults/SelCommand.java
@@ -27,7 +27,7 @@ import baritone.api.selection.ISelectionManager;
import baritone.api.utils.BetterBlockPos;
import baritone.api.utils.BlockOptionalMeta;
import baritone.api.utils.BlockOptionalMetaLookup;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import baritone.api.command.Command;
import baritone.api.command.datatypes.ForBlockOptionalMeta;
import baritone.api.command.datatypes.ForEnumFacing;
diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java
index 6b09f6011..e07b5e165 100644
--- a/src/main/java/baritone/process/BuilderProcess.java
+++ b/src/main/java/baritone/process/BuilderProcess.java
@@ -25,6 +25,7 @@ import baritone.api.pathing.goals.GoalGetToBlock;
import baritone.api.process.IBuilderProcess;
import baritone.api.process.PathingCommand;
import baritone.api.process.PathingCommandType;
+import baritone.api.schematic.ISchematic;
import baritone.api.utils.*;
import baritone.api.utils.input.Input;
import baritone.pathing.movement.CalculationContext;
diff --git a/src/main/java/baritone/utils/ToolSet.java b/src/main/java/baritone/utils/ToolSet.java
index f61b038af..573955d8f 100644
--- a/src/main/java/baritone/utils/ToolSet.java
+++ b/src/main/java/baritone/utils/ToolSet.java
@@ -92,15 +92,15 @@ public class ToolSet {
* Calculate which tool on the hotbar is best for mining
*
* @param b the blockstate to be mined
- * @return A byte containing the index in the tools array that worked best
+ * @return An int containing the index in the tools array that worked best
*/
- public byte getBestSlot(Block b, boolean preferSilkTouch) {
- byte best = 0;
+ public int getBestSlot(Block b, boolean preferSilkTouch) {
+ int best = 0;
double highestSpeed = Double.NEGATIVE_INFINITY;
int lowestCost = Integer.MIN_VALUE;
boolean bestSilkTouch = false;
IBlockState blockState = b.getDefaultState();
- for (byte i = 0; i < 9; i++) {
+ for (int i = 0; i < 9; i++) {
ItemStack itemStack = player.inventory.getStackInSlot(i);
double speed = calculateSpeedVsBlock(itemStack, blockState);
boolean silkTouch = hasSilkTouch(itemStack);
diff --git a/src/api/java/baritone/api/accessor/IGuiScreen.java b/src/main/java/baritone/utils/accessor/IGuiScreen.java
similarity index 95%
rename from src/api/java/baritone/api/accessor/IGuiScreen.java
rename to src/main/java/baritone/utils/accessor/IGuiScreen.java
index ba01e2755..beb5df31b 100644
--- a/src/api/java/baritone/api/accessor/IGuiScreen.java
+++ b/src/main/java/baritone/utils/accessor/IGuiScreen.java
@@ -15,7 +15,7 @@
* along with Baritone. If not, see .
*/
-package baritone.api.accessor;
+package baritone.utils.accessor;
import java.net.URI;
diff --git a/src/main/java/baritone/utils/schematic/FillSchematic.java b/src/main/java/baritone/utils/schematic/FillSchematic.java
index 3216f59ff..2e67b121f 100644
--- a/src/main/java/baritone/utils/schematic/FillSchematic.java
+++ b/src/main/java/baritone/utils/schematic/FillSchematic.java
@@ -17,7 +17,7 @@
package baritone.utils.schematic;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import net.minecraft.block.state.IBlockState;
import java.util.List;
diff --git a/src/main/java/baritone/utils/schematic/Schematic.java b/src/main/java/baritone/utils/schematic/Schematic.java
index e2b8042b7..937666281 100644
--- a/src/main/java/baritone/utils/schematic/Schematic.java
+++ b/src/main/java/baritone/utils/schematic/Schematic.java
@@ -17,7 +17,7 @@
package baritone.utils.schematic;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound;
diff --git a/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java b/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java
index 382790313..cd1e789f3 100644
--- a/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java
+++ b/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java
@@ -17,7 +17,7 @@
package baritone.utils.schematic.schematica;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import com.github.lunatrius.schematica.client.world.SchematicWorld;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.math.BlockPos;
diff --git a/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java b/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java
index bacf1e9d2..85b3967f5 100644
--- a/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java
+++ b/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java
@@ -17,7 +17,7 @@
package baritone.utils.schematic.schematica;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import com.github.lunatrius.schematica.Schematica;
import com.github.lunatrius.schematica.proxy.ClientProxy;
import net.minecraft.util.Tuple;