aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVendicated <vendicated@riseup.net>2023-10-06 04:00:09 +0200
committerVendicated <vendicated@riseup.net>2023-10-06 04:00:09 +0200
commit5eb9dd04dff212686e3395752877ddf62c1f78e2 (patch)
tree84434118769736f7088d6e41c119acc03aea930e /src
parent03b5dc9c27250be09ae1a8c80842edf8cde642d9 (diff)
downloadVencord-5eb9dd04dff212686e3395752877ddf62c1f78e2.tar.gz
Vencord-5eb9dd04dff212686e3395752877ddf62c1f78e2.tar.bz2
Vencord-5eb9dd04dff212686e3395752877ddf62c1f78e2.zip
Fix member list decorations api
Diffstat (limited to 'src')
-rw-r--r--src/api/MemberListDecorators.ts5
-rw-r--r--src/plugins/_api/memberListDecorators.ts21
2 files changed, 16 insertions, 10 deletions
diff --git a/src/api/MemberListDecorators.ts b/src/api/MemberListDecorators.ts
index fade2a7..e148bb0 100644
--- a/src/api/MemberListDecorators.ts
+++ b/src/api/MemberListDecorators.ts
@@ -20,7 +20,6 @@ import { Channel, User } from "discord-types/general/index.js";
interface DecoratorProps {
activities: any[];
- canUseAvatarDecorations: boolean;
channel: Channel;
/**
* Only for DM members
@@ -52,9 +51,9 @@ export function removeDecorator(identifier: string) {
decorators.delete(identifier);
}
-export function __addDecoratorsToList(props: DecoratorProps): (JSX.Element | null)[] {
+export function __getDecorators(props: DecoratorProps): (JSX.Element | null)[] {
const isInGuild = !!(props.guildId);
- return [...decorators.values()].map(decoratorObj => {
+ return Array.from(decorators.values(), decoratorObj => {
const { decorator, onlyIn } = decoratorObj;
// this can most likely be done cleaner
if (!onlyIn || (onlyIn === "guilds" && isInGuild) || (onlyIn === "dms" && !isInGuild)) {
diff --git a/src/plugins/_api/memberListDecorators.ts b/src/plugins/_api/memberListDecorators.ts
index 6b8cffa..a6d4125 100644
--- a/src/plugins/_api/memberListDecorators.ts
+++ b/src/plugins/_api/memberListDecorators.ts
@@ -22,21 +22,28 @@ import definePlugin from "@utils/types";
export default definePlugin({
name: "MemberListDecoratorsAPI",
description: "API to add decorators to member list (both in servers and DMs)",
- authors: [Devs.TheSun],
+ authors: [Devs.TheSun, Devs.Ven],
patches: [
{
find: "lostPermissionTooltipText,",
replacement: {
- match: /Fragment,{children:\[(.{30,80})\]/,
- replace: "Fragment,{children:Vencord.Api.MemberListDecorators.__addDecoratorsToList(this.props).concat($1)"
+ match: /decorators:.{0,100}?children:\[(?<=(\i)\.lostPermissionTooltipText.+?)/,
+ replace: "$&...Vencord.Api.MemberListDecorators.__getDecorators($1),"
}
},
{
find: "PrivateChannel.renderAvatar",
- replacement: {
- match: /(subText:(.{1,2})\.renderSubtitle\(\).{1,50}decorators):(.{30,100}:null)/,
- replace: "$1:Vencord.Api.MemberListDecorators.__addDecoratorsToList($2.props).concat($3)"
- }
+ replacement: [
+ // props are shadowed by nested props so we have to do this
+ {
+ match: /\i=(\i)\.applicationStream,/,
+ replace: "$&vencordProps=$1,"
+ },
+ {
+ match: /decorators:(\i\.isSystemDM\(\))\?(.+?):null/,
+ replace: "decorators:[...(typeof vencordProps=='undefined'?[]:Vencord.Api.MemberListDecorators.__getDecorators(vencordProps)), $1?$2:null]"
+ }
+ ]
}
],
});