From 20e50b94fbced58ec46371567d4356a6b04505c8 Mon Sep 17 00:00:00 2001 From: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com> Date: Mon, 13 Sep 2021 01:02:06 +0000 Subject: [PATCH] fix: allow suppressing embeds on non bot msgs #1074 --- src/helpers/messages/suppress_embeds.ts | 26 +++++++++++++++++++++++++ src/helpers/mod.ts | 3 +++ 2 files changed, 29 insertions(+) create mode 100644 src/helpers/messages/suppress_embeds.ts diff --git a/src/helpers/messages/suppress_embeds.ts b/src/helpers/messages/suppress_embeds.ts new file mode 100644 index 000000000..c4d0efdcd --- /dev/null +++ b/src/helpers/messages/suppress_embeds.ts @@ -0,0 +1,26 @@ +import { botId } from "../../bot.ts"; +import { cacheHandlers } from "../../cache.ts"; +import { rest } from "../../rest/rest.ts"; +import { structures } from "../../structures/mod.ts"; +import { Errors } from "../../types/discordeno/errors.ts"; +import { EditMessage } from "../../types/messages/edit_message.ts"; +import type { Message } from "../../types/messages/message.ts"; +import type { PermissionStrings } from "../../types/permissions/permission_strings.ts"; +import { endpoints } from "../../util/constants.ts"; +import { requireBotChannelPermissions } from "../../util/permissions.ts"; +import { snakelize, validateComponents } from "../../util/utils.ts"; + +/** Suppress all the embeds in this message */ +export async function suppressEmbeds(channelId: bigint, messageId: bigint) { + const message = await cacheHandlers.get("messages", messageId); + + await requireBotChannelPermissions(channelId, message ? ["MANAGE_MESSAGES"] : ["SEND_MESSAGES"]); + + const result = await rest.runMethod( + "patch", + endpoints.CHANNEL_MESSAGE(channelId, messageId), + snakelize({ flags: 4 }) + ); + + return await structures.createDiscordenoMessage(result); +} diff --git a/src/helpers/mod.ts b/src/helpers/mod.ts index b07cfe2b3..37825487b 100644 --- a/src/helpers/mod.ts +++ b/src/helpers/mod.ts @@ -95,6 +95,7 @@ import { removeAllReactions } from "./messages/remove_all_reactions.ts"; import { removeReaction } from "./messages/remove_reaction.ts"; import { removeReactionEmoji } from "./messages/remove_reaction_emoji.ts"; import { sendMessage } from "./messages/send_message.ts"; +import { suppressEmbeds } from "./messages/suppress_embeds.ts"; import { unpin, unpinMessage } from "./messages/unpin_message.ts"; import { editBotProfile } from "./misc/edit_bot_profile.ts"; import { editBotStatus } from "./misc/edit_bot_status.ts"; @@ -310,6 +311,7 @@ export { startThread, unarchiveThread, unlockThread, + suppressEmbeds, }; export let helpers = { @@ -474,6 +476,7 @@ export let helpers = { startThread, unarchiveThread, unlockThread, + suppressEmbeds, }; export type Helpers = typeof helpers;