From 2f9c65512b48eb413d9e3db3233b87f93e38e732 Mon Sep 17 00:00:00 2001 From: chatenium Date: Fri, 17 Apr 2026 16:25:03 +0200 Subject: [PATCH] Added network permissions as constants and a permission calculator in permissions.ts --- package.json | 2 +- src/core/permissions.ts | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/core/permissions.ts 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