Ejemplo n.º 1
0
        public Task <ModVersion> GetLatestVersion(ModMetadata meta, ModReleaseType releaseType = ModReleaseType.Any)
        {
            if (!(meta is CurseforgeModMetadata))
            {
                throw new Exception("Metadata is not of Curseforge's type. Cannot fetch mod versions with this.");
            }

            IEnumerable <ModVersion> versions = GetRecentVersions(meta, 1, releaseType).Result;

            return(Task.FromResult(versions.First()));
        }
Ejemplo n.º 2
0
        public Task <IEnumerable <ModVersion> > GetRecentVersions(ModMetadata meta, int count = 5, ModReleaseType releaseType = ModReleaseType.Any)
        {
            if (!(meta is CurseforgeModMetadata))
            {
                throw new Exception("Metadata is not of Curseforge's type. Cannot fetch mod versions with this.");
            }

            CurseforgeModMetadata metaCF = (CurseforgeModMetadata)meta;

            if (String.IsNullOrEmpty(metaCF.MinecraftVersion))
            {
                throw new Exception("Minecraft version was not set on metadata, cannot properly fetch versions.");
            }

            if (!metaCF.Versions.ContainsKey(metaCF.MinecraftVersion))
            {
                return(null);
            }

            IEnumerable <ModVersion> versions = metaCF.Versions[metaCF.MinecraftVersion];

            if (releaseType != ModReleaseType.Any)
            {
                versions = versions.Where(v => v.GetReleaseType() == releaseType);
            }

            IEnumerable <ModVersion> limitedList = versions.Take(count);

            foreach (ModVersion mv in limitedList)
            {
                mv.MetadataId = meta.Id;
            }

            return(Task.FromResult(limitedList));
        }