2022-10-21 23:17:06 +00:00
|
|
|
/*
|
|
|
|
* Vencord, a modification for Discord's desktop app
|
|
|
|
* Copyright (c) 2022 Vendicated and contributors
|
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
2023-05-23 01:47:09 +00:00
|
|
|
import { MessageObject } from "@api/MessageEvents";
|
|
|
|
import { findByPropsLazy, findLazy } from "@webpack";
|
2023-04-18 21:12:58 +00:00
|
|
|
import { ChannelStore, ComponentDispatch, GuildStore, PrivateChannelsStore, SelectedChannelStore } from "@webpack/common";
|
2023-05-23 01:47:09 +00:00
|
|
|
import { Guild, Message } from "discord-types/general";
|
2022-10-22 16:18:41 +00:00
|
|
|
|
2023-04-15 02:42:18 +00:00
|
|
|
const PreloadedUserSettings = findLazy(m => m.ProtoClass?.typeName.endsWith("PreloadedUserSettings"));
|
2023-05-23 01:47:09 +00:00
|
|
|
const MessageActions = findByPropsLazy("editMessage", "sendMessage");
|
2023-04-15 02:42:18 +00:00
|
|
|
|
2022-10-09 17:48:42 +00:00
|
|
|
export function getCurrentChannel() {
|
|
|
|
return ChannelStore.getChannel(SelectedChannelStore.getChannelId());
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getCurrentGuild(): Guild | undefined {
|
|
|
|
return GuildStore.getGuild(getCurrentChannel()?.guild_id);
|
|
|
|
}
|
2022-11-19 13:54:48 +00:00
|
|
|
|
|
|
|
export function openPrivateChannel(userId: string) {
|
|
|
|
PrivateChannelsStore.openPrivateChannel(userId);
|
|
|
|
}
|
2023-04-15 02:42:18 +00:00
|
|
|
|
|
|
|
export const enum Theme {
|
|
|
|
Dark = 1,
|
|
|
|
Light = 2
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getTheme(): Theme {
|
|
|
|
return PreloadedUserSettings.getCurrentValue()?.appearance?.theme;
|
|
|
|
}
|
2023-04-18 21:12:58 +00:00
|
|
|
|
|
|
|
export function insertTextIntoChatInputBox(text: string) {
|
|
|
|
ComponentDispatch.dispatchToLastSubscribed("INSERT_TEXT", {
|
|
|
|
rawText: text,
|
|
|
|
plainText: text
|
|
|
|
});
|
|
|
|
}
|
2023-05-23 01:47:09 +00:00
|
|
|
|
|
|
|
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);
|
|
|
|
}
|