Magic the magic happen

This commit is contained in:
Raymond Lynch 2021-07-11 16:32:29 -04:00
parent 84769ae5b7
commit 658eedca37
188 changed files with 10329 additions and 3549 deletions

View file

@ -7,19 +7,19 @@ using Newtonsoft.Json;
using Serilog;
using Serilog.Events;
namespace Dalamud.Configuration
namespace Dalamud.Configuration.Internal
{
/// <summary>
/// Class containing Dalamud settings.
/// </summary>
[Serializable]
public class DalamudConfiguration
internal sealed class DalamudConfiguration
{
[JsonIgnore]
private string configPath;
/// <summary>
/// Delegate for the <see cref="DalamudConfiguration.OnDalamudConfigurationSaved"/> event that occurs when the dalamud configuration is saved.
/// Delegate for the <see cref="OnDalamudConfigurationSaved"/> event that occurs when the dalamud configuration is saved.
/// </summary>
/// <param name="dalamudConfiguration">The current dalamud configuration.</param>
public delegate void DalamudConfigurationSavedDelegate(DalamudConfiguration dalamudConfiguration);
@ -69,15 +69,25 @@ namespace Dalamud.Configuration
/// </summary>
public bool DoDalamudTest { get; set; }
/// <summary>
/// Gets or sets a value indicating whether or not XL should download the Dalamud .NET runtime.
/// </summary>
public bool DoDalamudRuntime { get; set; }
/// <summary>
/// Gets or sets a list of custom repos.
/// </summary>
public List<ThirdRepoSetting> ThirdRepoList { get; set; } = new List<ThirdRepoSetting>();
public List<ThirdPartyRepoSettings> ThirdRepoList { get; set; } = new();
/// <summary>
/// Gets or sets a list of hidden plugins.
/// </summary>
public List<string> HiddenPluginInternalName { get; set; } = new List<string>();
public List<string> HiddenPluginInternalName { get; set; } = new();
/// <summary>
/// Gets or sets a list of additional settings for devPlugins.
/// </summary>
public List<DevPluginSettings> DevPluginSettings { get; set; } = new();
/// <summary>
/// Gets or sets the global UI scale.
@ -150,7 +160,7 @@ namespace Dalamud.Configuration
public bool IsAntiAntiDebugEnabled { get; set; } = false;
/// <summary>
/// Specifies the kind of beta to download when <see cref="DoDalamudTest"/> is set to true.
/// Gets or sets the kind of beta to download when <see cref="DoDalamudTest"/> is set to true.
/// </summary>
public string DalamudBetaKind { get; set; }

View file

@ -0,0 +1,33 @@
namespace Dalamud.Configuration.Internal
{
/// <summary>
/// Settings for DevPlugins.
/// </summary>
internal sealed class DevPluginSettings
{
/// <summary>
/// Initializes a new instance of the <see cref="DevPluginSettings"/> class.
/// </summary>
/// <param name="dllFile">Filename of the DLL representing this plugin.</param>
public DevPluginSettings(string dllFile)
{
this.DllFile = dllFile;
}
/// <summary>
/// Gets or sets the path to a plugin DLL. This is automatically generated for any plugins in the devPlugins folder. However by
/// specifiying this value manually, you can add arbitrary files outside the normal file paths.
/// </summary>
public string DllFile { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this plugin should automatically start when Dalamud boots up.
/// </summary>
public bool StartOnBoot { get; set; } = true;
/// <summary>
/// Gets or sets a value indicating whether this plugin should automatically reload on file change.
/// </summary>
public bool AutomaticReloading { get; set; } = false;
}
}

View file

@ -3,7 +3,7 @@ namespace Dalamud.Configuration
/// <summary>
/// Third party repository for dalamud plugins.
/// </summary>
public class ThirdRepoSetting
internal sealed class ThirdPartyRepoSettings
{
/// <summary>
/// Gets or sets the third party repo url.
@ -16,16 +16,14 @@ namespace Dalamud.Configuration
public bool IsEnabled { get; set; }
/// <summary>
/// Create new instance of third party repo object.
/// Gets or sets a short name for the repo url.
/// </summary>
/// <returns>New instance of third party repo.</returns>
public ThirdRepoSetting Clone()
{
return new ThirdRepoSetting
{
Url = this.Url,
IsEnabled = this.IsEnabled,
};
}
public string Name { get; set; }
/// <summary>
/// Clone this object.
/// </summary>
/// <returns>A shallow copy of this object.</returns>
public ThirdPartyRepoSettings Clone() => this.MemberwiseClone() as ThirdPartyRepoSettings;
}
}

View file

@ -7,7 +7,7 @@ namespace Dalamud.Configuration
/// <summary>
/// Configuration to store settings for a dalamud plugin.
/// </summary>
public class PluginConfigurations
public sealed class PluginConfigurations
{
private readonly DirectoryInfo configDirectory;