From e857f6806fa181596c160ce867b6b90e8a3895eb Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 5 Sep 2025 03:55:38 +0200 Subject: [PATCH] ShowMeYourName: respect streamer mode --- .../discord-types/src/stores/StreamerModeStore.d.ts | 11 +++++++++++ packages/discord-types/src/stores/index.d.ts | 1 + src/plugins/showMeYourName/index.tsx | 6 ++++-- src/webpack/common/stores.ts | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 packages/discord-types/src/stores/StreamerModeStore.d.ts diff --git a/packages/discord-types/src/stores/StreamerModeStore.d.ts b/packages/discord-types/src/stores/StreamerModeStore.d.ts new file mode 100644 index 00000000..efa6cfc9 --- /dev/null +++ b/packages/discord-types/src/stores/StreamerModeStore.d.ts @@ -0,0 +1,11 @@ +import { FluxStore } from "@vencord/discord-types"; + +export class StreamerModeStore extends FluxStore { + get autoToggle(): boolean; + get disableNotifications(): boolean; + get disableSounds(): boolean; + get enableContentProtection(): boolean; + get enabled(): boolean; + get hideInstantInvites(): boolean; + get hidePersonalInformation(): boolean; +} diff --git a/packages/discord-types/src/stores/index.d.ts b/packages/discord-types/src/stores/index.d.ts index 5906262a..a843445b 100644 --- a/packages/discord-types/src/stores/index.d.ts +++ b/packages/discord-types/src/stores/index.d.ts @@ -12,6 +12,7 @@ export * from "./RelationshipStore"; export * from "./SelectedChannelStore"; export * from "./SelectedGuildStore"; export * from "./StickersStore"; +export * from "./StreamerModeStore"; export * from "./ThemeStore"; export * from "./TypingStore"; export * from "./UserProfileStore"; diff --git a/src/plugins/showMeYourName/index.tsx b/src/plugins/showMeYourName/index.tsx index 623c70ca..24a1121d 100644 --- a/src/plugins/showMeYourName/index.tsx +++ b/src/plugins/showMeYourName/index.tsx @@ -11,7 +11,7 @@ import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; import { Channel, Message, User } from "@vencord/discord-types"; -import { RelationshipStore } from "@webpack/common"; +import { RelationshipStore, StreamerModeStore } from "@webpack/common"; interface UsernameProps { author: { nick: string; authorId: string; }; @@ -74,7 +74,9 @@ export default definePlugin({ const { mode, friendNicknames, displayNames, inReplies } = settings.store; const user = userOverride ?? message.author; - let { username } = user; + let username = StreamerModeStore.enabled + ? user.username[0] + "…" + : user.username; if (displayNames) username = user.globalName || username; diff --git a/src/webpack/common/stores.ts b/src/webpack/common/stores.ts index b1877b08..1e3e5797 100644 --- a/src/webpack/common/stores.ts +++ b/src/webpack/common/stores.ts @@ -54,6 +54,7 @@ export let StickersStore: t.StickersStore; export let ThemeStore: t.ThemeStore; export let WindowStore: t.WindowStore; export let DraftStore: t.DraftStore; +export let StreamerModeStore: t.StreamerModeStore; /** * @see jsdoc of {@link t.useStateFromStores} @@ -81,6 +82,7 @@ waitForStore("EmojiStore", m => EmojiStore = m); waitForStore("StickersStore", m => StickersStore = m); waitForStore("TypingStore", m => TypingStore = m); waitForStore("VoiceStateStore", m => VoiceStateStore = m); +waitForStore("StreamerModeStore", m => StreamerModeStore = m); waitForStore("ThemeStore", m => { ThemeStore = m; // Importing this directly can easily cause circular imports. For this reason, use a non import access here.