0 ? "File too large to copy" : "Copy File Contents"}>
+ {tooltipProps => (
+ {
+ if (!recentlyCopied && bytesLeft <= 0) {
+ copyWithToast(fileContents);
+ setRecentlyCopied(true);
+ setTimeout(() => setRecentlyCopied(false), 2000);
+ }
+ }}
+ >
+ {recentlyCopied ? : bytesLeft > 0 ? : }
+
+ )}
+
+ );
+ }, { noop: true }),
+});
diff --git a/src/plugins/copyFileContents/style.css b/src/plugins/copyFileContents/style.css
new file mode 100644
index 00000000..c643cf0f
--- /dev/null
+++ b/src/plugins/copyFileContents/style.css
@@ -0,0 +1,8 @@
+.vc-cfc-button {
+ color: var(--interactive-normal);
+ cursor: pointer;
+}
+
+.vc-cfc-button:hover {
+ color: var(--interactive-hover);
+}
diff --git a/src/plugins/ignoreActivities/README.md b/src/plugins/ignoreActivities/README.md
new file mode 100644
index 00000000..abc75720
--- /dev/null
+++ b/src/plugins/ignoreActivities/README.md
@@ -0,0 +1,13 @@
+# IgnoreActivities
+
+Ignore activities from showing up on your status ONLY. You can configure which ones are specifically ignored from the Registered Games and Activities tabs, or use the general settings.
+
+
+
+
+
+
+
+The activity stays showing as a detected game even if ignored, differently from the stock Toggle Detection button from Discord:
+
+
diff --git a/src/plugins/ignoreActivities/index.tsx b/src/plugins/ignoreActivities/index.tsx
index 9e6c21bd..02261b5b 100644
--- a/src/plugins/ignoreActivities/index.tsx
+++ b/src/plugins/ignoreActivities/index.tsx
@@ -237,7 +237,7 @@ function isActivityTypeIgnored(type: number, id?: string) {
export default definePlugin({
name: "IgnoreActivities",
authors: [Devs.Nuckyz, Devs.Kylie],
- description: "Ignore activities from showing up on your status ONLY. You can configure which ones are specifically ignored from the Registered Games and Activities tabs, or use the general settings below.",
+ description: "Ignore activities from showing up on your status ONLY. You can configure which ones are specifically ignored from the Registered Games and Activities tabs, or use the general settings below",
dependencies: ["UserSettingsAPI"],
settings,
@@ -266,6 +266,7 @@ export default definePlugin({
replace: (m, props, nowPlaying) => `${m}$self.renderToggleGameActivityButton(${props},${nowPlaying}),`
}
},
+ // Discord has 3 different components for activities. Currently, the last is the one being used
{
find: ".activityTitleText,variant",
replacement: {
@@ -279,6 +280,13 @@ export default definePlugin({
match: /\.activityCardDetails.+?children:(\i\.application)\.name.*?}\),/,
replace: (m, props) => `${m}$self.renderToggleActivityButton(${props}),`
}
+ },
+ {
+ find: ".promotedLabelWrapperNonBanner,children",
+ replacement: {
+ match: /\.appDetailsHeaderContainer.+?children:\i.*?}\),(?<=application:(\i).+?)/,
+ replace: (m, props) => `${m}$self.renderToggleActivityButton(${props}),`
+ }
}
],
diff --git a/src/plugins/stickerPaste/README.md b/src/plugins/stickerPaste/README.md
new file mode 100644
index 00000000..a2917027
--- /dev/null
+++ b/src/plugins/stickerPaste/README.md
@@ -0,0 +1,3 @@
+# StickerPaste
+
+Makes picking a sticker in the sticker picker insert it into the chatbox instead of instantly sending.
diff --git a/src/plugins/timeBarAllActivities/README.md b/src/plugins/timeBarAllActivities/README.md
new file mode 100644
index 00000000..59f0451c
--- /dev/null
+++ b/src/plugins/timeBarAllActivities/README.md
@@ -0,0 +1,5 @@
+# TimeBarAllActivities
+
+Adds the Spotify time bar to all activities if they have start and end timestamps.
+
+
diff --git a/src/plugins/volumeBooster/README.md b/src/plugins/volumeBooster/README.md
new file mode 100644
index 00000000..62bd5ab5
--- /dev/null
+++ b/src/plugins/volumeBooster/README.md
@@ -0,0 +1,9 @@
+# Volume Booster
+
+Allows you to boost the volume over 200% on desktop and over 100% on other clients.
+
+Works on users, bots, and streams!
+
+
+
+
diff --git a/src/plugins/volumeBooster/index.ts b/src/plugins/volumeBooster/index.ts
index 3ab47b19..02a955a8 100644
--- a/src/plugins/volumeBooster/index.ts
+++ b/src/plugins/volumeBooster/index.ts
@@ -69,7 +69,7 @@ export default definePlugin({
// Patches needed for web/vesktop
{
find: "streamSourceNode",
- predicate: () => IS_WEB,
+ predicate: () => !IS_DISCORD_DESKTOP,
group: true,
replacement: [
// Remove rounding algorithm