Files
2026-07-14 19:00:35 +03:00

63 lines
2.0 KiB
C#

// <copyright file="ExamplePlugIn.cs" company="MUnique">
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
// </copyright>
namespace MUnique.OpenMU.PlugIns.Tests;
using System.ComponentModel.DataAnnotations;
using System.Runtime.InteropServices;
using MUnique.OpenMU.GameLogic;
using MUnique.OpenMU.PlugIns;
/// <summary>
/// The implementation of the <see cref="IExamplePlugIn"/> which tells us if it got executed.
/// </summary>
/// <seealso cref="IExamplePlugIn" />
[Guid("9FCA692F-2BD5-4310-8755-E20761F94180")]
[PlugIn]
[Display(Name = nameof(ExamplePlugIn), Description = "Just an example plugin.")]
internal class ExamplePlugIn : IExamplePlugIn
{
/// <summary>
/// Gets a value indicating whether the plugin instance was executed in the test.
/// </summary>
public bool WasExecuted { get; private set; }
/// <inheritdoc />
public void DoStuff(Player player, string text, MyEventArgs args)
{
this.WasExecuted = true;
args.WasExecuted = true;
}
/// <summary>
/// A plugin of a nested type.
/// </summary>
/// <seealso cref="IExamplePlugIn" />
[Guid("B6D7E11D-E99D-4466-BAE1-87B043ED345D")]
[PlugIn]
[Display(Name = nameof(NestedPlugIn), Description = "A nested example plugin.")]
internal class NestedPlugIn : IExamplePlugIn
{
/// <inheritdoc/>
public void DoStuff(Player player, string text, MyEventArgs args)
{
// do nothing
}
}
/// <summary>
/// A plugin of a nested type which doesn't have a guid.
/// </summary>
/// <seealso cref="IExamplePlugIn" />
[PlugIn]
[Display(Name = nameof(NestedPlugIn), Description = "A nested example plugin without Guid.")]
internal class NestedWithoutGuid : IExamplePlugIn
{
/// <inheritdoc/>
public void DoStuff(Player player, string text, MyEventArgs args)
{
// does nothing, too
}
}
}