diff --git a/package.json b/package.json index 6ebc221..5a6fbd8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@chatenium/chatenium-sdk", - "version": "1.1.12", + "version": "1.2", "description": "A library for interacting with the Chatenium API", "type": "module", "main": "dist/index.js", diff --git a/src/core/permissions.ts b/src/core/permissions.ts new file mode 100644 index 0000000..5418768 --- /dev/null +++ b/src/core/permissions.ts @@ -0,0 +1,32 @@ +export const permissions = { + createAndEditCategories: 2, + deleteCategories: 4, + createAndEditChannels: 8, + deleteChannels: 16, + deleteAnyMessage: 32, + pinMessages: 64, + createAndEditRanks: 128, + deleteRanks: 256, + changeNetworkNamePictureAndVisibility: 512, + createEmojis: 1024, + deleteEmojis: 2048, + manageEmbed: 4096, + createWebhooks: 8192, + deleteWebhooks: 16384, + createInvites: 32768, + deleteInvites: 65536, + sendMessages: 131072, + seeChannels: 262144, + banMembers: 524288, + kickMembers: 1048576, + unAndAssignRanksToMember: 2097152, +} + +/** + * Determines whether the set of permissions includes the permission. Note that network owners have regular permissions just like the other members, so if the userid matches with the network's creator ID, then the permission is automatically granted. This logic is not included in this function. + * @param permissions + * @param permission + */ +export function permissionGranted(permissions: number, permission: number): Boolean { + return (permissions & permission) === permission; +} \ No newline at end of file