GBSU/Addons/Helper.cs
anavoi 8132f69ed2 fix(breaking): better handling of the server rotation config
The config path was also changed to `BepInEx/config/GBSU/config.json`

Tracks the -maplist argument
2025-07-13 23:32:42 +02:00

85 lines
No EOL
2.4 KiB
C#

using System;
using System.IO;
using UnityEngine;
using UnityEngine.Analytics;
namespace GBSU.Addons;
public class Helper
{
public static string RotationFolderPath = BepInEx.Paths.BepInExRootPath + "/config/GBSU/";
public static string GameConfigPath = RotationFolderPath + "config.json";
public static string serverip = null;
public static int serverport = 5999;
public static bool hosting = false;
public static void DisableAnalytics()
{
// Try disabling analytics https://docs.unity3d.com/ScriptReference/Analytics.Analytics-deviceStatsEnabled.html
try
{
Analytics.enabled = false;
Analytics.deviceStatsEnabled = false;
}
catch (Exception e)
{
Plugin.Log.LogWarning("Failed to disable analytics: " + e.Message);
}
}
public static void CreateRotationFolder()
{
try
{
Plugin.Log.LogInfo("Creating rotation folder at " + RotationFolderPath);
Directory.CreateDirectory(RotationFolderPath);
}
catch (Exception e)
{
Plugin.Log.LogError("Could not create rotation folder path: " + e.Message);
}
}
public static string FilesInRotationDir()
{
// https://stackoverflow.com/a/14877330
DirectoryInfo d = new(RotationFolderPath);
FileInfo[] files = d.GetFiles();
int number = files.Length;
// no files?
if (number == 0)
{
return @"No files were found in the directory.";
}
else
{
string names = "";
foreach(FileInfo file in files)
{
names = file.Name + " " + names;
}
return $"There are {number} files: {names}";
}
}
public static void FlipVSync()
{
if (QualitySettings.vSyncCount == 0)
{
QualitySettings.vSyncCount = 1;
}
else
{
QualitySettings.vSyncCount = 0;
}
}
public static void CheckCustomRotationPath()
{
// Did the host request to use their own rotation config path?
if (CommandLineParser.Instance.KeyExists("-maplist"))
{
GameConfigPath = CommandLineParser.Instance.GetValueForKey("-maplist");
Plugin.Log.LogInfo("Set custom rotation config path at " + GameConfigPath);
}
}
}