// // IPreExecutionEvent.cs // // Copyright (c) František Boháček. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System.Threading; using System.Threading.Tasks; using NosSmooth.Core.Client; using NosSmooth.Packets; using Remora.Results; namespace NosSmooth.Core.Packets; /// /// Event executed prior to packet responders. /// public interface IPreExecutionEvent { /// /// Execute the pre execution event. /// /// /// If an error is retuned, the packet responders won't be called. /// /// The NosTale client. /// The packet arguments. /// The cancellation token for cancelling the operation. /// The type of the packet. /// A result that may or may not succeed. public Task ExecuteBeforeExecutionAsync ( INostaleClient client, PacketEventArgs packetArgs, CancellationToken ct = default ) where TPacket : IPacket; }