package org.ultramine.mods.hawkeye; import java.util.Arrays; import java.util.Collection; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import org.ultramine.mods.hawkeye.callbacks.SearchCallback; import org.ultramine.mods.hawkeye.database.SearchQuery; import org.ultramine.mods.hawkeye.util.HawkBlockUtil; import org.ultramine.mods.hawkeye.util.HawkInventoryUtil; import org.ultramine.mods.hawkeye.util.HawkUtil; import org.ultramine.mods.hawkeye.util.HawkVector; public class ToolManager { public static void enableTool(PlayerSession session, EntityPlayer player) { InventoryPlayer inv = player.inventory; session.setUsingTool(true); ItemStack stack = HawkBlockUtil.itemStringToStack(HawkEye.instance.config.general.toolBlock, 1); int first; if (!HawkInventoryUtil.contains(inv, stack) && HawkEye.instance.config.general.giveTool) { first = HawkInventoryUtil.firstEmpty(inv); if (first != -1) { inv.setInventorySlotContents(first, stack); } } first = HawkInventoryUtil.first(inv, HawkBlockUtil.itemStringToStack(HawkEye.instance.config.general.toolBlock, 1)); if (!HawkBlockUtil.getItemString(inv.getCurrentItem()).equals(HawkEye.instance.config.general.toolBlock) && first != -1) { ItemStack back = inv.getCurrentItem().copy(); inv.setInventorySlotContents(inv.currentItem, inv.getStackInSlot(first)); if (back.stackSize == 0) { inv.setInventorySlotContents(first, (ItemStack)null); } else { inv.setInventorySlotContents(first, back); } } HawkUtil.sendMessage(player, "&cHawkEye tool enabled! &7Left click a block or place the tool to get information"); } public static void disableTool(PlayerSession session, EntityPlayer player) { session.setUsingTool(false); HawkUtil.sendMessage(player, "&cHawkEye tool disabled"); } public static void toolSearch(EntityPlayer player, HawkVector loc) { PlayerSession session = SessionManager.getSession(player); SearchParser parser; if (session.getToolCommand().length != 0 && session.getToolCommand()[0] != "") { parser = new SearchParser(player, Arrays.asList(session.getToolCommand())); } else { parser = new SearchParser(player); DataType[] var4 = DataType.values(); int var5 = var4.length; for(int var6 = 0; var6 < var5; ++var6) { DataType type = var4[var6]; if (type.canHere()) { parser.actions.add(type); } } } HawkVector vec = HawkUtil.getSimpleLocation(loc); parser.loc = vec; parser.minLoc = null; parser.maxLoc = null; parser.worlds = new String[]{Integer.toString(player.ap)}; new SearchQuery(new SearchCallback(SessionManager.getSession(player), true), parser, SearchQuery.SearchDir.DESC); } public static void bindTool(EntityPlayer player, PlayerSession session, List args) { try { new SearchParser(player, args); } catch (IllegalArgumentException var4) { HawkUtil.sendMessage(player, "&c" + var4.getMessage()); return; } HawkUtil.sendMessage(player, "&cParameters bound to tool: &7" + HawkUtil.join((Collection)args, " ")); session.setToolCommand((String[])args.toArray(new String[0])); if (!session.isUsingTool()) { enableTool(session, player); } } public static void resetTool(PlayerSession session) { session.setToolCommand(HawkEye.instance.config.general.defaultToolCommand); } }