// // IPreCommandExecutionEvent.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.Core.Packets; using NosSmooth.Packets; using Remora.Results; namespace NosSmooth.Core.Commands; /// /// Event executed prior to command handler. /// public interface IPreCommandExecutionEvent { /// /// Execute the command pre execution event. /// /// /// If an error is returned, the command handler won't be called. /// /// The NosTale client. /// The command. /// The cancellation token for cancelling the operation. /// The type of the command. /// A result that may or may not succeed. public Task ExecuteBeforeCommandAsync ( INostaleClient client, TCommand command, CancellationToken ct = default ) where TCommand : ICommand; }