Skip to content
This repository was archived by the owner on Jun 27, 2024. It is now read-only.

Commit c0805b8

Browse files
committed
Added OpenMod Unturned config update jobs for economy and permission systems
1 parent 802b221 commit c0805b8

5 files changed

Lines changed: 103 additions & 0 deletions

src/Commands/OpenModEconomyStep.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public override void OnChoice(string choice)
3838
Jobs.Add(new OpenModEconomyInstallJob());
3939
Jobs.Add(new UconomyMigratorInstallJob());
4040
Jobs.Add(new MigrateEconomyJob());
41+
Jobs.Add(new OpenModUnturnedConfigEconomyJob("OpenMod_Uconomy"));
4142
return;
4243
}
4344

src/Commands/OpenModPermissionsStep.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public override void OnChoice(string choice)
3636
case "om":
3737
case "openmod":
3838
Jobs.Add(new MigratePermissionsJob());
39+
Jobs.Add(new OpenModUnturnedConfigPermissionsJob("OpenMod"));
3940
return;
4041
}
4142

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using System.Text.RegularExpressions;
2+
3+
namespace OpenMod.Installer.RocketMod.Jobs
4+
{
5+
public class OpenModUnturnedConfigEconomyJob : OpenModUnturnedConfigJob
6+
{
7+
private readonly string m_DesiredEconomySystem;
8+
9+
public OpenModUnturnedConfigEconomyJob(string desiredEconomySystem)
10+
{
11+
m_DesiredEconomySystem = desiredEconomySystem;
12+
}
13+
14+
protected override string ConfigType => "Economy System";
15+
16+
protected override void ModifyConfig(ref string configText)
17+
{
18+
// Regex: ^ economySystem:.*$
19+
configText = Regex.Replace(
20+
configText,
21+
@"^ economySystem:.*$",
22+
" economySystem: " + m_DesiredEconomySystem);
23+
}
24+
}
25+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
using OpenMod.Installer.RocketMod.Helpers;
2+
using Rocket.Core.Logging;
3+
using System.IO;
4+
5+
namespace OpenMod.Installer.RocketMod.Jobs
6+
{
7+
public abstract class OpenModUnturnedConfigJob : IJob
8+
{
9+
public void ExecuteMigration(string[] args)
10+
{
11+
Logger.Log($"Updating OpenMod Unturned {ConfigType} config...");
12+
13+
var openmodDirectory = OpenModInstallerPlugin.Instance.OpenModManager.WorkingDirectory;
14+
var openmodUnturnedYaml = Path.Combine(openmodDirectory, "openmod.unturned.yaml");
15+
16+
if (!Directory.Exists(openmodDirectory))
17+
{
18+
Directory.CreateDirectory(openmodDirectory);
19+
}
20+
21+
string configText;
22+
23+
if (File.Exists(openmodUnturnedYaml))
24+
{
25+
configText = File.ReadAllText(openmodUnturnedYaml);
26+
}
27+
else
28+
{
29+
var openmodAssembly = AssemblyHelper.GetAssembly("OpenMod.Unturned");
30+
using var configFileStream = openmodAssembly.GetManifestResourceStream("OpenMod.Unturned.openmod.unturned.yaml");
31+
using var ms = new MemoryStream();
32+
configFileStream!.CopyTo(ms);
33+
34+
ms.Seek(0, SeekOrigin.Begin);
35+
36+
using var reader = new StreamReader(ms);
37+
configText = reader.ReadToEnd();
38+
}
39+
40+
ModifyConfig(ref configText);
41+
42+
File.WriteAllText(openmodUnturnedYaml, configText);
43+
44+
Logger.Log($"Finished updating OpenMod Unturned {ConfigType} config.");
45+
}
46+
47+
protected abstract string ConfigType { get; }
48+
49+
protected abstract void ModifyConfig(ref string configText);
50+
}
51+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using System.Text.RegularExpressions;
2+
3+
namespace OpenMod.Installer.RocketMod.Jobs
4+
{
5+
public class OpenModUnturnedConfigPermissionsJob : OpenModUnturnedConfigJob
6+
{
7+
private readonly string m_DesiredPermissionSystem;
8+
9+
public OpenModUnturnedConfigPermissionsJob(string desiredPermissionSystem)
10+
{
11+
m_DesiredPermissionSystem = desiredPermissionSystem;
12+
}
13+
14+
protected override string ConfigType => "Permissions System";
15+
16+
protected override void ModifyConfig(ref string configText)
17+
{
18+
// Regex: ^ permissionSystem:.*$
19+
configText = Regex.Replace(
20+
configText,
21+
@"^ permissionSystem:.*$",
22+
" permissionSystem: " + m_DesiredPermissionSystem);
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)