-
Notifications
You must be signed in to change notification settings - Fork 0
/
Plugin.cs
86 lines (70 loc) · 3.03 KB
/
Plugin.cs
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System;
using System.Collections.Generic;
using System.Linq;
using BepInEx;
using HarmonyLib;
using BepInEx.Logging;
using System.Reflection;
using ReservedItemSlotCore.Data;
using ReservedTZPSlot.Config;
namespace ReservedTZPSlot
{
[BepInPlugin($"{PluginInfo.PLUGIN_GUID}", $"{PluginInfo.PLUGIN_NAME}", $"{PluginInfo.PLUGIN_VERSION}")]
[BepInDependency("FlipMods.ReservedItemSlotCore", BepInDependency.DependencyFlags.HardDependency)]
public class Plugin : BaseUnityPlugin
{
public static Plugin instance;
static ManualLogSource logger;
Harmony _harmony;
public static ReservedItemSlotData tzpInhalantSlotData;
public static ReservedItemData tzpInhalantData;
//public static List<ReservedItemData> additionalItemData = new List<ReservedItemData>();
void Awake()
{
instance = this;
CreateCustomLogger();
ConfigSettings.BindConfigSettings();
CreateReservedItemSlots();
//CreateAdditionalReservedItemSlots();
_harmony = new Harmony("ReservedTZPSlot");
PatchAll();
Log($"{PluginInfo.PLUGIN_GUID} loaded");
}
void CreateReservedItemSlots()
{
tzpInhalantSlotData = ReservedItemSlotData.CreateReservedItemSlotData("TZP-Inhalant", ConfigSettings.overrideItemSlotPriority.Value, ConfigSettings.overridePurchasePrice.Value);
tzpInhalantData = tzpInhalantSlotData.AddItemToReservedItemSlot(new ReservedItemData("TZP-Inhalant"));
}
/*void CreateAdditionalReservedItemSlots()
{
string[] additionalItemNames = ConfigSettings.ParseAdditionalItems();
foreach (string itemName in additionalItemNames)
{
if (!tzpInhalantSlotData.ContainsItem(itemName))
{
LogWarning("Adding additional item to reserved item slot. Item: " + itemName);
var itemData = new ReservedItemData(itemName);
additionalItemData.Add(itemData);
tzpInhalantSlotData.AddItemToReservedItemSlot(itemData);
}
}
}*/
void PatchAll()
{
IEnumerable<Type> types;
try { types = Assembly.GetExecutingAssembly().GetTypes(); }
catch (ReflectionTypeLoadException e) { types = e.Types.Where(t => t != null); }
foreach (var type in types)
this._harmony.PatchAll(type);
}
void CreateCustomLogger()
{
try { logger = BepInEx.Logging.Logger.CreateLogSource(string.Format("{0}-{1}", Info.Metadata.Name, Info.Metadata.Version)); }
catch { logger = Logger; }
}
public static void Log(string message) => logger.LogInfo(message);
public static void LogError(string message) => logger.LogError(message);
public static void LogWarning(string message) => logger.LogWarning(message);
public static bool IsModLoaded(string guid) => BepInEx.Bootstrap.Chainloader.PluginInfos.ContainsKey(guid);
}
}