Files
community/Ink Canvas/Plugins/PluginBase.cs
T
2026-04-08 00:51:28 +08:00

34 lines
1.0 KiB
C#

using System;
namespace Ink_Canvas.Plugins
{
public abstract class PluginBase : IPlugin
{
public abstract string Id { get; }
public abstract string Name { get; }
public abstract string Version { get; }
public abstract string Description { get; }
public virtual string Author => "Unknown";
public virtual int Order => 0;
protected IPluginHost? Host { get; private set; }
public virtual void Initialize(IPluginHost host)
{
Host = host;
Host.Log($"[Plugin:{Name}] Initialized");
}
public virtual void Shutdown()
{
Host?.Log($"[Plugin:{Name}] Shutdown");
Host = null;
}
public virtual object? GetSettingsView() => null;
public virtual object? GetMainView() => null;
protected void Log(string message) => Host?.Log($"[Plugin:{Name}] {message}");
protected void LogError(string message, Exception? ex = null) => Host?.LogError($"[Plugin:{Name}] {message}", ex);
}
}