From 6e3a8ded8b86673738187ed10ff7cfb28cb65a4e Mon Sep 17 00:00:00 2001 From: ExoDev Date: Sat, 11 Jan 2025 07:35:46 -0600 Subject: [PATCH 1/8] MoreCommands Plugin Update ( exodev ) (#119) * Update index.ts * Added ExoDev * Update index.ts * Update index.ts --- src/plugins/moreCommands/index.ts | 186 +++++++++++++++++++++++++++++- src/utils/constants.ts | 4 + 2 files changed, 184 insertions(+), 6 deletions(-) diff --git a/src/plugins/moreCommands/index.ts b/src/plugins/moreCommands/index.ts index 02f3c373..f6e30aef 100644 --- a/src/plugins/moreCommands/index.ts +++ b/src/plugins/moreCommands/index.ts @@ -16,11 +16,10 @@ * along with this program. If not, see . */ -import { ApplicationCommandInputType, findOption, OptionalMessageOption, RequiredMessageOption, sendBotMessage } from "@api/Commands"; -import { Devs } from "@utils/constants"; +import { ApplicationCommandInputType, ApplicationCommandOptionType, findOption, OptionalMessageOption, RequiredMessageOption, sendBotMessage } from "@api/Commands"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; - function mock(input: string): string { let output = ""; for (let i = 0; i < input.length; i++) { @@ -31,8 +30,8 @@ function mock(input: string): string { export default definePlugin({ name: "MoreCommands", - description: "echo, lenny, mock", - authors: [Devs.Arjix, Devs.echo, Devs.Samu], + description: "Echo, Lenny, Mock, and More", + authors: [Devs.Arjix, Devs.echo, Devs.Samu, EquicordDevs.ExoDev], commands: [ { name: "echo", @@ -41,7 +40,6 @@ export default definePlugin({ inputType: ApplicationCommandInputType.BOT, execute: (opts, ctx) => { const content = findOption(opts, "message", ""); - sendBotMessage(ctx.channel.id, { content }); }, }, @@ -61,5 +59,181 @@ export default definePlugin({ content: mock(findOption(opts, "message", "")) }), }, + { + name: "reverse", + description: "Reverses the input message", + options: [RequiredMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "").split("").reverse().join("") + }), + }, + { + name: "uppercase", + description: "Converts the message to uppercase", + options: [RequiredMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "").toUpperCase() + }), + }, + { + name: "lowercase", + description: "Converts the message to lowercase", + options: [RequiredMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "").toLowerCase() + }), + }, + { + name: "wordcount", + description: "Counts the number of words in a message", + options: [RequiredMessageOption], + inputType: ApplicationCommandInputType.BOT, + execute: (opts, ctx) => { + const message = findOption(opts, "message", ""); + const wordCount = message.trim().split(/\s+/).length; + sendBotMessage(ctx.channel.id, { + content: `The message contains ${wordCount} words.` + }); + }, + }, + { + name: "servertime", + description: "Displays the current server time", + options: [], + execute: () => { + const currentTime = new Date().toLocaleString(); + return { + content: `The current server time is: ${currentTime}` + }; + }, + }, + { + name: "ping", + description: "Pings the bot to check if it's responding", + options: [], + inputType: ApplicationCommandInputType.BOT, + execute: (opts, ctx) => { + sendBotMessage(ctx.channel.id, { + content: "Pong!" + }); + }, + }, + { + name: "rolldice", + description: "Roll a die with the specified number of sides", + options: [RequiredMessageOption], + execute: opts => { + const sides = parseInt(findOption(opts, "message", "6")); + const roll = Math.floor(Math.random() * sides) + 1; + return { + content: `You rolled a ${roll}!` + }; + }, + }, + { + name: "flipcoin", + description: "Flips a coin and returns heads or tails", + options: [], + execute: () => { + const flip = Math.random() < 0.5 ? "Heads" : "Tails"; + return { + content: `The coin landed on: ${flip}` + }; + }, + }, + { + name: "ask", + description: "Ask a yes/no question and get an answer", + options: [RequiredMessageOption], + execute: opts => { + const question = findOption(opts, "message", ""); + const responses = [ + "Yes", "No", "Maybe", "Ask again later", "Definitely not", "It is certain" + ]; + const response = responses[Math.floor(Math.random() * responses.length)]; + return { + content: `${question} - ${response}` + }; + }, + }, + { + name: "randomnumber", + description: "Generates a random number between two values", + options: [ + { + name: "min", + description: "Minimum value", + type: ApplicationCommandOptionType.INTEGER, + required: true + }, + { + name: "max", + description: "Maximum value", + type: ApplicationCommandOptionType.INTEGER, + required: true + } + ], + execute: opts => { + const min = parseInt(findOption(opts, "min", "0")); + const max = parseInt(findOption(opts, "max", "100")); + const number = Math.floor(Math.random() * (max - min + 1)) + min; + return { + content: `Random number between ${min} and ${max}: ${number}` + }; + } + }, + { + name: "countdown", + description: "Starts a countdown from a specified number", + options: [ + { + name: "number", + description: "Number to countdown from (max 10)", + type: ApplicationCommandOptionType.INTEGER, + required: true + } + ], + inputType: ApplicationCommandInputType.BOT, + execute: async (opts, ctx) => { + const number = Math.min(parseInt(findOption(opts, "number", "5")), 10); + + if (isNaN(number) || number < 1) { + sendBotMessage(ctx.channel.id, { + content: "Please provide a valid number between 1 and 10!" + }); + return; + } + + sendBotMessage(ctx.channel.id, { + content: `Starting countdown from ${number}...` + }); + + for (let i = number; i >= 0; i--) { + await new Promise(resolve => setTimeout(resolve, 1000)); + sendBotMessage(ctx.channel.id, { + content: i === 0 ? "🎉 Go! 🎉" : `${i}...` + }); + } + }, + }, + { + name: "choose", + description: "Randomly chooses from provided options", + options: [ + { + name: "choices", + description: "Comma-separated list of choices", + type: ApplicationCommandOptionType.STRING, + required: true + } + ], + execute: opts => { + const choices = findOption(opts, "choices", "").split(",").map(c => c.trim()); + const choice = choices[Math.floor(Math.random() * choices.length)]; + return { + content: `I choose: ${choice}` + }; + } + } ] }); diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 11f3680c..af1e7866 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -967,6 +967,10 @@ export const EquicordDevs = Object.freeze({ vappstar: { name: "vappstar", id: 747192967311261748n + }, + ExoDev: { + name: "ExoDev", + id: 1325655837003223137n } } satisfies Record); From a873ca2600b3d4730a916d12176539f84c9b7937 Mon Sep 17 00:00:00 2001 From: Cortex <126973723+verysillycat@users.noreply.github.com> Date: Sat, 11 Jan 2025 13:08:47 -0600 Subject: [PATCH 2/8] readme(installing): add aur --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3791e109..701ce225 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ MacOS Linux - [CLI](https://github.com/Equicord/Equilotl/releases/latest/download/EquilotlCli-Linux) +- [AUR](https://aur.archlinux.org/packages?O=0&K=equibop) ```shell sh -c "$(curl -sS https://raw.githubusercontent.com/Equicord/Equicord/refs/heads/main/misc/install.sh)" ``` From a53257634e293e6af40c1f3560870ef7203d63dd Mon Sep 17 00:00:00 2001 From: Nuckyz <61953774+Nuckyz@users.noreply.github.com> Date: Sat, 11 Jan 2025 23:43:25 -0300 Subject: [PATCH 3/8] Fix Reporter action --- scripts/generateReport.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/generateReport.ts b/scripts/generateReport.ts index c18bc14a..24af628b 100644 --- a/scripts/generateReport.ts +++ b/scripts/generateReport.ts @@ -37,7 +37,8 @@ const CANARY = process.env.USE_CANARY === "true"; const browser = await pup.launch({ headless: true, - executablePath: process.env.CHROMIUM_BIN + executablePath: process.env.CHROMIUM_BIN, + args: ["--no-sandbox"] }); const page = await browser.newPage(); From c339ff641f8af1f7ad0f00a52128c963c9d4d78f Mon Sep 17 00:00:00 2001 From: ExoDev Date: Sun, 12 Jan 2025 18:53:11 -0600 Subject: [PATCH 4/8] MoreCommands update (#120) * Update index.ts * Added ExoDev * Update index.ts * Update index.ts * Added More commands and its a tsx now :D --------- Co-authored-by: thororen1234 Co-authored-by: thororen1234 <78185467+thororen1234@users.noreply.github.com> --- .../moreCommands/{index.ts => index.tsx} | 123 +++++++++++++++--- 1 file changed, 108 insertions(+), 15 deletions(-) rename src/plugins/moreCommands/{index.ts => index.tsx} (63%) diff --git a/src/plugins/moreCommands/index.ts b/src/plugins/moreCommands/index.tsx similarity index 63% rename from src/plugins/moreCommands/index.ts rename to src/plugins/moreCommands/index.tsx index f6e30aef..88a8f22d 100644 --- a/src/plugins/moreCommands/index.ts +++ b/src/plugins/moreCommands/index.tsx @@ -20,6 +20,7 @@ import { ApplicationCommandInputType, ApplicationCommandOptionType, findOption, import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; + function mock(input: string): string { let output = ""; for (let i = 0; i < input.length; i++) { @@ -40,6 +41,7 @@ export default definePlugin({ inputType: ApplicationCommandInputType.BOT, execute: (opts, ctx) => { const content = findOption(opts, "message", ""); + sendBotMessage(ctx.channel.id, { content }); }, }, @@ -96,17 +98,6 @@ export default definePlugin({ }); }, }, - { - name: "servertime", - description: "Displays the current server time", - options: [], - execute: () => { - const currentTime = new Date().toLocaleString(); - return { - content: `The current server time is: ${currentTime}` - }; - }, - }, { name: "ping", description: "Pings the bot to check if it's responding", @@ -134,7 +125,7 @@ export default definePlugin({ name: "flipcoin", description: "Flips a coin and returns heads or tails", options: [], - execute: () => { + execute: (opts, ctx) => { const flip = Math.random() < 0.5 ? "Heads" : "Tails"; return { content: `The coin landed on: ${flip}` @@ -156,6 +147,48 @@ export default definePlugin({ }; }, }, + { + name: "randomcat", + description: "Get a random cat picture", + options: [], + execute: (opts, ctx) => { + return (async () => { + try { + const response = await fetch("https://api.thecatapi.com/v1/images/search"); + if (!response.ok) throw new Error("Failed to fetch cat image"); + const data = await response.json(); + return { + content: data[0].url + }; + } catch (err) { + sendBotMessage(ctx.channel.id, { + content: "Sorry, couldn't fetch a cat picture right now 😿" + }); + } + })(); + }, + }, + { + name: "randomdog", + description: "Get a random ddog picture", + options: [], + execute: (opts, ctx) => { + return (async () => { + try { + const response = await fetch("https://api.thedogapi.com/v1/images/search"); + if (!response.ok) throw new Error("Failed to fetch dog image"); + const data = await response.json(); + return { + content: data[0].url + }; + } catch (err) { + sendBotMessage(ctx.channel.id, { + content: "Sorry, couldn't fetch a cat picture right now 🐶" + }); + } + })(); + }, + }, { name: "randomnumber", description: "Generates a random number between two values", @@ -196,18 +229,15 @@ export default definePlugin({ inputType: ApplicationCommandInputType.BOT, execute: async (opts, ctx) => { const number = Math.min(parseInt(findOption(opts, "number", "5")), 10); - if (isNaN(number) || number < 1) { sendBotMessage(ctx.channel.id, { content: "Please provide a valid number between 1 and 10!" }); return; } - sendBotMessage(ctx.channel.id, { content: `Starting countdown from ${number}...` }); - for (let i = number; i >= 0; i--) { await new Promise(resolve => setTimeout(resolve, 1000)); sendBotMessage(ctx.channel.id, { @@ -234,6 +264,69 @@ export default definePlugin({ content: `I choose: ${choice}` }; } + }, + { + name: "systeminfo", + description: "Shows system information", + options: [], + execute: async (opts, ctx) => { + try { + const { userAgent, hardwareConcurrency, onLine, languages } = navigator; + const { width, height, colorDepth } = window.screen; + const { deviceMemory, connection }: { deviceMemory: any, connection: any; } = navigator as any; + const platform = userAgent.includes("Windows") ? "Windows" : + userAgent.includes("Mac") ? "MacOS" : + userAgent.includes("Linux") ? "Linux" : "Unknown"; + const isMobile = /Mobile|Android|iPhone/i.test(userAgent); + const deviceType = isMobile ? "Mobile" : "Desktop"; + const browserInfo = userAgent.match(/(?:chrome|firefox|safari|edge|opr)\/?\s*(\d+)/i)?.[0] || "Unknown"; + const networkInfo = connection ? `${connection.effectiveType || "Unknown"}` : "Unknown"; + const info = [ + `> **Platform**: ${platform}`, + `> **Device Type**: ${deviceType}`, + `> **Browser**: ${browserInfo}`, + `> **CPU Cores**: ${hardwareConcurrency || "N/A"}`, + `> **Memory**: ${deviceMemory ? `${deviceMemory}GB` : "N/A"}`, + `> **Screen**: ${width}x${height} (${colorDepth}bit)`, + `> **Languages**: ${languages?.join(", ")}`, + `> **Network**: ${networkInfo} (${onLine ? "Online" : "Offline"})` + ].join("\n"); + return { content: info }; + } catch (err) { + sendBotMessage(ctx.channel.id, { content: "Failed to fetch system information" }); + } + }, + }, + { + name: "getUptime", + description: "Returns the system uptime", + execute: async (opts, ctx) => { + const uptime = performance.now() / 1000; + const uptimeInfo = `> **System Uptime**: ${Math.floor(uptime / 60)} minutes`; + return { content: uptimeInfo }; + }, + }, + { + name: "getTime", + description: "Returns the current server time", + execute: async (opts, ctx) => { + const currentTime = new Date().toLocaleString(); + return { content: `> **Current Time**: ${currentTime}` }; + }, + }, + { + name: "getLocation", + description: "Returns the user's approximate location based on IP", + execute: async (opts, ctx) => { + try { + const response = await fetch("https://ipapi.co/json/"); + const data = await response.json(); + const locationInfo = `> **Country**: ${data.country_name}\n> **Region**: ${data.region}\n> **City**: ${data.city}`; + return { content: locationInfo }; + } catch (err) { + sendBotMessage(ctx.channel.id, { content: "Failed to fetch location information" }); + } + }, } ] }); From 602e76574328c5b1eb7bc7cca965b0cea1c527c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E2=82=ACth?= <143244075+wont-stream@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:03:48 -0500 Subject: [PATCH 5/8] Remove unmaintained plugins from Equicord (#122) * remove DisableAnimations from the list of plugins in README.md * remove GrammarFix plugin from the list in README.md * remove DisableAnimations plugin from the project * remove GrammarFix plugin implementation * remove seth from EquicordDevs constants * Update README.md --- README.md | 4 +- .../disableAnimations.desktop/index.ts | 53 ---------- src/equicordplugins/grammarFix/index.ts | 98 ------------------- src/utils/constants.ts | 4 - 4 files changed, 1 insertion(+), 158 deletions(-) delete mode 100644 src/equicordplugins/disableAnimations.desktop/index.ts delete mode 100644 src/equicordplugins/grammarFix/index.ts diff --git a/README.md b/README.md index 701ce225..1038d6ca 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ You can join our [discord server](https://discord.gg/5Xh2W87egW) for commits, ch ### Extra included plugins
-151 additional plugins +149 additional plugins ### All Platforms - AllCallTimers by MaxHerbold & D3SOX @@ -44,7 +44,6 @@ You can join our [discord server](https://discord.gg/5Xh2W87egW) for commits, ch - DecodeBase64 by ThePirateStoner - DeadMembers by Kyuuhachi - Demonstration by Samwich -- DisableAnimations by S€th - DisableCameras by Joona - DoNotLeak by Perny - DontFilterMe by Samwich @@ -66,7 +65,6 @@ You can join our [discord server](https://discord.gg/5Xh2W87egW) for commits, ch - GodMode by Tolgchu - GoodPerson by nin0dev & mantikafasi - GoogleThat by Samwich -- GrammarFix by S€th - HideChatButtons by iamme - HideMessage by Hanzy - HideServers by bepvte diff --git a/src/equicordplugins/disableAnimations.desktop/index.ts b/src/equicordplugins/disableAnimations.desktop/index.ts deleted file mode 100644 index 65a754b6..00000000 --- a/src/equicordplugins/disableAnimations.desktop/index.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Vencord, a modification for Discord's desktop app - * Copyright (c) 2022 Vendicated and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ - -import { EquicordDevs } from "@utils/constants"; -import definePlugin from "@utils/types"; -import { findAll } from "@webpack"; - -export default definePlugin({ - name: "DisableAnimations", - description: "Disables most of Discord's animations.", - authors: [EquicordDevs.seth], - start() { - this.springs = findAll(mod => { - if (!mod.Globals) return false; - return true; - }); - - for (const spring of this.springs) { - spring.Globals.assign({ - skipAnimation: true, - }); - } - - this.css = document.createElement("style"); - this.css.innerText = "* { transition: none !important; animation: none !important; }"; - - document.head.appendChild(this.css); - }, - stop() { - for (const spring of this.springs) { - spring.Globals.assign({ - skipAnimation: false, - }); - } - - if (this.css) this.css.remove(); - } -}); diff --git a/src/equicordplugins/grammarFix/index.ts b/src/equicordplugins/grammarFix/index.ts deleted file mode 100644 index ffe094d8..00000000 --- a/src/equicordplugins/grammarFix/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Vencord, a Discord client mod - * Copyright (c) 2024 Vendicated and contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import { - addPreSendListener, - removePreSendListener, - SendListener, -} from "@api/MessageEvents"; -import { definePluginSettings } from "@api/Settings"; -import { EquicordDevs } from "@utils/constants"; -import definePlugin, { OptionType } from "@utils/types"; - -const settings = definePluginSettings({ - autoCapitalization: { - type: OptionType.BOOLEAN, - description: "Auto Capitalization to the first letter", - }, - autoPunctuation: { - type: OptionType.BOOLEAN, - description: "Auto Punctuation at the end of a sentence", - }, - autoWordReplacement: { - type: OptionType.BOOLEAN, - description: "Auto Capitalizes the first letter", - }, -}); - -const getPresend = dictionary => { - const presendObject: SendListener = (_, msg) => { - msg.content = msg.content.trim(); - if (!msg.content.includes("```") && /\w/.test(msg.content.charAt(0))) { - if (settings.store.autoWordReplacement) { - const re = new RegExp( - `(^|(?<=[^A-Z0-9]+))(${Object.keys(dictionary) - .map(k => k.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")) - .join("|")})((?=[^A-Z0-9]+)|$)`, - "gi", - ); - if (re !== null) { - msg.content = msg.content.replace(re, match => { - return dictionary[match.toLowerCase()] || match; - }); - } - } - - if (settings.store.autoPunctuation) { - if ( - /[A-Z0-9]/i.test(msg.content.charAt(msg.content.length - 1)) - ) { - if ( - !msg.content.startsWith( - "http", - msg.content.lastIndexOf(" ") + 1, - ) - ) - msg.content += "."; - } - } - - // Ensure sentences are capitalized after punctuation - if (settings.store.autoCapitalization) { - msg.content = msg.content.replace(/([.!?])\s*(\w)/g, match => - match.toUpperCase(), - ); - - // Ensure the first character of the entire message is capitalized - if (!msg.content.startsWith("http")) { - msg.content = - msg.content.charAt(0).toUpperCase() + - msg.content.slice(1); - } - } - } - }; - return presendObject; -}; - -export default definePlugin({ - name: "GrammarFix", - description: "Automatic punctuation, capitalization, and word replacement.", - authors: [EquicordDevs.seth], - dependencies: ["MessageEventsAPI"], - settings, - async start() { - let dictionary = await fetch( - "https://raw.githubusercontent.com/wont-stream/dictionary/6b9d2f06a1d89103fb7249f41de4db6811e3d374/index.min.json", - ); - dictionary = await dictionary.json(); - - addPreSendListener(getPresend(dictionary)); - }, - stop() { - removePreSendListener(getPresend({})); - }, -}); diff --git a/src/utils/constants.ts b/src/utils/constants.ts index af1e7866..63c3e020 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -739,10 +739,6 @@ export const EquicordDevs = Object.freeze({ name: "Prince527", id: 364105797162237952n }, - seth: { - name: "S€th", - id: 1273447359417942128n - }, ThePirateStoner: { name: "ThePirateStoner", id: 1196220620376121381n From 2e025bb4bd0765881a59f0615a132ed78e0b2d7a Mon Sep 17 00:00:00 2001 From: swan / crumb <138329745+swanlmao@users.noreply.github.com> Date: Tue, 14 Jan 2025 13:57:27 -0500 Subject: [PATCH 6/8] Change Experiments Wording MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed the wording from Vencord to Equicord 👍 Co-authored-by: thororen1234 --- src/plugins/experiments/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/experiments/index.tsx b/src/plugins/experiments/index.tsx index f3015e57..5e84dc16 100644 --- a/src/plugins/experiments/index.tsx +++ b/src/plugins/experiments/index.tsx @@ -128,7 +128,7 @@ export default definePlugin({ - Only use experiments if you know what you're doing. Vencord is not responsible for any damage caused by enabling experiments. + Only use experiments if you know what you're doing. Equicord is not responsible for any damage caused by enabling experiments. If you don't know what an experiment does, ignore it. Do not ask us what experiments do either, we probably don't know. From c8f4ce978595965a9a6da92dd8fe13f9cc826b61 Mon Sep 17 00:00:00 2001 From: Nuckyz <61953774+Nuckyz@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:17:40 -0300 Subject: [PATCH 7/8] Fix PinDMs and BetterSettings eager load --- src/plugins/_api/notices.ts | 2 +- src/plugins/betterSettings/index.tsx | 2 +- src/plugins/pinDms/components/CreateCategoryModal.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/_api/notices.ts b/src/plugins/_api/notices.ts index 0c6f6e1d..f0445924 100644 --- a/src/plugins/_api/notices.ts +++ b/src/plugins/_api/notices.ts @@ -34,7 +34,7 @@ export default definePlugin({ }, { match: /(?<=,NOTICE_DISMISS:function\(\i\){)return null!=(\i)/, - replace: "if($1.id==\"VencordNotice\")return($1=null,Vencord.Api.Notices.nextNotice(),true);$&" + replace: "if($1?.id==\"VencordNotice\")return($1=null,Vencord.Api.Notices.nextNotice(),true);$&" } ] } diff --git a/src/plugins/betterSettings/index.tsx b/src/plugins/betterSettings/index.tsx index 0a3f0bb8..5a97b0a6 100644 --- a/src/plugins/betterSettings/index.tsx +++ b/src/plugins/betterSettings/index.tsx @@ -114,7 +114,7 @@ export default definePlugin({ { // Load menu TOC eagerly find: "#{intl::USER_SETTINGS_WITH_BUILD_OVERRIDE}", replacement: { - match: /(\i)\(this,"handleOpenSettingsContextMenu",.{0,100}?null!=\i&&.{0,100}?(await Promise\.all[^};]*?\)\)).*?,(?=\1\(this)/, + match: /(\i)\(this,"handleOpenSettingsContextMenu",.{0,100}?null!=\i&&.{0,100}?(await [^};]*?\)\)).*?,(?=\1\(this)/, replace: "$&(async ()=>$2)()," }, predicate: () => settings.store.eagerLoad diff --git a/src/plugins/pinDms/components/CreateCategoryModal.tsx b/src/plugins/pinDms/components/CreateCategoryModal.tsx index 7c4cf0d0..0568c1ad 100644 --- a/src/plugins/pinDms/components/CreateCategoryModal.tsx +++ b/src/plugins/pinDms/components/CreateCategoryModal.tsx @@ -33,7 +33,7 @@ interface ColorPickerWithSwatchesProps { const ColorPicker = findComponentByCodeLazy("#{intl::USER_SETTINGS_PROFILE_COLOR_SELECT_COLOR}", ".BACKGROUND_PRIMARY)"); const ColorPickerWithSwatches = findExportedComponentLazy("ColorPicker", "CustomColorPicker"); -export const requireSettingsMenu = extractAndLoadChunksLazy(['name:"UserSettings"'], /createPromise:.{0,20}Promise\.all\((\[\i\.\i\("?.+?"?\).+?\])\).then\(\i\.bind\(\i,"?(.+?)"?\)\).{0,50}"UserSettings"/); +export const requireSettingsMenu = extractAndLoadChunksLazy(['name:"UserSettings"'], /createPromise:.{0,20}(\i\.\i\("?.+?"?\).*?).then\(\i\.bind\(\i,"?(.+?)"?\)\).{0,50}"UserSettings"/); const cl = classNameFactory("vc-pindms-modal-"); From 0f77a0a47bae7ef075f8f922f13f7cf668c8887e Mon Sep 17 00:00:00 2001 From: willow may <87339163+7368697661@users.noreply.github.com> Date: Wed, 15 Jan 2025 06:51:52 -0800 Subject: [PATCH 8/8] update plugin morekaomoji (#124) * evenmorekaomoji added 12 new kaomoji, with hopefully easily searchable names. * add voidbbg as dev * update devs * update devs --- src/plugins/moreKaomoji/index.ts | 103 ++++++++++++++++++++++++++++++- src/utils/constants.ts | 4 ++ 2 files changed, 105 insertions(+), 2 deletions(-) diff --git a/src/plugins/moreKaomoji/index.ts b/src/plugins/moreKaomoji/index.ts index 04bf647a..986b1f33 100644 --- a/src/plugins/moreKaomoji/index.ts +++ b/src/plugins/moreKaomoji/index.ts @@ -17,13 +17,13 @@ */ import { findOption, OptionalMessageOption } from "@api/Commands"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; export default definePlugin({ name: "MoreKaomoji", description: "Adds more Kaomoji to discord. ヽ(´▽`)/", - authors: [Devs.JacobTm], + authors: [Devs.JacobTm, EquicordDevs.voidbbg], commands: [ { name: "dissatisfaction", @@ -112,6 +112,105 @@ export default definePlugin({ execute: opts => ({ content: findOption(opts, "message", "") + " " + "o(≧▽≦)o", }), + }, + /* + even more kaomoji + */ + { + name: "giving", + description: "(ノ◕ヮ◕)ノ*:・゚✧", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "(ノ◕ヮ◕)ノ*:・゚✧", + }), + }, + { + name: "peace", + description: "✌(◕‿-)✌", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "✌(◕‿-)✌", + }), + }, + { + name: "ending1", + description: "Ꮺ ָ࣪ ۰ ͙⊹", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "Ꮺ ָ࣪ ۰ ͙⊹", + }), + }, + { + name: "uwu", + description: "(>⩊<)", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "(>⩊<)", + }), + }, + { + name: "comfy", + description: "(─‿‿─)♡", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "(─‿‿─)♡", + }), + }, + { + name: "lovehappy", + description: "(*≧ω≦*)", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "(*≧ω≦*)", + }), + }, + { + name: "loveee", + description: "(⁄ ⁄>⁄ ▽ ⁄<⁄ ⁄)", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "(⁄ ⁄>⁄ ▽ ⁄<⁄ ⁄)", + }), + }, + { + name: "give", + description: "(ノ= ⩊ = )ノ", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "(ノ= ⩊ = )ノ", + }), + }, + { + name: "lovegive", + description: "ღゝ◡╹)ノ♡", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "ღゝ◡╹)ノ♡", + }), + }, + { + name: "music", + description: "( ̄▽ ̄)/♫•¨•.¸¸♪", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "( ̄▽ ̄)/♫•¨•.¸¸♪", + }), + }, + { + name: "stars", + description: ".𖥔 ݁ ˖๋ ࣭ ⭑", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + ".𖥔 ݁ ˖๋ ࣭ ⭑", + }), + }, + { + name: "lovegiving", + description: "⸜(。˃ ᵕ ˂ )⸝♡", + options: [OptionalMessageOption], + execute: opts => ({ + content: findOption(opts, "message", "") + " " + "⸜(。˃ ᵕ ˂ )⸝♡", + }), } ] }); diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 63c3e020..6b2ca504 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -967,6 +967,10 @@ export const EquicordDevs = Object.freeze({ ExoDev: { name: "ExoDev", id: 1325655837003223137n + }, + voidbbg: { + name: "voidbbg", + id: 117126234588184582n } } satisfies Record);