about summary refs log tree commit diff
path: root/Utilities/LibMatrix.Utilities.Bot/Interfaces/ICommand.cs
blob: 7b4afa9a3d6930daea92f1335a6bdbc67c468a73 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace LibMatrix.Utilities.Bot.Interfaces;

public interface ICommand {
    public string Name { get; }
    public string[]? Aliases { get; }
    public string Description { get; }
    public bool Unlisted { get; }

    public Task<bool> CanInvoke(CommandContext ctx) => Task.FromResult(true);

    public Task Invoke(CommandContext ctx);
}

public interface ICommand<T> : ICommand where T : ICommandGroup { }

public interface ICommandGroup : ICommand { }

public interface ICommandGroup<T> : ICommandGroup where T : ICommandGroup { }