blob: 6bbbe2e9c9186930af4f2ac8850fd6fc7ea7e751 [file] [log] [blame]
pineafan32767212022-03-14 21:27:39 +00001const logs = [
2 "channelUpdate",
pineafan32767212022-03-14 21:27:39 +00003 "emojiUpdate",
pineafanda6e5342022-07-03 10:03:16 +01004 "stickerUpdate",
pineafan32767212022-03-14 21:27:39 +00005 "guildUpdate",
6 "guildMemberUpdate",
7 "guildMemberPunish",
pineafan32767212022-03-14 21:27:39 +00008 "guildRoleUpdate",
9 "guildInviteUpdate",
10 "messageUpdate",
11 "messageDelete",
12 "messageDeleteBulk",
13 "messageReactionUpdate",
pineafan32767212022-03-14 21:27:39 +000014 "messageMassPing",
pineafanda6e5342022-07-03 10:03:16 +010015 "messageAnnounce",
pineafan32767212022-03-14 21:27:39 +000016 "threadUpdate",
pineafanda6e5342022-07-03 10:03:16 +010017 "webhookUpdate",
pineafan412beec2022-06-29 21:46:26 +010018 "guildMemberVerify",
pineafan73a7c4a2022-07-24 10:38:04 +010019 "autoModeratorDeleted",
20 "nucleusSettingsUpdated",
21 "ticketUpdate"
pineafan63fc5e22022-08-04 22:04:10 +010022];
pineafan32767212022-03-14 21:27:39 +000023
Skyler Grey11236ba2022-08-08 21:13:33 +010024const tickets = ["support", "report", "question", "issue", "suggestion", "other"];
pineafan32767212022-03-14 21:27:39 +000025
26const toHexInteger = (permissions, array?) => {
27 if (!array) {
28 array = logs;
29 }
30 let int = 0n;
31
Skyler Grey75ea9172022-08-06 10:22:23 +010032 for (const perm of permissions) {
pineafan32767212022-03-14 21:27:39 +000033 int += BigInt(2 ** array.indexOf(perm));
34 }
pineafan63fc5e22022-08-04 22:04:10 +010035 return int.toString(16);
36};
pineafan32767212022-03-14 21:27:39 +000037
38const toHexArray = (permissionsHex, array?) => {
39 if (!array) {
40 array = logs;
41 }
pineafan63fc5e22022-08-04 22:04:10 +010042 const permissions = [];
Skyler Grey75ea9172022-08-06 10:22:23 +010043 const int = BigInt("0x" + permissionsHex)
44 .toString(2)
45 .split("")
46 .reverse();
pineafan63fc5e22022-08-04 22:04:10 +010047 for (const index in int) {
pineafane23c4ec2022-07-27 21:56:27 +010048 if (int[index] === "1" && array.length > index) {
pineafan32767212022-03-14 21:27:39 +000049 permissions.push(array[index]);
50 }
51 }
52 return permissions;
pineafan63fc5e22022-08-04 22:04:10 +010053};
pineafan32767212022-03-14 21:27:39 +000054
Skyler Grey75ea9172022-08-06 10:22:23 +010055export { toHexInteger, toHexArray, tickets, logs };