aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/discord.ts32
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);
+}