-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAutoAcceptInviteMod.cs
More file actions
71 lines (56 loc) · 2.29 KB
/
AutoAcceptInviteMod.cs
File metadata and controls
71 lines (56 loc) · 2.29 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
namespace AutoAcceptInvite;
using System;
using HarmonyLib;
using ResoniteModLoader;
public class AutoAcceptInviteMod : ResoniteMod
{
public const string LogReportUrl =
"Please report this to AutoAcceptInvite (https://github.com/Restrainite/AutoAcceptInvite/issues):";
internal static readonly Configuration Configuration = new();
public override string Name => "AutoAcceptInvite";
public override string Author => "SnepDrone";
public static Version AssemblyVersion => typeof(AutoAcceptInviteMod).Assembly.GetName().Version ?? new Version(0, 0, 0);
public override string Version => $"{AssemblyVersion.Major}.{AssemblyVersion.Minor}.{AssemblyVersion.Build}";
public override string Link => "https://github.com/Restrainite/AutoAcceptInvite/";
public override void DefineConfiguration(ModConfigurationDefinitionBuilder builder)
{
Configuration.DefineConfiguration(builder);
}
/*
* There are more graceful ways to handle incompatible configs, but this is the simplest.
* Default is ERROR (prevents saving), CLOBBER overwrites the config file.
*/
public override IncompatibleConfigurationHandlingOption HandleIncompatibleConfigurationVersions(
Version serializedVersion, Version definedVersion)
{
if ((serializedVersion.Major == 1 && definedVersion.Major == 2) ||
(serializedVersion.Major == 2 && definedVersion.Major == 1))
return IncompatibleConfigurationHandlingOption.FORCELOAD;
return IncompatibleConfigurationHandlingOption.CLOBBER;
}
public override void OnEngineInit()
{
Configuration.Init(GetConfiguration());
PatchResonite();
InitializePatches();
}
private static void PatchResonite()
{
var harmony = new Harmony("Restrainite.AutoAcceptInvite");
AccessTools.GetTypesFromAssembly(typeof(AutoAcceptInviteMod).Assembly)
.Do<Type>(type =>
{
try
{
harmony.CreateClassProcessor(type).Patch();
}
catch (Exception ex)
{
Error($"{LogReportUrl} Failed to patch {type.FullName}: {ex}");
}
});
}
private static void InitializePatches()
{
}
}