47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
using Discord;
|
|
using Discord.WebSocket;
|
|
|
|
namespace BiblioTech.Commands
|
|
{
|
|
public class SubCommandOption : CommandOption
|
|
{
|
|
private readonly CommandOption[] options;
|
|
|
|
public SubCommandOption(string name, string description, params CommandOption[] options)
|
|
: base(name, description, type: ApplicationCommandOptionType.SubCommand, isRequired: false)
|
|
{
|
|
this.options = options;
|
|
}
|
|
|
|
public override SlashCommandOptionBuilder Build()
|
|
{
|
|
var builder = base.Build();
|
|
foreach (var option in options)
|
|
{
|
|
builder.AddOption(option.Build());
|
|
}
|
|
return builder;
|
|
}
|
|
}
|
|
|
|
public class AdminCommand : BaseCommand
|
|
{
|
|
public override string Name => "admin";
|
|
public override string StartingMessage => "...";
|
|
public override string Description => "Admins only.";
|
|
|
|
private readonly SubCommandOption aaa = new SubCommandOption("aaa", "does AAA", new EthAddressOption());
|
|
private readonly SubCommandOption bbb = new SubCommandOption("bbb", "does BBB", new UserOption("a user", true));
|
|
|
|
public override CommandOption[] Options => new CommandOption[]
|
|
{
|
|
aaa, bbb
|
|
};
|
|
|
|
protected override Task Invoke(SocketSlashCommand command)
|
|
{
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|
|
}
|