public void Install(string name, string version) { IModLoaderHandler schema = compatibleSchemata.FirstOrDefault(s => s.IsCompatible(name)); if (schema == null) { throw new InvalidOperationException($"No modloader installation schema compatible with modloader with name '{name}' for minecraft instance type '{mcInstance.GetType().FullName}' found!"); } schema.Install(mcInstance, name, version); modLoaders.Add(new ModLoaderInfo(name, version)); }
public void Uninstall(string name) { ModLoaderInfo modLoaderInfo = ModLoaders.FirstOrDefault(ml => ml.Name == name); if (modLoaderInfo == null) { throw new KeyNotFoundException($"This instance does not have any modloader with name '{name}'."); } IModLoaderHandler schema = compatibleSchemata.FirstOrDefault(s => s.IsCompatible(name)); if (schema == null) { throw new InvalidOperationException($"No modloader installation schema compatible with modloader with name '{name}' for minecraft instance type '{mcInstance.GetType().FullName}' found!"); } schema.Uninstall(mcInstance, name); modLoaders.Remove(modLoaderInfo); }