4
4
using System ;
5
5
using System . Collections . Generic ;
6
6
using System . IO ;
7
+ using System . Text ;
7
8
using System . Text . Json ;
8
9
using System . Text . Json . Serialization ;
9
10
@@ -38,6 +39,7 @@ public HashSet<string> ObjDataDirectories
38
39
//public string ServerEmail { get; set; }
39
40
//public string ServerPassword { get; set; }
40
41
42
+ public string ObjectIndicesFolder { get ; set ; } = string . Empty ;
41
43
public string DownloadFolder { get ; set ; } = string . Empty ;
42
44
43
45
public string AppDataObjDataFolder { get ; set ; } = string . Empty ;
@@ -55,10 +57,13 @@ public string GetGameObjDataFolder(GameObjDataFolder folder)
55
57
56
58
[ JsonIgnore ]
57
59
public string IndexFileName
58
- => GetObjDataFullPath ( ObjectIndex . DefaultIndexFileName ) ;
59
-
60
- public string GetObjDataFullPath ( string fileName )
61
- => Path . Combine ( ObjDataDirectory , fileName ) ;
60
+ {
61
+ get
62
+ {
63
+ var filename = Convert . ToBase64String ( Encoding . UTF8 . GetBytes ( ObjDataDirectory ) ) ;
64
+ return Path . Combine ( ObjectIndicesFolder , $ "{ filename } .json") ;
65
+ }
66
+ }
62
67
63
68
[ JsonIgnore ]
64
69
public const string DefaultFileName = "settings.json" ; // "settings-dev.json" for dev, "settings.json" for prod
@@ -116,6 +121,18 @@ public bool Validate(ILogger logger)
116
121
return false ;
117
122
}
118
123
124
+ if ( ! Directory . Exists ( DownloadFolder ) )
125
+ {
126
+ logger . Warning ( $ "Invalid settings file: Directory \" { DownloadFolder } \" does not exist") ;
127
+ return false ;
128
+ }
129
+
130
+ if ( ! Directory . Exists ( ObjectIndicesFolder ) )
131
+ {
132
+ logger . Warning ( $ "Invalid settings file: Directory \" { ObjectIndicesFolder } \" does not exist") ;
133
+ return false ;
134
+ }
135
+
119
136
return true ;
120
137
}
121
138
}
0 commit comments