diff --git a/Tools/BiblioTech/BaseCommand.cs b/Tools/BiblioTech/BaseCommand.cs index 45f6ea6..ce618f9 100644 --- a/Tools/BiblioTech/BaseCommand.cs +++ b/Tools/BiblioTech/BaseCommand.cs @@ -9,13 +9,8 @@ namespace BiblioTech public abstract string Name { get; } public abstract string StartingMessage { get; } public abstract string Description { get; } - public virtual CommandOption[] Options - { - get - { - return Array.Empty(); - } - } + public virtual CommandOption[] Options => Array.Empty(); + public virtual bool IsAdminCommand => false; public async Task SlashCommandHandler(SocketSlashCommand command) { diff --git a/Tools/BiblioTech/CommandHandler.cs b/Tools/BiblioTech/CommandHandler.cs index 88b45aa..29d5b85 100644 --- a/Tools/BiblioTech/CommandHandler.cs +++ b/Tools/BiblioTech/CommandHandler.cs @@ -30,6 +30,11 @@ namespace BiblioTech .WithName(c.Name) .WithDescription(c.Description); + if (c.IsAdminCommand) + { + builder.WithDefaultMemberPermissions(GuildPermission.Administrator); + } + foreach (var option in c.Options) { builder.AddOption(option.Build()); diff --git a/Tools/BiblioTech/Commands/AdminCommand.cs b/Tools/BiblioTech/Commands/AdminCommand.cs index 9def408..47a161a 100644 --- a/Tools/BiblioTech/Commands/AdminCommand.cs +++ b/Tools/BiblioTech/Commands/AdminCommand.cs @@ -25,6 +25,7 @@ namespace BiblioTech.Commands public override string Name => "admin"; public override string StartingMessage => "..."; public override string Description => "Admins only."; + public override bool IsAdminCommand => true; public override CommandOption[] Options => new CommandOption[] {