forked from space-wizards/RobustToolbox
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathServerHotReloadManager.cs
More file actions
40 lines (30 loc) · 1.11 KB
/
ServerHotReloadManager.cs
File metadata and controls
40 lines (30 loc) · 1.11 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
using Robust.Shared;
using Robust.Shared.Configuration;
using Robust.Shared.ContentPack;
using Robust.Shared.IoC;
using Robust.Shared.Network;
using Robust.Shared.Network.Messages;
namespace Robust.Server.ContentPack;
internal sealed class ServerHotReloadManager : HotReloadManager
{
[Dependency] private readonly INetManager _netManager = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;
private AssemblyFileWatcher? _fileWatcher;
public override void Initialize()
{
base.Initialize();
_netManager.RegisterNetMessage<MsgHotReload>();
if (!_cfg.GetCVar(CVars.HotReload))
return;
_fileWatcher = new AssemblyFileWatcher();
IoCManager.InjectDependencies(_fileWatcher);
_fileWatcher.Initialize(AssemblyDirectory, FilterPrefix, TriggerReloadForAssembly);
}
private void TriggerReloadForAssembly(string assemblyName)
{
if (!_cfg.GetCVar(CVars.HotReload))
return;
_netManager.ServerSendToAll(new MsgHotReload { AssemblyName = assemblyName });
TriggerReload(assemblyName);
}
}