using System; using System.Threading.Tasks; using Discord.Commands; using Microsoft.Extensions.DependencyInjection; using NadekoBot.Extensions; using NadekoBot.Services; namespace NadekoBot.Common.Attributes { [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)] public sealed class OwnerOnlyAttribute : PreconditionAttribute { public override Task CheckPermissionsAsync(ICommandContext context, CommandInfo executingCommand, IServiceProvider services) { var creds = services.GetRequiredService().GetCreds(); return Task.FromResult((creds.IsOwner(context.User) || context.Client.CurrentUser.Id == context.User.Id ? PreconditionResult.FromSuccess() : PreconditionResult.FromError("Not owner"))); } } }