Files
AdamuSw/src/GameLogic/PlugIns/ISpeedHackCheatCheckPlugIn.cs
2026-07-14 19:00:35 +03:00

41 lines
1.5 KiB
C#

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