-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRequireModAttribute.cs
More file actions
27 lines (23 loc) · 928 Bytes
/
RequireModAttribute.cs
File metadata and controls
27 lines (23 loc) · 928 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Linq;
using System.Threading.Tasks;
using Discord;
using Discord.Interactions;
namespace QuaverBot;
public class RequireModAttribute : PreconditionAttribute
{
public override Task<PreconditionResult> CheckRequirementsAsync(IInteractionContext context, ICommandInfo commandInfo, IServiceProvider services)
{
IUser user = context.User;
IGuildUser guildUser = user as IGuildUser ?? context.Guild.GetUserAsync(user.Id).Result;
if (guildUser == null)
{
return Task.FromResult(PreconditionResult.FromError("Command must be used in a guild channel."));
}
if (!guildUser.RoleIds.Any(r => QuaverBot.Config.ModRoles.Contains(r)))
{
return Task.FromResult(PreconditionResult.FromError("You don't have permission to use this command."));
}
return Task.FromResult(PreconditionResult.FromSuccess());
}
}