From f5a3d4e89ecc0e93c8bb46f20df451eea02309f1 Mon Sep 17 00:00:00 2001
From: thororen1234 <78185467+thororen1234@users.noreply.github.com>
Date: Mon, 15 Sep 2025 00:15:30 -0400
Subject: [PATCH] EquicordHelper: Update Support Buttons
---
src/equicordplugins/equicordHelper/index.tsx | 38 +++++++++++++-------
src/utils/misc.ts | 16 +++++++--
2 files changed, 39 insertions(+), 15 deletions(-)
diff --git a/src/equicordplugins/equicordHelper/index.tsx b/src/equicordplugins/equicordHelper/index.tsx
index b9f9ea77c..6edc80c39 100644
--- a/src/equicordplugins/equicordHelper/index.tsx
+++ b/src/equicordplugins/equicordHelper/index.tsx
@@ -7,10 +7,11 @@
import "@equicordplugins/_misc/styles.css";
import { definePluginSettings, Settings } from "@api/Settings";
-import { Devs, EQUICORD_HELPERS, EquicordDevs, GUILD_ID } from "@utils/constants";
+import { Devs, EquicordDevs } from "@utils/constants";
import { Logger } from "@utils/Logger";
+import { isEquicordGuild, isEquicordSupport } from "@utils/misc";
import definePlugin, { OptionType } from "@utils/types";
-import { Button, ChannelStore, Flex, GuildMemberStore, showToast, Toasts } from "@webpack/common";
+import { Button, Flex, showToast, Toasts } from "@webpack/common";
import { JSX } from "react";
import { toggleEnabled } from "./utils";
@@ -80,37 +81,48 @@ export default definePlugin({
function pluginToggleButtons(props) {
const buttons = [] as JSX.Element[];
-
- const equicordSupport = GuildMemberStore.getMember(GUILD_ID, props.message.author.id)?.roles?.includes(EQUICORD_HELPERS);
-
const msg = props.message.content?.toLowerCase() ?? "";
const contentWords = (msg.match(/`\w+`/g) ?? []).map(e => e.slice(1, -1));
const matchedPlugins = Object.keys(Vencord.Plugins.plugins).filter(name => contentWords.includes(name.toLowerCase()));
const matchedPlugin = matchedPlugins.sort((a, b) => b.length - a.length)[0];
- const pluginData = matchedPlugin && Vencord.Plugins.plugins[matchedPlugin];
- const equicordGuild = ChannelStore.getChannel(props.channel.id)?.guild_id === GUILD_ID;
- const ableCheck = msg.startsWith("enable") || msg.startsWith("disable");
- const shouldAddPluginButtons = equicordGuild && equicordSupport && matchedPlugin && pluginData && ableCheck;
+ const pluginData = matchedPlugin ? Vencord.Plugins.plugins[matchedPlugin] : null;
+
+ const isEquicord = isEquicordGuild(props.channel.id) && isEquicordSupport(props.message.author.id);
+ const startsWithEnabled = msg.startsWith("enable");
+ const startsWithDisabled = msg.startsWith("disable");
+
+ const shouldAddPluginButtons = pluginData && isEquicord && (startsWithEnabled || startsWithDisabled);
if (shouldAddPluginButtons) {
if (pluginData.required || pluginData.name.endsWith("API")) return;
const isEnabled = Vencord.Plugins.isPluginEnabled(matchedPlugin);
+
+ let label = `${matchedPlugin} is already ${isEnabled ? "enabled" : "disabled"}`;
+ let disabled = true;
+
+ if ((startsWithDisabled && isEnabled) || (startsWithEnabled && !isEnabled)) {
+ label = `${isEnabled ? "Disable" : "Enable"} ${matchedPlugin}`;
+ disabled = false;
+ }
+
buttons.push(
);
}
diff --git a/src/utils/misc.ts b/src/utils/misc.ts
index 5c5848ccd..5eea811f7 100644
--- a/src/utils/misc.ts
+++ b/src/utils/misc.ts
@@ -16,10 +16,10 @@
* along with this program. If not, see .
*/
-import { Toasts } from "@webpack/common";
+import { ChannelStore, GuildMemberStore, Toasts } from "@webpack/common";
import { copyToClipboard } from "./clipboard";
-import { EquicordDevsById, VencordDevsById } from "./constants";
+import { EQUICORD_HELPERS, EquicordDevsById, GUILD_ID, VencordDevsById } from "./constants";
/**
* Calls .join(" ") on the arguments
@@ -116,3 +116,15 @@ export function tryOrElse(func: () => T, fallback: T): T {
return fallback;
}
}
+
+export const isEquicordGuild = (id: string, isGuildId: boolean = false) => {
+ if (isGuildId) return id === GUILD_ID;
+
+ const channel = ChannelStore.getChannel(id);
+ return channel.guild_id === GUILD_ID;
+};
+
+export const isEquicordSupport = (id: string) => {
+ const member = GuildMemberStore.getMember(GUILD_ID, id);
+ return member?.roles?.includes(EQUICORD_HELPERS);
+};