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

239 lines
6.6 KiB
TypeScript

// Metro module 12373 (f12374).
import AuthenticationStore from "./AuthenticationStore";
import RelationshipStore from "./RelationshipStore";
import SelfPresenceStore from "./SelfPresenceStore";
import { StatusTypes, ME } from "../Constants";
import Module12 from "../_bundle/Module12";
import Module589 from "../_bundle/Module589";
import Dispatcher from "../Dispatcher";
function $mk89737($env) {
return (a0) => {
const r3 = $env;
if (a0 != null && (0, $env.$parent[9])(r3[0], a0.user.id, a0.activities, a0.status)) {
r3[1] = true;
}
};
}
let handleGuildCreate, handleLocalPresenceUpdate, c8544_12;
let env8544 = {};
const updateParty = function updateParty(a0, a1, a2, a3) {
const r18 = a2.find((item) => item.party != null && Boolean(item.party.id));
const r13 = r18 != null ? r18.party != null ? r18.party.id : null : null;
let r24 = env8544[7][a1];
if (r24 == null) {
r24 = {};
}
const r26 = r24[a0];
if (r13 != null && a3 !== StatusTypes.OFFLINE) {
if (r26 != null) {
if (r26 === r13) {
return false;
}
let r29 = env8544[7][a1];
if (r29 == null) {
r29 = {};
}
const r12 = r29[a0];
if (r12 != null) {
const r14 = env8544[7][a1];
delete r14[a0];
if (Module12.isEmpty(r14)) {
delete env8544[7][a1];
}
const r42 = env8544[8].get(r12);
if (r42 != null) {
r42.delete(a1);
if (r42.size === 0) {
env8544[8].delete(r12);
}
}
}
}
let r50 = env8544[7][a1];
if (r50 == null) {
const r51 = env8544[7];
const r52 = {};
r51[a1] = r52;
r50 = r52;
}
r50[a0] = r13;
if (!RelationshipStore.isBlocked(a1) && !RelationshipStore.isIgnored(a1)) {
let r60 = env8544[8].get(r13);
if (r60 == null) {
r60 = new Set();
}
env8544[8].set(r13, r60);
r60.add(a1);
}
return true;
}
let r72 = r26 != null;
if (r72) {
let r74 = env8544[7][a1];
if (r74 == null) {
r74 = {};
}
const r75 = r74[a0];
const r5 = r75 != null;
r72 = true;
if (r5) {
const r77 = env8544[7][a1];
delete r77[a0];
if (Module12.isEmpty(r77)) {
delete env8544[7][a1];
}
const r89 = env8544[8].get(r75);
const r90 = r89 != null;
r72 = true;
if (r90) {
r89.delete(a1);
const size = r89.size;
r72 = true;
if (size === 0) {
env8544[8].delete(r75);
r72 = true;
}
}
}
}
return r72;
};
handleGuildCreate = function handleGuildCreate({ guild }) {
let r0 = false;
for (const presence of guild.presences) {
if (updateParty(guild.id, presence.user.id, presence.activities, presence.status) !== false) {
r0 = true;
}
}
return r0;
};
handleLocalPresenceUpdate = function handleLocalPresenceUpdate() {
return updateParty(ME, AuthenticationStore.getId(), SelfPresenceStore.getActivities());
};
const handleRelationshipAddOrUpdate = function handleRelationshipAddOrUpdate({ relationship }) {
if (!RelationshipStore.isBlocked(relationship.id) && !RelationshipStore.isIgnored(relationship.id)) {
return false;
}
const r7 = env8544[7][relationship.id];
if (r7 == null) {
return false;
}
for (const item of Module12.values(r7)) {
const r42 = env8544[8].get(item);
if (r42 != null) {
r42.delete(relationship.id);
}
}
};
env8544[7] = {};
env8544[8] = new Map();
class GamePartyStore extends Module589.Store {
static displayName = "GamePartyStore";
constructor() {
super(...arguments);
}
initialize() {
this.syncWith([SelfPresenceStore], handleLocalPresenceUpdate);
this.waitFor(AuthenticationStore, RelationshipStore, SelfPresenceStore);
}
getParty(a0) {
return a0 != null ? env8544[8].has(a0) ? env8544[8].get(a0) : null : null;
}
getUserParties() {
return env8544[7];
}
getParties() {
return env8544[8];
}
}
c8544_12 = GamePartyStore;
const r60 = new GamePartyStore(Dispatcher, {
CONNECTION_OPEN_SUPPLEMENTAL: function handleConnectionOpenSupplemental({ guilds, presences }) {
let r0 = false;
for (const item of presences) {
const { user, status, activities } = item;
if (user != null && updateParty(ME, user.id, activities, status) !== false) {
r0 = true;
}
}
for (const item2 of guilds) {
if (handleGuildCreate({
guild: item2
}) !== false) {
r0 = true;
}
}
return r0;
},
OVERLAY_INITIALIZE: function handleOverlayInitialize({ parties, userParties }) {
env8544[8] = new Map();
env8544[7] = {
...userParties
};
Object.keys(parties).forEach((item) => env8544[8].set(item, new Set(parties[item])));
},
GUILD_CREATE: handleGuildCreate,
PRESENCES_REPLACE: function handlePresenceReplace({ presences }) {
let r0 = false;
for (const item of presences) {
const { user, activities } = item;
if (user != null && updateParty(ME, user.id, activities) !== false) {
r0 = true;
}
}
return r0;
},
PRESENCE_UPDATES: function handlePresenceUpdates(a0) {
return a0.updates.map((update) => {
let guildId = update.guildId;
const { user, status, activities } = update;
if (guildId == null) {
guildId = ME;
}
return updateParty(guildId, user.id, activities, status);
}).some((item) => item);
},
THREAD_MEMBER_LIST_UPDATE: function handleThreadMemberListUpdate(a0) {
let env19812;
const guildId = a0.guildId;
const r6 = a0.members.map((member) => member.presence);
const r7 = env19812 = {
$parent: env8544
};
env19812[0] = guildId;
env19812[1] = false;
r6.forEach($mk89737(r7));
return env19812[1];
},
THREAD_MEMBERS_UPDATE: function handleThreadMembersUpdate({ guildId, addedMembers }) {
let r6 = addedMembers != null;
if (r6) {
let env19813;
const r8 = addedMembers.map((addedMember) => addedMember.presence);
const r9 = env19813 = {
$parent: env8544
};
env19813[0] = guildId;
env19813[1] = false;
r8.forEach($mk89737(r9));
r6 = env19813[1];
}
return r6;
},
RELATIONSHIP_ADD: handleRelationshipAddOrUpdate,
RELATIONSHIP_UPDATE: handleRelationshipAddOrUpdate,
RELATIONSHIP_REMOVE: function handleRelationshipRemove({ relationship }) {
const r7 = env8544[7][relationship.id];
if (r7 == null) {
return false;
}
for (const item of Module12.values(r7)) {
const r34 = env8544[8].get(item);
if (r34 != null) {
r34.add(relationship.id);
}
}
}
});
export default r60;