From 95365d8573595840185ca3affb2e6349a1925c8a Mon Sep 17 00:00:00 2001 From: almeidx Date: Fri, 26 Nov 2021 11:49:08 +0000 Subject: [PATCH 1/2] fix permissions not showing properly in roleinfo --- .../Utility/functions/getRoleInfoEmbed.ts | 14 ++---- backend/src/utils/permissionNames.ts | 46 +++++++++++++++++++ 2 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 backend/src/utils/permissionNames.ts diff --git a/backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts b/backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts index 36a664e3..4dbc99b7 100644 --- a/backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts +++ b/backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts @@ -1,8 +1,9 @@ -import { MessageEmbedOptions, Role } from "discord.js"; +import { MessageEmbedOptions, Permissions, Role } from "discord.js"; import humanizeDuration from "humanize-duration"; import { GuildPluginData } from "knub"; import moment from "moment-timezone"; import { EmbedWith, preEmbedPadding, trimLines } from "../../../utils"; +import { permissionNames } from "../../../utils/permissionNames.js"; import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin"; import { UtilityPluginType } from "../types"; @@ -35,14 +36,9 @@ export async function getRoleInfoEmbed( round: true, }); - const rolePerms = Object.keys(role.permissions.toJSON()).map((p) => - p - // Voice channel related permission names start with 'voice' - .replace(/^voice/i, "") - .replace(/([a-z])([A-Z])/g, "$1 $2") - .toLowerCase() - .replace(/(^\w{1})|(\s{1}\w{1})/g, (l) => l.toUpperCase()), - ); + const rolePerms = role.permissions.has(Permissions.FLAGS.ADMINISTRATOR) + ? [permissionNames.ADMINISTRATOR] + : role.permissions.toArray().map((p) => permissionNames[p]); // -1 because of the @everyone role const totalGuildRoles = pluginData.guild.roles.cache.size - 1; diff --git a/backend/src/utils/permissionNames.ts b/backend/src/utils/permissionNames.ts new file mode 100644 index 00000000..323f11cf --- /dev/null +++ b/backend/src/utils/permissionNames.ts @@ -0,0 +1,46 @@ +import { PermissionFlags } from "discord.js"; +import { EMPTY_CHAR } from "../utils"; + +export const permissionNames: Record = { + ADD_REACTIONS: "Add Reactions", + ADMINISTRATOR: "Administrator", + ATTACH_FILES: "Attach Files", + BAN_MEMBERS: "Ban Members", + CHANGE_NICKNAME: "Change Nickname", + CONNECT: "Connect", + CREATE_INSTANT_INVITE: "Create Invite", + CREATE_PRIVATE_THREADS: "Create Private Threads", + CREATE_PUBLIC_THREADS: "Create Public Threads", + DEAFEN_MEMBERS: "Deafen Members", + EMBED_LINKS: "Embed Links", + KICK_MEMBERS: "Kick Members", + MANAGE_CHANNELS: "Manage Channels", + MANAGE_EMOJIS_AND_STICKERS: "Manage Emojis and Stickers", + MANAGE_GUILD: "Manage Server", + MANAGE_MESSAGES: "Manage Messages", + MANAGE_NICKNAMES: "Manage Nicknames", + MANAGE_ROLES: "Manage Roles", + MANAGE_THREADS: "Manage Threads", + MANAGE_WEBHOOKS: "Manage Webhooks", + MENTION_EVERYONE: `Mention @${EMPTY_CHAR}everyone, @${EMPTY_CHAR}here, and All Roles`, + MOVE_MEMBERS: "Move Members", + MUTE_MEMBERS: "Mute Members", + PRIORITY_SPEAKER: "Priority Speaker", + READ_MESSAGE_HISTORY: "Read Message History", + REQUEST_TO_SPEAK: "Request to Speak", + SEND_MESSAGES: "Send Messages", + SEND_MESSAGES_IN_THREADS: "Send Messages in Threads", + SEND_TTS_MESSAGES: "Send Text-To-Speech Messages", + SPEAK: "Speak", + START_EMBEDDED_ACTIVITIES: "Start Embedded Activities", + STREAM: "Video", + USE_APPLICATION_COMMANDS: "Use Application Commands", + USE_EXTERNAL_EMOJIS: "Use External Emoji", + USE_EXTERNAL_STICKERS: "Use External Stickers", + USE_PRIVATE_THREADS: "Use Private Threads", + USE_PUBLIC_THREADS: "Use Public Threads", + USE_VAD: "Use Voice Activity", + VIEW_AUDIT_LOG: "View Audit Log", + VIEW_CHANNEL: "View Channels", + VIEW_GUILD_INSIGHTS: "View Guild Insights", +}; From d7dc84077891bb7189b89feb34ccb4bd8bcad403 Mon Sep 17 00:00:00 2001 From: almeidx Date: Fri, 26 Nov 2021 12:21:03 +0000 Subject: [PATCH 2/2] rename record --- backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts | 6 +++--- backend/src/utils/permissionNames.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts b/backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts index 4dbc99b7..f58f61be 100644 --- a/backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts +++ b/backend/src/plugins/Utility/functions/getRoleInfoEmbed.ts @@ -3,7 +3,7 @@ import humanizeDuration from "humanize-duration"; import { GuildPluginData } from "knub"; import moment from "moment-timezone"; import { EmbedWith, preEmbedPadding, trimLines } from "../../../utils"; -import { permissionNames } from "../../../utils/permissionNames.js"; +import { PERMISSION_NAMES } from "../../../utils/permissionNames.js"; import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin"; import { UtilityPluginType } from "../types"; @@ -37,8 +37,8 @@ export async function getRoleInfoEmbed( }); const rolePerms = role.permissions.has(Permissions.FLAGS.ADMINISTRATOR) - ? [permissionNames.ADMINISTRATOR] - : role.permissions.toArray().map((p) => permissionNames[p]); + ? [PERMISSION_NAMES.ADMINISTRATOR] + : role.permissions.toArray().map((p) => PERMISSION_NAMES[p]); // -1 because of the @everyone role const totalGuildRoles = pluginData.guild.roles.cache.size - 1; diff --git a/backend/src/utils/permissionNames.ts b/backend/src/utils/permissionNames.ts index 323f11cf..3bf0c4f1 100644 --- a/backend/src/utils/permissionNames.ts +++ b/backend/src/utils/permissionNames.ts @@ -1,7 +1,7 @@ import { PermissionFlags } from "discord.js"; import { EMPTY_CHAR } from "../utils"; -export const permissionNames: Record = { +export const PERMISSION_NAMES: Record = { ADD_REACTIONS: "Add Reactions", ADMINISTRATOR: "Administrator", ATTACH_FILES: "Attach Files",