aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--browser/VencordNativeStub.ts2
-rw-r--r--docs/2_PLUGINS.md2
-rw-r--r--src/VencordNative.ts3
-rw-r--r--src/api/Commands/commandHelpers.ts8
-rw-r--r--src/api/Commands/index.ts3
-rw-r--r--src/api/MessageEvents.ts5
-rw-r--r--src/api/Notices.ts2
-rw-r--r--src/api/ServerList.ts2
-rw-r--r--src/api/settings.ts12
-rw-r--r--src/components/CheckedTextInput.tsx2
-rw-r--r--src/components/DonateButton.tsx5
-rw-r--r--src/components/ErrorBoundary.tsx7
-rw-r--r--src/components/ErrorCard.tsx2
-rw-r--r--src/components/Flex.tsx2
-rw-r--r--src/components/Link.tsx2
-rw-r--r--src/components/Monaco.ts10
-rw-r--r--src/components/PatchHelper.tsx9
-rw-r--r--src/components/PluginSettings/PluginModal.tsx18
-rw-r--r--src/components/PluginSettings/components/SettingBooleanComponent.tsx5
-rw-r--r--src/components/PluginSettings/components/SettingCustomComponent.tsx3
-rw-r--r--src/components/PluginSettings/components/SettingNumericComponent.tsx5
-rw-r--r--src/components/PluginSettings/components/SettingSelectComponent.tsx5
-rw-r--r--src/components/PluginSettings/components/SettingSliderComponent.tsx5
-rw-r--r--src/components/PluginSettings/components/SettingTextComponent.tsx5
-rw-r--r--src/components/PluginSettings/components/index.ts3
-rw-r--r--src/components/PluginSettings/index.tsx21
-rw-r--r--src/components/VencordSettings/BackupRestoreTab.tsx5
-rw-r--r--src/components/VencordSettings/Updater.tsx7
-rw-r--r--src/components/VencordSettings/VencordTab.tsx9
-rw-r--r--src/components/VencordSettings/index.tsx8
-rw-r--r--src/components/handleComponentFailed.ts2
-rw-r--r--src/debug/Tracer.ts2
-rw-r--r--src/ipcMain/index.ts6
-rw-r--r--src/ipcMain/updater/git.ts2
-rw-r--r--src/ipcMain/updater/http.ts4
-rw-r--r--src/modules.d.ts2
-rw-r--r--src/patcher.ts2
-rw-r--r--src/plugins/BetterNotes.ts8
-rw-r--r--src/plugins/HideAttachments.tsx11
-rw-r--r--src/plugins/TimeBarAllActivities.ts4
-rw-r--r--src/plugins/anonymiseFileNames.ts6
-rw-r--r--src/plugins/apiBadges.tsx22
-rw-r--r--src/plugins/apiCommands.ts4
-rw-r--r--src/plugins/apiMenuItemDeobfuscator.ts6
-rw-r--r--src/plugins/apiMessageAccessories.ts4
-rw-r--r--src/plugins/apiMessageEvents.ts4
-rw-r--r--src/plugins/apiNotices.ts6
-rw-r--r--src/plugins/apiServerList.ts4
-rw-r--r--src/plugins/arRPC.tsx15
-rw-r--r--src/plugins/banger.ts4
-rw-r--r--src/plugins/betterGifAltText.ts4
-rw-r--r--src/plugins/betterRoleDot.ts8
-rw-r--r--src/plugins/betterUploadButton.ts4
-rw-r--r--src/plugins/blurNsfw.ts6
-rw-r--r--src/plugins/callTimer.tsx10
-rw-r--r--src/plugins/clearURLs/index.ts9
-rw-r--r--src/plugins/consoleShortcuts.ts4
-rw-r--r--src/plugins/corruptMp4s.ts12
-rw-r--r--src/plugins/dictionary.ts8
-rw-r--r--src/plugins/emoteCloner.tsx22
-rw-r--r--src/plugins/experiments.tsx13
-rw-r--r--src/plugins/fakeNitro.ts22
-rw-r--r--src/plugins/fart.ts10
-rw-r--r--src/plugins/forceOwnerCrown.ts6
-rw-r--r--src/plugins/friendInvites.ts8
-rw-r--r--src/plugins/fxTwitter.ts6
-rw-r--r--src/plugins/iLoveSpam.ts4
-rw-r--r--src/plugins/ignoreActivities.ts11
-rw-r--r--src/plugins/index.ts9
-rw-r--r--src/plugins/keepCurrentChannel.ts8
-rw-r--r--src/plugins/lastfm.tsx64
-rw-r--r--src/plugins/loadingQuotes.ts4
-rw-r--r--src/plugins/messageActions.ts21
-rw-r--r--src/plugins/messageLogger/index.tsx19
-rw-r--r--src/plugins/messageTags.ts10
-rw-r--r--src/plugins/moreCommands.ts6
-rw-r--r--src/plugins/moreKaomoji.ts8
-rw-r--r--src/plugins/moyai.ts13
-rw-r--r--src/plugins/muteNewGuild.ts4
-rw-r--r--src/plugins/noBlockedMessages.ts12
-rw-r--r--src/plugins/noCanaryMessageLinks.ts8
-rw-r--r--src/plugins/noDevtoolsWarning.ts6
-rw-r--r--src/plugins/noF1.ts4
-rw-r--r--src/plugins/noRPC.ts4
-rw-r--r--src/plugins/noReplyMention.ts4
-rw-r--r--src/plugins/noSystemBadge.ts4
-rw-r--r--src/plugins/noTrack.ts4
-rw-r--r--src/plugins/noUnblockToJump.ts4
-rw-r--r--src/plugins/oneko.ts4
-rw-r--r--src/plugins/petpet.ts18
-rw-r--r--src/plugins/plainFolderIcon.ts4
-rw-r--r--src/plugins/platformIndicators.tsx16
-rw-r--r--src/plugins/pronoundb/components/PronounsAboutComponent.tsx4
-rw-r--r--src/plugins/pronoundb/components/PronounsChatComponent.tsx10
-rw-r--r--src/plugins/pronoundb/components/PronounsProfileWrapper.tsx7
-rw-r--r--src/plugins/pronoundb/index.ts5
-rw-r--r--src/plugins/pronoundb/pronoundbUtils.ts7
-rw-r--r--src/plugins/quickMention.tsx8
-rw-r--r--src/plugins/quickReply.ts14
-rw-r--r--src/plugins/readAllNotificationsButton.tsx8
-rw-r--r--src/plugins/reverseImageSearch.tsx6
-rw-r--r--src/plugins/reviewDB/Utils/ReviewDBAPI.ts3
-rw-r--r--src/plugins/reviewDB/Utils/Utils.tsx13
-rw-r--r--src/plugins/reviewDB/components/MessageButton.tsx4
-rw-r--r--src/plugins/reviewDB/components/ReviewComponent.tsx7
-rw-r--r--src/plugins/reviewDB/components/ReviewsView.tsx7
-rw-r--r--src/plugins/reviewDB/index.tsx10
-rw-r--r--src/plugins/settings.tsx8
-rw-r--r--src/plugins/showHiddenChannels.tsx14
-rw-r--r--src/plugins/silentTyping.ts4
-rw-r--r--src/plugins/spotifyControls/PlayerComponent.tsx17
-rw-r--r--src/plugins/spotifyControls/SpotifyStore.ts15
-rw-r--r--src/plugins/spotifyControls/index.tsx5
-rw-r--r--src/plugins/spotifyCrack.ts7
-rw-r--r--src/plugins/spotifyShareCommands.ts19
-rw-r--r--src/plugins/startupTimings/StartupTimingPage.tsx11
-rw-r--r--src/plugins/startupTimings/index.tsx6
-rw-r--r--src/plugins/unindent.ts6
-rw-r--r--src/plugins/unminifyErrors.ts4
-rw-r--r--src/plugins/uwuify.ts6
-rw-r--r--src/plugins/vcDoubleClick.ts8
-rw-r--r--src/plugins/viewIcons.tsx15
-rw-r--r--src/plugins/volumeBooster.ts6
-rw-r--r--src/plugins/webContextMenus.ts4
-rw-r--r--src/plugins/webhookTags.ts4
-rw-r--r--src/plugins/whoReacted.tsx19
-rw-r--r--src/preload.ts4
-rw-r--r--src/utils/discord.ts3
-rw-r--r--src/utils/misc.tsx14
-rw-r--r--src/utils/modal.tsx3
-rw-r--r--src/utils/proxyLazy.ts2
-rw-r--r--src/utils/quickCss.ts3
-rw-r--r--src/utils/settingsSync.ts3
-rw-r--r--src/utils/types.ts3
-rw-r--r--src/webpack/common.tsx32
-rw-r--r--src/webpack/patchWebpack.ts5
-rw-r--r--src/webpack/webpack.ts25
-rw-r--r--tsconfig.json11
138 files changed, 572 insertions, 547 deletions
diff --git a/browser/VencordNativeStub.ts b/browser/VencordNativeStub.ts
index dca7da8..ef3923b 100644
--- a/browser/VencordNativeStub.ts
+++ b/browser/VencordNativeStub.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import IpcEvents from "../src/utils/IpcEvents";
import * as DataStore from "../src/api/DataStore";
+import IpcEvents from "../src/utils/IpcEvents";
// Discord deletes this so need to store in variable
const { localStorage } = window;
diff --git a/docs/2_PLUGINS.md b/docs/2_PLUGINS.md
index 6ac4b24..705ea89 100644
--- a/docs/2_PLUGINS.md
+++ b/docs/2_PLUGINS.md
@@ -15,7 +15,7 @@ You don't need to run `pnpm build` every time you make a change. Instead, use `p
3. In `index.ts`, copy-paste the following template code:
```ts
-import definePlugin from "../../utils/types";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "Epic Plugin",
diff --git a/src/VencordNative.ts b/src/VencordNative.ts
index c984870..3cd53e1 100644
--- a/src/VencordNative.ts
+++ b/src/VencordNative.ts
@@ -16,10 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import IPC_EVENTS from "@utils/IpcEvents";
import { IpcRenderer, ipcRenderer } from "electron";
-import IPC_EVENTS from "./utils/IpcEvents";
-
function assertEventAllowed(event: string) {
if (!(event in IPC_EVENTS)) throw new Error(`Event ${event} not allowed.`);
}
diff --git a/src/api/Commands/commandHelpers.ts b/src/api/Commands/commandHelpers.ts
index 8986248..d363d6e 100644
--- a/src/api/Commands/commandHelpers.ts
+++ b/src/api/Commands/commandHelpers.ts
@@ -16,15 +16,15 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { mergeDefaults } from "@utils/misc";
+import { findByCodeLazy, findByPropsLazy, waitFor } from "@webpack";
import { Message } from "discord-types/general";
import type { PartialDeep } from "type-fest";
-import { lazyWebpack, mergeDefaults } from "../../utils/misc";
-import { filters, waitFor } from "../../webpack";
import { Argument } from "./types";
-const createBotMessage = lazyWebpack(filters.byCode('username:"Clyde"'));
-const MessageSender = lazyWebpack(filters.byProps("receiveMessage"));
+const createBotMessage = findByCodeLazy('username:"Clyde"');
+const MessageSender = findByPropsLazy("receiveMessage");
let SnowflakeUtils: any;
waitFor("fromTimestamp", m => SnowflakeUtils = m);
diff --git a/src/api/Commands/index.ts b/src/api/Commands/index.ts
index f31043c..88139d4 100644
--- a/src/api/Commands/index.ts
+++ b/src/api/Commands/index.ts
@@ -16,7 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { makeCodeblock } from "../../utils/misc";
+import { makeCodeblock } from "@utils/misc";
+
import { sendBotMessage } from "./commandHelpers";
import { ApplicationCommandInputType, ApplicationCommandOptionType, ApplicationCommandType, Argument, Command, CommandContext, Option } from "./types";
diff --git a/src/api/MessageEvents.ts b/src/api/MessageEvents.ts
index 02638b2..1bf6b0b 100644
--- a/src/api/MessageEvents.ts
+++ b/src/api/MessageEvents.ts
@@ -16,11 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import Logger from "@utils/Logger";
+import { MessageStore } from "@webpack/common";
import type { Channel, Message } from "discord-types/general";
-import Logger from "../utils/Logger";
-import { MessageStore } from "../webpack/common";
-
const MessageEventsLogger = new Logger("MessageEvents", "#e5c890");
export interface Emoji {
diff --git a/src/api/Notices.ts b/src/api/Notices.ts
index 4364ca5..6d20087 100644
--- a/src/api/Notices.ts
+++ b/src/api/Notices.ts
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { waitFor } from "../webpack";
+import { waitFor } from "@webpack";
let NoticesModule: any;
waitFor(m => m.show && m.dismiss && !m.suppressAll, m => NoticesModule = m);
diff --git a/src/api/ServerList.ts b/src/api/ServerList.ts
index d3a9a11..c98b174 100644
--- a/src/api/ServerList.ts
+++ b/src/api/ServerList.ts
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import Logger from "../utils/Logger";
+import Logger from "@utils/Logger";
const logger = new Logger("ServerListAPI");
diff --git a/src/api/settings.ts b/src/api/settings.ts
index dd8692a..b7499d1 100644
--- a/src/api/settings.ts
+++ b/src/api/settings.ts
@@ -16,13 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import plugins from "~plugins";
+import IpcEvents from "@utils/IpcEvents";
+import Logger from "@utils/Logger";
+import { mergeDefaults } from "@utils/misc";
+import { OptionType } from "@utils/types";
+import { React } from "@webpack/common";
-import IpcEvents from "../utils/IpcEvents";
-import Logger from "../utils/Logger";
-import { mergeDefaults } from "../utils/misc";
-import { OptionType } from "../utils/types";
-import { React } from "../webpack/common";
+import plugins from "~plugins";
const logger = new Logger("Settings");
export interface Settings {
diff --git a/src/components/CheckedTextInput.tsx b/src/components/CheckedTextInput.tsx
index e97519d..cf4aa11 100644
--- a/src/components/CheckedTextInput.tsx
+++ b/src/components/CheckedTextInput.tsx
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { React, TextInput } from "../webpack/common";
+import { React, TextInput } from "@webpack/common";
// TODO: Refactor settings to use this as well
interface TextInputProps {
diff --git a/src/components/DonateButton.tsx b/src/components/DonateButton.tsx
index 6aae8ad..49f079b 100644
--- a/src/components/DonateButton.tsx
+++ b/src/components/DonateButton.tsx
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import IpcEvents from "../utils/IpcEvents";
-import { Button } from "../webpack/common";
+import IpcEvents from "@utils/IpcEvents";
+import { Button } from "@webpack/common";
+
import { Heart } from "./Heart";
export default function DonateButton(props: any) {
diff --git a/src/components/ErrorBoundary.tsx b/src/components/ErrorBoundary.tsx
index 86a5946..8ebc61b 100644
--- a/src/components/ErrorBoundary.tsx
+++ b/src/components/ErrorBoundary.tsx
@@ -16,9 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import Logger from "../utils/Logger";
-import { LazyComponent } from "../utils/misc";
-import { Margins, React } from "../webpack/common";
+import Logger from "@utils/Logger";
+import { LazyComponent } from "@utils/misc";
+import { Margins, React } from "@webpack/common";
+
import { ErrorCard } from "./ErrorCard";
interface Props {
diff --git a/src/components/ErrorCard.tsx b/src/components/ErrorCard.tsx
index f83be38..e749ea4 100644
--- a/src/components/ErrorCard.tsx
+++ b/src/components/ErrorCard.tsx
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Card } from "../webpack/common";
+import { Card } from "@webpack/common";
interface Props {
style?: React.CSSProperties;
diff --git a/src/components/Flex.tsx b/src/components/Flex.tsx
index 1987fab..430d857 100644
--- a/src/components/Flex.tsx
+++ b/src/components/Flex.tsx
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import type { React } from "../webpack/common";
+import type { React } from "@webpack/common";
export function Flex(props: React.PropsWithChildren<{
flexDirection?: React.CSSProperties["flexDirection"];
diff --git a/src/components/Link.tsx b/src/components/Link.tsx
index 2400ea6..0f4eb07 100644
--- a/src/components/Link.tsx
+++ b/src/components/Link.tsx
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { React } from "../webpack/common";
+import { React } from "@webpack/common";
interface Props extends React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> {
disabled?: boolean;
diff --git a/src/components/Monaco.ts b/src/components/Monaco.ts
index 6d16c76..aa98f99 100644
--- a/src/components/Monaco.ts
+++ b/src/components/Monaco.ts
@@ -16,12 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import monacoHtml from "~fileContent/monacoWin.html";
+import { debounce } from "@utils/debounce";
+import IpcEvents from "@utils/IpcEvents";
+import { Queue } from "@utils/Queue";
+import { find } from "@webpack";
-import { debounce } from "../utils/debounce";
-import IpcEvents from "../utils/IpcEvents";
-import { Queue } from "../utils/Queue";
-import { find } from "../webpack/webpack";
+import monacoHtml from "~fileContent/monacoWin.html";
const queue = new Queue();
const setCss = debounce((css: string) => {
diff --git a/src/components/PatchHelper.tsx b/src/components/PatchHelper.tsx
index 0314de8..22c2b4d 100644
--- a/src/components/PatchHelper.tsx
+++ b/src/components/PatchHelper.tsx
@@ -16,10 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { debounce } from "../utils/debounce";
-import { makeCodeblock } from "../utils/misc";
-import { Button, Clipboard, Forms, Margins, Parser, React, Switch, Text, TextInput } from "../webpack/common";
-import { search } from "../webpack/webpack";
+import { debounce } from "@utils/debounce";
+import { makeCodeblock } from "@utils/misc";
+import { search } from "@webpack";
+import { Button, Clipboard, Forms, Margins, Parser, React, Switch, Text, TextInput } from "@webpack/common";
+
import { CheckedTextInput } from "./CheckedTextInput";
import ErrorBoundary from "./ErrorBoundary";
diff --git a/src/components/PluginSettings/PluginModal.tsx b/src/components/PluginSettings/PluginModal.tsx
index 7331fff..275d370 100644
--- a/src/components/PluginSettings/PluginModal.tsx
+++ b/src/components/PluginSettings/PluginModal.tsx
@@ -16,17 +16,17 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { generateId } from "@api/Commands";
+import { useSettings } from "@api/settings";
+import { LazyComponent } from "@utils/misc";
+import { ModalContent, ModalFooter, ModalHeader, ModalProps, ModalRoot, ModalSize } from "@utils/modal";
+import { proxyLazy } from "@utils/proxyLazy";
+import { OptionType, Plugin } from "@utils/types";
+import { findByCode, findByPropsLazy } from "@webpack";
+import { Button, FluxDispatcher, Forms, React, Text, Tooltip, UserStore, UserUtils } from "@webpack/common";
import { User } from "discord-types/general";
import { Constructor } from "type-fest";
-import { generateId } from "../../api/Commands";
-import { useSettings } from "../../api/settings";
-import { LazyComponent, lazyWebpack } from "../../utils/misc";
-import { ModalContent, ModalFooter, ModalHeader, ModalProps, ModalRoot, ModalSize } from "../../utils/modal";
-import { proxyLazy } from "../../utils/proxyLazy";
-import { OptionType, Plugin } from "../../utils/types";
-import { filters, findByCode } from "../../webpack";
-import { Button, FluxDispatcher, Forms, React, Text, Tooltip, UserStore, UserUtils } from "../../webpack/common";
import ErrorBoundary from "../ErrorBoundary";
import { Flex } from "../Flex";
import {
@@ -40,7 +40,7 @@ import {
} from "./components";
const UserSummaryItem = LazyComponent(() => findByCode("defaultRenderUser", "showDefaultAvatarsForNullUsers"));
-const AvatarStyles = lazyWebpack(filters.byProps("moreUsers", "emptyUser", "avatarContainer", "clickableAvatar"));
+const AvatarStyles = findByPropsLazy("moreUsers", "emptyUser", "avatarContainer", "clickableAvatar");
const UserRecord: Constructor<Partial<User>> = proxyLazy(() => UserStore.getCurrentUser().constructor) as any;
interface PluginModalProps extends ModalProps {
diff --git a/src/components/PluginSettings/components/SettingBooleanComponent.tsx b/src/components/PluginSettings/components/SettingBooleanComponent.tsx
index 99c1eae..0aaafa0 100644
--- a/src/components/PluginSettings/components/SettingBooleanComponent.tsx
+++ b/src/components/PluginSettings/components/SettingBooleanComponent.tsx
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { PluginOptionBoolean } from "../../../utils/types";
-import { Forms, React, Select } from "../../../webpack/common";
+import { PluginOptionBoolean } from "@utils/types";
+import { Forms, React, Select } from "@webpack/common";
+
import { ISettingElementProps } from ".";
export function SettingBooleanComponent({ option, pluginSettings, id, onChange, onError }: ISettingElementProps<PluginOptionBoolean>) {
diff --git a/src/components/PluginSettings/components/SettingCustomComponent.tsx b/src/components/PluginSettings/components/SettingCustomComponent.tsx
index dd704bf..af7192f 100644
--- a/src/components/PluginSettings/components/SettingCustomComponent.tsx
+++ b/src/components/PluginSettings/components/SettingCustomComponent.tsx
@@ -16,7 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { PluginOptionComponent } from "../../../utils/types";
+import { PluginOptionComponent } from "@utils/types";
+
import { ISettingElementProps } from ".";
export function SettingCustomComponent({ option, onChange, onError }: ISettingElementProps<PluginOptionComponent>) {
diff --git a/src/components/PluginSettings/components/SettingNumericComponent.tsx b/src/components/PluginSettings/components/SettingNumericComponent.tsx
index 01e72dc..3457783 100644
--- a/src/components/PluginSettings/components/SettingNumericComponent.tsx
+++ b/src/components/PluginSettings/components/SettingNumericComponent.tsx
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { OptionType, PluginOptionNumber } from "../../../utils/types";
-import { Forms, React, TextInput } from "../../../webpack/common";
+import { OptionType, PluginOptionNumber } from "@utils/types";
+import { Forms, React, TextInput } from "@webpack/common";
+
import { ISettingElementProps } from ".";
const MAX_SAFE_NUMBER = BigInt(Number.MAX_SAFE_INTEGER);
diff --git a/src/components/PluginSettings/components/SettingSelectComponent.tsx b/src/components/PluginSettings/components/SettingSelectComponent.tsx
index ce35675..8a5bee1 100644
--- a/src/components/PluginSettings/components/SettingSelectComponent.tsx
+++ b/src/components/PluginSettings/components/SettingSelectComponent.tsx
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { PluginOptionSelect } from "../../../utils/types";
-import { Forms, React, Select } from "../../../webpack/common";
+import { PluginOptionSelect } from "@utils/types";
+import { Forms, React, Select } from "@webpack/common";
+
import { ISettingElementProps } from ".";
export function SettingSelectComponent({ option, pluginSettings, onChange, onError, id }: ISettingElementProps<PluginOptionSelect>) {
diff --git a/src/components/PluginSettings/components/SettingSliderComponent.tsx b/src/components/PluginSettings/components/SettingSliderComponent.tsx
index ff1c491..2d31696 100644
--- a/src/components/PluginSettings/components/SettingSliderComponent.tsx
+++ b/src/components/PluginSettings/components/SettingSliderComponent.tsx
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { PluginOptionSlider } from "../../../utils/types";
-import { Forms, React, Slider } from "../../../webpack/common";
+import { PluginOptionSlider } from "@utils/types";
+import { Forms, React, Slider } from "@webpack/common";
+
import { ISettingElementProps } from ".";
export function makeRange(start: number, end: number, step = 1) {
diff --git a/src/components/PluginSettings/components/SettingTextComponent.tsx b/src/components/PluginSettings/components/SettingTextComponent.tsx
index f76bd58..b92fcec 100644
--- a/src/components/PluginSettings/components/SettingTextComponent.tsx
+++ b/src/components/PluginSettings/components/SettingTextComponent.tsx
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { PluginOptionString } from "../../../utils/types";
-import { Forms, React, TextInput } from "../../../webpack/common";
+import { PluginOptionString } from "@utils/types";
+import { Forms, React, TextInput } from "@webpack/common";
+
import { ISettingElementProps } from ".";
export function SettingTextComponent({ option, pluginSettings, id, onChange, onError }: ISettingElementProps<PluginOptionString>) {
diff --git a/src/components/PluginSettings/components/index.ts b/src/components/PluginSettings/components/index.ts
index 507b53a..9e75068 100644
--- a/src/components/PluginSettings/components/index.ts
+++ b/src/components/PluginSettings/components/index.ts
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { PluginOptionBase } from "../../../utils/types";
+import { PluginOptionBase } from "@utils/types";
export interface ISettingElementProps<T extends PluginOptionBase> {
option: T;
@@ -35,3 +35,4 @@ export * from "./SettingNumericComponent";
export * from "./SettingSelectComponent";
export * from "./SettingSliderComponent";
export * from "./SettingTextComponent";
+
diff --git a/src/components/PluginSettings/index.tsx b/src/components/PluginSettings/index.tsx
index f16d55c..495a509 100644
--- a/src/components/PluginSettings/index.tsx
+++ b/src/components/PluginSettings/index.tsx
@@ -16,18 +16,19 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { showNotice } from "@api/Notices";
+import { Settings, useSettings } from "@api/settings";
+import { ChangeList } from "@utils/ChangeList";
+import Logger from "@utils/Logger";
+import { classes, LazyComponent } from "@utils/misc";
+import { openModalLazy } from "@utils/modal";
+import { Plugin } from "@utils/types";
+import { findByCode, findByPropsLazy } from "@webpack";
+import { Alerts, Button, Forms, Margins, Parser, React, Select, Switch, Text, TextInput, Toasts, Tooltip } from "@webpack/common";
+
import Plugins from "~plugins";
-import { showNotice } from "../../api/Notices";
-import { Settings, useSettings } from "../../api/settings";
import { startDependenciesRecursive, startPlugin, stopPlugin } from "../../plugins";
-import { ChangeList } from "../../utils/ChangeList";
-import Logger from "../../utils/Logger";
-import { classes, LazyComponent, lazyWebpack } from "../../utils/misc";
-import { openModalLazy } from "../../utils/modal";
-import { Plugin } from "../../utils/types";
-import { filters, findByCode } from "../../webpack";
-import { Alerts, Button, Forms, Margins, Parser, React, Select, Switch, Text, TextInput, Toasts, Tooltip } from "../../webpack/common";
import ErrorBoundary from "../ErrorBoundary";
import { ErrorCard } from "../ErrorCard";
import { Flex } from "../Flex";
@@ -37,7 +38,7 @@ import * as styles from "./styles";
const logger = new Logger("PluginSettings", "#a6d189");
-const InputStyles = lazyWebpack(filters.byProps("inputDefault", "inputWrapper"));
+const InputStyles = findByPropsLazy("inputDefault", "inputWrapper");
const CogWheel = LazyComponent(() => findByCode("18.564C15.797 19.099 14.932 19.498 14 19.738V22H10V19.738C9.069"));
const InfoIcon = LazyComponent(() => findByCode("4.4408921e-16 C4.4771525,-1.77635684e-15 4.4408921e-16"));
diff --git a/src/components/VencordSettings/BackupRestoreTab.tsx b/src/components/VencordSettings/BackupRestoreTab.tsx
index ce0bdaa..73a1309 100644
--- a/src/components/VencordSettings/BackupRestoreTab.tsx
+++ b/src/components/VencordSettings/BackupRestoreTab.tsx
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { downloadSettingsBackup, uploadSettingsBackup } from "../../utils/settingsSync";
-import { Button, Card, Forms, Margins, Text } from "../../webpack/common";
+import { downloadSettingsBackup, uploadSettingsBackup } from "@utils/settingsSync";
+import { Button, Card, Forms, Margins, Text } from "@webpack/common";
+
import ErrorBoundary from "../ErrorBoundary";
import { Flex } from "../Flex";
diff --git a/src/components/VencordSettings/Updater.tsx b/src/components/VencordSettings/Updater.tsx
index 8f2b75b..7abfad9 100644
--- a/src/components/VencordSettings/Updater.tsx
+++ b/src/components/VencordSettings/Updater.tsx
@@ -16,11 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { classes, useAwaiter } from "@utils/misc";
+import { changes, checkForUpdates, getRepo, isNewer, rebuild, update, updateError, UpdateLogger } from "@utils/updater";
+import { Alerts, Button, Card, Forms, Margins, Parser, React, Toasts } from "@webpack/common";
+
import gitHash from "~git-hash";
-import { classes, useAwaiter } from "../../utils/misc";
-import { changes, checkForUpdates, getRepo, isNewer, rebuild, update, updateError, UpdateLogger } from "../../utils/updater";
-import { Alerts, Button, Card, Forms, Margins, Parser, React, Toasts } from "../../webpack/common";
import ErrorBoundary from "../ErrorBoundary";
import { ErrorCard } from "../ErrorCard";
import { Flex } from "../Flex";
diff --git a/src/components/VencordSettings/VencordTab.tsx b/src/components/VencordSettings/VencordTab.tsx
index 0e5846f..3a3f45f 100644
--- a/src/components/VencordSettings/VencordTab.tsx
+++ b/src/components/VencordSettings/VencordTab.tsx
@@ -17,10 +17,11 @@
*/
-import { useSettings } from "../../api/settings";
-import IpcEvents from "../../utils/IpcEvents";
-import { useAwaiter } from "../../utils/misc";
-import { Button, Card, Forms, React, Switch } from "../../webpack/common";
+import { useSettings } from "@api/settings";
+import IpcEvents from "@utils/IpcEvents";
+import { useAwaiter } from "@utils/misc";
+import { Button, Card, Forms, React, Switch } from "@webpack/common";
+
import DonateButton from "../DonateButton";
import ErrorBoundary from "../ErrorBoundary";
diff --git a/src/components/VencordSettings/index.tsx b/src/components/VencordSettings/index.tsx
index 028bd5e..4b6fb4e 100644
--- a/src/components/VencordSettings/index.tsx
+++ b/src/components/VencordSettings/index.tsx
@@ -16,11 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { findByCodeLazy } from "@webpack";
+import { Forms, Router, Text } from "@webpack/common";
+
import cssText from "~fileContent/settingsStyles.css";
-import { lazyWebpack } from "../../utils/misc";
-import { filters } from "../../webpack";
-import { Forms, React, Router, Text } from "../../webpack/common";
import ErrorBoundary from "../ErrorBoundary";
import BackupRestoreTab from "./BackupRestoreTab";
import PluginsTab from "./PluginsTab";
@@ -33,7 +33,7 @@ document.head.appendChild(style);
const st = (style: string) => `vcSettings${style}`;
-const TabBar = lazyWebpack(filters.byCode('[role="tab"][aria-disabled="false"]'));
+const TabBar = findByCodeLazy('[role="tab"][aria-disabled="false"]');
interface SettingsProps {
tab: string;
diff --git a/src/components/handleComponentFailed.ts b/src/components/handleComponentFailed.ts
index 34f3ab9..020e8ef 100644
--- a/src/components/handleComponentFailed.ts
+++ b/src/components/handleComponentFailed.ts
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { isOutdated, rebuild, update } from "../utils/updater";
+import { isOutdated, rebuild, update } from "@utils/updater";
export async function handleComponentFailed() {
if (isOutdated) {
diff --git a/src/debug/Tracer.ts b/src/debug/Tracer.ts
index 4e17143..185915a 100644
--- a/src/debug/Tracer.ts
+++ b/src/debug/Tracer.ts
@@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import Logger from "../utils/Logger";
+import Logger from "@utils/Logger";
if (IS_DEV) {
var traces = {} as Record<string, [number, any[]]>;
diff --git a/src/ipcMain/index.ts b/src/ipcMain/index.ts
index 535c005..ba85eeb 100644
--- a/src/ipcMain/index.ts
+++ b/src/ipcMain/index.ts
@@ -18,6 +18,9 @@
import "./updater";
+import { debounce } from "@utils/debounce";
+import IpcEvents from "@utils/IpcEvents";
+import { Queue } from "@utils/Queue";
import { BrowserWindow, desktopCapturer, ipcMain, shell } from "electron";
import { mkdirSync, readFileSync, watch } from "fs";
import { open, readFile, writeFile } from "fs/promises";
@@ -25,9 +28,6 @@ import { join } from "path";
import monacoHtml from "~fileContent/../components/monacoWin.html;base64";
-import { debounce } from "../utils/debounce";
-import IpcEvents from "../utils/IpcEvents";
-import { Queue } from "../utils/Queue";
import { ALLOWED_PROTOCOLS, QUICKCSS_PATH, SETTINGS_DIR, SETTINGS_FILE } from "./constants";
mkdirSync(SETTINGS_DIR, { recursive: true });
diff --git a/src/ipcMain/updater/git.ts b/src/ipcMain/updater/git.ts
index 7e4176a..07c94cb 100644
--- a/src/ipcMain/updater/git.ts
+++ b/src/ipcMain/updater/git.ts
@@ -16,12 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import IpcEvents from "@utils/IpcEvents";
import { execFile as cpExecFile } from "child_process";
import { ipcMain } from "electron";
import { join } from "path";
import { promisify } from "util";
-import IpcEvents from "../../utils/IpcEvents";
import { calculateHashes, serializeErrors } from "./common";
const VENCORD_SRC_DIR = join(__dirname, "..");
diff --git a/src/ipcMain/updater/http.ts b/src/ipcMain/updater/http.ts
index 523340f..902d644 100644
--- a/src/ipcMain/updater/http.ts
+++ b/src/ipcMain/updater/http.ts
@@ -16,6 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { VENCORD_USER_AGENT } from "@utils/constants";
+import IpcEvents from "@utils/IpcEvents";
import { ipcMain } from "electron";
import { writeFile } from "fs/promises";
import { join } from "path";
@@ -23,8 +25,6 @@ import { join } from "path";
import gitHash from "~git-hash";
import gitRemote from "~git-remote";
-import { VENCORD_USER_AGENT } from "../../utils/constants";
-import IpcEvents from "../../utils/IpcEvents";
import { get } from "../simpleGet";
import { calculateHashes, serializeErrors } from "./common";
diff --git a/src/modules.d.ts b/src/modules.d.ts
index 78cc9a5..6901260 100644
--- a/src/modules.d.ts
+++ b/src/modules.d.ts
@@ -20,7 +20,7 @@
/// <reference types="standalone-electron-types"/>
declare module "~plugins" {
- const plugins: Record<string, import("./utils/types").Plugin>;
+ const plugins: Record<string, import("@utils/types").Plugin>;
export default plugins;
}
diff --git a/src/patcher.ts b/src/patcher.ts
index 28910b7..12cefc0 100644
--- a/src/patcher.ts
+++ b/src/patcher.ts
@@ -16,6 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { onceDefined } from "@utils/onceDefined";
import electron, { app, BrowserWindowConstructorOptions } from "electron";
import { readFileSync } from "fs";
import { dirname, join } from "path";
@@ -23,7 +24,6 @@ import { dirname, join } from "path";
import { initIpc } from "./ipcMain";
import { installExt } from "./ipcMain/extensions";
import { readSettings } from "./ipcMain/index";
-import { onceDefined } from "./utils/onceDefined";
console.log("[Vencord] Starting up...");
diff --git a/src/plugins/BetterNotes.ts b/src/plugins/BetterNotes.ts
index 15282b6..4184259 100644
--- a/src/plugins/BetterNotes.ts
+++ b/src/plugins/BetterNotes.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Settings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import { makeLazy } from "../utils/misc";
-import definePlugin, { OptionType } from "../utils/types";
+import { Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import { makeLazy } from "@utils/misc";
+import definePlugin, { OptionType } from "@utils/types";
export default definePlugin({
name: "BetterNotesBox",
diff --git a/src/plugins/HideAttachments.tsx b/src/plugins/HideAttachments.tsx
index 0789214..2c1a0d4 100644
--- a/src/plugins/HideAttachments.tsx
+++ b/src/plugins/HideAttachments.tsx
@@ -16,14 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { get, set } from "@api/DataStore";
+import { Devs } from "@utils/constants";
+import Logger from "@utils/Logger";
+import definePlugin from "@utils/types";
+import { ChannelStore, FluxDispatcher } from "@webpack/common";
import { Message } from "discord-types/general";
-import { get, set } from "../api/DataStore";
-import { Devs } from "../utils/constants";
-import Logger from "../utils/Logger";
-import definePlugin from "../utils/types";
-import { ChannelStore, FluxDispatcher } from "../webpack/common";
-
let style: HTMLStyleElement;
const KEY = "HideAttachments_HiddenIds";
diff --git a/src/plugins/TimeBarAllActivities.ts b/src/plugins/TimeBarAllActivities.ts
index d4fe639..223f182 100644
--- a/src/plugins/TimeBarAllActivities.ts
+++ b/src/plugins/TimeBarAllActivities.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "TimeBarAllActivities",
diff --git a/src/plugins/anonymiseFileNames.ts b/src/plugins/anonymiseFileNames.ts
index c7c3ed5..f953a14 100644
--- a/src/plugins/anonymiseFileNames.ts
+++ b/src/plugins/anonymiseFileNames.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
+import { Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
enum Methods {
Random,
diff --git a/src/plugins/apiBadges.tsx b/src/plugins/apiBadges.tsx
index 831bf86..77ea46e 100644
--- a/src/plugins/apiBadges.tsx
+++ b/src/plugins/apiBadges.tsx
@@ -16,17 +16,17 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { BadgePosition, ProfileBadge } from "../api/Badges";
-import DonateButton from "../components/DonateButton";
-import ErrorBoundary from "../components/ErrorBoundary";
-import { Flex } from "../components/Flex";
-import { Heart } from "../components/Heart";
-import { Devs } from "../utils/constants";
-import IpcEvents from "../utils/IpcEvents";
-import Logger from "../utils/Logger";
-import { closeModal, Modals, openModal } from "../utils/modal";
-import definePlugin from "../utils/types";
-import { Forms, Margins } from "../webpack/common";
+import { BadgePosition, ProfileBadge } from "@api/Badges";
+import DonateButton from "@components/DonateButton";
+import ErrorBoundary from "@components/ErrorBoundary";
+import { Flex } from "@components/Flex";
+import { Heart } from "@components/Heart";
+import { Devs } from "@utils/constants";
+import IpcEvents from "@utils/IpcEvents";
+import Logger from "@utils/Logger";
+import { closeModal, Modals, openModal } from "@utils/modal";
+import definePlugin from "@utils/types";
+import { Forms, Margins } from "@webpack/common";
const CONTRIBUTOR_BADGE = "https://media.discordapp.net/stickers/1026517526106087454.webp";
diff --git a/src/plugins/apiCommands.ts b/src/plugins/apiCommands.ts
index 4136deb..e92b904 100644
--- a/src/plugins/apiCommands.ts
+++ b/src/plugins/apiCommands.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "CommandsAPI",
diff --git a/src/plugins/apiMenuItemDeobfuscator.ts b/src/plugins/apiMenuItemDeobfuscator.ts
index 40d53f1..5703456 100644
--- a/src/plugins/apiMenuItemDeobfuscator.ts
+++ b/src/plugins/apiMenuItemDeobfuscator.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
// duplicate values have multiple branches with different types. Just include all to be safe
const nameMap = {
diff --git a/src/plugins/apiMessageAccessories.ts b/src/plugins/apiMessageAccessories.ts
index ee3ee90..0b30b58 100644
--- a/src/plugins/apiMessageAccessories.ts
+++ b/src/plugins/apiMessageAccessories.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "MessageAccessoriesAPI",
diff --git a/src/plugins/apiMessageEvents.ts b/src/plugins/apiMessageEvents.ts
index bf7c7f5..13fbc4c 100644
--- a/src/plugins/apiMessageEvents.ts
+++ b/src/plugins/apiMessageEvents.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "MessageEventsAPI",
diff --git a/src/plugins/apiNotices.ts b/src/plugins/apiNotices.ts
index f53c535..a93334b 100644
--- a/src/plugins/apiNotices.ts
+++ b/src/plugins/apiNotices.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
migratePluginSettings("NoticesAPI", "NoticesApi");
diff --git a/src/plugins/apiServerList.ts b/src/plugins/apiServerList.ts
index 134870e..77498ac 100644
--- a/src/plugins/apiServerList.ts
+++ b/src/plugins/apiServerList.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "ServerListAPI",
diff --git a/src/plugins/arRPC.tsx b/src/plugins/arRPC.tsx
index 081ea48..cba3504 100644
--- a/src/plugins/arRPC.tsx
+++ b/src/plugins/arRPC.tsx
@@ -16,13 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { popNotice, showNotice } from "../api/Notices";
-import { Link } from "../components/Link";
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin from "../utils/types";
-import { filters, mapMangledModuleLazy } from "../webpack";
-import { FluxDispatcher, Forms, Toasts } from "../webpack/common";
+import { popNotice, showNotice } from "@api/Notices";
+import { Link } from "@components/Link";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { filters, findByCodeLazy, mapMangledModuleLazy } from "@webpack";
+import { FluxDispatcher, Forms, Toasts } from "@webpack/common";
const assetManager = mapMangledModuleLazy(
"getAssetImage: size must === [number, number] for Twitch",
@@ -31,7 +30,7 @@ const assetManager = mapMangledModuleLazy(
}
);
-const rpcManager = lazyWebpack(filters.byCode(".APPLICATION_RPC("));
+const rpcManager = findByCodeLazy(".APPLICATION_RPC(");
async function lookupAsset(applicationId: string, key: string): Promise<string> {
return (await assetManager.getAsset(applicationId, [key, undefined]))[0];
diff --git a/src/plugins/banger.ts b/src/plugins/banger.ts
index 6263224..68163cb 100644
--- a/src/plugins/banger.ts
+++ b/src/plugins/banger.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
export default definePlugin({
name: "BANger",
diff --git a/src/plugins/betterGifAltText.ts b/src/plugins/betterGifAltText.ts
index 56d7b54..686ef0a 100644
--- a/src/plugins/betterGifAltText.ts
+++ b/src/plugins/betterGifAltText.ts
@@ -17,8 +17,8 @@
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "BetterGifAltText",
diff --git a/src/plugins/betterRoleDot.ts b/src/plugins/betterRoleDot.ts
index 37a2ea7..3b2ac39 100644
--- a/src/plugins/betterRoleDot.ts
+++ b/src/plugins/betterRoleDot.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { migratePluginSettings, Settings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
-import { Clipboard, Toasts } from "../webpack/common";
+import { migratePluginSettings, Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+import { Clipboard, Toasts } from "@webpack/common";
migratePluginSettings("BetterRoleDot", "ClickableRoleDot");
export default definePlugin({
diff --git a/src/plugins/betterUploadButton.ts b/src/plugins/betterUploadButton.ts
index 94c1f49..64a3785 100644
--- a/src/plugins/betterUploadButton.ts
+++ b/src/plugins/betterUploadButton.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "BetterUploadButton",
diff --git a/src/plugins/blurNsfw.ts b/src/plugins/blurNsfw.ts
index 8f4178f..5521897 100644
--- a/src/plugins/blurNsfw.ts
+++ b/src/plugins/blurNsfw.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Settings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
+import { Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
let style: HTMLStyleElement;
diff --git a/src/plugins/callTimer.tsx b/src/plugins/callTimer.tsx
index 40aa160..6a1d357 100644
--- a/src/plugins/callTimer.tsx
+++ b/src/plugins/callTimer.tsx
@@ -16,11 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Settings } from "../api/settings";
-import ErrorBoundary from "../components/ErrorBoundary";
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
-import { React } from "../webpack/common";
+import { Settings } from "@api/settings";
+import ErrorBoundary from "@components/ErrorBoundary";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+import { React } from "@webpack/common";
function formatDuration(ms: number) {
// here be dragons (moment fucking sucks)
diff --git a/src/plugins/clearURLs/index.ts b/src/plugins/clearURLs/index.ts
index f5b8909..178a0e1 100644
--- a/src/plugins/clearURLs/index.ts
+++ b/src/plugins/clearURLs/index.ts
@@ -22,10 +22,11 @@ import {
MessageObject,
removePreEditListener,
removePreSendListener
-} from "../../api/MessageEvents";
-import { migratePluginSettings } from "../../api/settings";
-import { Devs } from "../../utils/constants";
-import definePlugin from "../../utils/types";
+} from "@api/MessageEvents";
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+
import { defaultRules } from "./defaultRules";
// From lodash
diff --git a/src/plugins/consoleShortcuts.ts b/src/plugins/consoleShortcuts.ts
index eeb5d8d..ae0de9f 100644
--- a/src/plugins/consoleShortcuts.ts
+++ b/src/plugins/consoleShortcuts.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
const WEB_ONLY = (f: string) => () => {
throw new Error(`'${f}' is Discord Desktop only.`);
diff --git a/src/plugins/corruptMp4s.ts b/src/plugins/corruptMp4s.ts
index 05cdf5f..5ae25ee 100644
--- a/src/plugins/corruptMp4s.ts
+++ b/src/plugins/corruptMp4s.ts
@@ -16,12 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { ApplicationCommandOptionType, sendBotMessage } from "../api/Commands";
-import { findOption } from "../api/Commands/commandHelpers";
-import { ApplicationCommandInputType } from "../api/Commands/types";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
-import { findByCode, findByProps } from "../webpack";
+import { ApplicationCommandOptionType, sendBotMessage } from "@api/Commands";
+import { findOption } from "@api/Commands/commandHelpers";
+import { ApplicationCommandInputType } from "@api/Commands/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { findByCode, findByProps } from "@webpack";
const DRAFT_TYPE = 0;
diff --git a/src/plugins/dictionary.ts b/src/plugins/dictionary.ts
index 547636d..14ee37b 100644
--- a/src/plugins/dictionary.ts
+++ b/src/plugins/dictionary.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { ApplicationCommandOptionType, sendBotMessage } from "../api/Commands";
-import { ApplicationCommandInputType } from "../api/Commands/types";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { ApplicationCommandOptionType, sendBotMessage } from "@api/Commands";
+import { ApplicationCommandInputType } from "@api/Commands/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "UrbanDictionary",
diff --git a/src/plugins/emoteCloner.tsx b/src/plugins/emoteCloner.tsx
index 0b1190b..36b283e 100644
--- a/src/plugins/emoteCloner.tsx
+++ b/src/plugins/emoteCloner.tsx
@@ -16,20 +16,20 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { migratePluginSettings, Settings } from "../api/settings";
-import { CheckedTextInput } from "../components/CheckedTextInput";
-import { Devs } from "../utils/constants";
-import Logger from "../utils/Logger";
-import { lazyWebpack, makeLazy } from "../utils/misc";
-import { ModalContent, ModalHeader, ModalRoot, openModal } from "../utils/modal";
-import definePlugin from "../utils/types";
-import { filters } from "../webpack";
-import { Forms, GuildStore, Margins, Menu, PermissionStore, React, Toasts, Tooltip, UserStore } from "../webpack/common";
+import { migratePluginSettings, Settings } from "@api/settings";
+import { CheckedTextInput } from "@components/CheckedTextInput";
+import { Devs } from "@utils/constants";
+import Logger from "@utils/Logger";
+import { makeLazy } from "@utils/misc";
+import { ModalContent, ModalHeader, ModalRoot, openModal } from "@utils/modal";
+import definePlugin from "@utils/types";
+import { findByCodeLazy, findByPropsLazy } from "@webpack";
+import { Forms, GuildStore, Margins, Menu, PermissionStore, React, Toasts, Tooltip, UserStore } from "@webpack/common";
const MANAGE_EMOJIS_AND_STICKERS = 1n << 30n;
-const GuildEmojiStore = lazyWebpack(filters.byProps("getGuilds", "getGuildEmoji"));
-const uploadEmoji = lazyWebpack(filters.byCode('"EMOJI_UPLOAD_START"', "GUILD_EMOJIS("));
+const GuildEmojiStore = findByPropsLazy("getGuilds", "getGuildEmoji");
+const uploadEmoji = findByCodeLazy('"EMOJI_UPLOAD_START"', "GUILD_EMOJIS(");
function getGuildCandidates(isAnimated: boolean) {
const meId = UserStore.getCurrentUser().id;
diff --git a/src/plugins/experiments.tsx b/src/plugins/experiments.tsx
index 4f83c5a..3019e64 100644
--- a/src/plugins/experiments.tsx
+++ b/src/plugins/experiments.tsx
@@ -16,14 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
-import { filters } from "../webpack";
-import { Forms, React } from "../webpack/common";
+import { Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+import { findByPropsLazy } from "@webpack";
+import { Forms, React } from "@webpack/common";
-const KbdStyles = lazyWebpack(filters.byProps("key", "removeBuildOverride"));
+const KbdStyles = findByPropsLazy("key", "removeBuildOverride");
export default definePlugin({
name: "Experiments",
diff --git a/src/plugins/fakeNitro.ts b/src/plugins/fakeNitro.ts
index c682324..0a1985a 100644
--- a/src/plugins/fakeNitro.ts
+++ b/src/plugins/fakeNitro.ts
@@ -16,18 +16,16 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { addPreEditListener, addPreSendListener, removePreEditListener, removePreSendListener } from "../api/MessageEvents";
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import { ApngDisposeOp, getGifEncoder, importApngJs } from "../utils/dependencies";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
-import { filters } from "../webpack";
-import { ChannelStore, UserStore } from "../webpack/common";
+import { addPreEditListener, addPreSendListener, removePreEditListener, removePreSendListener } from "@api/MessageEvents";
+import { migratePluginSettings, Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import { ApngDisposeOp, getGifEncoder, importApngJs } from "@utils/dependencies";
+import definePlugin, { OptionType } from "@utils/types";
+import { findByCodeLazy, findByPropsLazy } from "@webpack";
+import { ChannelStore, UserStore } from "@webpack/common";
const DRAFT_TYPE = 0;
-const promptToUpload = lazyWebpack(filters.byCode("UPLOAD_FILE_LIMIT_ERROR"));
+const promptToUpload = findByCodeLazy("UPLOAD_FILE_LIMIT_ERROR");
interface BaseSticker {
available: boolean;
@@ -225,8 +223,8 @@ export default definePlugin({
return;
}
- const EmojiStore = lazyWebpack(filters.byProps("getCustomEmojiById"));
- const StickerStore = lazyWebpack(filters.byProps("getAllGuildStickers")) as {
+ const EmojiStore = findByPropsLazy("getCustomEmojiById");
+ const StickerStore = findByPropsLazy("getAllGuildStickers") as {
getPremiumPacks(): StickerPack[];
getAllGuildStickers(): Map<string, Sticker[]>;
getStickerById(id: string): Sticker | undefined;
diff --git a/src/plugins/fart.ts b/src/plugins/fart.ts
index 88e95af..9404b39 100644
--- a/src/plugins/fart.ts
+++ b/src/plugins/fart.ts
@@ -16,11 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { ApplicationCommandOptionType } from "../api/Commands";
-import { makeRange } from "../components/PluginSettings/components";
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
+import { ApplicationCommandOptionType } from "@api/Commands";
+import { Settings } from "@api/settings";
+import { makeRange } from "@components/PluginSettings/components";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
export default definePlugin({
name: "Fart2",
diff --git a/src/plugins/forceOwnerCrown.ts b/src/plugins/forceOwnerCrown.ts
index a26e6e2..9345ea7 100644
--- a/src/plugins/forceOwnerCrown.ts
+++ b/src/plugins/forceOwnerCrown.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
-import { waitFor } from "../webpack";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { waitFor } from "@webpack";
let GuildStore;
waitFor(["getGuild"], m => GuildStore = m);
diff --git a/src/plugins/friendInvites.ts b/src/plugins/friendInvites.ts
index 24ca50a..73dffd1 100644
--- a/src/plugins/friendInvites.ts
+++ b/src/plugins/friendInvites.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { ApplicationCommandInputType, sendBotMessage } from "../api/Commands";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
-import { findByProps } from "../webpack";
+import { ApplicationCommandInputType, sendBotMessage } from "@api/Commands";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { findByProps } from "@webpack";
export default definePlugin({
name: "FriendInvites",
diff --git a/src/plugins/fxTwitter.ts b/src/plugins/fxTwitter.ts
index 4bb00d9..efe1ebc 100644
--- a/src/plugins/fxTwitter.ts
+++ b/src/plugins/fxTwitter.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { addPreSendListener, MessageObject, removePreSendListener } from "../api/MessageEvents";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { addPreSendListener, MessageObject, removePreSendListener } from "@api/MessageEvents";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
const re = /https?:\/\/twitter\.com(?=\/\w+?\/status\/)/g;
diff --git a/src/plugins/iLoveSpam.ts b/src/plugins/iLoveSpam.ts
index 7f390f3..79b2e3f 100644
--- a/src/plugins/iLoveSpam.ts
+++ b/src/plugins/iLoveSpam.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "iLoveSpam",
diff --git a/src/plugins/ignoreActivities.ts b/src/plugins/ignoreActivities.ts
index d33d5cc..a39b026 100644
--- a/src/plugins/ignoreActivities.ts
+++ b/src/plugins/ignoreActivities.ts
@@ -16,11 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { DataStore } from "../api";
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin from "../utils/types";
-import { filters } from "../webpack";
+import * as DataStore from "@api/DataStore";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { findByPropsLazy } from "@webpack";
interface MatchAndReplace {
match: RegExp;
@@ -28,7 +27,7 @@ interface MatchAndReplace {
}
/** Used to re-render the Registered Games tab to update how our button looks like */
-const RunningGameStoreModule = lazyWebpack(filters.byProps("IgnoreActivities_reRenderGames"));
+const RunningGameStoreModule = findByPropsLazy("IgnoreActivities_reRenderGames");
let ignoredActivitiesCache: string[] = [];
diff --git a/src/plugins/index.ts b/src/plugins/index.ts
index 68a76cb..c0325d4 100644
--- a/src/plugins/index.ts
+++ b/src/plugins/index.ts
@@ -16,13 +16,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { registerCommand, unregisterCommand } from "@api/Commands";
+import { Settings } from "@api/settings";
+import Logger from "@utils/Logger";
+import { Patch, Plugin } from "@utils/types";
+
import Plugins from "~plugins";
-import { registerCommand, unregisterCommand } from "../api/Commands";
-import { Settings } from "../api/settings";
import { traceFunction } from "../debug/Tracer";
-import Logger from "../utils/Logger";
-import { Patch, Plugin } from "../utils/types";
const logger = new Logger("PluginManager", "#a6d189");
diff --git a/src/plugins/keepCurrentChannel.ts b/src/plugins/keepCurrentChannel.ts
index 395fd76..0d7147c 100644
--- a/src/plugins/keepCurrentChannel.ts
+++ b/src/plugins/keepCurrentChannel.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { DataStore } from "../api";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
-import { ChannelStore, FluxDispatcher, NavigationRouter, SelectedChannelStore, SelectedGuildStore } from "../webpack/common";
+import * as DataStore from "@api/DataStore";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { ChannelStore, FluxDispatcher, NavigationRouter, SelectedChannelStore, SelectedGuildStore } from "@webpack/common";
export interface LogoutEvent {
type: "LOGOUT";
diff --git a/src/plugins/lastfm.tsx b/src/plugins/lastfm.tsx
index 280c0ee..bf3f63c 100644
--- a/src/plugins/lastfm.tsx
+++ b/src/plugins/lastfm.tsx
@@ -16,43 +16,43 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Link } from "../components/Link";
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings, Webpack } from "../Vencord";
-import { FluxDispatcher, Forms } from "../webpack/common";
+import { Settings } from "@api/settings";
+import { Link } from "@components/Link";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+import { filters, findByPropsLazy, mapMangledModuleLazy } from "@webpack";
+import { FluxDispatcher, Forms } from "@webpack/common";
interface ActivityAssets {
- large_image?: string
- large_text?: string
- small_image?: string
- small_text?: string
+ large_image?: string;
+ large_text?: string;
+ small_image?: string;
+ small_text?: string;
}
interface Activity {
- state: string
- details?: string
+ state: string;
+ details?: string;
timestamps?: {
- start?: Number
- }
- assets?: ActivityAssets
- buttons?: Array<string>
- name: string
- application_id: string
+ start?: Number;
+ };
+ assets?: ActivityAssets;
+ buttons?: Array<string>;
+ name: string;
+ application_id: string;
metadata?: {
- button_urls?: Array<string>
- }
- type: Number
- flags: Number
+ button_urls?: Array<string>;
+ };
+ type: Number;
+ flags: Number;
}
interface TrackData {
- name: string
- album: string
- artist: string
- url: string
- imageUrl?: string
+ name: string;
+ album: string;
+ artist: string;
+ url: string;
+ imageUrl?: string;
}
// only relevant enum values
@@ -67,11 +67,11 @@ enum ActivityFlag {
const applicationId = "1043533871037284423";
-const presenceStore = lazyWebpack(Webpack.filters.byProps("getLocalPresence"));
-const assetManager = Webpack.mapMangledModuleLazy(
+const presenceStore = findByPropsLazy("getLocalPresence");
+const assetManager = mapMangledModuleLazy(
"getAssetImage: size must === [number, number] for Twitch",
{
- getAsset: Webpack.filters.byCode("apply("),
+ getAsset: filters.byCode("apply("),
}
);
@@ -196,9 +196,9 @@ export default definePlugin({
state: hideAlbumName ? trackData.artist : `${trackData.artist} - ${trackData.album}`,
assets,
- buttons: [ "Open in Last.fm" ],
+ buttons: ["Open in Last.fm"],
metadata: {
- button_urls: [ trackData.url ]
+ button_urls: [trackData.url]
},
type: this.settings.useListeningStatus ? ActivityType.LISTENING : ActivityType.PLAYING,
diff --git a/src/plugins/loadingQuotes.ts b/src/plugins/loadingQuotes.ts
index 7ee55d8..052bfe6 100644
--- a/src/plugins/loadingQuotes.ts
+++ b/src/plugins/loadingQuotes.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
// These are Xor encrypted to prevent you from spoiling yourself when you read the source code.
// don't worry about it :P
diff --git a/src/plugins/messageActions.ts b/src/plugins/messageActions.ts
index 05d792f..df4d016 100644
--- a/src/plugins/messageActions.ts
+++ b/src/plugins/messageActions.ts
@@ -16,13 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { addClickListener, removeClickListener } from "../api/MessageEvents";
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin from "../utils/types";
-import { filters } from "../webpack";
-import { UserStore } from "../webpack/common";
+import { addClickListener, removeClickListener } from "@api/MessageEvents";
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { findByPropsLazy, findLazy } from "@webpack";
+import { UserStore } from "@webpack/common";
let isDeletePressed = false;
const keydown = (e: KeyboardEvent) => e.key === "Backspace" && (isDeletePressed = true);
@@ -37,10 +36,10 @@ export default definePlugin({
dependencies: ["MessageEventsAPI"],
start() {
- const MessageActions = lazyWebpack(filters.byProps("deleteMessage", "startEditMessage"));
- const PermissionStore = lazyWebpack(filters.byProps("can", "initialize"));
- const Permissions = lazyWebpack(m => typeof m.MANAGE_MESSAGES === "bigint");
- const EditStore = lazyWebpack(filters.byProps("isEditing", "isEditingAny"));
+ const MessageActions = findByPropsLazy("deleteMessage", "startEditMessage");
+ const PermissionStore = findByPropsLazy("can", "initialize");
+ const Permissions = findLazy(m => typeof m.MANAGE_MESSAGES === "bigint");
+ const EditStore = findByPropsLazy("isEditing", "isEditingAny");
document.addEventListener("keydown", keydown);
document.addEventListener("keyup", keyup);
diff --git a/src/plugins/messageLogger/index.tsx b/src/plugins/messageLogger/index.tsx
index 7b6bf56..5a1ac92 100644
--- a/src/plugins/messageLogger/index.tsx
+++ b/src/plugins/messageLogger/index.tsx
@@ -16,14 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Settings } from "../../api/settings";
-import ErrorBoundary from "../../components/ErrorBoundary";
-import { Devs } from "../../utils/constants";
-import Logger from "../../utils/Logger";
-import { lazyWebpack } from "../../utils/misc";
-import definePlugin, { OptionType } from "../../utils/types";
-import { filters } from "../../webpack";
-import { Parser, UserStore } from "../../webpack/common";
+import { Settings } from "@api/settings";
+import ErrorBoundary from "@components/ErrorBoundary";
+import { Devs } from "@utils/constants";
+import Logger from "@utils/Logger";
+import definePlugin, { OptionType } from "@utils/types";
+import { findByPropsLazy } from "@webpack";
+import { Parser, UserStore } from "@webpack/common";
function addDeleteStyleClass() {
if (Settings.plugins.MessageLogger.deleteStyle === "text") {
@@ -74,8 +73,8 @@ export default definePlugin({
`,
start() {
- this.moment = lazyWebpack(filters.byProps("relativeTimeRounding", "relativeTimeThreshold"));
- this.timestampModule = lazyWebpack(filters.byProps("messageLogger_TimestampComponent"));
+ this.moment = findByPropsLazy("relativeTimeRounding", "relativeTimeThreshold");
+ this.timestampModule = findByPropsLazy("messageLogger_TimestampComponent");
const style = this.style = document.createElement("style");
style.textContent = this.css;
diff --git a/src/plugins/messageTags.ts b/src/plugins/messageTags.ts
index bf01cad..490edc3 100644
--- a/src/plugins/messageTags.ts
+++ b/src/plugins/messageTags.ts
@@ -16,11 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { DataStore } from "../api";
-import { ApplicationCommandInputType, ApplicationCommandOptionType, findOption, registerCommand, sendBotMessage, unregisterCommand } from "../api/Commands";
-import { Settings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
+import { ApplicationCommandInputType, ApplicationCommandOptionType, findOption, registerCommand, sendBotMessage, unregisterCommand } from "@api/Commands";
+import * as DataStore from "@api/DataStore";
+import { Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
const EMOTE = "<:luna:1035316192220553236>";
const DATA_KEY = "MessageTags_TAGS";
diff --git a/src/plugins/moreCommands.ts b/src/plugins/moreCommands.ts
index 0a23aaf..61312ac 100644
--- a/src/plugins/moreCommands.ts
+++ b/src/plugins/moreCommands.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { ApplicationCommandInputType, findOption, OptionalMessageOption, RequiredMessageOption, sendBotMessage } from "../api/Commands";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { ApplicationCommandInputType, findOption, OptionalMessageOption, RequiredMessageOption, sendBotMessage } from "@api/Commands";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
function mock(input: string): string {
diff --git a/src/plugins/moreKaomoji.ts b/src/plugins/moreKaomoji.ts
index ef6dc0f..a5e40d2 100644
--- a/src/plugins/moreKaomoji.ts
+++ b/src/plugins/moreKaomoji.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { findOption, OptionalMessageOption } from "../api/Commands";
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { findOption, OptionalMessageOption } from "@api/Commands";
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
migratePluginSettings("MoreKaomoji", "moarKaomojis");
export default definePlugin({
diff --git a/src/plugins/moyai.ts b/src/plugins/moyai.ts
index 5427fed..fabc97f 100644
--- a/src/plugins/moyai.ts
+++ b/src/plugins/moyai.ts
@@ -16,15 +16,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { Settings } from "@api/settings";
+import { makeRange } from "@components/PluginSettings/components/SettingSliderComponent";
+import { Devs } from "@utils/constants";
+import { sleep } from "@utils/misc";
+import definePlugin, { OptionType } from "@utils/types";
+import { FluxDispatcher, SelectedChannelStore, UserStore } from "@webpack/common";
import { Message, ReactionEmoji } from "discord-types/general";
-import { makeRange } from "../components/PluginSettings/components/SettingSliderComponent";
-import { Devs } from "../utils/constants";
-import { sleep } from "../utils/misc";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
-import { FluxDispatcher, SelectedChannelStore, UserStore } from "../webpack/common";
-
interface IMessageCreate {
type: "MESSAGE_CREATE";
optimistic: boolean;
diff --git a/src/plugins/muteNewGuild.ts b/src/plugins/muteNewGuild.ts
index e4ca1d5..12b9b60 100644
--- a/src/plugins/muteNewGuild.ts
+++ b/src/plugins/muteNewGuild.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "MuteNewGuild",
diff --git a/src/plugins/noBlockedMessages.ts b/src/plugins/noBlockedMessages.ts
index e46e7c3..bd72ce5 100644
--- a/src/plugins/noBlockedMessages.ts
+++ b/src/plugins/noBlockedMessages.ts
@@ -16,12 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
-import { filters } from "../webpack";
-const RelationshipStore = lazyWebpack(filters.byProps("getRelationships", "isBlocked"));
+import { Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+import { findByPropsLazy } from "@webpack";
+
+const RelationshipStore = findByPropsLazy("getRelationships", "isBlocked");
export default definePlugin({
name: "NoBlockedMessages",
diff --git a/src/plugins/noCanaryMessageLinks.ts b/src/plugins/noCanaryMessageLinks.ts
index 67c9176..ebd6782 100644
--- a/src/plugins/noCanaryMessageLinks.ts
+++ b/src/plugins/noCanaryMessageLinks.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { addPreSendListener, MessageObject, removePreSendListener } from "../api/MessageEvents";
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
+import { addPreSendListener, MessageObject, removePreSendListener } from "@api/MessageEvents";
+import { Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
export default definePlugin({
name: "NoCanaryMessageLinks",
diff --git a/src/plugins/noDevtoolsWarning.ts b/src/plugins/noDevtoolsWarning.ts
index 2ceb0c3..8980ed8 100644
--- a/src/plugins/noDevtoolsWarning.ts
+++ b/src/plugins/noDevtoolsWarning.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
migratePluginSettings("NoDevtoolsWarning", "STFU");
diff --git a/src/plugins/noF1.ts b/src/plugins/noF1.ts
index 22e351a..5c23b73 100644
--- a/src/plugins/noF1.ts
+++ b/src/plugins/noF1.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "No F1",
diff --git a/src/plugins/noRPC.ts b/src/plugins/noRPC.ts
index ca82c2b..e56c7af 100644
--- a/src/plugins/noRPC.ts
+++ b/src/plugins/noRPC.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "No RPC",
diff --git a/src/plugins/noReplyMention.ts b/src/plugins/noReplyMention.ts
index 2e5e969..620274c 100644
--- a/src/plugins/noReplyMention.ts
+++ b/src/plugins/noReplyMention.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "NoReplyMention",
diff --git a/src/plugins/noSystemBadge.ts b/src/plugins/noSystemBadge.ts
index 2571be5..e487a97 100644
--- a/src/plugins/noSystemBadge.ts
+++ b/src/plugins/noSystemBadge.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "NoSystemBadge",
diff --git a/src/plugins/noTrack.ts b/src/plugins/noTrack.ts
index a86e0af..27ff430 100644
--- a/src/plugins/noTrack.ts
+++ b/src/plugins/noTrack.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "NoTrack",
diff --git a/src/plugins/noUnblockToJump.ts b/src/plugins/noUnblockToJump.ts
index e0194ca..15f602b 100644
--- a/src/plugins/noUnblockToJump.ts
+++ b/src/plugins/noUnblockToJump.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
diff --git a/src/plugins/oneko.ts b/src/plugins/oneko.ts
index 67db2d7..ef2f5d6 100644
--- a/src/plugins/oneko.ts
+++ b/src/plugins/oneko.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "oneko",
diff --git a/src/plugins/petpet.ts b/src/plugins/petpet.ts
index 7a794fd..a8281d0 100644
--- a/src/plugins/petpet.ts
+++ b/src/plugins/petpet.ts
@@ -16,12 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { ApplicationCommandInputType, ApplicationCommandOptionType, Argument, CommandContext, findOption, sendBotMessage } from "../api/Commands";
-import { Devs } from "../utils/constants";
-import { getGifEncoder } from "../utils/dependencies";
-import { lazyWebpack, makeLazy } from "../utils/misc";
-import definePlugin from "../utils/types";
-import { filters } from "../webpack";
+import { ApplicationCommandInputType, ApplicationCommandOptionType, Argument, CommandContext, findOption, sendBotMessage } from "@api/Commands";
+import { Devs } from "@utils/constants";
+import { getGifEncoder } from "@utils/dependencies";
+import { makeLazy } from "@utils/misc";
+import definePlugin from "@utils/types";
+import { findByCodeLazy, findByPropsLazy } from "@webpack";
const DRAFT_TYPE = 0;
const DEFAULT_DELAY = 20;
@@ -35,9 +35,9 @@ const getFrames = makeLazy(() => Promise.all(
))
);
-const fetchUser = lazyWebpack(filters.byCode(".USER("));
-const promptToUpload = lazyWebpack(filters.byCode("UPLOAD_FILE_LIMIT_ERROR"));
-const UploadStore = lazyWebpack(filters.byProps("getUploads"));
+const fetchUser = findByCodeLazy(".USER(");
+const promptToUpload = findByCodeLazy("UPLOAD_FILE_LIMIT_ERROR");
+const UploadStore = findByPropsLazy("getUploads");
function loadImage(source: File | string) {
const isFile = source instanceof File;
diff --git a/src/plugins/plainFolderIcon.ts b/src/plugins/plainFolderIcon.ts
index 35f903f..5c01ea9 100644
--- a/src/plugins/plainFolderIcon.ts
+++ b/src/plugins/plainFolderIcon.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "PlainFolderIcon",
diff --git a/src/plugins/platformIndicators.tsx b/src/plugins/platformIndicators.tsx
index 1c9bbf1..5cae38f 100644
--- a/src/plugins/platformIndicators.tsx
+++ b/src/plugins/platformIndicators.tsx
@@ -16,16 +16,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { Settings } from "@api/settings";
+import ErrorBoundary from "@components/ErrorBoundary";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+import { findByCodeLazy } from "@webpack";
+import { PresenceStore, Tooltip } from "@webpack/common";
import { User } from "discord-types/general";
-import { Settings } from "../api/settings";
-import ErrorBoundary from "../components/ErrorBoundary";
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin, { OptionType } from "../utils/types";
-import { filters } from "../webpack";
-import { PresenceStore, Tooltip } from "../webpack/common";
-
function Icon(path: string, viewBox = "0 0 24 24") {
return ({ color, tooltip }: { color: string; tooltip: string; }) => (
<Tooltip text={tooltip} >
@@ -52,7 +50,7 @@ const Icons = {
};
type Platform = keyof typeof Icons;
-const getStatusColor = lazyWebpack(filters.byCode("STATUS_YELLOW", "TWITCH", "STATUS_GREY"));
+const getStatusColor = findByCodeLazy("STATUS_YELLOW", "TWITCH", "STATUS_GREY");
const PlatformIcon = ({ platform, status }: { platform: Platform, status: string; }) => {
const tooltip = platform[0].toUpperCase() + platform.slice(1);
diff --git a/src/plugins/pronoundb/components/PronounsAboutComponent.tsx b/src/plugins/pronoundb/components/PronounsAboutComponent.tsx
index 3f288d5..255c6d3 100644
--- a/src/plugins/pronoundb/components/PronounsAboutComponent.tsx
+++ b/src/plugins/pronoundb/components/PronounsAboutComponent.tsx
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Link } from "../../../components/Link";
-import { Forms, React } from "../../../webpack/common";
+import { Link } from "@components/Link";
+import { Forms, React } from "@webpack/common";
export default function PronounsAboutComponent() {
return (
diff --git a/src/plugins/pronoundb/components/PronounsChatComponent.tsx b/src/plugins/pronoundb/components/PronounsChatComponent.tsx
index 57033cc..9225fc5 100644
--- a/src/plugins/pronoundb/components/PronounsChatComponent.tsx
+++ b/src/plugins/pronoundb/components/PronounsChatComponent.tsx
@@ -16,16 +16,16 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { Settings } from "@api/settings";
+import { classes, useAwaiter } from "@utils/misc";
+import { findByPropsLazy } from "@webpack";
+import { UserStore } from "@webpack/common";
import { Message } from "discord-types/general";
-import { classes, lazyWebpack, useAwaiter } from "../../../utils/misc";
-import { Settings } from "../../../Vencord";
-import { filters } from "../../../webpack";
-import { UserStore } from "../../../webpack/common";
import { fetchPronouns, formatPronouns } from "../pronoundbUtils";
import { PronounMapping } from "../types";
-const styles: Record<string, string> = lazyWebpack(filters.byProps("timestampInline"));
+const styles: Record<string, string> = findByPropsLazy("timestampInline");
export default function PronounsChatComponentWrapper({ message }: { message: Message; }) {
// Don't bother fetching bot or system users
diff --git a/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx b/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx
index b39f4ed..9540bb9 100644
--- a/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx
+++ b/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx
@@ -16,9 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { useAwaiter } from "../../../utils/misc";
-import { Settings } from "../../../Vencord";
-import { UserStore } from "../../../webpack/common";
+import { Settings } from "@api/settings";
+import { useAwaiter } from "@utils/misc";
+import { UserStore } from "@webpack/common";
+
import { fetchPronouns, formatPronouns } from "../pronoundbUtils";
import { PronounMapping, UserProfilePronounsProps, UserProfileProps } from "../types";
diff --git a/src/plugins/pronoundb/index.ts b/src/plugins/pronoundb/index.ts
index 39637e2..49b25f7 100644
--- a/src/plugins/pronoundb/index.ts
+++ b/src/plugins/pronoundb/index.ts
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../../utils/constants";
-import definePlugin, { OptionType } from "../../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+
import PronounsAboutComponent from "./components/PronounsAboutComponent";
import PronounsChatComponent from "./components/PronounsChatComponent";
import PronounsProfileWrapper from "./components/PronounsProfileWrapper";
diff --git a/src/plugins/pronoundb/pronoundbUtils.ts b/src/plugins/pronoundb/pronoundbUtils.ts
index 73ec7b6..afeea95 100644
--- a/src/plugins/pronoundb/pronoundbUtils.ts
+++ b/src/plugins/pronoundb/pronoundbUtils.ts
@@ -16,9 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { VENCORD_USER_AGENT } from "../../utils/constants";
-import { debounce } from "../../utils/debounce";
-import { Settings } from "../../Vencord";
+import { Settings } from "@api/settings";
+import { VENCORD_USER_AGENT } from "@utils/constants";
+import { debounce } from "@utils/debounce";
+
import { PronounsFormat } from ".";
import { PronounCode, PronounMapping, PronounsResponse } from "./types";
diff --git a/src/plugins/quickMention.tsx b/src/plugins/quickMention.tsx
index 0f8410b..1c0a6c6 100644
--- a/src/plugins/quickMention.tsx
+++ b/src/plugins/quickMention.tsx
@@ -16,11 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { findLazy } from "@webpack";
-const ComponentDispatch = lazyWebpack(m => m.emitter?._events?.INSERT_TEXT);
+const ComponentDispatch = findLazy(m => m.emitter?._events?.INSERT_TEXT);
export default definePlugin({
name: "QuickMention",
diff --git a/src/plugins/quickReply.ts b/src/plugins/quickReply.ts
index 2903b39..a499ea4 100644
--- a/src/plugins/quickReply.ts
+++ b/src/plugins/quickReply.ts
@@ -16,16 +16,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { findByPropsLazy } from "@webpack";
+import { ChannelStore, FluxDispatcher as Dispatcher, MessageStore, SelectedChannelStore, UserStore } from "@webpack/common";
import { Message } from "discord-types/general";
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin from "../utils/types";
-import { filters } from "../webpack";
-import { ChannelStore, FluxDispatcher as Dispatcher, MessageStore, SelectedChannelStore, UserStore } from "../webpack/common";
-
-const Kangaroo = lazyWebpack(filters.byProps("jumpToMessage"));
+const Kangaroo = findByPropsLazy("jumpToMessage");
const isMac = navigator.platform.includes("Mac"); // bruh
let replyIdx = -1;
diff --git a/src/plugins/readAllNotificationsButton.tsx b/src/plugins/readAllNotificationsButton.tsx
index 615702b..ee6ecde 100644
--- a/src/plugins/readAllNotificationsButton.tsx
+++ b/src/plugins/readAllNotificationsButton.tsx
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { addServerListElement, removeServerListElement, ServerListRenderPosition } from "../api/ServerList";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
-import { Button, FluxDispatcher, GuildChannelStore, GuildStore, React, ReadStateStore } from "../webpack/common";
+import { addServerListElement, removeServerListElement, ServerListRenderPosition } from "@api/ServerList";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { Button, FluxDispatcher, GuildChannelStore, GuildStore, React, ReadStateStore } from "@webpack/common";
function onClick() {
const channels: Array<any> = [];
diff --git a/src/plugins/reverseImageSearch.tsx b/src/plugins/reverseImageSearch.tsx
index 804ac04..26e1003 100644
--- a/src/plugins/reverseImageSearch.tsx
+++ b/src/plugins/reverseImageSearch.tsx
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
-import { Menu } from "../webpack/common";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { Menu } from "@webpack/common";
const Engines = {
Google: "https://www.google.com/searchbyimage?image_url=",
diff --git a/src/plugins/reviewDB/Utils/ReviewDBAPI.ts b/src/plugins/reviewDB/Utils/ReviewDBAPI.ts
index 71e6e81..a4c8dbf 100644
--- a/src/plugins/reviewDB/Utils/ReviewDBAPI.ts
+++ b/src/plugins/reviewDB/Utils/ReviewDBAPI.ts
@@ -16,7 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Settings } from "../../../Vencord";
+import { Settings } from "@api/settings";
+
import { Review } from "../entities/Review";
import { authorize, showToast } from "./Utils";
diff --git a/src/plugins/reviewDB/Utils/Utils.tsx b/src/plugins/reviewDB/Utils/Utils.tsx
index 1093c95..79d768c 100644
--- a/src/plugins/reviewDB/Utils/Utils.tsx
+++ b/src/plugins/reviewDB/Utils/Utils.tsx
@@ -16,12 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../../../utils/constants";
-import Logger from "../../../utils/Logger";
-import { openModal } from "../../../utils/modal";
-import { Settings } from "../../../Vencord";
-import { findByProps } from "../../../webpack";
-import { FluxDispatcher, React, SelectedChannelStore, Toasts, UserUtils } from "../../../webpack/common";
+import { Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import Logger from "@utils/Logger";
+import { openModal } from "@utils/modal";
+import { findByProps } from "@webpack";
+import { FluxDispatcher, React, SelectedChannelStore, Toasts, UserUtils } from "@webpack/common";
+
import { Review } from "../entities/Review";
export async function openUserProfileModal(userId: string) {
diff --git a/src/plugins/reviewDB/components/MessageButton.tsx b/src/plugins/reviewDB/components/MessageButton.tsx
index 7d16630..c334ddd 100644
--- a/src/plugins/reviewDB/components/MessageButton.tsx
+++ b/src/plugins/reviewDB/components/MessageButton.tsx
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { classes, LazyComponent } from "../../../utils/misc";
-import { findByProps } from "../../../webpack";
+import { classes, LazyComponent } from "@utils/misc";
+import { findByProps } from "@webpack";
export default LazyComponent(() => {
const { button, dangerous } = findByProps("button", "wrapper", "disabled");
diff --git a/src/plugins/reviewDB/components/ReviewComponent.tsx b/src/plugins/reviewDB/components/ReviewComponent.tsx
index ecd12da..8808ccd 100644
--- a/src/plugins/reviewDB/components/ReviewComponent.tsx
+++ b/src/plugins/reviewDB/components/ReviewComponent.tsx
@@ -16,9 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { classes, LazyComponent } from "../../../utils/misc";
-import { filters, findBulk } from "../../../webpack";
-import { Alerts, UserStore } from "../../../webpack/common";
+import { classes, LazyComponent } from "@utils/misc";
+import { filters, findBulk } from "@webpack";
+import { Alerts, UserStore } from "@webpack/common";
+
import { Review } from "../entities/Review";
import { deleteReview, reportReview } from "../Utils/ReviewDBAPI";
import { canDeleteReview, openUserProfileModal, showToast } from "../Utils/Utils";
diff --git a/src/plugins/reviewDB/components/ReviewsView.tsx b/src/plugins/reviewDB/components/ReviewsView.tsx
index 363b624..999b970 100644
--- a/src/plugins/reviewDB/components/ReviewsView.tsx
+++ b/src/plugins/reviewDB/components/ReviewsView.tsx
@@ -16,14 +16,15 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { classes, useAwaiter } from "@utils/misc";
+import { findLazy } from "@webpack";
+import { Forms, Text, UserStore } from "@webpack/common";
import type { KeyboardEvent } from "react";
-import { classes, lazyWebpack, useAwaiter } from "../../../utils/misc";
-import { Forms, Text, UserStore } from "../../../webpack/common";
import { addReview, getReviews } from "../Utils/ReviewDBAPI";
import ReviewComponent from "./ReviewComponent";
-const Classes = lazyWebpack(m => typeof m.textarea === "string");
+const Classes = findLazy(m => typeof m.textarea === "string");
export default function ReviewsView({ userId }: { userId: string; }) {
const [reviews, _, isLoading, refetch] = useAwaiter(() => getReviews(userId), []);
diff --git a/src/plugins/reviewDB/index.tsx b/src/plugins/reviewDB/index.tsx
index 0349ea9..744c2d6 100644
--- a/src/plugins/reviewDB/index.tsx
+++ b/src/plugins/reviewDB/index.tsx
@@ -16,13 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { Settings } from "@api/settings";
+import ErrorBoundary from "@components/ErrorBoundary";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+import { Button, UserStore } from "@webpack/common";
import { User } from "discord-types/general";
-import ErrorBoundary from "../../components/ErrorBoundary";
-import { Devs } from "../../utils/constants";
-import definePlugin, { OptionType } from "../../utils/types";
-import { Settings } from "../../Vencord";
-import { Button, UserStore } from "../../webpack/common";
import ReviewsView from "./components/ReviewsView";
import { getLastReviewID } from "./Utils/ReviewDBAPI";
import { authorize, showToast } from "./Utils/Utils";
diff --git a/src/plugins/settings.tsx b/src/plugins/settings.tsx
index 2777572..975c399 100644
--- a/src/plugins/settings.tsx
+++ b/src/plugins/settings.tsx
@@ -16,11 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import gitHash from "~git-hash";
+import { Devs } from "@utils/constants";
+import { LazyComponent } from "@utils/misc";
+import definePlugin from "@utils/types";
-import { Devs } from "../utils/constants";
-import { LazyComponent } from "../utils/misc";
-import definePlugin from "../utils/types";
+import gitHash from "~git-hash";
const SettingsComponent = LazyComponent(() => require("../components/VencordSettings").default);
diff --git a/src/plugins/showHiddenChannels.tsx b/src/plugins/showHiddenChannels.tsx
index 8dc92bf..70b8406 100644
--- a/src/plugins/showHiddenChannels.tsx
+++ b/src/plugins/showHiddenChannels.tsx
@@ -17,13 +17,13 @@
*/
-import { Flex } from "../components/Flex";
-import { Devs } from "../utils/constants";
-import { ModalContent, ModalFooter, ModalHeader, ModalRoot, ModalSize, openModal } from "../utils/modal";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
-import { waitFor } from "../webpack";
-import { Button, ChannelStore, Text } from "../webpack/common";
+import { Settings } from "@api/settings";
+import { Flex } from "@components/Flex";
+import { Devs } from "@utils/constants";
+import { ModalContent, ModalFooter, ModalHeader, ModalRoot, ModalSize, openModal } from "@utils/modal";
+import definePlugin, { OptionType } from "@utils/types";
+import { waitFor } from "@webpack";
+import { Button, ChannelStore, Text } from "@webpack/common";
const CONNECT = 1048576n;
const VIEW_CHANNEL = 1024n;
diff --git a/src/plugins/silentTyping.ts b/src/plugins/silentTyping.ts
index 1f79125..8680a86 100644
--- a/src/plugins/silentTyping.ts
+++ b/src/plugins/silentTyping.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "SilentTyping",
diff --git a/src/plugins/spotifyControls/PlayerComponent.tsx b/src/plugins/spotifyControls/PlayerComponent.tsx
index 6396e02..24394c6 100644
--- a/src/plugins/spotifyControls/PlayerComponent.tsx
+++ b/src/plugins/spotifyControls/PlayerComponent.tsx
@@ -16,13 +16,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import ErrorBoundary from "../../components/ErrorBoundary";
-import { Flex } from "../../components/Flex";
-import { Link } from "../../components/Link";
-import { debounce } from "../../utils/debounce";
-import { classes, LazyComponent, lazyWebpack } from "../../utils/misc";
-import { ContextMenu, FluxDispatcher, Forms, Menu, React } from "../../webpack/common";
-import { filters, find } from "../../webpack/webpack";
+import ErrorBoundary from "@components/ErrorBoundary";
+import { Flex } from "@components/Flex";
+import { Link } from "@components/Link";
+import { debounce } from "@utils/debounce";
+import { classes, LazyComponent } from "@utils/misc";
+import { filters, find, findByCodeLazy } from "@webpack";
+import { ContextMenu, FluxDispatcher, Forms, Menu, React } from "@webpack/common";
+
import { SpotifyStore, Track } from "./SpotifyStore";
const cl = (className: string) => `vc-spotify-${className}`;
@@ -40,7 +41,7 @@ const useStateFromStores: <T>(
idk?: null,
compare?: (old: T, newer: T) => boolean
) => T
- = lazyWebpack(filters.byCode("useStateFromStores"));
+ = findByCodeLazy("useStateFromStores");
function Svg(path: string, label: string) {
return () => (
diff --git a/src/plugins/spotifyControls/SpotifyStore.ts b/src/plugins/spotifyControls/SpotifyStore.ts
index 14f2331..75448dc 100644
--- a/src/plugins/spotifyControls/SpotifyStore.ts
+++ b/src/plugins/spotifyControls/SpotifyStore.ts
@@ -16,13 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import cssText from "~fileContent/spotifyStyles.css";
+import IpcEvents from "@utils/IpcEvents";
+import { proxyLazy } from "@utils/proxyLazy";
+import { findByPropsLazy } from "@webpack";
+import { Flux, FluxDispatcher } from "@webpack/common";
-import IpcEvents from "../../utils/IpcEvents";
-import { lazyWebpack } from "../../utils/misc";
-import { proxyLazy } from "../../utils/proxyLazy";
-import { filters } from "../../webpack";
-import { Flux, FluxDispatcher } from "../../webpack/common";
+import cssText from "~fileContent/spotifyStyles.css";
export interface Track {
id: string;
@@ -78,8 +77,8 @@ export const SpotifyStore = proxyLazy(() => {
// For some reason ts hates extends Flux.Store
const { Store } = Flux;
- const SpotifySocket = lazyWebpack(filters.byProps("getActiveSocketAndDevice"));
- const SpotifyAPI = lazyWebpack(filters.byProps("SpotifyAPIMarker"));
+ const SpotifySocket = findByPropsLazy("getActiveSocketAndDevice");
+ const SpotifyAPI = findByPropsLazy("SpotifyAPIMarker");
const API_BASE = "https://api.spotify.com/v1/me/player";
diff --git a/src/plugins/spotifyControls/index.tsx b/src/plugins/spotifyControls/index.tsx
index 14c7a93..7ab1e37 100644
--- a/src/plugins/spotifyControls/index.tsx
+++ b/src/plugins/spotifyControls/index.tsx
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../../utils/constants";
-import definePlugin from "../../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+
import { Player } from "./PlayerComponent";
export default definePlugin({
diff --git a/src/plugins/spotifyCrack.ts b/src/plugins/spotifyCrack.ts
index b9f68ed..c64154a 100644
--- a/src/plugins/spotifyCrack.ts
+++ b/src/plugins/spotifyCrack.ts
@@ -16,10 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
-import { Settings } from "../Vencord";
+import { migratePluginSettings, Settings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
migratePluginSettings("SpotifyCrack", "Ify");
export default definePlugin({
diff --git a/src/plugins/spotifyShareCommands.ts b/src/plugins/spotifyShareCommands.ts
index e5b247b..ce29b75 100644
--- a/src/plugins/spotifyShareCommands.ts
+++ b/src/plugins/spotifyShareCommands.ts
@@ -16,13 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { ApplicationCommandInputType, sendBotMessage } from "../api/Commands";
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import { lazyWebpack } from "../utils/misc";
-import definePlugin from "../utils/types";
-import { filters } from "../webpack";
-import { FluxDispatcher } from "../webpack/common";
+import { ApplicationCommandInputType, sendBotMessage } from "@api/Commands";
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { findByPropsLazy } from "@webpack";
+import { FluxDispatcher } from "@webpack/common";
interface Album {
id: string;
@@ -54,9 +53,9 @@ interface Track {
name: string;
}
-const Spotify = lazyWebpack(filters.byProps("getPlayerState"));
-const MessageCreator = lazyWebpack(filters.byProps("getSendMessageOptionsForReply", "sendMessage"));
-const PendingReplyStore = lazyWebpack(filters.byProps("getPendingReply"));
+const Spotify = findByPropsLazy("getPlayerState");
+const MessageCreator = findByPropsLazy("getSendMessageOptionsForReply", "sendMessage");
+const PendingReplyStore = findByPropsLazy("getPendingReply");
function sendMessage(channelId, message) {
message = {
diff --git a/src/plugins/startupTimings/StartupTimingPage.tsx b/src/plugins/startupTimings/StartupTimingPage.tsx
index f0c14ed..c8cf51d 100644
--- a/src/plugins/startupTimings/StartupTimingPage.tsx
+++ b/src/plugins/startupTimings/StartupTimingPage.tsx
@@ -16,11 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import ErrorBoundary from "../../components/ErrorBoundary";
-import { Flex } from "../../components/Flex";
-import { lazyWebpack } from "../../utils/misc";
-import { Forms, React } from "../../webpack/common";
-import { filters } from "../../webpack/webpack";
+import ErrorBoundary from "@components/ErrorBoundary";
+import { Flex } from "@components/Flex";
+import { findByPropsLazy } from "@webpack";
+import { Forms, React } from "@webpack/common";
interface AppStartPerformance {
prefix: string;
@@ -46,7 +45,7 @@ interface Log {
delta?: number;
}
-const AppStartPerformance = lazyWebpack(filters.byProps("markWithDelta", "markAndLog", "markAt")) as AppStartPerformance;
+const AppStartPerformance = findByPropsLazy("markWithDelta", "markAndLog", "markAt") as AppStartPerformance;
interface TimerItemProps extends Log {
instance: {
diff --git a/src/plugins/startupTimings/index.tsx b/src/plugins/startupTimings/index.tsx
index d5493c1..1dd7139 100644
--- a/src/plugins/startupTimings/index.tsx
+++ b/src/plugins/startupTimings/index.tsx
@@ -17,9 +17,9 @@
*/
-import { Devs } from "../../utils/constants";
-import { LazyComponent } from "../../utils/misc";
-import definePlugin from "../../utils/types";
+import { Devs } from "@utils/constants";
+import { LazyComponent } from "@utils/misc";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "StartupTimings",
diff --git a/src/plugins/unindent.ts b/src/plugins/unindent.ts
index 0206095..a197ef4 100644
--- a/src/plugins/unindent.ts
+++ b/src/plugins/unindent.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { addPreEditListener, addPreSendListener, MessageObject, removePreEditListener,removePreSendListener } from "../api/MessageEvents";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { addPreEditListener, addPreSendListener, MessageObject, removePreEditListener, removePreSendListener } from "@api/MessageEvents";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "Unindent",
diff --git a/src/plugins/unminifyErrors.ts b/src/plugins/unminifyErrors.ts
index f0ee77c..2332d45 100644
--- a/src/plugins/unminifyErrors.ts
+++ b/src/plugins/unminifyErrors.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
let ERROR_CODES: any;
const CODES_URL =
diff --git a/src/plugins/uwuify.ts b/src/plugins/uwuify.ts
index 804c741..1c7d2cb 100644
--- a/src/plugins/uwuify.ts
+++ b/src/plugins/uwuify.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { findOption, RequiredMessageOption } from "../api/Commands";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { findOption, RequiredMessageOption } from "@api/Commands";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
const endings = [
"owo", "UwU", ">w<", "^w^", "ā—wā—", "ā˜†wā˜†", "š—Øš˜„š—Ø", "(į—’į—Øį—•)", "(ā–°Ė˜vĖ˜ā–°)",
diff --git a/src/plugins/vcDoubleClick.ts b/src/plugins/vcDoubleClick.ts
index 68dc480..de573f1 100644
--- a/src/plugins/vcDoubleClick.ts
+++ b/src/plugins/vcDoubleClick.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { migratePluginSettings } from "../api/settings";
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
-import { SelectedChannelStore } from "../webpack/common";
+import { migratePluginSettings } from "@api/settings";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
+import { SelectedChannelStore } from "@webpack/common";
const timers = {} as Record<string, {
timeout?: NodeJS.Timeout;
diff --git a/src/plugins/viewIcons.tsx b/src/plugins/viewIcons.tsx
index a0d08a9..1b96527 100644
--- a/src/plugins/viewIcons.tsx
+++ b/src/plugins/viewIcons.tsx
@@ -16,19 +16,18 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { Devs } from "@utils/constants";
+import { LazyComponent } from "@utils/misc";
+import { ModalRoot, ModalSize, openModal } from "@utils/modal";
+import { PluginDef } from "@utils/types";
+import { find, findByPropsLazy } from "@webpack";
+import { Menu } from "@webpack/common";
import type { Guild } from "discord-types/general";
-import { Devs } from "../utils/constants";
-import { LazyComponent, lazyWebpack } from "../utils/misc";
-import { ModalRoot, ModalSize, openModal } from "../utils/modal";
-import { PluginDef } from "../utils/types";
-import { filters, find } from "../webpack";
-import { Menu } from "../webpack/common";
-
const ImageModal = LazyComponent(() => find(m => m.prototype?.render?.toString().includes("OPEN_ORIGINAL_IMAGE")));
const MaskedLink = LazyComponent(() => find(m => m.type?.toString().includes("MASKED_LINK)")));
-const GuildBannerStore = lazyWebpack(filters.byProps("getGuildBannerURL"));
+const GuildBannerStore = findByPropsLazy("getGuildBannerURL");
const OPEN_URL = "Vencord.Plugins.plugins.ViewIcons.openImage(";
export default new class ViewIcons implements PluginDef {
diff --git a/src/plugins/volumeBooster.ts b/src/plugins/volumeBooster.ts
index fddf650..dab6b93 100644
--- a/src/plugins/volumeBooster.ts
+++ b/src/plugins/volumeBooster.ts
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { makeRange } from "../components/PluginSettings/components/SettingSliderComponent";
-import { Devs } from "../utils/constants";
-import definePlugin, { OptionType } from "../utils/types";
+import { makeRange } from "@components/PluginSettings/components/SettingSliderComponent";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
export default definePlugin({
name: "VolumeBooster",
diff --git a/src/plugins/webContextMenus.ts b/src/plugins/webContextMenus.ts
index 7179082..6419cfd 100644
--- a/src/plugins/webContextMenus.ts
+++ b/src/plugins/webContextMenus.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "WebContextMenus",
diff --git a/src/plugins/webhookTags.ts b/src/plugins/webhookTags.ts
index e02895a..51d68fa 100644
--- a/src/plugins/webhookTags.ts
+++ b/src/plugins/webhookTags.ts
@@ -16,8 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Devs } from "../utils/constants";
-import definePlugin from "../utils/types";
+import { Devs } from "@utils/constants";
+import definePlugin from "@utils/types";
export default definePlugin({
name: "Webhook Tags",
diff --git a/src/plugins/whoReacted.tsx b/src/plugins/whoReacted.tsx
index b1fb27d..685d954 100644
--- a/src/plugins/whoReacted.tsx
+++ b/src/plugins/whoReacted.tsx
@@ -16,20 +16,19 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import ErrorBoundary from "@components/ErrorBoundary";
+import { Devs } from "@utils/constants";
+import { LazyComponent, sleep, useForceUpdater } from "@utils/misc";
+import { Queue } from "@utils/Queue";
+import definePlugin from "@utils/types";
+import { findByCode, findByPropsLazy } from "@webpack";
+import { ChannelStore, FluxDispatcher, React, RestAPI, Tooltip } from "@webpack/common";
import { ReactionEmoji, User } from "discord-types/general";
-import ErrorBoundary from "../components/ErrorBoundary";
-import { Devs } from "../utils/constants";
-import { LazyComponent, lazyWebpack, sleep, useForceUpdater } from "../utils/misc";
-import { Queue } from "../utils/Queue";
-import definePlugin from "../utils/types";
-import { filters, findByCode } from "../webpack";
-import { ChannelStore, FluxDispatcher, React, RestAPI, Tooltip } from "../webpack/common";
-
const UserSummaryItem = LazyComponent(() => findByCode("defaultRenderUser", "showDefaultAvatarsForNullUsers"));
-const AvatarStyles = lazyWebpack(filters.byProps("moreUsers", "emptyUser", "avatarContainer", "clickableAvatar"));
+const AvatarStyles = findByPropsLazy("moreUsers", "emptyUser", "avatarContainer", "clickableAvatar");
-const ReactionStore = lazyWebpack(filters.byProps("getReactions"));
+const ReactionStore = findByPropsLazy("getReactions");
const queue = new Queue();
diff --git a/src/preload.ts b/src/preload.ts
index fccc024..dcf2554 100644
--- a/src/preload.ts
+++ b/src/preload.ts
@@ -16,12 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { debounce } from "@utils/debounce";
+import IpcEvents from "@utils/IpcEvents";
import electron, { contextBridge, ipcRenderer, webFrame } from "electron";
import { readFileSync } from "fs";
import { join } from "path";
-import { debounce } from "./utils/debounce";
-import IpcEvents from "./utils/IpcEvents";
import VencordNative from "./VencordNative";
if (electron.desktopCapturer === void 0) {
diff --git a/src/utils/discord.ts b/src/utils/discord.ts
index 7fc5064..f1a1f8a 100644
--- a/src/utils/discord.ts
+++ b/src/utils/discord.ts
@@ -16,10 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { ChannelStore, GuildStore, PrivateChannelsStore, SelectedChannelStore } from "@webpack/common";
import { Guild } from "discord-types/general";
-import { ChannelStore, GuildStore, PrivateChannelsStore, SelectedChannelStore } from "../webpack/common";
-
export function getCurrentChannel() {
return ChannelStore.getChannel(SelectedChannelStore.getChannelId());
}
diff --git a/src/utils/misc.tsx b/src/utils/misc.tsx
index 7389cc2..4ae3fd5 100644
--- a/src/utils/misc.tsx
+++ b/src/utils/misc.tsx
@@ -16,9 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { FilterFn, find } from "../webpack";
-import { React } from "../webpack/common";
-import { proxyLazy } from "./proxyLazy";
+import { React } from "@webpack/common";
/**
* Makes a lazy function. On first call, the value is computed.
@@ -29,16 +27,6 @@ export function makeLazy<T>(factory: () => T): () => T {
let cache: T;
return () => cache ?? (cache = factory());
}
-export const lazy = makeLazy;
-
-/**
- * Do a lazy webpack search. Searches the module on first property access
- * @param filter Filter function
- * @returns A proxy to the webpack module. Not all traps are implemented, may produce unexpected results.
- */
-export function lazyWebpack<T = any>(filter: FilterFn): T {
- return proxyLazy(() => find(filter));
-}
type AwaiterRes<T> = [T, any, boolean, () => void];
/**
diff --git a/src/utils/modal.tsx b/src/utils/modal.tsx
index 886e325..9a90460 100644
--- a/src/utils/modal.tsx
+++ b/src/utils/modal.tsx
@@ -16,8 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { filters } from "../webpack";
-import { mapMangledModuleLazy } from "../webpack/webpack";
+import { filters, mapMangledModuleLazy } from "@webpack";
export enum ModalSize {
SMALL = "small",
diff --git a/src/utils/proxyLazy.ts b/src/utils/proxyLazy.ts
index 364dd56..42b5a91 100644
--- a/src/utils/proxyLazy.ts
+++ b/src/utils/proxyLazy.ts
@@ -63,7 +63,7 @@ handler.getOwnPropertyDescriptor = (target, p) => {
* @param factory lazy factory
* @returns Proxy
*
- * Note that the example below exists already as an api, see {@link lazyWebpack}
+ * Note that the example below exists already as an api, see {@link findByPropsLazy}
* @example const mod = proxyLazy(() => findByProps("blah")); console.log(mod.blah);
*/
export function proxyLazy<T>(factory: () => T): T {
diff --git a/src/utils/quickCss.ts b/src/utils/quickCss.ts
index 0ce1f58..1f9f235 100644
--- a/src/utils/quickCss.ts
+++ b/src/utils/quickCss.ts
@@ -16,7 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { addSettingsListener, Settings } from "../api/settings";
+import { addSettingsListener, Settings } from "@api/settings";
+
import IpcEvents from "./IpcEvents";
let style: HTMLStyleElement;
diff --git a/src/utils/settingsSync.ts b/src/utils/settingsSync.ts
index ecf6665..5cd81e7 100644
--- a/src/utils/settingsSync.ts
+++ b/src/utils/settingsSync.ts
@@ -16,7 +16,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Toasts } from "../webpack/common";
+import { Toasts } from "@webpack/common";
+
import IpcEvents from "./IpcEvents";
import Logger from "./Logger";
diff --git a/src/utils/types.ts b/src/utils/types.ts
index 30c603f..310fbea 100644
--- a/src/utils/types.ts
+++ b/src/utils/types.ts
@@ -16,10 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { Command } from "@api/Commands";
import { Promisable } from "type-fest";
-import { Command } from "../api/Commands";
-
// exists to export default definePlugin({...})
export default function definePlugin<P extends PluginDef>(p: P & Record<string, any>) {
return p;
diff --git a/src/webpack/common.tsx b/src/webpack/common.tsx
index 32f47e6..e606f16 100644
--- a/src/webpack/common.tsx
+++ b/src/webpack/common.tsx
@@ -16,31 +16,33 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { LazyComponent } from "@utils/misc";
+import { proxyLazy } from "@utils/proxyLazy";
import type Components from "discord-types/components";
import { User } from "discord-types/general";
import type Other from "discord-types/other";
import type Stores from "discord-types/stores";
-import { LazyComponent, lazyWebpack } from "../utils/misc";
-import { proxyLazy } from "../utils/proxyLazy";
-import { _resolveReady, filters, findByCode, mapMangledModule, mapMangledModuleLazy, waitFor } from "./webpack";
+import { _resolveReady, filters, findByCode, findByCodeLazy, findByPropsLazy, mapMangledModule, mapMangledModuleLazy, waitFor } from "./webpack";
-export const Margins = lazyWebpack(filters.byProps("marginTop20"));
+export const Margins = findByPropsLazy("marginTop20");
export let FluxDispatcher: Other.FluxDispatcher;
-export const Flux = lazyWebpack(filters.byProps("connectStores"));
+export const Flux = findByPropsLazy("connectStores");
export let React: typeof import("react");
-export const ReactDOM: typeof import("react-dom") = lazyWebpack(filters.byProps("createPortal", "render"));
+export const ReactDOM: typeof import("react-dom") = findByPropsLazy("createPortal", "render");
-export const RestAPI = lazyWebpack(filters.byProps("getAPIBaseURL", "get"));
-export const moment: typeof import("moment") = lazyWebpack(filters.byProps("parseTwoDigitYear"));
+export const RestAPI = findByPropsLazy("getAPIBaseURL", "get");
+export const moment: typeof import("moment") = findByPropsLazy("parseTwoDigitYear");
-export const MessageStore = lazyWebpack(filters.byProps("getRawMessages")) as Omit<Stores.MessageStore, "getMessages"> & { getMessages(chanId: string): any; };
-export const PermissionStore = lazyWebpack(filters.byProps("can", "getGuildPermissions"));
-export const PrivateChannelsStore = lazyWebpack(filters.byProps("openPrivateChannel"));
-export const GuildChannelStore = lazyWebpack(filters.byProps("getChannels"));
-export const ReadStateStore = lazyWebpack(filters.byProps("lastMessageId"));
-export const PresenceStore = lazyWebpack(filters.byProps("setCurrentUserOnConnectionOpen"));
+export const MessageStore = findByPropsLazy("getRawMessages") as Omit<Stores.MessageStore, "getMessages"> & {
+ getMessages(chanId: string): any;
+};
+export const PermissionStore = findByPropsLazy("can", "getGuildPermissions");
+export const PrivateChannelsStore = findByPropsLazy("openPrivateChannel");
+export const GuildChannelStore = findByPropsLazy("getChannels");
+export const ReadStateStore = findByPropsLazy("lastMessageId");
+export const PresenceStore = findByPropsLazy("setCurrentUserOnConnectionOpen");
export let GuildStore: Stores.GuildStore;
export let UserStore: Stores.UserStore;
export let SelectedChannelStore: Stores.SelectedChannelStore;
@@ -121,7 +123,7 @@ export const Toasts = {
};
export const UserUtils = {
- fetchUser: lazyWebpack(filters.byCode(".USER(", "getUser")) as (id: string) => Promise<User>,
+ fetchUser: findByCodeLazy(".USER(", "getUser") as (id: string) => Promise<User>,
};
export const Clipboard = mapMangledModuleLazy('document.queryCommandEnabled("copy")||document.queryCommandSupported("copy")', {
diff --git a/src/webpack/patchWebpack.ts b/src/webpack/patchWebpack.ts
index e17ddfc..273a062 100644
--- a/src/webpack/patchWebpack.ts
+++ b/src/webpack/patchWebpack.ts
@@ -16,8 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { WEBPACK_CHUNK } from "../utils/constants";
-import Logger from "../utils/Logger";
+import { WEBPACK_CHUNK } from "@utils/constants";
+import Logger from "@utils/Logger";
+
import { _initWebpack } from ".";
let webpackChunk: any[];
diff --git a/src/webpack/webpack.ts b/src/webpack/webpack.ts
index bd06b03..0bbd815 100644
--- a/src/webpack/webpack.ts
+++ b/src/webpack/webpack.ts
@@ -16,11 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import Logger from "@utils/Logger";
+import { proxyLazy } from "@utils/proxyLazy";
import type { WebpackInstance } from "discord-types/other";
import { traceFunction } from "../debug/Tracer";
-import Logger from "../utils/Logger";
-import { proxyLazy } from "../utils/proxyLazy";
const logger = new Logger("Webpack");
@@ -113,6 +113,13 @@ export const find = traceFunction("find", function find(filter: FilterFn, getDef
return null;
});
+/**
+ * find but lazy
+ */
+export function findLazy(filter: FilterFn, getDefault = true) {
+ return proxyLazy(() => find(filter, getDefault));
+}
+
export function findAll(filter: FilterFn, getDefault = true) {
if (typeof filter !== "function")
throw new Error("Invalid filter. Expected a function got " + typeof filter);
@@ -292,6 +299,13 @@ export function findByProps(...props: string[]) {
}
/**
+ * findByProps but lazy
+ */
+export function findByPropsLazy(...props: string[]) {
+ return findLazy(filters.byProps(...props));
+}
+
+/**
* Find all modules that have the specified properties
*/
export function findAllByProps(...props: string[]) {
@@ -306,6 +320,13 @@ export function findByCode(...code: string[]) {
}
/**
+ * findByCode but lazy
+ */
+export function findByCodeLazy(...code: string[]) {
+ return findLazy(filters.byCode(...code));
+}
+
+/**
* Wait for a module that matches the provided filter to be registered,
* then call the callback with the module as the first argument
*/
diff --git a/tsconfig.json b/tsconfig.json
index aa12532..a55c1fe 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -14,7 +14,16 @@
"strict": true,
"noImplicitAny": false,
"target": "ESNEXT",
- "jsx": "preserve"
+ "jsx": "preserve",
+
+ "baseUrl": "./src/",
+ "paths": {
+ "@webpack": ["./webpack"],
+ "@webpack/common": ["./webpack/common"],
+ "@utils/*": ["./utils/*"],
+ "@api/*": ["./api/*"],
+ "@components/*": ["./components/*"]
+ }
},
"include": ["src/**/*"]
}