Files
nadekobot/NadekoBot.Core/Common/Attributes/OwnerOnlyAttribute.cs
2021-09-06 21:29:22 +02:00

19 lines
778 B
C#

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<PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo executingCommand, IServiceProvider services)
{
var creds = services.GetService<IBotCredentials>();
return Task.FromResult((creds.IsOwner(context.User) || context.Client.CurrentUser.Id == context.User.Id ? PreconditionResult.FromSuccess() : PreconditionResult.FromError("Not owner")));
}
}
}