getAssetIndex method

  1. @override
Future<String> getAssetIndex(
  1. String versionId
)
override

Gets the asset index for a specific version.

versionId - Minecraft version ID Returns the asset index ID.

Implementation

@override
Future<String> getAssetIndex(String versionId) async {
  final shouldSkip = await beforeGetAssetIndex(
    versionId,
    (await getVersionInfo(versionId)) ??
        (throw Exception('VersionInfo is null for versionId: $versionId')),
  );
  if (shouldSkip) {
    debugPrint('Asset index retrieval skipped for $versionId');
    final defaultAssetIndex = versionId;
    await afterGetAssetIndex(versionId, defaultAssetIndex);
    return defaultAssetIndex;
  }

  final versionInfo = await fetchVersionManifest(versionId);

  if (versionInfo == null || versionInfo.assetIndex == null) {
    throw Exception('Failed to get asset index info for $versionId');
  }

  final assetIndexInfo = versionInfo.assetIndex;
  final assetIndexId = assetIndexInfo!.id;

  await afterGetAssetIndex(versionId, assetIndexId);

  return assetIndexId;
}