diff --git a/IPA.Loader/Loader/PluginMetadata.cs b/IPA.Loader/Loader/PluginMetadata.cs index 6d43543b..b4d74afc 100644 --- a/IPA.Loader/Loader/PluginMetadata.cs +++ b/IPA.Loader/Loader/PluginMetadata.cs @@ -1,6 +1,7 @@ using IPA.Loader.Features; using IPA.Utilities; using Mono.Cecil; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -46,7 +47,7 @@ namespace IPA.Loader /// The name of the author that wrote this plugin. /// /// the name of the plugin's author - public string Author { get; internal set; } + public string Author { get; private set; } /// /// The version of the plugin. @@ -75,6 +76,29 @@ namespace IPA.Loader /// a list of associated files public IReadOnlyList AssociatedFiles { get; private set; } = new List(); + /// + /// The name of the resource in the plugin assembly containing the plugin's icon. + /// + /// the name of the plugin's icon + public string IconName { get; private set; } + + /// + /// A link to this plugin's home page, if any. + /// + /// the of the plugin's home page + public Uri PluginHomeLink { get; private set; } + + /// + /// A link to this plugin's source code, if avaliable. + /// + /// the of the plugin's source code + public Uri PluginSourceLink { get; private set; } + /// + /// A link to a donate page for the author of this plugin, if avaliable. + /// + /// the of the author's donate page + public Uri DonateLink { get; private set; } + internal bool IsSelf; /// @@ -97,6 +121,10 @@ namespace IPA.Loader Version = value.Version; Id = value.Id; Author = value.Author; + IconName = value.IconPath; + PluginHomeLink = value.Links.ProjectHome; + PluginSourceLink = value.Links.ProjectSource; + DonateLink = value.Links.Donate; AssociatedFiles = value.Files .Select(f => Path.Combine(UnityGame.InstallPath, f)) .Select(p => new FileInfo(p)).ToList();