Resource.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  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. 6 => ModLoaders.NeoForge,
  12. _ => ModLoaders.None,
  13. };
  14. /// <summary>
  15. /// 将 <see cref="ModLoaders"/> 映射为 CurseForge 的单一 ModLoaderType。
  16. /// </summary>
  17. public static int ToCurseForgeModLoaderType(ModLoaders loaders) {
  18. if (loaders == ModLoaders.None) return 0;
  19. if (!loaders.Flags().IsSingle()) throw new ArgumentException($"传入的枚举值 {loaders} 并非单个 Mod Loader", nameof(loaders));
  20. return loaders switch {
  21. ModLoaders.Forge => 1,
  22. ModLoaders.LiteLoader => 3,
  23. ModLoaders.Fabric => 4,
  24. ModLoaders.NeoForge => 6,
  25. _ => 0,
  26. };
  27. }
  28. }