diff options
-rw-r--r-- | src/utils/discord.ts | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/utils/discord.ts b/src/utils/discord.ts index dfd20e6..228e2b4 100644 --- a/src/utils/discord.ts +++ b/src/utils/discord.ts @@ -16,11 +16,13 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { findLazy } from "@webpack"; +import { MessageObject } from "@api/MessageEvents"; +import { findByPropsLazy, findLazy } from "@webpack"; import { ChannelStore, ComponentDispatch, GuildStore, PrivateChannelsStore, SelectedChannelStore } from "@webpack/common"; -import { Guild } from "discord-types/general"; +import { Guild, Message } from "discord-types/general"; const PreloadedUserSettings = findLazy(m => m.ProtoClass?.typeName.endsWith("PreloadedUserSettings")); +const MessageActions = findByPropsLazy("editMessage", "sendMessage"); export function getCurrentChannel() { return ChannelStore.getChannel(SelectedChannelStore.getChannelId()); @@ -49,3 +51,29 @@ export function insertTextIntoChatInputBox(text: string) { plainText: text }); } + +interface MessageExtra { + messageReference: Message["messageReference"]; + allowedMentions: { + parse: string[]; + replied_user: boolean; + }; + stickerIds: string[]; +} + +export function sendMessage( + channelId: string, + data: Partial<MessageObject>, + waitForChannelReady?: boolean, + extra?: Partial<MessageExtra> +) { + const messageData = { + content: "", + invalidEmojis: [], + tts: false, + validNonShortcutEmojis: [], + ...data + }; + + return MessageActions.sendMessage(channelId, messageData, waitForChannelReady, extra); +} |