mirror of
https://github.com/Equicord/Equicord.git
synced 2025-06-08 06:03:03 -04:00
This commit is contained in:
parent
eb12516344
commit
7d213a638c
1 changed files with 17 additions and 12 deletions
|
@ -10,7 +10,7 @@ import { definePluginSettings } from "@api/Settings";
|
|||
import ErrorBoundary from "@components/ErrorBoundary";
|
||||
import { Devs } from "@utils/constants";
|
||||
import definePlugin, { OptionType } from "@utils/types";
|
||||
import { RelationshipStore } from "@webpack/common";
|
||||
import { GuildMemberStore, RelationshipStore } from "@webpack/common";
|
||||
import { Message, User } from "discord-types/general";
|
||||
|
||||
interface UsernameProps {
|
||||
|
@ -19,6 +19,7 @@ interface UsernameProps {
|
|||
withMentionPrefix?: boolean;
|
||||
isRepliedMessage: boolean;
|
||||
userOverride?: User;
|
||||
guildId: string;
|
||||
}
|
||||
|
||||
const settings = definePluginSettings({
|
||||
|
@ -28,6 +29,7 @@ const settings = definePluginSettings({
|
|||
options: [
|
||||
{ label: "Username then nickname", value: "user-nick", default: true },
|
||||
{ label: "Nickname then username", value: "nick-user" },
|
||||
{ label: "Nickname only", value: "nick" },
|
||||
{ label: "Username only", value: "user" },
|
||||
],
|
||||
},
|
||||
|
@ -66,9 +68,12 @@ const settings = definePluginSettings({
|
|||
},
|
||||
});
|
||||
|
||||
function getUsername(user: any): string {
|
||||
function getUsername(user: any, guildId: string): string {
|
||||
const friendName = RelationshipStore.getNickname(user.id);
|
||||
const guildNick = GuildMemberStore.getNick(guildId, user.id);
|
||||
|
||||
if (settings.store.preferFriend && friendName) return friendName;
|
||||
if (settings.store.mode === "nick" && guildNick) return guildNick;
|
||||
if (settings.store.displayNames) return user.globalName || user.username;
|
||||
return user.username;
|
||||
}
|
||||
|
@ -82,16 +87,16 @@ export default definePlugin({
|
|||
find: '"BaseUsername"',
|
||||
replacement: {
|
||||
/* TODO: remove \i+\i once change makes it to stable */
|
||||
match: /(?<=onContextMenu:\i,children:)(?:\i\+\i|\i)/,
|
||||
replace: "$self.renderUsername(arguments[0])"
|
||||
match: /(?<=onContextMenu:\i,children:)(?:\i\+\i|\i)(?=.*?contextGuildId:(\i))/,
|
||||
replace: "$self.renderUsername({ ...arguments[0], guildId: $1 })",
|
||||
}
|
||||
},
|
||||
{
|
||||
find: "._areActivitiesExperimentallyHidden=(",
|
||||
predicate: () => settings.store.memberList,
|
||||
replacement: {
|
||||
match: /(?<=user:(\i),currentUser:\i,nick:)\i/,
|
||||
replace: "$self.getUsername($1)"
|
||||
match: /(?<=user:(\i),currentUser:\i,nick:)\i(?=.*?guildId:(\i))/,
|
||||
replace: "$self.getUsername($1,$2)"
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -99,8 +104,8 @@ export default definePlugin({
|
|||
predicate: () => settings.store.voiceChannelList,
|
||||
replacement: [
|
||||
{
|
||||
match: /(?<=children:\[)null!=\i\?\i:\i\.\i\.getName\((\i)\)/,
|
||||
replace: "$self.getUsername($1)"
|
||||
match: /(?<=children:\[)null!=\i\?\i:\i\.\i\.getName\((\i)\)(?=.*?contextGuildId:(\i))/,
|
||||
replace: "$self.getUsername($1,$2)"
|
||||
},
|
||||
]
|
||||
},
|
||||
|
@ -109,18 +114,18 @@ export default definePlugin({
|
|||
predicate: () => settings.store.emojiReactions,
|
||||
replacement: [
|
||||
{
|
||||
match: /\i\.\i\.getName\(\i,null==.{0,15},(\i)\)/g,
|
||||
replace: "$self.getUsername($1)"
|
||||
match: /\i\.\i\.getName\((\i),null==.{0,15},(\i)\)/g,
|
||||
replace: "$self.getUsername($2,$1)"
|
||||
},
|
||||
]
|
||||
},
|
||||
],
|
||||
settings,
|
||||
getUsername,
|
||||
renderUsername: ErrorBoundary.wrap(({ author, message, isRepliedMessage, withMentionPrefix, userOverride }: UsernameProps) => {
|
||||
renderUsername: ErrorBoundary.wrap(({ author, message, isRepliedMessage, withMentionPrefix, userOverride, guildId }: UsernameProps) => {
|
||||
try {
|
||||
const user = userOverride ?? message.author;
|
||||
const username = getUsername(user);
|
||||
const username = getUsername(user, guildId);
|
||||
|
||||
const { nick } = author;
|
||||
const prefix = withMentionPrefix ? "@" : "";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue