Dynamically resolve data path

This commit is contained in:
Sardelka9515
2023-03-08 11:09:47 +08:00
parent 211ab4ee7c
commit 11c7ee19a3
2 changed files with 26 additions and 2 deletions

View File

@ -42,12 +42,14 @@ namespace RageCoop.Client
private static bool _lastDead;
public static bool CefRunning;
public static bool IsUnloading { get; private set; }
public static Script Instance { get; private set; }
/// <summary>
/// Don't use it!
/// </summary>
public Main()
{
Instance = this;
Directory.CreateDirectory(DataPath);
try
{
@ -72,7 +74,7 @@ namespace RageCoop.Client
};
Log.OnFlush += (line, formatted) =>
{
SHVDN.Logger.Write(line.Message, (uint)line.LogLevel);
SHVDN.Logger.Write($"[RageCoop] {line.Message}", (uint)line.LogLevel);
};
// Run static constructor to register all function pointers and remoting entries

View File

@ -7,12 +7,34 @@ global using static RageCoop.Client.Main;
global using Console = GTA.Console;
global using static RageCoop.Core.Shared;
using System.IO;
using System;
using SHVDN;
using System.Diagnostics;
namespace RageCoop.Client
{
internal static class Shared
{
public static string BasePath = "RageCoop";
private static string GetBasePath()
{
FileInfo info;
string realScriptDir = Directory.GetParent(Instance.FilePath).FullName;
nextTarget:
info = new(realScriptDir);
if (info.LinkTarget != null)
{
realScriptDir = info.LinkTarget;
goto nextTarget;
}
if (Path.GetFileName(realScriptDir).ToLower() != "scripts")
throw new FileNotFoundException($"Unexpected link target {realScriptDir}");
var baseDir = Directory.GetParent(realScriptDir).FullName;
Logger.Debug($"Base directory is {baseDir}");
return baseDir;
}
public static string BasePath = GetBasePath();
public static string DataPath = Path.Combine(BasePath, "Data");
public static string LogPath = Path.Combine(DataPath, "RageCoop.Client.log");
public static string SettingsPath = Path.Combine(DataPath, "Setting.json");