55 lines
1.9 KiB
C#
55 lines
1.9 KiB
C#
using Discord;
|
|
using Discord.WebSocket;
|
|
|
|
using System.Linq;
|
|
|
|
namespace PluginManager.Others.Permissions
|
|
{
|
|
/// <summary>
|
|
/// A class whith all discord permissions
|
|
/// </summary>
|
|
public static class DiscordPermissions
|
|
{
|
|
/// <summary>
|
|
/// Checks if the role has the specified permission
|
|
/// </summary>
|
|
/// <param name="role">The role</param>
|
|
/// <param name="permission">The permission</param>
|
|
/// <returns></returns>
|
|
public static bool hasPermission(this IRole role, GuildPermission permission) => role.Permissions.Has(permission);
|
|
|
|
/// <summary>
|
|
/// Check if user has the specified role
|
|
/// </summary>
|
|
/// <param name="user">The user</param>
|
|
/// <param name="role">The role</param>
|
|
/// <returns></returns>
|
|
public static bool hasRole(this SocketGuildUser user, IRole role) => user.Roles.Contains(role);
|
|
|
|
/// <summary>
|
|
/// Check if user has the specified permission
|
|
/// </summary>
|
|
/// <param name="user">The user</param>
|
|
/// <param name="permission">The permission</param>
|
|
/// <returns></returns>
|
|
public static bool hasPermission(this SocketGuildUser user, GuildPermission permission)
|
|
=> user.Roles.Where(role => role.hasPermission(permission)).Any() || user.Guild.Owner == user;
|
|
/// <summary>
|
|
/// Check if user is administrator of server
|
|
/// </summary>
|
|
/// <param name="user">The user</param>
|
|
/// <returns></returns>
|
|
public static bool isAdmin(this SocketGuildUser user) => user.hasPermission(GuildPermission.Administrator);
|
|
|
|
/// <summary>
|
|
/// Check if user is administrator of server
|
|
/// </summary>
|
|
/// <param name="user">The user</param>
|
|
/// <returns></returns>
|
|
public static bool isAdmin(this SocketUser user) => isAdmin((SocketGuildUser)user);
|
|
}
|
|
|
|
|
|
|
|
|
|
} |