Plugins: Implement PluginServices

This commit is contained in:
Katy Coe
2020-12-19 20:50:05 +01:00
parent 637952f360
commit 2aa9b9f45b

View File

@@ -0,0 +1,37 @@
/*
Copyright 2020 Katy Coe - http://www.djkaty.com - https://github.com/djkaty
All rights reserved.
*/
using System.Linq;
using Il2CppInspector.PluginAPI.V100;
namespace Il2CppInspector
{
/// <summary>
/// Plugin-related services we provide to plugins that they can call upon
/// </summary>
public class PluginServices
{
// The plugin we are providing services to
private IPlugin plugin;
private PluginServices(IPlugin plugin) => this.plugin = plugin;
/// <summary>
/// Get plugin services for a specific plugin
/// Designed to be used by plugins as a service factory
/// </summary>
/// <param name="plugin">The plugin to provide services to</param>
/// <returns>A PluginServices object</returns>
public static PluginServices For(IPlugin plugin) {
return new PluginServices(plugin);
}
/// <summary>
/// Provide visual status update text for long-running operations
/// </summary>
/// <param name="text">The text to report</param>
public void StatusUpdate(string text) => PluginManager.StatusUpdate(plugin, text);
}
}