Implement method for checking member permissions #68
3 changed files with 26 additions and 3 deletions
11
types/enums.ts
Normal file
11
types/enums.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
export const enum Permission {
|
||||
SendMessage = 1,
|
||||
ManageChannel = 2,
|
||||
ManageRole = 4,
|
||||
CreateInvite = 8,
|
||||
ManageInvite = 16,
|
||||
ManageGuild = 32,
|
||||
ManageMember = 64,
|
||||
BanMember = 128,
|
||||
KickMember = 256
|
||||
}
|
|
@ -19,16 +19,17 @@ export interface GuildResponse {
|
|||
description: string | null,
|
||||
icon: string | null,
|
||||
owner_uuid: string,
|
||||
roles: [],
|
||||
roles: RoleResponse[],
|
||||
member_count: number
|
||||
}
|
||||
|
||||
export interface GuildMemberResponse {
|
||||
uuid: string,
|
||||
nickname: string,
|
||||
user_uuid: string,
|
||||
guild_uuid: string,
|
||||
user: UserResponse
|
||||
is_owner: boolean,
|
||||
user: UserResponse,
|
||||
roles: RoleResponse[]
|
||||
}
|
||||
|
||||
export interface GuildMembersResponse {
|
||||
|
|
11
utils/hasPermission.ts
Normal file
11
utils/hasPermission.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import type { Permission } from "~/types/enums";
|
||||
import type { GuildMemberResponse } from "~/types/interfaces";
|
||||
|
||||
export default (member: GuildMemberResponse, permission: Permission) => {
|
||||
for (const role of member.roles) {
|
||||
if (role.permissions & permission) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue