refactor(abstractions): rename ILogger to IPluginLogger, doc Initialize

Addresses code quality review of ed1c2d0:
- ILogger would collide with Microsoft.Extensions.Logging.ILogger and Serilog.ILogger
  in any plugin file that imports both namespaces; renamed to IPluginLogger
- IAcDreamPlugin.Initialize now has an XML doc clarifying its lifecycle contract
This commit is contained in:
Erik 2026-04-10 09:46:30 +02:00
parent ed1c2d061c
commit 9dfbc05052
3 changed files with 9 additions and 4 deletions

View file

@ -3,7 +3,12 @@ namespace AcDream.Plugin.Abstractions;
public interface IAcDreamPlugin public interface IAcDreamPlugin
{ {
/// <summary>
/// Called exactly once, before <see cref="Enable"/>. The plugin should stash the
/// host reference and do any one-time setup that doesn't depend on a connected world.
/// </summary>
void Initialize(IPluginHost host); void Initialize(IPluginHost host);
void Enable(); void Enable();
void Disable(); void Disable();
} }

View file

@ -3,9 +3,9 @@ namespace AcDream.Plugin.Abstractions;
/// <summary> /// <summary>
/// Entry point for a plugin into the acdream runtime. The surface will grow /// Entry point for a plugin into the acdream runtime. The surface will grow
/// across phases as more systems come online. For Phase 1 only ILogger is real. /// across phases as more systems come online. For Phase 1 only IPluginLogger is real.
/// </summary> /// </summary>
public interface IPluginHost public interface IPluginHost
{ {
ILogger Log { get; } IPluginLogger Log { get; }
} }

View file

@ -1,7 +1,7 @@
// src/AcDream.Plugin.Abstractions/ILogger.cs // src/AcDream.Plugin.Abstractions/IPluginLogger.cs
namespace AcDream.Plugin.Abstractions; namespace AcDream.Plugin.Abstractions;
public interface ILogger public interface IPluginLogger
{ {
void Info(string message); void Info(string message);
void Warn(string message); void Warn(string message);