Files
discord-decomp/modules/lurker_mode/LurkingStore.tsx
T
2026-11-01 12:12:55 +02:00

227 lines
6.1 KiB
TypeScript

// Metro module 3818 (f3819).
import { isGuildLurker } from "../../records/GuildRecord";
import GuildMemberStore from "../../stores/GuildMemberStore";
import GuildStore from "../../stores/GuildStore";
import UserStore from "../../stores/UserStore";
import { JoinGuildSources, ME } from "../../Constants";
import Module589 from "../../_bundle/Module589";
import Dispatcher from "../../Dispatcher";
let c2157_6 = [];
let c2157_7 = {};
let c2157_8 = {};
let c2157_9 = {};
class LurkingStore extends Module589.Store {
static displayName = "LurkingStore";
initialize() {
this.waitFor(GuildMemberStore, GuildStore, UserStore);
}
lurkingGuildIds() {
return c2157_6;
}
mostRecentLurkedGuildId() {
const length = c2157_6.length;
let r4 = null;
if (length !== 0) {
r4 = c2157_6[c2157_6.length - 1];
}
return r4;
}
isLurking(a0) {
const guild = GuildStore.getGuild(a0);
if (guild == null) {
return false;
}
const isCurrentUserGuest = GuildMemberStore.isCurrentUserGuest(a0);
const isGuildLurker2 = isGuildLurker(guild);
return Boolean(isCurrentUserGuest ? !isCurrentUserGuest : isGuildLurker2);
}
getLurkingSourceForGuild(a0) {
const r1 = a0 == null;
let r2 = null;
if (!r1) {
let r6 = c2157_8[a0];
if (r6 == null) {
r6 = null;
}
r2 = r6;
}
return r2;
}
getLoadId(a0) {
return a0 != null ? c2157_7[a0] : null;
}
getLurkingPreviewExpirations() {
return c2157_9;
}
getLurkingPreviewExpiry(a0) {
const r1 = a0 == null;
let r2 = null;
if (!r1) {
let r6 = c2157_9[a0];
if (r6 == null) {
r6 = null;
}
r2 = r6;
}
return r2;
}
}
const lurkingStore = new LurkingStore(Dispatcher, {
CONNECTION_OPEN: function handleConnectionOpen() {
c2157_6 = GuildStore.getGuildsArray().filter((item) => isGuildLurker(item)).map((item) => item.id);
c2157_8 = {};
c2157_9 = {};
},
GUILD_JOIN: function handleGuildJoin({ guildId, lurker, source, directoryChannelId, loadId }) {
if (lurker) {
if (guildId !== ME && !c2157_6.includes(guildId)) {
c2157_6 = [...c2157_6, guildId];
}
if (loadId != null) {
c2157_7[guildId] = loadId;
}
delete c2157_9[guildId];
if (JoinGuildSources.MOBILE_GUILD_DISCOVERY === source) {
c2157_8[guildId] = {
type: JoinGuildSources.MOBILE_GUILD_DISCOVERY
};
} else if (JoinGuildSources.DIRECTORY_ENTRY === source) {
c2157_8[guildId] = {
type: JoinGuildSources.DIRECTORY_ENTRY,
directoryChannelId
};
} else {
delete c2157_8[guildId];
}
return true;
}
return false;
},
GUILD_STOP_LURKING: function handleGuildStopLurking({ ignoredGuildIds }) {
const r7 = Set;
if (ignoredGuildIds == null) {
ignoredGuildIds = [];
}
let c13623_0 = new r7([...ignoredGuildIds]);
return [...c2157_6].reduce((acc, item) => {
const r14 = c13623_0.has(item);
let r15 = acc;
if (!r14) {
const r9 = c2157_6.indexOf(item);
const r1 = r9 > -1;
let r17 = false;
if (r1) {
const r18 = [...c2157_6];
r18.splice(r9, 1);
c2157_6 = r18;
delete c2157_7[item];
delete c2157_8[item];
delete c2157_9[item];
r17 = true;
}
if (!r17) {
r17 = acc;
}
r15 = r17;
}
return r15;
}, false);
},
GUILD_STOP_LURKING_FOR_GUILD: function handleGuildStopLurkingForGuild({ lurkingGuildId }) {
const r7 = c2157_6.indexOf(lurkingGuildId);
const r2 = r7 > -1;
let r1 = false;
if (r2) {
const r12 = [...c2157_6];
r12.splice(r7, 1);
c2157_6 = r12;
delete c2157_7[lurkingGuildId];
delete c2157_8[lurkingGuildId];
delete c2157_9[lurkingGuildId];
r1 = true;
}
return r1;
},
GUILD_STOP_LURKING_FAILURE: function handleGuildStopLurkingFailure({ lurkingGuildId, lurkingSource }) {
if (lurkingGuildId !== ME && !c2157_6.includes(lurkingGuildId)) {
c2157_6 = [...c2157_6, lurkingGuildId];
}
if (lurkingSource == null) {
delete c2157_8[lurkingGuildId];
} else {
c2157_8[lurkingGuildId] = lurkingSource;
}
return true;
},
GUILD_CREATE: function handleGuildCreate({ guild }) {
const r1 = guild.joined_at == null || !c2157_6.includes(guild.id);
let r15 = !r1;
if (!r1) {
const id = guild.id;
const r19 = c2157_6.indexOf(id);
const r3 = r19 > -1;
r15 = true;
if (r3) {
const r20 = [...c2157_6];
r20.splice(r19, 1);
c2157_6 = r20;
delete c2157_7[id];
delete c2157_8[id];
delete c2157_9[id];
r15 = true;
}
}
return r15;
},
GUILD_DELETE: function handleGuildDelete({ guild }) {
let r14 = !!c2157_6.includes(guild.id);
if (r14) {
const id = guild.id;
const r18 = c2157_6.indexOf(id);
const r2 = r18 > -1;
r14 = true;
if (r2) {
const r19 = [...c2157_6];
r19.splice(r18, 1);
c2157_6 = r19;
delete c2157_7[id];
delete c2157_8[id];
delete c2157_9[id];
r14 = true;
}
}
return r14;
},
GUILD_MEMBER_ADD: function handleGuildMemberAdd(a0) {
const { guildId, joinedAt } = a0;
const r17 = a0.user.id !== UserStore.getCurrentUser()?.id || joinedAt == null || !c2157_6.includes(guildId);
let r21 = !r17;
if (!r17) {
const r24 = c2157_6.indexOf(guildId);
const r3 = r24 > -1;
r21 = true;
if (r3) {
const r25 = [...c2157_6];
r25.splice(r24, 1);
c2157_6 = r25;
delete c2157_7[guildId];
delete c2157_8[guildId];
delete c2157_9[guildId];
r21 = true;
}
}
return r21;
},
LURKER_PREVIEW_SET_EXPIRY: function handleLurkerPreviewSetExpiry({ guildIds, expiresAt }) {
let r0 = false;
for (const item of guildIds) {
if (c2157_6.includes(item) && c2157_9[item] !== expiresAt) {
c2157_9[item] = expiresAt;
r0 = true;
}
}
return r0;
}
});
export default lurkingStore;