aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/pronoundb/index.ts
diff options
context:
space:
mode:
authorTymanWasTaken <tbeckman530@gmail.com>2022-10-21 04:46:38 -0600
committerGitHub <noreply@github.com>2022-10-21 12:46:38 +0200
commitccf7f66a797c9583cf7d4a5a3c08ab6757dc0d70 (patch)
tree43ee82a83fdce323ce3f71a2d7ba7adc80df2dba /src/plugins/pronoundb/index.ts
parentd8afde2b4d03c1d46795f18db8256cd095ae1e85 (diff)
downloadVencord-ccf7f66a797c9583cf7d4a5a3c08ab6757dc0d70.tar.gz
Vencord-ccf7f66a797c9583cf7d4a5a3c08ab6757dc0d70.tar.bz2
Vencord-ccf7f66a797c9583cf7d4a5a3c08ab6757dc0d70.zip
Update PronounDB Plugin (#115)
* Add X-PronounDB-Source header, add options to pronoundb * Adapt to defaults fix, better lowercase logic * User popouts :)
Diffstat (limited to 'src/plugins/pronoundb/index.ts')
-rw-r--r--src/plugins/pronoundb/index.ts51
1 files changed, 45 insertions, 6 deletions
diff --git a/src/plugins/pronoundb/index.ts b/src/plugins/pronoundb/index.ts
index bc31b48..e71d3dd 100644
--- a/src/plugins/pronoundb/index.ts
+++ b/src/plugins/pronoundb/index.ts
@@ -1,6 +1,12 @@
-import definePlugin from "../../utils/types";
-import PronounComponent from "./PronounComponent";
-import { fetchPronouns } from "./utils";
+import definePlugin, { OptionType } from "../../utils/types";
+import PronounsAboutComponent from "./components/PronounsAboutComponent";
+import PronounsChatComponent from "./components/PronounsChatComponent";
+import PronounsProfileWrapper from "./components/PronounsProfileWrapper";
+
+export enum PronounsFormat {
+ Lowercase = "LOWERCASE",
+ Capitalized = "CAPITALIZED"
+}
export default definePlugin({
name: "PronounDB",
@@ -10,14 +16,47 @@ export default definePlugin({
}],
description: "Adds pronouns to user messages using pronoundb",
patches: [
+ // Patch the chat timestamp element
{
find: "showCommunicationDisabledStyles",
replacement: {
match: /(?<=return\s+\w{1,3}\.createElement\(.+!\w{1,3}&&)(\w{1,3}.createElement\(.+?\{.+?\}\))/,
- replace: "[$1, Vencord.Plugins.plugins.PronounDB.PronounComponent(e)]"
+ replace: "[$1, Vencord.Plugins.plugins.PronounDB.PronounsChatComponent(e)]"
+ }
+ },
+ // Hijack the discord pronouns section (hidden without experiment) and add a wrapper around the text section
+ {
+ find: ".headerTagUsernameNoNickname",
+ replacement: {
+ match: /""!==(.{1,2})&&(r\.createElement\(r\.Fragment.+?\.Messages\.USER_POPOUT_PRONOUNS.+?pronounsText.+?\},\1\)\))/,
+ replace: (_, __, fragment) => `Vencord.Plugins.plugins.PronounDB.PronounsProfileWrapper(e, ${fragment})`
}
}
],
- // Re-export the component on the plugin object so it is easily accessible in patches
- PronounComponent
+ options: {
+ pronounsFormat: {
+ type: OptionType.SELECT,
+ description: "The format for pronouns to appear in chat",
+ options: [
+ {
+ label: "Lowercase",
+ value: PronounsFormat.Lowercase,
+ default: true
+ },
+ {
+ label: "Capitalized",
+ value: PronounsFormat.Capitalized
+ }
+ ]
+ },
+ showSelf: {
+ type: OptionType.BOOLEAN,
+ description: "Enable or disable showing pronouns for the current user",
+ default: true
+ }
+ },
+ settingsAboutComponent: PronounsAboutComponent,
+ // Re-export the components on the plugin object so it is easily accessible in patches
+ PronounsChatComponent,
+ PronounsProfileWrapper
});