Files
discord-decomp/stores/UserStore.tsx
T
2026-11-01 12:12:55 +02:00

1008 lines
36 KiB
TypeScript

// Metro module 1874 (f1875).
import OverridePremiumTypeStore from "../modules/premium/OverridePremiumTypeStore";
import UserRecord from "../records/UserRecord";
import AuthenticationStore from "./AuthenticationStore";
import MobileCacheSnapshotStore from "./MobileCacheSnapshotStore";
import { ChannelTypes, MessageFlags, UserFlags } from "../Constants";
import { UNSELECTED_PREMIUM_TYPE_OVERRIDE } from "../modules/premium/PremiumConstants";
import * as _PrimaryGuildUtils from "../modules/guild_tag/PrimaryGuildUtils";
import { ensureUserPrimaryGuild } from "../modules/guild_tag/PrimaryGuildUtils";
import * as _UserStoreUtils from "../modules/user/UserStoreUtils";
import { getPremiumTypeFromRawValue, isStaffEnvRawData, validatePremiumType } from "../modules/user/UserStoreUtils";
import { parseAvatarDecorationData } from "../modules/collectibles/avatar_decorations/AvatarDecorationUtils";
import { parseServerUserCollectibles } from "../modules/collectibles/utils/mappers";
import { parseServerDisplayNameStyles } from "../modules/display_name_styles/DisplayNameStylesUtils";
import { parseServerPremiumState } from "../modules/premium/premium_state/PremiumStateUtils";
import { RestrictedScheduleRecord } from "../modules/parent_tools/FamilyCenterModels";
import { hasFlag, setFlag } from "../_bundle/Module1384";
import { camelCase } from "../_bundle/Module12";
import isActivityParticipantValidGuildMember from "../modules/activities/isActivityParticipantValidGuildMember";
import { AgeVerificationStatusUkAndAusOnly } from "../flow/Server";
import { isNotNullish } from "../utils/GlobalUtils";
import { HermesBuiltin, $forInKeys } from "../_hermes/prelude";
let c1579_11, c1579_12, id, mergeUserPrimaryGuild, transformUser, mergeUser, mergeUsersFromMessage, handleConnectionOpen, handleConnectionOpenSupplemental, isIncompleteUser, handleInitialize, handleUserUpdate, handleRestrictedScheduleUpdate, handleUserProfileFetchSuccess, handleCurrentUserUpdate, updatePremiumType, handleLoadMessages, handleConversationFetchSuccess, handleConversationsFetchSuccess, handleLoadPinnedMessages, handleThreadListSync, handleLoadSearchResults, handleLoadThreadsSuccess, handleLoadForumPosts, handleLoadMessageRequestsSupplementalDataSuccess, handleFetchUsersForGuildEventSuccess, handleLoadNotificationCenterItems, handleNotificationCenterItemCreate, handleIncomingMessage, handleCreateChannel, handleUpdateChannels, _excluded, handlePresenceUpdates, handleLoadedBans, handleLoadedBansBatch, handleBan, handleRecipient, handleGuildMembers, handleGuildMemberListUpdate, handleGuildMembersChunkBatch, handlePassiveUpdateV2, handleLocalMessagesLoaded, handleThreadMemberListUpdate, handleThreadMembersUpdate, handleGuildCreate, handleRelationshipAdd, handleGameRelationshipAdd, handleLoadRelationships, handleFriendSuggestionCreate, handleLoadFriendSuggestions, handleAuditLogFetched, handleGiftCodeResolve, handleGuildPremiumSubscriptionsFetchSuccess, handleGuildJoinRequest, handleInitialFamilyCenterLoad, handleLinkedUserFetch, handleRequestLinkSuccess, handleTeenActivityFetch, handleTeenActivityMoreFetch, handleMemberSafetyGuildMemberSearchSuccess, handleLoadICYMIHydratedItems, handleEmbeddedActivityUpdateV2, handleInitiateAgeVerification, handleCloseAgeVerificationModal, handleInteractionModalCreate, handleGuildStickersFetchSuccess;
const mergeGuildAvatar = function mergeGuildAvatar(id, guildId, avatar) {
const r5 = c1579_11[id];
if (r5 == null) {
return false;
}
const r10 = avatar == null ? r5.removeGuildAvatarHash(guildId) : r5.addGuildAvatarHash(guildId, avatar);
c1579_11[r5.id] = r10;
const r13 = r5 !== r10;
if (r13) {
c1579_12 = c1579_12 + 1;
}
return r13;
};
mergeUserPrimaryGuild = function mergeUserPrimaryGuild(id, user) {
const r8 = c1579_11[id];
let r2 = r8 != null;
if (r2) {
const isUserPrimaryGuildEqual = _PrimaryGuildUtils.isUserPrimaryGuildEqual(r8.primaryGuild, user.primary_guild);
let r3 = !isUserPrimaryGuildEqual;
if (!isUserPrimaryGuildEqual) {
let r1 = r8.primaryGuild == null || user.primary_guild != null;
if (r1) {
r8.primaryGuild = ensureUserPrimaryGuild(user.primary_guild);
c1579_11[r8.id] = r8;
c1579_12 = c1579_12 + 1;
r1 = true;
}
r3 = r1;
}
r2 = r3;
}
return r2;
};
transformUser = function transformUser(a0) {
const mfa_enabled = a0.mfa_enabled;
if (mfa_enabled != null) {
a0.mfaEnabled = mfa_enabled;
delete a0["mfa_enabled"];
}
const premiumTypeFromRawValue = getPremiumTypeFromRawValue(a0.premium_type);
if (premiumTypeFromRawValue !== void 0) {
a0.premiumType = premiumTypeFromRawValue;
delete a0["premium_type"];
}
const nsfw_allowed = a0.nsfw_allowed;
if (nsfw_allowed != null) {
a0.nsfwAllowed = nsfw_allowed;
delete a0["nsfw_allowed"];
}
const age_verification_status = a0.age_verification_status;
if (age_verification_status != null) {
a0.ageVerificationStatus = age_verification_status;
delete a0["age_verification_status"];
}
const public_flags = a0.public_flags;
if (public_flags != null) {
a0.publicFlags = public_flags;
delete a0["public_flags"];
}
const purchased_flags = a0.purchased_flags;
if (purchased_flags !== void 0) {
a0.purchasedFlags = purchased_flags;
delete a0["purchased_flags"];
}
const premium_usage_flags = a0.premium_usage_flags;
if (premium_usage_flags !== void 0) {
a0.premiumUsageFlags = premium_usage_flags;
delete a0["premium_usage_flags"];
}
if (a0.banner_color === null) {
delete a0["banner_color"];
}
const avatar_decoration_data = a0.avatar_decoration_data;
if (avatar_decoration_data !== void 0) {
a0.avatarDecorationData = parseAvatarDecorationData(avatar_decoration_data);
delete a0["avatar_decoration_data"];
}
const collectibles = a0.collectibles;
if (collectibles !== void 0) {
delete a0["collectibles"];
a0.collectibles = parseServerUserCollectibles(collectibles);
}
const global_name = a0.global_name;
if (global_name !== void 0) {
a0.globalName = global_name;
delete a0["global_name"];
}
const primary_guild = a0.primary_guild;
if (primary_guild !== void 0) {
a0.primary_guild = ensureUserPrimaryGuild(primary_guild);
}
const display_name_styles = a0.display_name_styles;
if (display_name_styles !== void 0) {
a0.displayNameStyles = parseServerDisplayNameStyles(display_name_styles);
delete a0["display_name_styles"];
}
const premium_state = a0.premium_state;
if (premium_state !== void 0) {
a0.premiumState = parseServerPremiumState(premium_state);
delete a0["premium_state"];
}
const restricted_schedule = a0.restricted_schedule;
if (restricted_schedule !== void 0) {
let restrictedSchedule = RestrictedScheduleRecord.fromServer(restricted_schedule);
if (restrictedSchedule == null) {
restrictedSchedule = null;
}
a0.restrictedSchedule = restrictedSchedule;
delete a0["restricted_schedule"];
}
const app_transaction_ids = a0.app_transaction_ids;
if (app_transaction_ids !== void 0) {
a0.appTransactionIds = app_transaction_ids;
delete a0["app_transaction_ids"];
}
return a0;
};
mergeUser = function mergeUser(a0, r10 = true) {
let r14, r26;
const r12 = c1579_11[a0.id];
const r4 = a0.id !== void 0 && a0.id === AuthenticationStore.getId();
if (r12 == null) {
transformUser(a0);
const userRecord = new UserRecord(a0);
const premiumType = userRecord.premiumType;
const r74 = premiumType !== void 0 && r4;
r26 = userRecord;
r14 = premiumType;
if (r74) {
const isStaffEnv = _UserStoreUtils.isStaffEnv(userRecord);
let premiumType2 = userRecord.premiumType;
if (isStaffEnv) {
let r84 = OverridePremiumTypeStore.getPremiumTypeOverride();
const premiumTypeActual2 = OverridePremiumTypeStore.getPremiumTypeActual();
if (r84 === UNSELECTED_PREMIUM_TYPE_OVERRIDE) {
r84 = premiumTypeActual2;
}
premiumType2 = r84;
}
userRecord.premiumType = premiumType2;
r26 = userRecord;
r14 = premiumType;
}
} else {
r26 = r12;
r14 = void 0;
if (r10) {
transformUser(a0);
let premium_type = a0.premium_type;
if (premium_type == null) {
premium_type = a0.premiumType;
}
if (premium_type !== void 0 && r4 && isStaffEnvRawData(a0)) {
let premium_type2 = a0.premium_type;
if (premium_type2 == null) {
premium_type2 = a0.premiumType;
}
if (isStaffEnvRawData(a0)) {
let r43 = OverridePremiumTypeStore.getPremiumTypeOverride();
const premiumTypeActual = OverridePremiumTypeStore.getPremiumTypeActual();
if (r43 === UNSELECTED_PREMIUM_TYPE_OVERRIDE) {
r43 = premiumTypeActual;
}
premium_type2 = r43;
}
if (a0.premiumType !== void 0) {
a0.premiumType = premium_type2;
} else if (a0.premium_type !== void 0) {
a0.premium_type = premium_type2;
}
}
const r1 = r12.primaryGuild == null && a0.primary_guild == null;
L32: {
if (r1 !== true) {
if ((r12.primaryGuild != null && a0.primary_guild == null) !== true && _PrimaryGuildUtils.isUserPrimaryGuildEqual(r12.primaryGuild, a0.primary_guild) !== true) {
a0.primary_guild = ensureUserPrimaryGuild(a0.primary_guild);
break L32;
}
a0.primary_guild = r12.primaryGuild;
}
}
r26 = r12.merge(a0);
r14 = premium_type;
}
}
validatePremiumType(_UserStoreUtils.isStaffEnv(r26), r14, r26.premiumType);
const r101 = c1579_11[a0.id] !== r26;
c1579_11[a0.id] = r26;
if (r101) {
c1579_12 = c1579_12 + 1;
}
return r101;
};
mergeUsersFromMessage = function mergeUsersFromMessage(a0, a1) {
if (a0.author != null && a0.state !== "SENDING" && a0.author.id !== AuthenticationStore.getId()) {
mergeUser(a0.author, a1);
}
const mentions = a0.mentions;
if (mentions != null) {
mentions.forEach((mention) => {
if (mention.id !== AuthenticationStore.getId()) {
mergeUser(mention, a1);
}
});
}
if (a0.interaction?.user != null && a0.interaction?.user.id !== AuthenticationStore.getId()) {
mergeUser(a0.interaction.user, a1);
}
const attachments = a0.attachments;
if (attachments != null) {
attachments.forEach(({ clip_participants }) => {
if (clip_participants != null) {
clip_participants.forEach((clip_participant) => {
if (clip_participant.id !== AuthenticationStore.getId()) {
mergeUser(clip_participant, a1);
}
});
}
});
}
const resolved = a0.resolved;
if (resolved?.users != null) {
const users = resolved.users;
for (const key in users) {
const r54 = resolved.users[key];
if (r54.id !== AuthenticationStore.getId()) {
mergeUser(r54, a1);
}
}
}
if (a0.interaction_metadata?.user != null && a0.interaction_metadata.user.id !== AuthenticationStore.getId()) {
mergeUser(a0.interaction_metadata.user, a1);
}
if (a0.message_snapshots != null) {
a0.message_snapshots.forEach((message_snapshot) => {
const moderator_report = message_snapshot.moderator_report;
if ((moderator_report == null ? void 0 : moderator_report.reported_member?.user) != null) {
mergeUser(message_snapshot.moderator_report.reported_member.user, a1);
}
const moderator_report2 = message_snapshot.moderator_report;
if ((moderator_report2 == null ? void 0 : moderator_report2.reporting_member?.user) != null) {
mergeUser(message_snapshot.moderator_report.reporting_member.user, a1);
}
const r30 = Object;
const message = message_snapshot.message;
let r33 = message == null ? void 0 : message.resolved?.users;
if (r33 == null) {
r33 = {};
}
r30.values(r33).forEach((item) => {
if (item.id !== AuthenticationStore.getId()) {
mergeUser(item, a1);
}
});
});
}
};
handleConnectionOpen = function handleConnectionOpen({ user, users, guilds }) {
delete user["premium"];
delete user["banner_color"];
mergeUser(user);
users.forEach((user) => {
mergeUser(user);
});
guilds.forEach((guild) => {
guild.members.forEach((member) => {
const id4 = member.user.id;
const id3 = guild.id;
const avatar = member.avatar;
const r8 = c1579_11[id4];
if (r8 != null) {
const r18 = avatar == null ? r8.removeGuildAvatarHash(id3) : r8.addGuildAvatarHash(id3, avatar);
c1579_11[r8.id] = r18;
if (r8 !== r18) {
c1579_12 = c1579_12 + 1;
}
}
const id5 = member.user.id;
const user = member.user;
const r24 = c1579_11[id5];
if (r24 != null && !_PrimaryGuildUtils.isUserPrimaryGuildEqual(r24.primaryGuild, user.primary_guild) && (r24.primaryGuild == null || user.primary_guild != null)) {
r24.primaryGuild = ensureUserPrimaryGuild(user.primary_guild);
c1579_11[r24.id] = r24;
c1579_12 = c1579_12 + 1;
}
});
});
if (c1579_11[AuthenticationStore.getId()] != null) {
c1579_11[id] = new UserRecord({
id,
username: "Wumpus",
discriminator: "0",
globalName: "Wumpus",
avatar: "c1f86b313385cb97985f1b118851c28c"
});
}
};
handleConnectionOpenSupplemental = function handleConnectionOpenSupplemental({ guilds, lazyPrivateChannels }) {
guilds.forEach((guild) => {
guild.members.forEach((member) => {
const id4 = member.user.id;
const id3 = guild.id;
const avatar = member.avatar;
const r8 = c1579_11[id4];
if (r8 != null) {
const r18 = avatar == null ? r8.removeGuildAvatarHash(id3) : r8.addGuildAvatarHash(id3, avatar);
c1579_11[r8.id] = r18;
if (r8 !== r18) {
c1579_12 = c1579_12 + 1;
}
}
const id5 = member.user.id;
const user = member.user;
const r24 = c1579_11[id5];
if (r24 != null && !_PrimaryGuildUtils.isUserPrimaryGuildEqual(r24.primaryGuild, user.primary_guild) && (r24.primaryGuild == null || user.primary_guild != null)) {
r24.primaryGuild = ensureUserPrimaryGuild(user.primary_guild);
c1579_11[r24.id] = r24;
c1579_12 = c1579_12 + 1;
}
});
});
if (lazyPrivateChannels != null) {
lazyPrivateChannels.forEach(({ rawRecipients }) => {
if (rawRecipients != null) {
rawRecipients.forEach((rawRecipient) => {
mergeUser(rawRecipient);
});
}
});
}
};
isIncompleteUser = function isIncompleteUser(a0) {
return !("incomplete" in a0);
};
handleInitialize = function handleInitialize(a0) {
if (a0.users != null) {
for (const user of a0.users) {
if (!(user.id in c1579_11 && isIncompleteUser(user))) {
c1579_11[user.id] = new UserRecord(user);
}
}
}
};
handleUserUpdate = function handleUserUpdate({ user }) {
if (user.id !== AuthenticationStore.getId()) {
mergeUser(user);
return void 0;
}
return false;
};
handleRestrictedScheduleUpdate = function handleRestrictedScheduleUpdate(a0) {
return mergeUser({
id: a0.userId,
restricted_schedule: a0.restrictedSchedule
});
};
handleUserProfileFetchSuccess = function handleUserProfileFetchSuccess({ userProfile }) {
if (userProfile.user.id !== AuthenticationStore.getId()) {
mergeUser(userProfile.user);
return void 0;
}
return false;
};
handleCurrentUserUpdate = function handleCurrentUserUpdate(a0) {
mergeUser(a0.user);
};
updatePremiumType = function updatePremiumType({ user }) {
mergeUser({
id: user.id,
premiumType: user.premiumType
}, true);
};
handleLoadMessages = function handleLoadMessages(a0) {
a0.messages.forEach((message) => {
mergeUsersFromMessage(message, true);
});
return false;
};
handleConversationFetchSuccess = function handleConversationFetchSuccess(a0) {
a0.messages.concat(a0.messageReferences).forEach((item) => {
mergeUsersFromMessage(item, true);
});
return false;
};
handleConversationsFetchSuccess = function handleConversationsFetchSuccess(a0) {
a0.rawConversations.forEach(({ messages }) => messages == null ? void 0 : messages.forEach((message) => {
mergeUsersFromMessage(message, true);
}));
return false;
};
handleLoadPinnedMessages = function handleLoadPinnedMessages(a0) {
a0.pins.forEach((pin) => {
mergeUsersFromMessage(pin.message, true);
});
return false;
};
handleThreadListSync = function handleThreadListSync({ mostRecentMessages }) {
if (mostRecentMessages != null) {
mostRecentMessages.forEach((mostRecentMessage) => {
mergeUsersFromMessage(mostRecentMessage, false);
});
}
return false;
};
handleLoadSearchResults = function handleLoadSearchResults(a0) {
a0.data.forEach(({ messages, channels }) => {
messages.forEach((message) => {
message.forEach((item) => {
mergeUsersFromMessage(item, true);
});
});
channels.forEach((channel) => {
if (!(channel.type !== ChannelTypes.DM && channel.type !== ChannelTypes.GROUP_DM)) {
const recipients = channel.recipients;
if (recipients != null) {
recipients.forEach((recipient) => mergeUser(recipient));
}
if (channel.recipient != null) {
mergeUser(channel.recipient);
}
}
});
});
return false;
};
handleLoadThreadsSuccess = function handleLoadThreadsSuccess({ firstMessages, owners }) {
if (firstMessages != null) {
firstMessages.forEach((firstMessage) => {
mergeUsersFromMessage(firstMessage, true);
});
}
if (owners != null) {
owners.forEach((owner) => mergeUser(owner.user, true));
}
};
handleLoadForumPosts = function handleLoadForumPosts(a0) {
Object.values(a0.threads).forEach(({ first_message, most_recent_message, owner }) => {
if (first_message != null) {
mergeUsersFromMessage(first_message, true);
}
if (most_recent_message != null) {
mergeUsersFromMessage(most_recent_message, true);
}
if (owner != null && owner.user != null) {
mergeUser(owner.user, true);
}
});
};
handleLoadMessageRequestsSupplementalDataSuccess = function handleLoadMessageRequestsSupplementalDataSuccess(a0) {
Object.values(a0.supplementalData).forEach(({ message_preview }) => {
if (message_preview != null) {
mergeUsersFromMessage(message_preview, true);
}
});
};
handleFetchUsersForGuildEventSuccess = function handleFetchUsersForGuildEventSuccess({ guildScheduledEventUsers, guildId }) {
guildScheduledEventUsers.forEach(({ user, member }) => {
if (user != null) {
mergeUser(user);
const avatar = member?.avatar;
if (avatar != null) {
const r15 = c1579_11[user.id];
if (r15 != null) {
const r17 = avatar == null ? r15.removeGuildAvatarHash(guildId) : r15.addGuildAvatarHash(guildId, avatar);
c1579_11[r15.id] = r17;
if (r15 !== r17) {
c1579_12 = c1579_12 + 1;
}
}
}
}
});
};
handleLoadNotificationCenterItems = function handleLoadNotificationCenterItems(a0) {
a0.items.forEach((item) => {
if (item.other_user != null) {
mergeUser(item.other_user);
}
});
};
handleNotificationCenterItemCreate = function handleNotificationCenterItemCreate({ item }) {
if (item.other_user != null) {
mergeUser(item.other_user);
}
};
handleIncomingMessage = function handleIncomingMessage({ message }) {
mergeUsersFromMessage(message, true);
if (message.flags != null && hasFlag(message.flags, MessageFlags.URGENT)) {
const r25 = c1579_11[AuthenticationStore.getId()];
let r26 = r25 != null;
if (r26) {
c1579_11[AuthenticationStore.getId()] = r25.set("flags", setFlag(r25.flags, UserFlags.HAS_UNREAD_URGENT_MESSAGES, true));
r26 = true;
}
return r26;
}
return false;
};
handleCreateChannel = function handleCreateChannel(a0) {
const rawRecipients = a0.channel.rawRecipients;
if (rawRecipients != null) {
rawRecipients.forEach((rawRecipient) => mergeUser(rawRecipient));
}
return false;
};
handleUpdateChannels = function handleUpdateChannels(a0) {
for (const channel of a0.channels) {
const rawRecipients = channel.rawRecipients;
if (rawRecipients != null) {
rawRecipients.forEach((rawRecipient) => mergeUser(rawRecipient));
}
}
return false;
};
handlePresenceUpdates = function handlePresenceUpdates(a0) {
return a0.updates.map((update) => {
const r8 = c1579_11[update.user.id];
let c24694_1 = r8;
if (r8 == null) {
return false;
}
const r12 = _excluded.reduce((acc, item) => {
const hasOwnProperty = update.user.hasOwnProperty(item);
let r11 = acc;
if (hasOwnProperty) {
const r20 = c24694_1.set(camelCase(item), update.user[item]);
const r21 = acc ? acc : r20 !== c24694_1;
c24694_1 = r20;
r11 = r21;
}
return r11;
}, false);
let r14 = !!r12;
if (r14) {
c1579_11[c24694_1.id] = c24694_1;
r14 = r12;
}
return r14;
}).some((item) => item);
};
handleLoadedBans = function handleLoadedBans(a0) {
a0.bans.forEach((ban) => mergeUser(ban.user));
};
handleLoadedBansBatch = function handleLoadedBansBatch(a0) {
a0.bans.forEach((ban) => mergeUser(ban.user));
};
handleBan = function handleBan(a0) {
return mergeUser(a0.user);
};
handleRecipient = function handleRecipient(a0) {
return !!a0.isMember && mergeUser(a0.user);
};
handleGuildMembers = function handleGuildMembers(a0) {
const r4 = mergeUser(a0.user);
const id3 = a0.user.id;
const { guildId: guildId2, avatar } = a0;
const r14 = c1579_11[id3];
const r3 = r14 == null;
let r15 = false;
if (!r3) {
const r17 = avatar == null ? r14.removeGuildAvatarHash(guildId2) : r14.addGuildAvatarHash(guildId2, avatar);
c1579_11[r14.id] = r17;
const r20 = r14 !== r17;
r15 = r20;
if (r20) {
c1579_12 = c1579_12 + 1;
r15 = r20;
}
}
if (!r15) {
r15 = r4;
}
return r15;
};
handleGuildMemberListUpdate = function handleGuildMemberListUpdate(a0) {
for (const op of a0.ops) {
if (op.op !== "INSERT" && op.op !== "UPDATE") {
continue;
}
const user = op.item.member?.user;
if (user != null) {
mergeUserPrimaryGuild(user.id, user);
}
}
return false;
};
handleGuildMembersChunkBatch = function handleGuildMembersChunkBatch({ chunks }) {
let c13273_0 = false;
const _loop = function _loop(a0) {
c13273_0 = a0.members.reduce((acc, member) => {
const r11 = mergeUser(member.user);
const id3 = member.user.id;
const guildId2 = a0.guildId;
const avatar = member.avatar;
const r16 = c1579_11[id3];
const r3 = r16 == null;
let r17 = false;
if (!r3) {
const r19 = avatar == null ? r16.removeGuildAvatarHash(guildId2) : r16.addGuildAvatarHash(guildId2, avatar);
c1579_11[r16.id] = r19;
const r22 = r16 !== r19;
r17 = r22;
if (r22) {
c1579_12 = c1579_12 + 1;
r17 = r22;
}
}
if (!r17) {
r17 = r11;
}
if (!r17) {
r17 = acc;
}
return r17;
}, false) || c13273_0;
};
for (const item of chunks) {
_loop(item);
}
return c13273_0;
};
handlePassiveUpdateV2 = function handlePassiveUpdateV2(a0) {
let r0 = false;
for (const member of a0.members) {
if (mergeUser(member.user)) {
r0 = true;
}
if (mergeGuildAvatar(member.user.id, a0.guildId, member.avatar)) {
r0 = true;
}
}
return r0;
};
handleLocalMessagesLoaded = function handleLocalMessagesLoaded(a0) {
let r0 = false;
let users = a0.users;
if (users == null) {
users = [];
}
for (const item of users) {
if (!Object.hasOwn(c1579_11, item.id)) {
r0 = mergeUser(item) || r0;
}
}
return r0;
};
handleThreadMemberListUpdate = function handleThreadMemberListUpdate({ members }) {
let c13274_0 = false;
members.forEach((member) => {
if (member.member != null && mergeUser(member.member.user)) {
c13274_0 = true;
}
if (member.presence != null && mergeUser(member.presence.user)) {
c13274_0 = true;
}
});
return c13274_0;
};
handleThreadMembersUpdate = function handleThreadMembersUpdate({ addedMembers }) {
let c13275_0 = false;
if (addedMembers != null) {
addedMembers.forEach((addedMember) => {
if (addedMember.member != null && mergeUser(addedMember.member.user)) {
c13275_0 = true;
}
if (addedMember.presence != null && mergeUser(addedMember.presence.user)) {
c13275_0 = true;
}
});
}
return c13275_0;
};
handleGuildCreate = function handleGuildCreate({ guild }) {
guild.members.forEach((member) => {
const user = member.user;
const { id: id3, username, avatar: avatar2, discriminator, bot } = user;
const avatar = member.avatar;
if (id3 !== AuthenticationStore.getId()) {
mergeUser({
id: id3,
username,
avatar: avatar2,
discriminator,
bot
});
}
const id4 = guild.id;
const r21 = c1579_11[id3];
if (r21 != null) {
const r24 = avatar == null ? r21.removeGuildAvatarHash(id4) : r21.addGuildAvatarHash(id4, avatar);
c1579_11[r21.id] = r24;
if (r21 !== r24) {
c1579_12 = c1579_12 + 1;
}
}
});
};
handleRelationshipAdd = function handleRelationshipAdd(a0) {
return mergeUser(a0.relationship.user);
};
handleGameRelationshipAdd = function handleGameRelationshipAdd(a0) {
return mergeUser(a0.gameRelationship.user);
};
handleLoadRelationships = function handleLoadRelationships(a0) {
return a0.relationships.reduce((acc, relationship) => mergeUser(relationship.user) || acc, false);
};
handleFriendSuggestionCreate = function handleFriendSuggestionCreate(a0) {
return mergeUser(a0.suggestion.suggested_user);
};
handleLoadFriendSuggestions = function handleLoadFriendSuggestions(a0) {
return a0.suggestions.reduce((acc, suggestion) => mergeUser(suggestion.suggested_user) || acc, false);
};
handleAuditLogFetched = function handleAuditLogFetched(a0) {
a0.users.forEach((user) => {
if (c1579_11[user.id] == null) {
c1579_11[user.id] = new UserRecord(user);
}
});
};
handleGiftCodeResolve = function handleGiftCodeResolve({ giftCode }) {
return giftCode.user != null && mergeUser(giftCode.user);
};
handleGuildPremiumSubscriptionsFetchSuccess = function handleGuildPremiumSubscriptionsFetchSuccess(a0) {
a0.appliedBoosts.forEach(({ user }) => {
if (user != null) {
mergeUser(user);
}
});
};
handleGuildJoinRequest = function handleGuildJoinRequest({ request }) {
const { user, actioned_by_user } = request;
const r0 = user != null ? mergeUser(user) : false;
return actioned_by_user != null ? r0 ? r0 : mergeUser(actioned_by_user) : r0;
};
handleInitialFamilyCenterLoad = function handleInitialFamilyCenterLoad(a0) {
return [...a0.users, ...a0.familyCenterTeenActivity.users].reduce((acc, item) => mergeUser(item) || acc, false);
};
handleLinkedUserFetch = function handleLinkedUserFetch(a0) {
return a0.users.reduce((acc, user) => mergeUser(user) || acc, false);
};
handleRequestLinkSuccess = function handleRequestLinkSuccess(a0) {
return a0.users.reduce((acc, user) => mergeUser(user) || acc, false);
};
handleTeenActivityFetch = function handleTeenActivityFetch({ familyCenterTeenActivity }) {
if (familyCenterTeenActivity !== void 0) {
return familyCenterTeenActivity.users.reduce((acc, user) => mergeUser(user) || acc, false);
}
};
handleTeenActivityMoreFetch = function handleTeenActivityMoreFetch(a0) {
return a0.familyCenterTeenActivity.users.reduce((acc, user) => mergeUser(user) || acc, false);
};
handleMemberSafetyGuildMemberSearchSuccess = function handleMemberSafetyGuildMemberSearchSuccess({ members }) {
const id2 = AuthenticationStore.getId();
return members.reduce((acc, member) => member.member.user.id !== id2 ? mergeUser(member.member.user) || acc : acc, false);
};
handleLoadICYMIHydratedItems = function handleLoadICYMIHydratedItems(a0) {
a0.messageItems.forEach((messageItem) => {
if (messageItem.message != null) {
mergeUsersFromMessage(messageItem.message, true);
}
}, false);
};
handleEmbeddedActivityUpdateV2 = function handleEmbeddedActivityUpdateV2(a0) {
return a0.instance.participants.reduce((acc, participant) => isActivityParticipantValidGuildMember(participant) && mergeUser(participant.member.user) || acc, false);
};
handleInitiateAgeVerification = function handleInitiateAgeVerification(a0) {
if (a0 == null) {
HermesBuiltin.throwTypeError("Cannot destructure 'undefined' or 'null'.");
throw new Error("unreachable");
}
const r7 = c1579_11[AuthenticationStore.getId()];
let r12 = r7 != null;
if (r12) {
c1579_11[AuthenticationStore.getId()] = r7.set("ageVerificationStatus", AgeVerificationStatusUkAndAusOnly.CLIENT_ONLY_PENDING);
r12 = true;
}
return r12;
};
handleCloseAgeVerificationModal = function handleCloseAgeVerificationModal({ status }) {
const r7 = c1579_11[AuthenticationStore.getId()];
let r12 = r7 != null;
if (r12) {
let r19 = r7.ageVerificationStatus === AgeVerificationStatusUkAndAusOnly.CLIENT_ONLY_PENDING;
if (r19) {
c1579_11[AuthenticationStore.getId()] = r7.set("ageVerificationStatus", status);
r19 = true;
}
r12 = r19;
}
return r12;
};
handleInteractionModalCreate = function handleInteractionModalCreate({ resolved }) {
const r16 = resolved?.users == null;
let r17 = false;
if (!r16) {
const users = resolved.users;
r17 = void 0;
for (const key in users) {
r17 = void 0;
const r20 = resolved.users[key];
if (r20.id !== AuthenticationStore.getId()) {
mergeUser(r20, true);
}
}
r17 = void 0;
}
return r17;
};
handleGuildStickersFetchSuccess = function handleGuildStickersFetchSuccess(a0) {
return a0.stickers.reduce((acc, sticker) => sticker.user != null && mergeUser(sticker.user) || acc, false);
};
c1579_11 = {};
c1579_12 = 0;
id = "47835198259242069";
_excluded = ["username", "avatar", "global_name", "discriminator", "bot", "primary_guild"];
class UserStore extends MobileCacheSnapshotStore {
static displayName = "UserStore";
static LATEST_SNAPSHOT_VERSION = 1;
constructor() {
const r13 = {
CONNECTION_OPEN: handleConnectionOpen,
CONNECTION_OPEN_SUPPLEMENTAL: handleConnectionOpenSupplemental,
UPDATE_CLIENT_PREMIUM_TYPE: updatePremiumType,
OVERLAY_INITIALIZE: handleInitialize,
CACHE_LOADED: (a0) => this.handleLoadCache(a0),
USER_UPDATE: handleUserUpdate,
USER_RESTRICTED_SCHEDULE_UPDATE: handleRestrictedScheduleUpdate,
USER_PROFILE_FETCH_SUCCESS: handleUserProfileFetchSuccess,
CURRENT_USER_UPDATE: handleCurrentUserUpdate,
PRESENCE_UPDATES: handlePresenceUpdates,
SEARCH_MESSAGES_SUCCESS: handleLoadSearchResults,
MOD_VIEW_SEARCH_MESSAGES_SUCCESS: handleLoadSearchResults,
LOAD_MESSAGES_SUCCESS: handleLoadMessages,
LOAD_MESSAGES_AROUND_SUCCESS: handleLoadMessages,
LOAD_RECENT_MENTIONS_SUCCESS: handleLoadMessages,
CONVERSATION_FETCH_SUCCESS: handleConversationFetchSuccess,
CONVERSATIONS_FETCH_SUCCESS: handleConversationsFetchSuccess,
LOAD_PINNED_MESSAGES_SUCCESS: handleLoadPinnedMessages,
THREAD_LIST_SYNC: handleThreadListSync,
MESSAGE_CREATE: handleIncomingMessage,
MESSAGE_UPDATE: handleIncomingMessage,
GUILD_SETTINGS_LOADED_BANS: handleLoadedBans,
GUILD_SETTINGS_LOADED_BANS_BATCH: handleLoadedBansBatch,
GUILD_CREATE: handleGuildCreate,
GUILD_BAN_ADD: handleBan,
GUILD_BAN_REMOVE: handleBan,
CHANNEL_RECIPIENT_ADD: handleRecipient,
CHANNEL_RECIPIENT_REMOVE: handleRecipient,
GUILD_STICKERS_FETCH_SUCCESS: handleGuildStickersFetchSuccess,
GUILD_JOIN_REQUEST_CREATE: handleGuildJoinRequest,
GUILD_JOIN_REQUEST_UPDATE: handleGuildJoinRequest,
GUILD_MEMBER_ADD: handleGuildMembers,
GUILD_MEMBER_UPDATE: handleGuildMembers,
GUILD_MEMBERS_CHUNK_BATCH: handleGuildMembersChunkBatch,
GUILD_MEMBER_LIST_UPDATE: handleGuildMemberListUpdate,
THREAD_MEMBER_LIST_UPDATE: handleThreadMemberListUpdate,
THREAD_MEMBERS_UPDATE: handleThreadMembersUpdate,
CHANNEL_CREATE: handleCreateChannel,
CHANNEL_UPDATES: handleUpdateChannels,
RELATIONSHIP_ADD: handleRelationshipAdd,
GAME_RELATIONSHIP_ADD: handleGameRelationshipAdd,
LOAD_RELATIONSHIPS_SUCCESS: handleLoadRelationships,
FRIEND_SUGGESTION_CREATE: handleFriendSuggestionCreate,
LOAD_FRIEND_SUGGESTIONS_SUCCESS: handleLoadFriendSuggestions,
AUDIT_LOG_FETCH_SUCCESS: handleAuditLogFetched,
AUDIT_LOG_FETCH_NEXT_PAGE_SUCCESS: handleAuditLogFetched,
GIFT_CODE_RESOLVE_SUCCESS: handleGiftCodeResolve,
GUILD_APPLIED_BOOSTS_FETCH_SUCCESS: handleGuildPremiumSubscriptionsFetchSuccess,
LOAD_THREADS_SUCCESS: handleLoadThreadsSuccess,
LOAD_ARCHIVED_THREADS_SUCCESS: handleLoadThreadsSuccess,
LOAD_FORUM_POSTS: handleLoadForumPosts,
GUILD_SCHEDULED_EVENT_USERS_FETCH_SUCCESS: handleFetchUsersForGuildEventSuccess,
LOAD_NOTIFICATION_CENTER_ITEMS_SUCCESS: handleLoadNotificationCenterItems,
NOTIFICATION_CENTER_ITEM_CREATE: handleNotificationCenterItemCreate,
LOAD_MESSAGE_REQUESTS_SUPPLEMENTAL_DATA_SUCCESS: handleLoadMessageRequestsSupplementalDataSuccess,
PASSIVE_UPDATE_V2: handlePassiveUpdateV2,
LOCAL_MESSAGES_LOADED: handleLocalMessagesLoaded,
FAMILY_CENTER_INITIAL_LOAD: handleInitialFamilyCenterLoad,
FAMILY_CENTER_LINKED_USERS_FETCH_SUCCESS: handleLinkedUserFetch,
FAMILY_CENTER_TEEN_ACTIVITY_FETCH_SUCCESS: handleTeenActivityFetch,
FAMILY_CENTER_TEEN_ACTIVITY_MORE_FETCH_SUCCESS: handleTeenActivityMoreFetch,
FAMILY_CENTER_REQUEST_LINK_SUCCESS: handleRequestLinkSuccess,
MEMBER_SAFETY_GUILD_MEMBER_SEARCH_SUCCESS: handleMemberSafetyGuildMemberSearchSuccess,
LOAD_ICYMI_HYDRATED: handleLoadICYMIHydratedItems,
EMBEDDED_ACTIVITY_UPDATE_V2: handleEmbeddedActivityUpdateV2,
INITIATE_AGE_VERIFICATION: handleInitiateAgeVerification,
CLOSE_AGE_VERIFICATION_MODAL: handleCloseAgeVerificationModal,
INTERACTION_MODAL_CREATE: handleInteractionModalCreate
};
super(r13);
}
initialize() {
this.waitFor(AuthenticationStore, OverridePremiumTypeStore);
}
takeSnapshot() {
return {
version: UserStore.LATEST_SNAPSHOT_VERSION,
data: {
users: [this.getCurrentUser()].filter(isNotNullish)
}
};
}
handleLoadCache(a0) {
const r29 = this.readSnapshot(UserStore.LATEST_SNAPSHOT_VERSION);
if (r29 != null) {
for (const user of r29.users) {
c1579_11[user.id] = new UserRecord(user);
}
}
if (a0.users != null) {
for (const user2 of a0.users) {
if (!(user2.id in c1579_11 && isIncompleteUser(user2))) {
c1579_11[user2.id] = new UserRecord(user2);
}
}
}
for (const item of [a0.privateChannels, a0.initialGuildChannels]) {
for (const item2 of item) {
const rawRecipients = item2.rawRecipients;
if (rawRecipients != null) {
rawRecipients.forEach((rawRecipient) => mergeUser(rawRecipient, false));
}
}
}
}
getUserStoreVersion() {
return c1579_12;
}
getUser(a0) {
if (a0 != null) {
return c1579_11[a0];
}
}
getUsers() {
return c1579_11;
}
forEach(a0) {
let r5;
const r7 = $forInKeys(c1579_11);
let r0 = 0;
const length = r7.length;
if (r7 !== void 0) {
do {
r5 = r0 < length ? r7[r0++] : void 0;
if (r5 === void 0) {
break;
}
} while (a0(c1579_11[r5]) !== false);
}
}
findByTag(a0, a1) {
for (const key in c1579_11) {
const r11 = c1579_11[key];
if (a1 != null && r11.username === a0 && r11.discriminator === a1) {
return r11;
}
if (a1 == null && r11.username === a0 && r11.hasUniqueUsername()) {
return r11;
}
}
}
filter(a0, r5 = false) {
const r4 = [];
for (const key in c1579_11) {
const r13 = c1579_11[key];
if (a0(r13)) {
r4.push(r13);
}
}
if (r5) {
r4.sort((a, b) => a.username > b.username ? 1 : a.username < b.username ? -1 : 0);
}
return r4;
}
getCurrentUser() {
return c1579_11[AuthenticationStore.getId()];
}
}
const userStore = new UserStore();
export default userStore;
export { c1579_11 as users };
export const ASSISTANT_WUMPUS_VOICE_USER = "47835198259242069";
export { transformUser };
export { mergeUser };