Files
discord-decomp/modules/premium/powerups/GuildPowerupsStore.tsx
T
2026-11-01 12:12:55 +02:00

249 lines
7.2 KiB
TypeScript

// Metro module 4076 (f4077).
import GuildStore from "../../../stores/GuildStore";
import { GUILD_POWERUP_TIER_3_OVERRIDDEN_PURCHASABLE_FEATURES, PURCHASABLE_PREMIUM_FEATURES_BOOST_INFO } from "./constants/GuildPowerupsConstants";
import { AppliedGuildBoostsRequiredForBoostedGuildTier, BoostedGuildTiers, GuildFeatures } from "../../../Constants";
import Module589 from "../../../_bundle/Module589";
import Dispatcher from "../../../Dispatcher";
function $mk73563($env) {
return (a0) => {
const r1 = $env;
const r0 = r1[0];
const unlockedPowerups = r1[1].unlockedPowerups;
const sku_id = a0.sku_id;
if (r0) {
unlockedPowerups[sku_id] = a0;
} else {
delete unlockedPowerups[sku_id];
}
};
}
let c2344_7;
const calculateAppliedBoosts = function calculateAppliedBoosts(a0) {
const guild = GuildStore.getGuild(a0);
const r5 = (guild == null ? void 0 : guild.features.has(GuildFeatures.PREMIUM_TIER_3_OVERRIDE)) === true;
let r35 = 0;
if (!r5) {
let r38 = guild?.premiumTier;
if (r38 == null) {
r38 = BoostedGuildTiers.NONE;
}
r35 = AppliedGuildBoostsRequiredForBoostedGuildTier[r38];
}
let r40 = r35;
for (const item of Object.entries(PURCHASABLE_PREMIUM_FEATURES_BOOST_INFO)) {
const [r54, r55] = item;
if (!(r5 && GUILD_POWERUP_TIER_3_OVERRIDDEN_PURCHASABLE_FEATURES.has(r54))) {
const r58 = guild == null;
let r59 = void 0;
if (!r58) {
const premiumFeatures = guild.premiumFeatures;
r59 = premiumFeatures == null ? void 0 : premiumFeatures.features.includes(r54);
}
if (r59) {
const isEnabled = r55.isEnabled;
let r67 = isEnabled == null ? void 0 : isEnabled.call(r55, a0);
if (r67 == null) {
r67 = 1;
}
r59 = r67;
}
if (r59) {
r59 = r55.includedInLevel == null || guild.premiumTier < r55.includedInLevel;
}
if (r59) {
r40 = r40 + r55.boostPrice;
}
}
}
return r40;
};
c2344_7 = {};
class GuildPowerupsStore extends Module589.PersistedStore {
static displayName = "GuildPowerupsStore";
static persistKey = "GuildPowerupsStore";
static migrations = [(a0) => a0 != null ? Object.fromEntries(Object.entries(a0).filter((item) => {
const [, r13] = item;
return r13 != null && typeof r13 === "object";
}).map((item) => {
const [r23, r24] = item;
const r26 = [r23, ,];
let allPowerups = r24.allPowerups;
if (allPowerups == null) {
allPowerups = {};
}
let powerupCatalog = r24.powerupCatalog;
if (powerupCatalog == null) {
powerupCatalog = {};
}
let unlockedPowerups = r24.unlockedPowerups;
if (unlockedPowerups == null) {
unlockedPowerups = {};
}
r26[1] = {
...r24,
allPowerups,
powerupCatalog,
unlockedPowerups
};
return r26;
})) : a0];
initialize(a0) {
this.waitFor(GuildStore);
if (a0 != null) {
c2344_7 = a0;
}
}
getState() {
return c2344_7;
}
getStateForGuild(a0) {
return a0 != null ? c2344_7[a0] : void 0;
}
shouldFetchCatalogForGuild(a0) {
const catalogFetchCooldown = c2344_7[a0]?.catalogFetchCooldown;
return catalogFetchCooldown == null || catalogFetchCooldown + 86400000 < Date.now();
}
shouldFetchPowerupsForGuild(a0) {
const unlockedPowerupsFetchCooldown = c2344_7[a0]?.unlockedPowerupsFetchCooldown;
return unlockedPowerupsFetchCooldown == null || unlockedPowerupsFetchCooldown + 3600000 < Date.now();
}
hasFetchedPowerupCatalog(a0) {
return a0 != null && c2344_7[a0]?.hasFetchedPowerupCatalog === true;
}
hasFetchedUnlockedPowerups(a0) {
return a0 != null && c2344_7[a0]?.hasFetchedUnlockedPowerups === true;
}
}
const guildPowerupsStore = new GuildPowerupsStore(Dispatcher, {
LOGOUT: function handleReset() {
c2344_7 = {};
},
GUILD_POWERUP_CATALOG_FETCH_SUCCESS: function handleGuildPowerupCatalogFetchSuccess({ guildId, allPowerups, powerupCatalog }) {
if (c2344_7[guildId] == null) {
c2344_7[guildId] = {
allPowerups: {},
powerupCatalog: {},
unlockedPowerups: {},
appliedBoosts: calculateAppliedBoosts(guildId)
};
}
const r19 = c2344_7[guildId];
const r20 = {
...c2344_7
};
r20[guildId] = {
...r19,
allPowerups,
powerupCatalog,
catalogFetchCooldown: Date.now(),
hasFetchedPowerupCatalog: true
};
c2344_7 = r20;
},
GUILD_BOOST_ENTITLEMENTS_FETCH_SUCCESS: function handleGuildBoostEntitlementsFetchSuccess({ guildId, unlockedPowerups }) {
if (c2344_7[guildId] == null) {
c2344_7[guildId] = {
allPowerups: {},
powerupCatalog: {},
unlockedPowerups: {},
appliedBoosts: calculateAppliedBoosts(guildId)
};
}
const r18 = c2344_7[guildId];
const appliedBoosts = calculateAppliedBoosts(guildId);
const r22 = {
...c2344_7
};
r22[guildId] = {
...r18,
unlockedPowerups,
appliedBoosts,
unlockedPowerupsFetchCooldown: Date.now(),
hasFetchedUnlockedPowerups: true
};
c2344_7 = r22;
},
GUILD_POWERUP_ENTITLEMENTS_CREATE: function handleGuildPowerupCreated(a0) {
let env13839;
const r3 = env13839 = {};
const { guildId, entitlements } = a0;
env13839[0] = true;
env13839[1] = void 0;
if (c2344_7[guildId] == null) {
c2344_7[guildId] = {
allPowerups: {},
powerupCatalog: {},
unlockedPowerups: {},
appliedBoosts: calculateAppliedBoosts(guildId)
};
}
const r21 = c2344_7[guildId];
env13839[1] = r21;
entitlements.forEach($mk73563(r3));
const r25 = {
...c2344_7
};
r25[guildId] = {
...r21,
appliedBoosts: calculateAppliedBoosts(guildId)
};
c2344_7 = r25;
},
GUILD_POWERUP_ENTITLEMENTS_DELETE: function handleGuildPowerupDeleted(a0) {
let env13840;
const r3 = env13840 = {};
const { guildId, entitlements } = a0;
env13840[0] = false;
env13840[1] = void 0;
if (c2344_7[guildId] == null) {
c2344_7[guildId] = {
allPowerups: {},
powerupCatalog: {},
unlockedPowerups: {},
appliedBoosts: calculateAppliedBoosts(guildId)
};
}
const r21 = c2344_7[guildId];
env13840[1] = r21;
entitlements.forEach($mk73563(r3));
const r25 = {
...c2344_7
};
r25[guildId] = {
...r21,
appliedBoosts: calculateAppliedBoosts(guildId)
};
c2344_7 = r25;
},
GUILD_UPDATE: function handleGuildUpdated(a0) {
const id = a0.guild.id;
if (c2344_7[id] == null) {
c2344_7[id] = {
allPowerups: {},
powerupCatalog: {},
unlockedPowerups: {},
appliedBoosts: calculateAppliedBoosts(id)
};
}
c2344_7[id] = {
...c2344_7[id],
appliedBoosts: calculateAppliedBoosts(id)
};
},
GAME_SERVER_FETCH_INSTANCES_SUCCESS: function handleGameServerInstanceFetched({ guildId }) {
if (c2344_7[guildId] == null) {
c2344_7[guildId] = {
allPowerups: {},
powerupCatalog: {},
unlockedPowerups: {},
appliedBoosts: calculateAppliedBoosts(guildId)
};
}
c2344_7[guildId] = {
...c2344_7[guildId],
appliedBoosts: calculateAppliedBoosts(guildId)
};
}
});
export default guildPowerupsStore;