// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.GameLogic.PlugIns; using System.Runtime.InteropServices; using MUnique.OpenMU.PlugIns; /// /// A plugin interface which is called when the state of a player has been changed. /// /// /// Example cases: /// - Player Entered Game /// - Player Left Game /// - Before saving player data /// - Player Authenticated /// - Trade finished. /// [Guid("7AB20179-753F-423C-94F7-16DB03D4D046")] [PlugInPoint("Player state changed", "Is called when a player state got changed.")] public interface IPlayerStateChangedPlugIn { /// /// Is called when the changed. /// /// The player. /// The previous state. /// The current state. ValueTask PlayerStateChangedAsync(Player player, State previousState, State currentState); }