-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPluginEntry.cs
More file actions
68 lines (62 loc) · 2.23 KB
/
PluginEntry.cs
File metadata and controls
68 lines (62 loc) · 2.23 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
using InGameClock.Configuration;
using InGameClock.Logging;
using Intersect.Client.Plugins;
using Intersect.Client.Plugins.Interfaces;
using Intersect.Plugins;
using System.IO;
using Intersect.Client.General;
using Microsoft;
namespace InGameClock
{
public class PluginEntry : ClientPluginEntry
{
private InGameClock _mInGameClock;
private bool _mInitialized;
public override void OnBootstrap([ValidatedNotNull] IPluginBootstrapContext context)
{
PluginSettings.Settings = context.GetTypedConfiguration<PluginSettings>();
Logger.Context = context;
Logger.Write(LogLevel.Info, $"[PLUGIN NAME] {context.Manifest.Name}");
Logger.Write(LogLevel.Info, $"[VERSION] {context.Manifest.Version}");
Logger.Write(LogLevel.Info, $"[BUILD DATE] 25-08-2022");
Logger.Write(LogLevel.Info, "[AUTHOR] Arufonsu");
Logger.Write(LogLevel.Info, $"[GITHUB] {context.Manifest.Homepage}");
}
public override void OnStart([ValidatedNotNull] IClientPluginContext context)
{
_mInGameClock = new InGameClock(context, Path.GetDirectoryName(context.Assembly.Location));
Logger.Write(LogLevel.Info, "InGameClock Plugin has been successfully loaded by the game client!");
context.Lifecycle.LifecycleChangeState += HandleLifecycleChangeState;
context.Lifecycle.GameUpdate += HandleGameUpdate;
}
private void HandleLifecycleChangeState(
[ValidatedNotNull] IClientPluginContext context,
[ValidatedNotNull] LifecycleChangeStateArgs lifecycleChangeStateArgs)
{
if (context.Lifecycle.Interface == null || lifecycleChangeStateArgs.State != (GameStates)3 || !_mInitialized)
return;
_mInitialized = false;
}
private void HandleGameUpdate([ValidatedNotNull] IClientPluginContext context, [ValidatedNotNull] GameUpdateArgs gameUpdateArgs)
{
if (gameUpdateArgs.State == (GameStates)3)
{
if (!_mInitialized)
{
_mInGameClock.Initialize();
_mInitialized = true;
}
_mInGameClock.Update();
}
else
{
if (!_mInitialized)
return;
_mInitialized = false;
}
}
public override void OnStop([ValidatedNotNull] IClientPluginContext context)
{
}
}
}