@Override
  public void getSubItems(Item id, CreativeTabs tab, List list) {
    // Vanilla style arrow
    Item accessory = getAccessoryItem();
    ItemStack accessoryStack = accessory != null ? new ItemStack(getAccessoryItem(), 1, 0) : null;
    Item extra = getExtraItem();
    ItemStack extraStack = extra != null ? new ItemStack(extra, 1, 0) : null;
    ItemStack tool =
        ToolBuilder.instance.buildTool(
            new ItemStack(getHeadItem(), 1, 3),
            new ItemStack(getHandleItem(), 1, 0),
            accessoryStack,
            extraStack,
            "");
    if (tool != null) {
      tool.stackSize = 1;
      tool.getTagCompound().getCompoundTag("InfiTool").setBoolean("Built", true);
      list.add(tool);
    }

    // Random arrow
    accessory = getAccessoryItem();
    accessoryStack =
        accessory != null ? new ItemStack(getAccessoryItem(), 1, random.nextInt(4)) : null;
    extra = getExtraItem();
    extraStack = extra != null ? new ItemStack(extra, 1, 0) : null;
    tool =
        ToolBuilder.instance.buildTool(
            new ItemStack(getHeadItem(), 1, random.nextInt(18)),
            new ItemStack(getHandleItem(), 1, random.nextInt(18)),
            accessoryStack,
            extraStack,
            StatCollector.translateToLocal("item.tool.randomarrow"));

    if (tool != null) {
      tool.stackSize = 1;
      tool.getTagCompound().getCompoundTag("InfiTool").setBoolean("Built", true);
      list.add(tool);
    }
    super.getSubItems(id, tab, list);
  }
 @Override
 public void buildTool(int id, String name, List list) {
   Item accessory = getAccessoryItem();
   ItemStack accessoryStack = accessory != null ? new ItemStack(getAccessoryItem(), 1, 0) : null;
   Item extra = getExtraItem();
   ItemStack extraStack = extra != null ? new ItemStack(getExtraItem(), 1, id) : null;
   ItemStack tool =
       ToolBuilder.instance.buildTool(
           new ItemStack(getHeadItem(), 1, id),
           new ItemStack(getHandleItem(), 1, id),
           accessoryStack,
           extraStack,
           name);
   if (tool != null) {
     tool.stackSize = 1;
     tool.getTagCompound().getCompoundTag("InfiTool").setBoolean("Built", true);
     list.add(tool);
   }
 }