-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDirectoryConfig.cs
More file actions
56 lines (45 loc) · 1.65 KB
/
DirectoryConfig.cs
File metadata and controls
56 lines (45 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
namespace Pluton.Core
{
using System.IO;
using UnityEngine;
public class DirectoryConfig : Singleton<DirectoryConfig>, ISingleton
{
IniParser DirConfig;
public void Initialize()
{
string ConfigPath = Path.Combine(Util.GetInstance().GetServerFolder(), "DirectoryConfig.cfg");
if (File.Exists(ConfigPath)) {
DirConfig = new IniParser(ConfigPath);
Debug.Log("Config " + ConfigPath + " loaded!");
} else {
char sc = Path.DirectorySeparatorChar;
Directory.CreateDirectory(Util.GetInstance().GetPublicFolder());
File.Create(ConfigPath).Close();
DirConfig = new IniParser(ConfigPath);
Debug.Log("Config " + ConfigPath + " Created!");
Debug.Log("The config will be filled with the default values.");
DirConfig.AddSetting("Directories", "Core", "%data%" + sc + "Core.cfg");
DirConfig.AddSetting("Directories", "Pluton", "%public%" + sc + "Pluton.cfg");
DirConfig.AddSetting("Directories", "Hashes", "%data%" + sc + "Hashes.ini");
DirConfig.Save();
}
}
public string GetConfigPath(string config)
{
string path = DirConfig.GetSetting("Directories", config);
if (path.StartsWith("%public%"))
path = path.Replace("%public%", Util.GetInstance().GetPublicFolder());
if (path.StartsWith("%data%"))
path = path.Replace("%data%", Util.GetInstance().GetServerFolder());
if (path.StartsWith("%root%"))
path = path.Replace("%root%", Util.GetInstance().GetRootFolder());
return path;
}
public void Reload()
{
string ConfigPath = Path.Combine(Util.GetInstance().GetServerFolder(), "DirectoryConfig.cfg");
if (File.Exists(ConfigPath))
DirConfig = new IniParser(ConfigPath);
}
}
}