using System; using System.Threading.Tasks; using Discord.Commands; using NadekoBot.Core.Services; using Microsoft.Extensions.DependencyInjection; 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.GetService(); return Task.FromResult((creds.IsOwner(context.User) || context.Client.CurrentUser.Id == context.User.Id ? PreconditionResult.FromSuccess() : PreconditionResult.FromError("Not owner"))); } } }