GBSU/Plugin.cs
2025-03-15 22:21:27 +01:00

71 lines
2 KiB
C#

using System.Collections.Generic;
using System.Reflection;
using BepInEx;
using BepInEx.Logging;
using GBSU.Addons;
using HarmonyLib;
using HarmonyLib.Tools;
using UnityEngine;
#pragma warning disable IDE0051 // Private member is unused
namespace GBSU;
[BepInPlugin(PluginGUID, PluginName, PluginVersion)]
[BepInProcess("Gang Beasts.exe")]
public class Plugin : BaseUnityPlugin
{
public static Dictionary<string, int> GameScore = [];
private static GameObject _gbsuCompContainer;
internal static ManualLogSource Log;
public static GameObject GBSUCompContainer
{
get
{
if (_gbsuCompContainer == null)
{
_gbsuCompContainer = new GameObject("GBSUSingletons");
}
return _gbsuCompContainer;
}
set
{
Destroy(_gbsuCompContainer);
_gbsuCompContainer = value;
}
}
private void Awake()
{
// Plugin startup logic
Log = base.Logger;
Log.LogInfo($"\n------\nPlugin {PluginName} [{PluginVersion}] is loaded!\n------\n");
HarmonyFileLog.Enabled = true;
var harmony = new Harmony(PluginGUID);
harmony.PatchAll(Assembly.GetExecutingAssembly());
GBSUCompInit();
Helper.DisableAnalytics(); // thank me later
}
private static void GBSUCompInit()
{
// Create a container that wont lose our objects
GBSUCompContainer = new GameObject("GBSUSingletons");
DontDestroyOnLoad(GBSUCompContainer);
GBSUCompContainer.hideFlags = HideFlags.DontUnloadUnusedAsset;
GBSUCompContainer.AddComponent<GBSUGui>();
}
public static void AddServerComp()
{
GBSUCompContainer.AddComponent<GBSUServer>();
}
public const string PluginGUID = "com.gaboule.plugins.gbsu";
public const string PluginName = "Gang Beasts Server Utility";
public const string PluginVersion = "1.0.2";
}