Skip to content

Replace BepInEx API Usages with Interfaces #1

Description

@malicean

Currently, Stratum.IStratumPlugin exposes BepInEx.PluginInfo Info { get; }. This is nice because the metadata can be easily retrieved from BepInEx.BaseUnityPlugin.Info, but it requires that BepInEx provide it. This means it is impossible to unit test code that accesses this metadata (any code that logs plugins), and also creates artificial reliance on BepInEx.

A solution could be to create Stratum.IPluginMetadata, which contains all the data accessed by Stratum. A BepInEx-specific implementation of this interface could be created and used in Stratum.StratumPlugin, which provides the same developer experience as the original, but with the necessary abstraction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions