This commit is contained in:
Mirco Wittrien 2023-04-20 11:38:12 +02:00
parent 9ffc7144ae
commit 05fbbcb3a1
2 changed files with 58 additions and 55 deletions

View File

@ -283,9 +283,7 @@ module.exports = (_ => {
BDFDB.PatchUtils.patch(this, BDFDB.LibraryModules.MemberDisplayUtils, "getUserProfile", {after: e => {
if (!e.returnValue || !changedUsers[e.methodArguments[0]] || !changedUsers[e.methodArguments[0]].color5 && !changedUsers[e.methodArguments[0]].color6 && !changedUsers[e.methodArguments[0]].color7) return;
let newProfileObject = {};
for (let key in e.returnValue) newProfileObject[key] = e.returnValue[key];
for (let key of Reflect.ownKeys(e.returnValue.constructor.prototype)) if (!newProfileObject[key] && e.returnValue[key] !== undefined) newProfileObject[key] = e.returnValue[key];
let newProfileObject = BDFDB.ObjectUtils.copy(e.returnValue);
if (changedUsers[e.methodArguments[0]].color5) newProfileObject.primaryColor = newProfileObject.accentColor = BDFDB.ColorUtils.convert(changedUsers[e.methodArguments[0]].color5, "INT");
if (changedUsers[e.methodArguments[0]].color6 || changedUsers[e.methodArguments[0]].color7) {
let isLightTheme = BDFDB.DiscordUtils.getTheme() == BDFDB.disCN.themelight;
@ -1284,10 +1282,8 @@ module.exports = (_ => {
if (!user) return new BDFDB.DiscordObjects.User({});
let data = change && changedUsers[user.id];
if (data) {
let newUserObject = {}, nativeObject = new BDFDB.DiscordObjects.User(user);
for (let key in nativeObject) newUserObject[key] = nativeObject[key];
newUserObject.tag = nativeObject.tag;
newUserObject.createdAt = nativeObject.createdAt;
let nativeObject = new BDFDB.DiscordObjects.User(user);
let newUserObject = BDFDB.ObjectUtils.copy(nativeObject);
newUserObject.username = !keepName && data.name || nativeObject.username;
newUserObject.usernameNormalized = !keepName && data.name && data.name.toLowerCase() || nativeObject.usernameNormalized;
if (data.removeIcon) {

View File

@ -2,7 +2,7 @@
* @name ShowBadgesInChat
* @author DevilBro
* @authorId 278543574059057154
* @version 1.9.7
* @version 1.9.8
* @description Displays Badges (Nitro, Hypesquad, etc...) in the Chat/MemberList/DMList
* @invite Jx3TjNS
* @donate https://www.paypal.me/MircoWittrien
@ -135,12 +135,12 @@ module.exports = (_ => {
${BDFDB.dotCNS.messageheadertext + BDFDB.dotCN._showbadgesinchatbadgeschat} {
top: 0.2rem;
}
${BDFDB.dotCNS.messageheadertext + BDFDB.dotCN.bottag} {
top: 0.4rem;
}
${BDFDB.dotCNS.messagerepliedmessage + BDFDB.dotCN._showbadgesinchatbadgeschat} {
top: 0;
}
${BDFDB.dotCN.messageheadertext}:has(${BDFDB.dotCN._showbadgesinchatbadges}) ${BDFDB.dotCN.bottag} {
top: 0.4rem;
}
${BDFDB.dotCNS.messagecompact + BDFDB.dotCN.messageusername} ~ ${BDFDB.dotCN._showbadgesinchatbadges},
${BDFDB.dotCNS.messagerepliedmessage + BDFDB.dotCN.messageusername} ~ ${BDFDB.dotCN._showbadgesinchatbadges} {
margin-right: .25rem;
@ -226,7 +226,47 @@ module.exports = (_ => {
}});
BDFDB.PatchUtils.patch(this, BDFDB.LibraryModules.MemberDisplayUtils, "getUserProfile", {after: e => {
if (typeof e.methodArguments[0] == "string" && e.methodArguments[0].indexOf("SHOWBADGES__") == 0) {
if (typeof e.methodArguments[0] != "string" || !e.methodArguments[0].startsWith("SHOWBADGES__")) return;
if (e.methodArguments[0].startsWith("SHOWBADGES__USER__")) {
let realUserId = e.methodArguments[0].split("__").pop();
if (!loadedUsers[realUserId]) return;
else if (!e.returnValue || e.returnValue._userProfile && e.returnValue._userProfile.profileFetchFailed) {
let foundBadges = [];
for (let key in BDFDB.DiscordConstants.UserFlags) if (BDFDB.DiscordConstants.UserFlags[key] < 100000000000) {
if ((loadedUsers[realUserId].flags | BDFDB.DiscordConstants.UserFlags[key]) == loadedUsers[realUserId].flags) {
let keyName = key.replace("_LEVEL_", "_LVL");
keyName = (userBadgeFlagNameMap[keyName] || keyName || "").toLowerCase();
if (badges[keyName]) foundBadges.push({icon: BDFDB.DiscordConstants.UserBadges[keyName], id: keyName});
}
}
if (loadedUsers[realUserId].premium_since) foundBadges.push({icon: BDFDB.DiscordConstants.UserBadges.premium, id: "premium"});
if (loadedUsers[realUserId].premium_guild_since) {
let level = this.getBoostLevel(new Date(loadedUsers[realUserId].premium_guild_since));
if (level) foundBadges.push({icon: BDFDB.DiscordConstants.UserBadges[`guild_booster_lvl${level}`], id: `guild_booster_lvl${level}`});
}
if (!foundBadges.length) return;
if (!e.returnValue) return {
getBadges: _ => foundBadges,
getBannerURL: _ => null,
premiumSince: loadedUsers[realUserId].premium_since ? new Date(loadedUsers[realUserId].premium_since) : null,
premiumGuildSince: loadedUsers[realUserId].premium_guild_since ? new Date(loadedUsers[realUserId].premium_guild_since) : null,
_userProfile: {
badges: foundBadges,
premiumSince: loadedUsers[realUserId].premium_since ? new Date(loadedUsers[realUserId].premium_since) : null,
premiumGuildSince: loadedUsers[realUserId].premium_guild_since ? new Date(loadedUsers[realUserId].premium_guild_since) : null
}
};
else {
let newProfileObject = BDFDB.ObjectUtils.copy(e.returnValue);
newProfileObject.getBadges = _ => foundBadges;
newProfileObject._userProfile.badges = foundBadges;
if (loadedUsers[realUserId].premium_since) newProfileObject.premiumSince = newProfileObject._userProfile.premiumSince = new Date(loadedUsers[realUserId].premium_since);
if (loadedUsers[realUserId].premium_guild_since) newProfileObject.premiumGuildSince = newProfileObject._userProfile.premiumGuildSince = new Date(loadedUsers[realUserId].premium_guild_since);
return newProfileObject;
}
}
}
else if (e.methodArguments[0].startsWith("SHOWBADGES__")) {
let keyName = "";
if (e.methodArguments[0] == "SHOWBADGES__NITRO") keyName = "premium";
else if (e.methodArguments[0].endsWith("__FLAG")) {
@ -244,44 +284,6 @@ module.exports = (_ => {
_userProfile: {badges: [{icon: BDFDB.DiscordConstants.UserBadges[keyName], id: keyName}]}
};
}
else if (!loadedUsers[e.methodArguments[0]]) return;
else if (!e.returnValue || e.returnValue._userProfile && e.returnValue._userProfile.profileFetchFailed) {
let foundBadges = [];
for (let key in BDFDB.DiscordConstants.UserFlags) if (BDFDB.DiscordConstants.UserFlags[key] < 100000000000) {
if ((loadedUsers[e.methodArguments[0]].flags | BDFDB.DiscordConstants.UserFlags[key]) == loadedUsers[e.methodArguments[0]].flags) {
let keyName = key.replace("_LEVEL_", "_LVL");
keyName = (userBadgeFlagNameMap[keyName] || keyName || "").toLowerCase();
if (badges[keyName]) foundBadges.push({icon: BDFDB.DiscordConstants.UserBadges[keyName], id: keyName});
}
}
if (loadedUsers[e.methodArguments[0]].premium_since) foundBadges.push({icon: BDFDB.DiscordConstants.UserBadges.premium, id: "premium"});
if (loadedUsers[e.methodArguments[0]].premium_guild_since) {
let level = this.getBoostLevel(new Date(loadedUsers[e.methodArguments[0]].premium_guild_since));
if (level) foundBadges.push({icon: BDFDB.DiscordConstants.UserBadges[`guild_booster_lvl${level}`], id: `guild_booster_lvl${level}`});
}
if (!foundBadges.length) return;
if (!e.returnValue) return {
getBadges: _ => foundBadges,
getBannerURL: _ => null,
premiumSince: loadedUsers[e.methodArguments[0]].premium_since ? new Date(loadedUsers[e.methodArguments[0]].premium_since) : null,
premiumGuildSince: loadedUsers[e.methodArguments[0]].premium_guild_since ? new Date(loadedUsers[e.methodArguments[0]].premium_guild_since) : null,
_userProfile: {
badges: foundBadges,
premiumSince: loadedUsers[e.methodArguments[0]].premium_since ? new Date(loadedUsers[e.methodArguments[0]].premium_since) : null,
premiumGuildSince: loadedUsers[e.methodArguments[0]].premium_guild_since ? new Date(loadedUsers[e.methodArguments[0]].premium_guild_since) : null
}
};
else {
let newProfileObject = {};
for (let key in e.returnValue) newProfileObject[key] = e.returnValue[key];
for (let key of Reflect.ownKeys(e.returnValue.constructor.prototype)) if (!newProfileObject[key] && e.returnValue[key] !== undefined) newProfileObject[key] = e.returnValue[key];
newProfileObject.getBadges = _ => foundBadges;
newProfileObject._userProfile.badges = foundBadges;
if (loadedUsers[e.methodArguments[0]].premium_since) newProfileObject.premiumSince = newProfileObject._userProfile.premiumSince = new Date(loadedUsers[e.methodArguments[0]].premium_since);
if (loadedUsers[e.methodArguments[0]].premium_guild_since) newProfileObject.premiumGuildSince = newProfileObject._userProfile.premiumGuildSince = new Date(loadedUsers[e.methodArguments[0]].premium_guild_since);
return newProfileObject;
}
}
}});
this.forceUpdateAll();
@ -451,7 +453,11 @@ module.exports = (_ => {
if (queuedInstances[user.id].indexOf(this) == -1) queuedInstances[user.id].push(this);
return null;
}
else return _this.createBadges(user, guildId, place);
else {
user = BDFDB.ObjectUtils.copy(user);
user.id = "SHOWBADGES__USER__" + user.id;
return _this.createBadges(user, guildId, place);
}
}
}, {}, true));
}
@ -481,16 +487,17 @@ module.exports = (_ => {
if (level == this.getBoostLevel(date)) fakeGuildBoostDate = date;
}
}
let member = guildId && BDFDB.LibraryStores.GuildMemberStore.getMember(guildId, user.id);
let realUserId = typeof user.id == "string" && user.id.startsWith("SHOWBADGES__USER__") ? user.id.split("__").pop() : user.id;
let member = guildId && BDFDB.LibraryStores.GuildMemberStore.getMember(guildId, realUserId);
return BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.UserBadgeComponents.UserBadges, {
className: BDFDB.DOMUtils.formatClassName(BDFDB.disCN._showbadgesinchatbadges, BDFDB.disCN[`_showbadgesinchatbadges${place.toLowerCase()}`]),
user: user,
size: BDFDB.LibraryComponents.UserBadgeComponents.Sizes.SIZE_18,
custom: true,
place: place,
premiumSince: loadedUsers[user.id] && loadedUsers[user.id].premium_since ? new Date(loadedUsers[user.id].premium_since) : (user.id == "SHOWBADGES__NITRO" ? new Date() : null),
premiumGuildSince: fakeGuildBoostDate || (loadedUsers[user.id] && loadedUsers[user.id].premium_guild_since ? new Date(loadedUsers[user.id].premium_guild_since) : null),
premiumCurrentGuildSince: member && member.premiumSince && new Date(member.premiumSince) || user.id == "SHOWBADGES__CURRENT_GUILD_BOOST" && new Date()
premiumSince: loadedUsers[realUserId] && loadedUsers[realUserId].premium_since ? new Date(loadedUsers[realUserId].premium_since) : (realUserId == "SHOWBADGES__NITRO" ? new Date() : null),
premiumGuildSince: fakeGuildBoostDate || (loadedUsers[realUserId] && loadedUsers[realUserId].premium_guild_since ? new Date(loadedUsers[realUserId].premium_guild_since) : null),
premiumCurrentGuildSince: member && member.premiumSince && new Date(member.premiumSince) || realUserId == "SHOWBADGES__CURRENT_GUILD_BOOST" && new Date()
});
}