Redesigned the DiscordBotCore by splitting it into multiple projects. Created a WebUI and preparing to remove the DiscordBot application
This commit is contained in:
60
DiscordBotCore/Others/DiscordPermissions.cs
Normal file
60
DiscordBotCore/Others/DiscordPermissions.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using System.Linq;
|
||||
using Discord;
|
||||
using Discord.WebSocket;
|
||||
|
||||
namespace DiscordBotCore.Others;
|
||||
|
||||
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)
|
||||
{
|
||||
return 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)
|
||||
{
|
||||
return 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)
|
||||
{
|
||||
return user.Roles.Any(role => role.HasPermission(permission)) || 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)
|
||||
{
|
||||
return 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)
|
||||
{
|
||||
return IsAdmin((SocketGuildUser)user);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user