From d47be6c017b98a11c8a52f69c5d3cdcfd60f3690 Mon Sep 17 00:00:00 2001
From: Luna <luni.siaa@gmail.com>
Date: Thu, 1 Aug 2024 09:20:00 +0200
Subject: [PATCH] MentionAvatars: Add option to hide @ symbol(#2725)

Co-authored-by: v <vendicated@riseup.net>
---
 src/plugins/mentionAvatars/index.tsx | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/src/plugins/mentionAvatars/index.tsx b/src/plugins/mentionAvatars/index.tsx
index 54969314..311303ab 100644
--- a/src/plugins/mentionAvatars/index.tsx
+++ b/src/plugins/mentionAvatars/index.tsx
@@ -6,12 +6,21 @@
 
 import "./styles.css";
 
+import { definePluginSettings } from "@api/Settings";
 import ErrorBoundary from "@components/ErrorBoundary";
 import { Devs } from "@utils/constants";
-import definePlugin from "@utils/types";
+import definePlugin, { OptionType } from "@utils/types";
 import { SelectedGuildStore, useState } from "@webpack/common";
 import { User } from "discord-types/general";
 
+const settings = definePluginSettings({
+    showAtSymbol: {
+        type: OptionType.BOOLEAN,
+        description: "Whether the the @ symbol should be displayed",
+        default: true
+    }
+});
+
 export default definePlugin({
     name: "MentionAvatars",
     description: "Shows user avatars inside mentions",
@@ -25,11 +34,13 @@ export default definePlugin({
         }
     }],
 
+    settings,
+
     renderUsername: ErrorBoundary.wrap((props: { user: User, username: string; }) => {
         const { user, username } = props;
         const [isHovering, setIsHovering] = useState(false);
 
-        if (!user) return <>@{username}</>;
+        if (!user) return <>{getUsernameString(username)}</>;
 
         return (
             <span
@@ -37,8 +48,15 @@ export default definePlugin({
                 onMouseLeave={() => setIsHovering(false)}
             >
                 <img src={user.getAvatarURL(SelectedGuildStore.getGuildId(), 16, isHovering)} className="vc-mentionAvatars-avatar" />
-                @{username}
+                {getUsernameString(username)}
             </span>
         );
     }, { noop: true })
+
 });
+
+function getUsernameString(username: string) {
+    return settings.store.showAtSymbol
+        ? `@${username}`
+        : username;
+}