Configs.cs 1.3 KB

12345678910111213141516171819202122232425262728
  1. namespace PCLCS;
  2. public static class Configs {
  3. public static readonly DynamicConfigEntry<McInstallManifest> McInstallManifest = new("MinecraftInstallManifest", null);
  4. // Java
  5. /// <summary> 当前 Java 相关配置的版本。0 代表尚未从老的 Settings 系统中迁移。</summary>
  6. public static readonly ConfigEntry<int> JavaConfigVersion = new("JavaConfigVersion", 0);
  7. public static readonly ConfigEntry<ConcurrentList<Java>> JavaList = new("JavaList", []);
  8. public static readonly ConfigEntry<List<string>> JavaRemovedList = new("JavaRemovedList", []);
  9. public static readonly DynamicConfigEntry<bool> JavaMigrated = new("InstanceMigratedJava", false);
  10. public static readonly DynamicConfigEntry<Java> JavaForced = new("InstanceForcedJava", null);
  11. // 提示
  12. public static readonly ConfigEntry<bool> HintModifyInstanceWarning = new("HintModifyInstanceWarning", false);
  13. static Configs() {
  14. /// 当 JavaForced 获取到一个不在 JavaList 中的值时,将其重置为 null。
  15. JavaForced.PreviewGet += (args, provider) => {
  16. if (args.Value is not null && !JavaList.Get()!.Contains(args.Value)) {
  17. args.Value = null;
  18. JavaForced.Reset(provider);
  19. }
  20. };
  21. }
  22. }