|
6 | 6 | using System.Collections.Generic; |
7 | 7 | using System.IO; |
8 | 8 | using System.Linq; |
9 | | -using System.Reflection; |
10 | | -using System.Threading.Tasks; |
11 | 9 | using System.Xml.Serialization; |
| 10 | +using OpenMod.API.Persistence; |
| 11 | +using OpenMod.Core.Persistence; |
12 | 12 |
|
13 | 13 | namespace OpenMod.Installer.RocketMod.Jobs |
14 | 14 | { |
@@ -78,25 +78,20 @@ public void ExecuteMigration(string[] args) |
78 | 78 | } |
79 | 79 |
|
80 | 80 | var apiAssembly = AssemblyHelper.GetAssembly("OpenMod.API"); |
81 | | - var datastoreCreationParametersType = apiAssembly.GetType("OpenMod.API.Persistence.DataStoreCreationParameters"); |
82 | 81 | var workingDirectory = OpenModInstallerPlugin.Instance.OpenModManager.WorkingDirectory; |
83 | 82 |
|
84 | | - var @params = Activator.CreateInstance(datastoreCreationParametersType); |
85 | | - @params.SetPropertyValue("ComponentId", "OpenMod.Core"); |
86 | | - @params.SetPropertyValue("Prefix", "openmod"); |
87 | | - @params.SetPropertyValue("WorkingDirectory", workingDirectory); |
88 | | - |
89 | | - var coreAssembly = AssemblyHelper.GetAssembly("OpenMod.Core"); |
90 | | - var datastoreType = coreAssembly.GetType("OpenMod.Core.Persistence.YamlDataStore"); |
91 | | - var ctor = datastoreType.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { datastoreCreationParametersType }, null); |
| 83 | + var dataStoreParams = new DataStoreCreationParameters |
| 84 | + { |
| 85 | + ComponentId = "OpenMod.Core", |
| 86 | + Prefix = "openmod", |
| 87 | + WorkingDirectory = workingDirectory |
| 88 | + }; |
92 | 89 |
|
93 | | - var dataStore = ctor.Invoke(new[] { @params }); |
94 | | - var saveMethod = dataStore.GetType().GetMethod("SaveAsync", BindingFlags.Instance | BindingFlags.Public); |
95 | | - var saveMethodTaskRoles = (Task)saveMethod.Invoke(dataStore, new object[] { "roles", openmodRoles }); |
96 | | - var saveMethodTaskUsers = (Task)saveMethod.Invoke(dataStore, new object[] { "users", openmodUsers }); |
| 90 | + var dataStore = new YamlDataStore(dataStoreParams, null, null); |
| 91 | + |
| 92 | + AsyncHelperEx.RunSync(() => dataStore.SaveAsync("roles", openmodRoles)); |
| 93 | + AsyncHelperEx.RunSync(() => dataStore.SaveAsync("users", openmodUsers)); |
97 | 94 |
|
98 | | - AsyncHelperEx.RunSync(() => saveMethodTaskRoles); |
99 | | - AsyncHelperEx.RunSync(() => saveMethodTaskUsers); |
100 | 95 | Logger.Log($"Imported {openmodRoles.Roles.Count} permission group(s) and {openmodUsers.Users.Count} player(s) from RocketMod's Permission.config.xml to OpenMod."); |
101 | 96 | } |
102 | 97 |
|
|
0 commit comments