From 94068fe3419d9a81aeccfcebd9d68236d207e777 Mon Sep 17 00:00:00 2001 From: verticalsync <60797172+verticalsync@users.noreply.github.com> Date: Wed, 13 Mar 2024 18:44:29 +0200 Subject: [PATCH] many plugin. --- README.md | 50 ++- src/suncordplugins/ColorMessage/README.md | 4 + src/suncordplugins/ColorMessage/index.ts | 63 ++++ src/suncordplugins/ColorMessage/style.css | 12 + src/suncordplugins/DeadMembers/index.tsx | 60 ++++ src/suncordplugins/ImageLink/index.ts | 24 ++ .../MessageLinkTooltip/index.tsx | 126 +++++++ .../MessageLinkTooltip/style.css | 4 + src/suncordplugins/Title/README.md | 3 + src/suncordplugins/Title/index.ts | 50 +++ .../blockKrisp.discordDesktop/README.md | 5 + .../blockKrisp.discordDesktop/index.ts | 23 ++ .../blockKrisp.discordDesktop/screenshot.png | Bin 0 -> 22991 bytes src/suncordplugins/ignoreTerms/README.md | 5 + src/suncordplugins/ignoreTerms/index.ts | 29 ++ src/suncordplugins/ignoreTerms/screenshot.png | Bin 0 -> 62874 bytes .../notifyUserChanges/README.md | 6 + .../components/NotificationsOffIcon.tsx | 11 + .../components/NotificationsOnIcon.tsx | 11 + .../notifyUserChanges/context-menu.png | Bin 0 -> 4198 bytes .../notifyUserChanges/index.tsx | 340 ++++++++++++++++++ .../notifyUserChanges/screenshot.png | Bin 0 -> 11129 bytes .../screenShareStreamerMode/README.md | 5 + .../screenShareStreamerMode/index.ts | 66 ++++ .../screenShareStreamerMode/streamer-mode.png | Bin 0 -> 6830 bytes .../serverProfilesToolbox/README.md | 5 + .../serverProfilesToolbox/index.tsx | 94 +++++ .../serverProfilesToolbox/screenshot.png | Bin 0 -> 33589 bytes 28 files changed, 979 insertions(+), 17 deletions(-) create mode 100644 src/suncordplugins/ColorMessage/README.md create mode 100644 src/suncordplugins/ColorMessage/index.ts create mode 100644 src/suncordplugins/ColorMessage/style.css create mode 100644 src/suncordplugins/DeadMembers/index.tsx create mode 100644 src/suncordplugins/ImageLink/index.ts create mode 100644 src/suncordplugins/MessageLinkTooltip/index.tsx create mode 100644 src/suncordplugins/MessageLinkTooltip/style.css create mode 100644 src/suncordplugins/Title/README.md create mode 100644 src/suncordplugins/Title/index.ts create mode 100644 src/suncordplugins/blockKrisp.discordDesktop/README.md create mode 100644 src/suncordplugins/blockKrisp.discordDesktop/index.ts create mode 100644 src/suncordplugins/blockKrisp.discordDesktop/screenshot.png create mode 100644 src/suncordplugins/ignoreTerms/README.md create mode 100644 src/suncordplugins/ignoreTerms/index.ts create mode 100644 src/suncordplugins/ignoreTerms/screenshot.png create mode 100644 src/suncordplugins/notifyUserChanges/README.md create mode 100644 src/suncordplugins/notifyUserChanges/components/NotificationsOffIcon.tsx create mode 100644 src/suncordplugins/notifyUserChanges/components/NotificationsOnIcon.tsx create mode 100644 src/suncordplugins/notifyUserChanges/context-menu.png create mode 100644 src/suncordplugins/notifyUserChanges/index.tsx create mode 100644 src/suncordplugins/notifyUserChanges/screenshot.png create mode 100644 src/suncordplugins/screenShareStreamerMode/README.md create mode 100644 src/suncordplugins/screenShareStreamerMode/index.ts create mode 100644 src/suncordplugins/screenShareStreamerMode/streamer-mode.png create mode 100644 src/suncordplugins/serverProfilesToolbox/README.md create mode 100644 src/suncordplugins/serverProfilesToolbox/index.tsx create mode 100644 src/suncordplugins/serverProfilesToolbox/screenshot.png diff --git a/README.md b/README.md index 9ddb3aaa..ac7ae249 100644 --- a/README.md +++ b/README.md @@ -8,33 +8,49 @@ Suncord is a fork of [Vencord](https://github.com/Vendicated/Vencord). You can join our discord server for commits, changes or just chat or maybe even support? Who knows. For the invite click [here](https://discord.gg/VasF3Ma4Ab) -## Included plugins alongside Vencord +## Installing / Uninstalling + +Visit [1_INSTALLING.md](/docs/1_INSTALLING.md) + +## Extra included plugins + +- Plugins by [D3SOX](https://github.com/D3S0X/vencord-userplugins) +- - MemberListActivities +- - VoiceChatUtilities +- - BlockKrisp +- - IgnoreTerms +- - NotifyUserChanges +- - ScreenShareStreamerMode +- - ServerProfilesToolbox + +- Plugins by [Kyuuhachi](https://github.com/Kyuuhachi/VencordPlugins) +- - Anammox +- - ColorMessage +- - DeadMembers +- - ImageLink +- - MessageLinkTooltip +- - ReplyTimestamp +- - ModalFade +- - BetterSettings ([pr to vencord here]()) +- - Title -- purgeMessages (by [bhop](https://github.com/prettylittlelies)) -- platformSpoofer (by [drag](https://github.com/dragdotpng)) -- doubleCounterVerifyBypass (by [verticalsync](https://github.com/verticalsync/double-counter-verify-bypass)) -- messageLoggerEnhanced (by [Syncxv](https://github.com/Syncxv/vc-message-logger-enhanced)) +- Plugins by [Syncxv](https://github.com/Syncxv) +- - [MessageLoggerEnhanced](https://github.com/Syncxv/vc-message-logger-enhanced) +- - PinDMs (but better) ([pull request](https://github.com/Vendicated/Vencord/pull/2203) to PinDMs) + +- PurgeMessages (by [bhop](https://github.com/prettylittlelies)) +- PlatformSpoofer (by [drag](https://github.com/dragdotpng)) +- DoubleCounterVerifyBypass (by [verticalsync](https://github.com/verticalsync/double-counter-verify-bypass)) - Timezones (by [mantikafasi](https://github.com/mantikafasi) & [ArjixWasTaken](https://github.com/ArjixWasTaken)) -- customScreenShare (by [KawaiianPizza](https://github.com/KawaiianPizza)) +- CustomScreenShare (by [KawaiianPizza](https://github.com/KawaiianPizza)) - iRememberYou (by [zoodogood](https://github.com/zoodogood/vencord-plugins)) - EmojiDownloader (by [woosh](https://github.com/w8y) modified version of ServerDownload by [cheesesamwich](https://github.com/cheesesamwich/ServerDownload)) - GlobalBadges (by [HypedDomi](https://github.com/domi-btnr/Vencord-Plugins)) - CommandPalette (by [Ethan](https://github.com/ethan-davies)) (added from Ethan's [pull request](https://github.com/Vendicated/Vencord/pull/2145) to vencord) - AllCallTimers (by [Max-Herbold](https://github.com/Max-Herbold)) (added from Max's [pull request](https://github.com/Vendicated/Vencord/pull/2132) to vencord) -- ReplyTimestamp (by [Kyuuhachi](https://github.com/Kyuuhachi/)) - SoundBoardLogger (by [ImpishMoxxie](https://github.com/ImpishMoxxie/SoundBoardLogger)) -- MemberListActivities (by [D3SOX](https://github.com/D3SOX/vencord-userplugins/)) -- VoiceChatUtilities (by [D3SOX](https://github.com/D3SOX/vencord-userplugins/)) -- PinDMs (but better) ([pull request](https://github.com/Vendicated/Vencord/pull/2203) to PinDMs by [Syncxv](https://github.com/Syncxv/)) -- BetterSettings (by [Kyuuhachi](https://github.com/Kyuuhachi/)) (added from Kyuuhachi's [pull request](https://github.com/Vendicated/Vencord/pull/2222)) -- Anammox (by [Kyuuhachi](https://github.com/Kyuuhachi/)) -- ModalFade (by [Kyuuhachi](https://github.com/Kyuuhachi/)) - HideMessage (by [Hanzy](https://github.com/hanzydev/)) (added from Hanzy's [pull request](https://github.com/Vendicated/Vencord/pull/2207)) -## Installing / Uninstalling - -Visit [1_INSTALLING.md](/docs/1_INSTALLING.md) - ## Disclaimer Discord is trademark of Discord Inc. and solely mentioned for the sake of descriptivity. diff --git a/src/suncordplugins/ColorMessage/README.md b/src/suncordplugins/ColorMessage/README.md new file mode 100644 index 00000000..ec4c3cc8 --- /dev/null +++ b/src/suncordplugins/ColorMessage/README.md @@ -0,0 +1,4 @@ +# ColorMessage + +An addon to RoleColorEverywhere, which colors message contents based on the sender's color, with configurable intensity. +This uses [`color-mix`](https://caniuse.com/mdn-css_types_color_color-mix), which is not supported by the Electron Discord client (I don't know about Vesktop). diff --git a/src/suncordplugins/ColorMessage/index.ts b/src/suncordplugins/ColorMessage/index.ts new file mode 100644 index 00000000..0b18a889 --- /dev/null +++ b/src/suncordplugins/ColorMessage/index.ts @@ -0,0 +1,63 @@ +/* + * 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 * as Styles from "@api/Styles"; +import { makeRange } from "@components/PluginSettings/components"; +import definePlugin, { OptionType } from "@utils/types"; +import { findByPropsLazy } from "@webpack"; + +const AuthorStore = findByPropsLazy("useNullableMessageAuthor", "useNullableMessageAuthor"); + +import { Devs } from "@utils/constants"; + +import style from "./style.css?managed"; + +export const settings = definePluginSettings({ + saturation: { + type: OptionType.SLIDER, + description: "Message color saturation", + markers: makeRange(0, 100, 10), + default: 20, + onChange() { + updateStyle(); + }, + }, +}); + +function updateStyle() { + (Styles.requireStyle(style).dom!.sheet!.cssRules[0] as CSSStyleRule) + .style.setProperty("--98-message-color-saturation", `${settings.store.saturation}`); +} + +export default definePlugin({ + name: "ColorMessage", + description: "Colors message content with author's role color", + authors: [Devs.Kyuuhachi], + settings, + + patches: [ + { + find: 'default.Messages.MESSAGE_EDITED,")"', + replacement: { + match: /id:\(0,\w+.getMessageContentId\)\((\w+)\),/, + replace: '$&style:{"--98-message-color":$self.getMessageColor($1)},' + } + }, + ], + + getMessageColor(messageId: string) { + return AuthorStore.default(messageId).colorString; + }, + + start() { + Styles.enableStyle(style); + updateStyle(); + }, + stop() { + Styles.disableStyle(style); + }, +}); diff --git a/src/suncordplugins/ColorMessage/style.css b/src/suncordplugins/ColorMessage/style.css new file mode 100644 index 00000000..440e609c --- /dev/null +++ b/src/suncordplugins/ColorMessage/style.css @@ -0,0 +1,12 @@ +/* stylelint-disable custom-property-pattern */ +:root { + --98-message-color-saturation: /*DYNAMIC*/; +} + +div[class*="messageContent_"] { + color: color-mix( + in lab, + var(--98-message-color, var(--text-normal)) calc(var(--98-message-color-saturation) * 1%), + var(--text-normal) + ) +} diff --git a/src/suncordplugins/DeadMembers/index.tsx b/src/suncordplugins/DeadMembers/index.tsx new file mode 100644 index 00000000..3835e0ba --- /dev/null +++ b/src/suncordplugins/DeadMembers/index.tsx @@ -0,0 +1,60 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { ChannelStore, GuildMemberStore, useStateFromStores } from "@webpack/common"; + +export default definePlugin({ + name: "DeadMembers", + description: "Shows when the sender of a message has left the guild", + authors: [Devs.Kyuuhachi], + + patches: [ + { + find: "UsernameDecorationTypes:function()", + replacement: { + match: /children:(\(\i\?"@":""\)\+\i)/, + replace: "children:$self.wrapMessageAuthor(arguments[0],$1)" + } + }, + { + find: "Messages.FORUM_POST_AUTHOR_A11Y_LABEL", + replacement: { + match: /(?<=\}=(\i),\{(user:\i,author:\i)\}=.{0,400}?\(\i\.Fragment,{children:)\i(?=}\),)/, + replace: "$self.wrapForumAuthor({...$1,$2},$&)" + } + }, + ], + + wrapMessageAuthor({ author, message }, text) { + const channel = ChannelStore.getChannel(message.channel_id); + return message.webhookId + ? text + : ; + }, + + wrapForumAuthor({ channel, user }, text) { + return ; + }, +}); + + +function DeadIndicator({ channel, userId, text }) { + const isMember = useStateFromStores( + [GuildMemberStore], + () => GuildMemberStore.isMember(channel?.guild_id, userId), + ); + return channel?.guild_id && !isMember ? {text} : text; +} diff --git a/src/suncordplugins/ImageLink/index.ts b/src/suncordplugins/ImageLink/index.ts new file mode 100644 index 00000000..d3cce116 --- /dev/null +++ b/src/suncordplugins/ImageLink/index.ts @@ -0,0 +1,24 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; + +export default definePlugin({ + name: "ImageLink", + description: "Suppresses the hiding of links for \"simple embeds\"", + authors: [Devs.Kyuuhachi], + + patches: [ + { + find: "isEmbedInline:function", + replacement: { + match: /(?<=isEmbedInline:function\(\)\{return )\w+(?=\})/, + replace: "()=>false", + }, + }, + ], +}); diff --git a/src/suncordplugins/MessageLinkTooltip/index.tsx b/src/suncordplugins/MessageLinkTooltip/index.tsx new file mode 100644 index 00000000..657f16bf --- /dev/null +++ b/src/suncordplugins/MessageLinkTooltip/index.tsx @@ -0,0 +1,126 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import "./style.css"; + +import ErrorBoundary from "@components/ErrorBoundary"; +import { Devs } from "@utils/constants"; +import { proxyLazy } from "@utils/lazy"; +import definePlugin from "@utils/types"; +import { findComponentByCodeLazy } from "@webpack"; +import { ChannelStore, Forms, MessageStore, RestAPI, Tooltip, useEffect, useState, useStateFromStores } from "@webpack/common"; +import type { ComponentType, HTMLAttributes } from "react"; + +declare enum SpinnerTypes { + WANDERING_CUBES = "wanderingCubes", + CHASING_DOTS = "chasingDots", + PULSING_ELLIPSIS = "pulsingEllipsis", + SPINNING_CIRCLE = "spinningCircle", + SPINNING_CIRCLE_SIMPLE = "spinningCircleSimple", + LOW_MOTION = "lowMotion", +} + +type Spinner = ComponentType, "children"> & { + type?: SpinnerTypes; + animated?: boolean; + className?: string; + itemClassName?: string; + "aria-label"?: string; +}> & { + Type: typeof SpinnerTypes; +}; + +const { Spinner } = proxyLazy(() => Forms as any as { + Spinner: Spinner, + SpinnerTypes: typeof SpinnerTypes; +}); + +const ChannelMessage = findComponentByCodeLazy("renderSimpleAccessories)") as ComponentType; + +export default definePlugin({ + name: "MessageLinkTooltip", + description: "Like MessageLinkEmbed but without taking space", + authors: [Devs.Kyuuhachi], + + patches: [ + { + find: ',className:"channelMention",children:[', + replacement: { + match: /(?<=\.jsxs\)\()(\i\.default)/, + replace: "$self.wrapComponent(arguments[0], $1)" + } + } + ], + + wrapComponent({ messageId, channelId }, Component: ComponentType) { + return props => { + if (messageId === undefined) return ; + return + + + } + > + {({ onMouseEnter, onMouseLeave }) => + + } + ; + }; + } +}); + +function MessagePreview({ channelId, messageId }) { + const channel = ChannelStore.getChannel(channelId); + const message = useMessage(channelId, messageId); + // TODO handle load failure + if (!message) { + return ; + } + + return ; +} + +function useMessage(channelId, messageId) { + const cachedMessage = useStateFromStores( + // @ts-ignore + [MessageStore], + () => MessageStore.getMessage(channelId, messageId) + ); + const [message, setMessage] = useState(cachedMessage); + useEffect(() => { + if (message == null) + (async () => { + const res = await RestAPI.get({ + url: `/channels/${channelId}/messages`, + query: { + limit: 1, + around: messageId, + }, + retries: 2, + }); + const rawMessage = res.body[0]; + const message = MessageStore.getMessages(channelId) + .receiveMessage(rawMessage) + .get(messageId); + setMessage(message); + })(); + }); + return message; +} diff --git a/src/suncordplugins/MessageLinkTooltip/style.css b/src/suncordplugins/MessageLinkTooltip/style.css new file mode 100644 index 00000000..75ac36f0 --- /dev/null +++ b/src/suncordplugins/MessageLinkTooltip/style.css @@ -0,0 +1,4 @@ +.c98-message-link-tooltip { + width: max-content; + max-width: 80vw; +} diff --git a/src/suncordplugins/Title/README.md b/src/suncordplugins/Title/README.md new file mode 100644 index 00000000..62e99134 --- /dev/null +++ b/src/suncordplugins/Title/README.md @@ -0,0 +1,3 @@ +# Title + +In the browser version, the window/tab title is always prefixed with "Discord -". This plugin lets you change or remove this prefix. diff --git a/src/suncordplugins/Title/index.ts b/src/suncordplugins/Title/index.ts new file mode 100644 index 00000000..0256349a --- /dev/null +++ b/src/suncordplugins/Title/index.ts @@ -0,0 +1,50 @@ +/* + * 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 { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { findByPropsLazy } from "@webpack"; + +const TitleManager = findByPropsLazy("setPageTitleNotificationCount", "flashPageTitle"); +const rootTitle = { base: null as string | null }; + +export const settings = definePluginSettings({ + title: { + type: OptionType.STRING, + default: "Vencord", + description: "Window title prefix", + onChange: setTitle, + }, +}); + +function setTitle(v: string) { + rootTitle.base = v || null; + TitleManager.flashPageTitle({ messages: 0 })(); +} + +export default definePlugin({ + name: "Title", + description: "Replaces the window title prefix", + authors: [Devs.Kyuuhachi], + settings, + + patches: [ + { + find: "setPageTitleNotificationCount:function()", + replacement: { + match: /\{base:\w+\.isPlatformEmbedded\?void 0:"Discord"\}/, + replace: "$self.rootTitle", + }, + }, + ], + + start() { + setTitle(settings.store.title); + }, + + rootTitle, +}); diff --git a/src/suncordplugins/blockKrisp.discordDesktop/README.md b/src/suncordplugins/blockKrisp.discordDesktop/README.md new file mode 100644 index 00000000..7966620d --- /dev/null +++ b/src/suncordplugins/blockKrisp.discordDesktop/README.md @@ -0,0 +1,5 @@ +# BlockKrisp + +Prevent Krisp from loading + +![Screenshot](./screenshot.png) diff --git a/src/suncordplugins/blockKrisp.discordDesktop/index.ts b/src/suncordplugins/blockKrisp.discordDesktop/index.ts new file mode 100644 index 00000000..629b28de --- /dev/null +++ b/src/suncordplugins/blockKrisp.discordDesktop/index.ts @@ -0,0 +1,23 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; + +export default definePlugin({ + name: "BlockKrisp", + description: "Prevent Krisp from loading", + authors: [Devs.D3SOX], + patches: [ + { + find: "Failed to load Krisp module", + replacement: { + match: /await (\i).default.ensureModule\("discord_krisp"\)/, + replace: "throw new Error();await $1.default.ensureModule(\"discord_krisp\")" + } + } + ], +}); diff --git a/src/suncordplugins/blockKrisp.discordDesktop/screenshot.png b/src/suncordplugins/blockKrisp.discordDesktop/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b99caf54346bfdf8bea970df6cf0608b5f1167 GIT binary patch literal 22991 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 literal 0 HcmV?d00001 diff --git a/src/suncordplugins/ignoreTerms/README.md b/src/suncordplugins/ignoreTerms/README.md new file mode 100644 index 00000000..b014411a --- /dev/null +++ b/src/suncordplugins/ignoreTerms/README.md @@ -0,0 +1,5 @@ +# IgnoreTerms + +Ignore Discord's new terms of service + +![Screenshot](./screenshot.png) diff --git a/src/suncordplugins/ignoreTerms/index.ts b/src/suncordplugins/ignoreTerms/index.ts new file mode 100644 index 00000000..dc25dcf3 --- /dev/null +++ b/src/suncordplugins/ignoreTerms/index.ts @@ -0,0 +1,29 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; + +export default definePlugin({ + name: "IgnoreTerms", + description: "Ignore Discord's new terms of service", + authors: [Devs.D3SOX], + patches: [ + { + find: "Messages.NEW_TERMS_TITLE", + replacement: { + match: /function (\i)\((\i)\)\{let\{transitionState:(\i)\}=(\i)/g, + replace: "function $1($2){return $self.closeModal($2);let{transitionState:$3}=$4" + } + } + ], + + closeModal(event) { + event.transitionState = null; + event.onClose(); + return null; + } +}); diff --git a/src/suncordplugins/ignoreTerms/screenshot.png b/src/suncordplugins/ignoreTerms/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa281705c18cb163c95e53b6ba72b1539f723cd GIT binary patch literal 62874 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

PGcogQf7RGxZ!*Gg~% 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 w2PR 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 { + return (); +} diff --git a/src/suncordplugins/notifyUserChanges/components/NotificationsOnIcon.tsx b/src/suncordplugins/notifyUserChanges/components/NotificationsOnIcon.tsx new file mode 100644 index 00000000..8ce2818f --- /dev/null +++ b/src/suncordplugins/notifyUserChanges/components/NotificationsOnIcon.tsx @@ -0,0 +1,11 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import type { SVGProps } from "react"; + +export function NotificationsOnIcon(props: SVGProps) { + return (); +} diff --git a/src/suncordplugins/notifyUserChanges/context-menu.png b/src/suncordplugins/notifyUserChanges/context-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f8488164370e95a51f0821c3e27be0cc364402 GIT binary patch literal 4198 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 jUwxNFMuJ-QzjX2UZ; +} + +interface VoiceState { + userId: string; + channelId?: string; + oldChannelId?: string; + deaf: boolean; + mute: boolean; + selfDeaf: boolean; + selfMute: boolean; + selfStream: boolean; + selfVideo: boolean; + sessionId: string; + suppress: boolean; + requestToSpeakTimestamp: string | null; +} + +function shouldBeNative() { + if (typeof Notification === "undefined") return false; + + const { useNative } = Settings.notifications; + if (useNative === "always") return true; + if (useNative === "not-focused") return !document.hasFocus(); + return false; +} + +const SessionsStore = findStoreLazy("SessionsStore"); + +const StatusUtils = findByPropsLazy("useStatusFillColor", "StatusTypes"); + +function Icon(path: string, opts?: { viewBox?: string; width?: number; height?: number; }) { + return ({ color, tooltip, small }: { color: string; tooltip: string; small: boolean; }) => ( + + {(tooltipProps: any) => ( + + + + )} + + ); +} + +const Icons = { + desktop: Icon("M4 2.5c-1.103 0-2 .897-2 2v11c0 1.104.897 2 2 2h7v2H7v2h10v-2h-4v-2h7c1.103 0 2-.896 2-2v-11c0-1.103-.897-2-2-2H4Zm16 2v9H4v-9h16Z"), + web: Icon("M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2Zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93Zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39Z"), + mobile: Icon("M 187 0 L 813 0 C 916.277 0 1000 83.723 1000 187 L 1000 1313 C 1000 1416.277 916.277 1500 813 1500 L 187 1500 C 83.723 1500 0 1416.277 0 1313 L 0 187 C 0 83.723 83.723 0 187 0 Z M 125 1000 L 875 1000 L 875 250 L 125 250 Z M 500 1125 C 430.964 1125 375 1180.964 375 1250 C 375 1319.036 430.964 1375 500 1375 C 569.036 1375 625 1319.036 625 1250 C 625 1180.964 569.036 1125 500 1125 Z", { viewBox: "0 0 1000 1500", height: 17, width: 17 }), + console: Icon("M14.8 2.7 9 3.1V47h3.3c1.7 0 6.2.3 10 .7l6.7.6V2l-4.2.2c-2.4.1-6.9.3-10 .5zm1.8 6.4c1 1.7-1.3 3.6-2.7 2.2C12.7 10.1 13.5 8 15 8c.5 0 1.2.5 1.6 1.1zM16 33c0 6-.4 10-1 10s-1-4-1-10 .4-10 1-10 1 4 1 10zm15-8v23.3l3.8-.7c2-.3 4.7-.6 6-.6H43V3h-2.2c-1.3 0-4-.3-6-.6L31 1.7V25z", { viewBox: "0 0 50 50" }), +}; +type Platform = keyof typeof Icons; + +const PlatformIcon = ({ platform, status, small }: { platform: Platform, status: string; small: boolean; }) => { + const tooltip = platform[0].toUpperCase() + platform.slice(1); + const Icon = Icons[platform] ?? Icons.desktop; + + return ; +}; + +interface PlatformIndicatorProps { + user: User; + wantMargin?: boolean; + wantTopMargin?: boolean; + small?: boolean; + style?: CSSProperties; +} + +const PlatformIndicator = ({ user, wantMargin = true, wantTopMargin = false, small = false, style = {} }: PlatformIndicatorProps) => { + if (!user || user.bot) return null; + + if (user.id === UserStore.getCurrentUser().id) { + const sessions = SessionsStore.getSessions(); + if (typeof sessions !== "object") return null; + const sortedSessions = Object.values(sessions).sort(({ status: a }: any, { status: b }: any) => { + if (a === b) return 0; + if (a === "online") return 1; + if (b === "online") return -1; + if (a === "idle") return 1; + if (b === "idle") return -1; + return 0; + }); + + const ownStatus = Object.values(sortedSessions).reduce((acc: any, curr: any) => { + if (curr.clientInfo.client !== "unknown") + acc[curr.clientInfo.client] = curr.status; + return acc; + }, {}); + + const { clientStatuses } = PresenceStore.getState(); + clientStatuses[UserStore.getCurrentUser().id] = ownStatus; + } + + const status = PresenceStore.getState()?.clientStatuses?.[user.id] as Record; + if (!status) return null; + + const icons = Object.entries(status).map(([platform, status]) => ( + + )); + + if (!icons.length) return null; + + return ( + + {icons} + + ); +}; + +export const settings = definePluginSettings({ + notifyStatus: { + type: OptionType.BOOLEAN, + description: "Notify on status changes", + restartNeeded: false, + default: true, + }, + notifyVoice: { + type: OptionType.BOOLEAN, + description: "Notify on voice channel changes", + restartNeeded: false, + default: false, + }, + userIds: { + type: OptionType.STRING, + description: "User IDs (comma separated)", + restartNeeded: false, + default: "", + } +}); + +function getUserIdList() { + try { + return settings.store.userIds.split(",").filter(Boolean); + } catch (e) { + settings.store.userIds = ""; + return []; + } +} + +// show rich body with user avatar +const getRichBody = (user: User, text: string | React.ReactNode) =>

; + +function triggerVoiceNotification(userId: string, userChannelId: string | null) { + const user = UserStore.getUser(userId); + const myChanId = SelectedChannelStore.getVoiceChannelId(); + + const name = user.username; + + const title = shouldBeNative() ? `User ${name} changed voice status` : "User voice status change"; + if (userChannelId) { + if (userChannelId !== myChanId) { + showNotification({ + title, + body: "joined a new voice channel", + noPersist: true, + richBody: getRichBody(user, `${name} joined a new voice channel`), + }); + } + } else { + showNotification({ + title, + body: "left their voice channel", + noPersist: true, + richBody: getRichBody(user, `${name} left their voice channel`), + }); + } +} + +function toggleUserNotify(userId: string) { + const userIds = getUserIdList(); + if (userIds.includes(userId)) { + userIds.splice(userIds.indexOf(userId), 1); + } else { + userIds.push(userId); + } + settings.store.userIds = userIds.join(","); +} + +interface UserContextProps { + channel?: Channel; + guildId?: string; + user: User; +} + +const UserContext: NavContextMenuPatchCallback = (children, { user }: UserContextProps) => { + if (!user || user.id === UserStore.getCurrentUser().id) return; + const isNotifyOn = getUserIdList().includes(user.id); + const label = isNotifyOn ? "Don't notify on changes" : "Notify on changes"; + const icon = isNotifyOn ? NotificationsOffIcon : NotificationsOnIcon; + + children.splice(-1, 0, ( + + toggleUserNotify(user.id)} + icon={icon} + /> + + )); +}; + +const lastStatuses = new Map(); + +export default definePlugin({ + name: "NotifyUserChanges", + description: "Adds a notify option in the user context menu to get notified when a user changes voice channels or online status", + authors: [Devs.D3SOX], + + settings, + + contextMenus: { + "user-context": UserContext + }, + + flux: { + VOICE_STATE_UPDATES({ voiceStates }: { voiceStates: VoiceState[]; }) { + if (!settings.store.notifyVoice || !settings.store.userIds) { + return; + } + for (const { userId, channelId, oldChannelId } of voiceStates) { + if (channelId !== oldChannelId) { + const isFollowed = getUserIdList().includes(userId); + if (!isFollowed) { + continue; + } + + if (channelId) { + // move or join new channel + triggerVoiceNotification(userId, channelId); + } else if (oldChannelId) { + // leave + triggerVoiceNotification(userId, null); + } + } + } + }, + PRESENCE_UPDATES({ updates }: { updates: PresenceUpdate[] }) { + if (!settings.store.notifyStatus || !settings.store.userIds) { + return; + } + for (const { user: { id: userId, username }, status } of updates) { + const isFollowed = getUserIdList().includes(userId); + if (!isFollowed) { + continue; + } + + // this is also triggered for multiple guilds and when only the activities change, so we have to check if the status actually changed + if (lastStatuses.has(userId) && lastStatuses.get(userId) !== status) { + const user = UserStore.getUser(userId); + const name = username ?? user.username; + + showNotification({ + title: shouldBeNative() ? `User ${name} changed status` : "User status change", + body: `is now ${status}`, + noPersist: true, + richBody: getRichBody(user, `${name}'s status is now ${status}`), + }); + } + lastStatuses.set(userId, status); + } + } + }, + +}); diff --git a/src/suncordplugins/notifyUserChanges/screenshot.png b/src/suncordplugins/notifyUserChanges/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..574993a37d2c43093a9aa0d58a3765d2c30bf1e9 GIT binary patch literal 11129 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 literal 0 HcmV?d00001 diff --git a/src/suncordplugins/screenShareStreamerMode/README.md b/src/suncordplugins/screenShareStreamerMode/README.md new file mode 100644 index 00000000..cd71aae0 --- /dev/null +++ b/src/suncordplugins/screenShareStreamerMode/README.md @@ -0,0 +1,5 @@ +# ScreenShareStreamerMode + +Automatically enables streamer mode while screen sharing + +![Streamer Mode](./streamer-mode.png) diff --git a/src/suncordplugins/screenShareStreamerMode/index.ts b/src/suncordplugins/screenShareStreamerMode/index.ts new file mode 100644 index 00000000..ca9b7e44 --- /dev/null +++ b/src/suncordplugins/screenShareStreamerMode/index.ts @@ -0,0 +1,66 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { findByPropsLazy } from "@webpack"; +import { UserStore } from "@webpack/common"; + +interface StreamEvent { + streamKey: string; +} + +interface StreamCreateEvent extends StreamEvent { + type: "STREAM_CREATE"; + region: string; + viewerIds: string[]; + rtcServerId: string; + paused: boolean; +} + +interface StreamCloseEvent extends StreamEvent { + type: "STREAM_CLOSE"; + streamKey: string; + canShowFeedback: boolean; +} + +interface StreamerModeSettings { + enabled: boolean; + autoToggle: boolean; + hideInstantInvites: boolean; + hidePersonalInformation: boolean; + disableSounds: boolean; + disableNotifications: boolean; + enableContentProtection: boolean; +} + +const StreamerModeActions: { + setEnabled(enabled: boolean): void; + update(settings: StreamerModeSettings): void; +} = findByPropsLazy("setEnabled", "update"); + +function isSelf(streamKey: string) { + return streamKey.split(":").at(-1) === UserStore.getCurrentUser().id; +} + +export default definePlugin({ + name: "ScreenShareStreamerMode", + description: "Automatically enables streamer mode while screen sharing", + authors: [Devs.D3SOX], + + flux: { + STREAM_CREATE({ streamKey }: StreamCreateEvent) { + if (isSelf(streamKey)) { + StreamerModeActions.setEnabled(true); + } + }, + STREAM_CLOSE({ streamKey }: StreamCloseEvent) { + if (isSelf(streamKey)) { + StreamerModeActions.setEnabled(false); + } + }, + } +}); diff --git a/src/suncordplugins/screenShareStreamerMode/streamer-mode.png b/src/suncordplugins/screenShareStreamerMode/streamer-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..452383ad429fb86456c1bd8f2ed139f5687e28ba GIT binary patch literal 6830 zcmYj$1ymH@`~HHG(x9|7NOw!4bO=b7tkNOfARr9_O2djYOLxPPOLuojNQ1zF#PS>c zeE;YC-*a|%&dluGd*6BEd7c}osjh&FO@R#pfpC=+<+VT{RNxRqhlvh+SCA4*13y?F z6%AZLAiSQxACx3^JW3FV!dyvSM#sza2;!+vGPl?f*rH;vuZ4ypqpA7$DZ#io%B$X0 zaOu3-M31$Pq?%)turROi6+D$JR!N{&9<0Mb=-a)T#9X8=ou`=8zI_W`2{kb%Rf!QE zJ@NjkunU2txvsjbo`2`hwYI-bVSD_aeSgt&gYmy(BoY(r(?9DVj)(_g{{|(2$;Nu0dOMdRZi4mx&2bvA=k1_3D+KYaUC5uY? z*G~ISPd#W4Y_pLYEXk!Mp)%>{cUZ09|sN+oLCWo0= za6SvTJQB?XjF-CJ!8?M^ndg1<5iWF zvoQxlLFoR!6@(@oOP|neB08FH#VvNN2R0k^;bVKn+&)_`iy$xUfq73YPpLngg8RB7 zdTA;G!i16HiVvq*gMqUe=D>rZe_9w+dlRi4WefyYgm0|O8u)&Jp_7isgN$%y%t$@0m zGW(H8iY*PFP0rzb=4%gY_02QNJP0h*%1%MHxgoDKFUmhdy9lalU9o#~qB^c^TBO4^ zO4SUntM!8%m?#bOt}bBPr6p3sOvaJrTpsGlpAn}!*Q@M{;5G&HSy8!^ALXXkb)Na9 zwNcs_e2wn8`s~Ci^70p#y>+3~q+_f0m5JNq!|A8rCFeyAzxr@x)P$GsW#urPE2Hda z5f7f|FeF4oMx6E5)G?rWf1sLAS2j>eLTZ3;_Oq`dK!eI9{fZ+D0+W;pianhUq^yG# zY67M9BYUeb+%M&`@6FgZ*XyIFb!HIaMYo)-R_q+5s-jg_*uoW0_xcYkN=Jg;J--fb zOh|g8csxQxz0lpYvh=<31x;RZ0VAY;tLsda+FS7|`R@XLd59`_noS}UKI(A;ZWMLr z35jTLr&>+;k~aMr@s3lZ>H+(E8THwj6MTEiSe?2E*VrO5B0{p=>qhL2mQH8(wE*_{ zpj)}OwJ(KL@NtGMEl`bh+DVU_5uqx7|@4CPKmQU;4EdZZ@@MpBE>!qr5$2=|YMwMku z4cf?D?5~)bFYUUM5{p2zp@NrkI^CXQI8MZy01h%a*@C?J>tgIw$0x9KmNtgU?*)U-WZ! zuNt&T3b^=?Ed@v@4F5tz^jgT%0~r$)TC)lI#m^T%P~o8f)d|9UJ&FnLmAa}5R4GRI zr0=R|4BPOa6cs0GztL68dJ|;W$0PV{9BgjnxbgyC7pl5@w{UVrM-NZgXA>`ov3-rVN#}lVJD+1m69i6v>YqQ~SiZ(Dy-TaZvAs5T#Yn znNx5EJ0xI#-=^=^uGqH}lbp+xNN&&G(SfMzy4~3QW;)XwE1dG@e88IkTF>vHuMCSa zUGb(d1A_j`c3$ERHi3W}Bz@-|tuZ?s)}MerOh5LcPmj>BBLycqfW1E}BM$wH|pu69GJ? zIG+q(=$^w}tmCDbGVgESw;1kwZgt#Z>3(J`v@~bh(JKef$ilbiJ>F}r^Wp)@4Z5^x z?t6=#xfdkLlf@4s>x?=uOR8`K*@jW zH_FGOx)Akux|06ic5eg6N`p!o)6+EoEFeY+D=yh;Ba*Al2<%`tTE0f?K8ky?Cnq1nEgq=xUU|#K64&(A*%5XD>}h0L z6P5|s4-50s{G@<{`AUCuh#{bB*jQLN1F1`*oFDafWtLe^3w4r_MRds8gROGc?~;

KV23;vCV;$Y@&NvsY#* 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 void; + setPendingBanner: (a: string | undefined) => void; + setPendingBio: (a: string | undefined) => void; + setPendingNickname: (a: string | null) => void; + setPendingPronouns: (a: string | null) => void; + setPendingThemeColors: (a: number[] | undefined) => void; +} = findByPropsLazy("setPendingNickname", "setPendingPronouns"); + +export default definePlugin({ + name: "ServerProfilesToolbox", + authors: [Devs.D3SOX], + description: "Adds a copy/paste/reset button to the server profiles editor", + + patchServerProfiles({ guildId }: { guildId: string }) { + const currentUser = UserStore.getCurrentUser(); + const premiumType = currentUser.premiumType ?? 0; + + return +

+ + + +
+ ; + }, + + patches: [ + { + find: ".PROFILE_CUSTOMIZATION_GUILD_SELECT_TITLE", + replacement: { + match: /return\(0(.{10,350})\}\)\}\)\}/, + replace: "return [(0$1})}),$self.patchServerProfiles(e)]}" + } + } + ], + +}); diff --git a/src/suncordplugins/serverProfilesToolbox/screenshot.png b/src/suncordplugins/serverProfilesToolbox/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..71d097fc45d2d33e7ba07fd58c58e78257996154 GIT binary patch literal 33589 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 T8@?w5_>hrM{9Gxf>;Jz1VUHb@ literal 0 HcmV?d00001