Resource.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. namespace PCLCS;
  2. public static class Resource {
  3. /// <summary>
  4. /// 将 CurseForge 的 ModLoaderType 映射为 <see cref="ModLoaders"/> 枚举。
  5. /// </summary>
  6. public static ModLoaders FromCurseForgeModLoaderType(int modLoaderType) => modLoaderType switch {
  7. // https://docs.curseforge.com/rest-api/#tocS_ModLoaderType
  8. 1 => ModLoaders.Forge,
  9. 3 => ModLoaders.LiteLoader,
  10. 4 => ModLoaders.Fabric,
  11. 5 => ModLoaders.Quilt,
  12. 6 => ModLoaders.NeoForge,
  13. _ => ModLoaders.None,
  14. };
  15. /// <summary>
  16. /// 将 <see cref="ModLoaders"/> 映射为 CurseForge 的单一 ModLoaderType。
  17. /// </summary>
  18. public static int ToCurseForgeModLoaderType(ModLoaders loaders) {
  19. if (loaders == ModLoaders.None) return 0;
  20. if (!loaders.Flags().IsSingle()) throw new ArgumentException($"传入的枚举值 {loaders} 并非单个 Mod Loader", nameof(loaders));
  21. return loaders switch {
  22. ModLoaders.Forge => 1,
  23. ModLoaders.LiteLoader => 3,
  24. ModLoaders.Fabric => 4,
  25. ModLoaders.Quilt => 5,
  26. ModLoaders.NeoForge => 6,
  27. _ => 0,
  28. };
  29. }
  30. }