diff --git a/src/equicordplugins/messagePeek/components/MessagePeek.tsx b/src/equicordplugins/messagePeek/components/MessagePeek.tsx index 9dbe01b1..35718736 100644 --- a/src/equicordplugins/messagePeek/components/MessagePeek.tsx +++ b/src/equicordplugins/messagePeek/components/MessagePeek.tsx @@ -15,6 +15,12 @@ import { MessagePeekProps } from "../types"; const ChannelWrapperStyles = findByPropsLazy("muted", "subText"); const ChannelStyles = findByPropsLazy("closeButton", "subtext"); +declare module "discord-types/general" { + interface User { + globalName?: string; + } +} + export default function MessagePeek(props: MessagePeekProps) { const { channel, channel_url } = props; if (!channel && !channel_url) return null; @@ -38,7 +44,7 @@ export default function MessagePeek(props: MessagePeekProps) { > 256 ? Parser.parse(content.slice(0, 256).trim()) : Parser.parse(content)}>
- {`${(lastMessage.author as any).globalName || lastMessage.author.username}: `} + {`${lastMessage.author.globalName || lastMessage.author.username}: `} {Parser.parseInlineReply(content)}
diff --git a/src/equicordplugins/messagePeek/index.tsx b/src/equicordplugins/messagePeek/index.tsx index 8e4e2bc5..294a9cf9 100644 --- a/src/equicordplugins/messagePeek/index.tsx +++ b/src/equicordplugins/messagePeek/index.tsx @@ -9,12 +9,16 @@ import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import MessagePeek from "./components/MessagePeek"; +import { settings } from "./settings"; import { MessagePeekProps } from "./types"; export default definePlugin({ name: "MessagePeek", description: "See the last message in a Channel like on mobile", authors: [EquicordDevs.HypedDomi], + + settings: settings, + patches: [ { // DMs @@ -28,7 +32,8 @@ export default definePlugin({ $self.renderMessagePeek({ channel_url: $1.children.props.children[0].props.to }) ]; `.replace(/\s+/g, "") - } + }, + predicate: () => settings.store.dms === true }, { // Guild channels @@ -40,7 +45,8 @@ export default definePlugin({ $1[0].props.children[1].props.children, $self.renderMessagePeek({ channel: $1[0].props.children[0].props.channel }) ];`.replace(/\s+/g, "") - } + }, + predicate: () => settings.store.guildChannels === true } ], renderMessagePeek: (props: MessagePeekProps) => { diff --git a/src/equicordplugins/messagePeek/settings.ts b/src/equicordplugins/messagePeek/settings.ts new file mode 100644 index 00000000..2dc1ba50 --- /dev/null +++ b/src/equicordplugins/messagePeek/settings.ts @@ -0,0 +1,26 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { definePluginSettings } from "@api/Settings"; +import { OptionType } from "@utils/types"; + +const settings = definePluginSettings({ + guildChannels: { + description: "Show message peek in guild channels", + type: OptionType.BOOLEAN, + default: true, + restartNeeded: true + }, + dms: { + description: "Show message peek in DMs", + type: OptionType.BOOLEAN, + default: true, + restartNeeded: true + } +}); + +export default settings; +export { settings };