6b44f549b4
Introduces a thin interface around Util.IsWine and Util.OpenLink so services can be constructed in an isolated xUnit AppDomain without forcing Dalamud.dll onto the assembly search path. Production wiring (DalamudPlatformUtil) caches IsWine at ctor time — it's a runtime probe that never changes for the lifetime of a plugin instance, mirroring the Lightless DalamudUtilService pattern. Plugin.PlatformUtil is wired in the Phase-1 ctor so any service that LoadAsync allocates can resolve the platform indirection without plumbing the instance through additional constructor params. Follow-up commits route MessageStore and the OpenLink call-sites through this interface.
12 lines
351 B
C#
12 lines
351 B
C#
namespace HellionChat.Util;
|
|
|
|
// Indirection over Dalamud.Utility.Util's static surface so services can be
|
|
// constructed in an isolated xUnit AppDomain without loading Dalamud.dll.
|
|
// Production wiring lives in DalamudPlatformUtil; tests substitute a fake.
|
|
internal interface IPlatformUtil
|
|
{
|
|
bool IsWine { get; }
|
|
|
|
void OpenLink(string url);
|
|
}
|