// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.GameLogic.PlugIns; using System; using System.Runtime.InteropServices; using System.Threading.Tasks; using MUnique.OpenMU.Pathfinding; using MUnique.OpenMU.PlugIns; /// /// A plugin point interface for speed hack checking. /// [Guid("F01BEF4A-32EE-4D56-BEB0-BE503B748DC7")] [PlugInPoint("Speedhack Cheat Check", "Is called for walk/attack speedhack checks and movement state resets.")] public interface ISpeedHackCheatCheckPlugIn { /// /// Checks if the walk speed is within limits. /// /// The player. /// The steps requested by the player. /// The event args to mark a violation. ValueTask WalkCheatCheckAsync(Player player, Memory steps, SpeedHackCheckEventArgs eventArgs); /// /// Checks if the attack speed is within limits. /// /// The player. /// The event args to mark a violation. ValueTask AttackCheatCheckAsync(Player player, SpeedHackCheckEventArgs eventArgs); /// /// Resets the movement speed check state for the player. /// /// The player. ValueTask ResetMovementStateAsync(Player player); }