// Copyright Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections.Generic;
namespace HordeServer.Plugins
{
///
/// Information about a Horde plugin
///
public interface IPluginMetadata
{
///
/// Name of the plugin
///
PluginName Name { get; }
///
/// Description of the plugin
///
string Description { get; }
///
/// Other plugins that this plugin depends on
///
IReadOnlyList DependsOn { get; }
///
/// Unique implementations of singleton features which this plugin provides
///
IReadOnlyList? ImplementsSingletons { get; }
}
///
/// Information about a Horde plugin
///
public class PluginMetadata : IPluginMetadata
{
///
public PluginName Name { get; set; }
///
public string Description { get; set; } = String.Empty;
///
public List DependsOn { get; set; } = new List();
IReadOnlyList IPluginMetadata.DependsOn => DependsOn;
///
public List? ImplementsSingletons { get; set; }
IReadOnlyList? IPluginMetadata.ImplementsSingletons => ImplementsSingletons;
}
}