about summary refs log tree commit diff
path: root/Utilities/LibMatrix.Utilities.Bot/Interfaces/ICommand.cs
blob: 4626a23261aa2e62756bc8933710748e1a1786e0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System.Collections.Frozen;
using System.Collections.Immutable;

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 ICommandGroup : ICommand {
    public IImmutableList<ICommand> SubCommands { get; }
}