decord/source/stores/GuildVerificationStore.tsx
2026-08-25 06:04:03 +00:00

311 lines
11 KiB
TypeScript

// Module ID: 5238
// Function ID: 5239
// Name: recomputeGuild
// Dependencies: [1434, 1992, 1985, 1910, 1922, 676, 4013, 1403, 709, 11, 589, 2]
// Module 5238 (recomputeGuild)
import DISCORD_EPOCHDefault from "DISCORD_EPOCH" /* 11 */;
import initializeDefault from "initialize" /* 589 */;
import dispatcherDefault from "dispatcher" /* 709 */;
import GuildNSFWContentLevel from "GuildNSFWContentLevel" /* 1434 */;
import GuildMemberFlags2 from "GuildMemberFlags" /* 4013 */;
import closure_4 from "trackCommunicationDisabled" /* 1992 */;
import closure_5 from "createGuildRoleRecordFromRust" /* 1985 */;
import closure_6 from "createGuildRecordFromRust" /* 1910 */;
import closure_7 from "mergeGuildAvatar" /* 1922 */;
import ME from "ME" /* 676 */;
import set from "set" /* 2 */;
function recomputeGuild(guildId) {
const _require = guildId;
clearGuild(guildId);
set.add(guildId);
guild = guild.getGuild(guildId);
const currentUser = authStore.getCurrentUser();
let tmp4 = null != guild;
if (tmp4) {
tmp4 = guild.verificationLevel !== constants.NONE;
}
if (null != guild) {
if (null != currentUser) {
if (tmp4) {
if (!isGuildOwner(guild, currentUser)) {
member = member.getMember(guild.id, currentUser.id);
if (null == member) {
let tmp13 = tmp6;
if (tmp6) {
tmp13 = null != member;
}
let flag = false;
if (tmp13) {
const roles = member.roles;
tmp13 = !roles.includes(guild.verificationRoleId);
flag = tmp13;
}
let role;
if (tmp13) {
role = store.getRole(guild.id, guild.verificationRoleId);
}
let num3 = 0;
let num4 = 0;
let flag2 = false;
let flag3 = false;
let flag4 = false;
let flag5 = false;
let flag6 = false;
if (tmp4) {
num3 = 0;
num4 = 0;
flag2 = false;
flag3 = false;
flag4 = false;
flag5 = false;
flag6 = false;
if (!currentUser.isPhoneVerified()) {
let flag7 = false;
if (null != member) {
const _Set = Set;
set = new Set();
const roles2 = member.roles;
for (const item10071 of roles2) {
let tmp23 = store;
let tmp22 = item10071;
let role1 = store.getRole(guild.id, item10071);
let managed = null == role1;
if (!managed) {
let tmp26 = role1;
managed = tmp25.managed;
}
if (!managed) {
let tmp27 = item10071;
let addResult1 = set.add(tmp22);
}
continue;
}
const _Date = Date;
const date = new Date("2022-12-02 00:00:00");
let tmp32 = null == member.joinedAt;
if (!tmp32) {
const _Date2 = Date;
const date1 = new Date(member.joinedAt);
tmp32 = date1 < date;
}
const features = guild.features;
let tmp40 = !tmp6;
if (!tmp6) {
tmp40 = !tmp39;
}
if (tmp40) {
tmp40 = set.size > 0;
}
flag7 = false;
if (tmp40) {
flag7 = true;
}
tmp39 = features.has(constants3.GUILD_ONBOARDING_EVER_ENABLED) && !tmp32;
}
num3 = 0;
num4 = 0;
flag2 = false;
flag3 = false;
flag4 = false;
flag5 = false;
flag6 = false;
if (!flag7) {
const _Date3 = Date;
const result = 60000 * constants2.ACCOUNT_AGE;
const diff = +currentUser.createdAt + result - Date.now();
const _Date4 = Date;
const result1 = 60000 * constants2.MEMBER_AGE;
const diff1 = +guild.joinedAt + result1 - Date.now();
let flag8 = false;
let flag9 = false;
let flag10 = false;
let flag11 = false;
if (!currentUser.isStaff()) {
let tmp53 = guild.verificationLevel >= tmp49.MEDIUM;
if (tmp53) {
tmp53 = diff > 0;
}
flag8 = guild.verificationLevel >= tmp49.HIGH && diff1 > 0;
flag9 = tmp53;
flag10 = guild.verificationLevel >= tmp49.VERY_HIGH;
flag11 = guild.verificationLevel >= tmp49.LOW && !currentUser.verified;
const tmp51 = guild.verificationLevel >= tmp49.LOW && !currentUser.verified;
const tmp52 = guild.verificationLevel >= tmp49.VERY_HIGH;
const tmp54 = guild.verificationLevel >= tmp49.HIGH && diff1 > 0;
}
flag2 = flag8;
flag3 = flag9;
flag4 = flag10;
flag5 = flag11;
num3 = diff1;
num4 = diff;
flag6 = guild.verificationLevel >= constants.LOW && !currentUser.isClaimed();
const tmp41 = +currentUser.createdAt;
const tmp46 = +guild.joinedAt;
const tmp50 = guild.verificationLevel >= constants.LOW && !currentUser.isClaimed();
}
}
}
const items = [];
if (flag2) {
items.push(num3);
}
if (flag3) {
items.push(num4);
}
let timerId;
if (items.length > 0) {
const _setTimeout = setTimeout;
const _Math = Math;
const items1 = [];
HermesBuiltin.arraySpread(items, 0);
const _Math2 = Math;
timerId = setTimeout(() => {
let obj = closure_1_1(closure_1_2[8]);
obj = { type: "GUILD_VERIFICATION_CHECK", guildId: closure_0 };
return obj.dispatch(obj);
}, HermesBuiltin.apply(items1, Math));
}
let obj = { notClaimed: null, notEmailVerified: null, notPhoneVerified: null, newAccount: null, newMember: null, missingVerificationRole: null, verificationRole: null, canChat: null, accountDeadline: null, memberDeadline: null, timeoutRef: null };
obj[0] = flag6;
obj[1] = flag5;
obj[2] = flag4;
obj[3] = flag3;
obj[4] = flag2;
obj[5] = flag;
obj[6] = role;
if (!flag6) {
flag6 = flag5;
}
if (!flag6) {
flag6 = flag4;
}
if (!flag6) {
flag6 = flag3;
}
if (!flag6) {
flag6 = flag2;
}
if (!flag6) {
flag6 = flag;
}
obj[7] = !flag6;
const _Date5 = Date;
const _Date6 = Date;
const date2 = new Date(Date.now() + num4);
obj[8] = date2;
const _Date7 = Date;
const _Date8 = Date;
const date3 = new Date(Date.now() + num3);
obj[9] = date3;
obj[10] = timerId;
closure_14[guildId] = obj;
const tmp64 = closure_14;
} else {
let num = member.flags;
if (num == null) {
num = 0;
}
const obj2 = _require(1403);
}
}
}
}
}
}
function clearGuild(arg0) {
if (null != dependencyMap[arg0]) {
const _clearTimeout = clearTimeout;
clearTimeout(tmp3.timeoutRef);
}
delete tmp[tmp2];
}
function handleCreateOrUpdateGuild(guild) {
set.delete(guild.guild.id);
recomputeGuild(guild.guild.id);
}
const isGuildOwner = GuildNSFWContentLevel.isGuildOwner;
({ VerificationLevels: closure_8, VerificationCriteria: c9, GuildFeatures: c10 } = ME);
const GuildMemberFlags = GuildMemberFlags2.GuildMemberFlags;
let closure_12 = { notClaimed: false, notEmailVerified: false, notPhoneVerified: false, newAccount: false, newMember: false, missingVerificationRole: false, canChat: true };
let set = new Set();
let closure_14 = {};
const Store = initializeDefault.Store;
class GuildVerificationStore extends Store {
}
const prototype = GuildVerificationStore.prototype;
prototype["initialize"] = function initialize() {
this.waitFor(closure_4, closure_5, closure_6, closure_7);
};
prototype["getCheck"] = function getCheck(guild_id) {
if (null == guild_id) {
let tmp5 = closure_12;
} else {
if (!set.has(guild_id)) {
recomputeGuild(guild_id);
}
tmp5 = dependencyMap[guild_id];
if (tmp5 == null) {
tmp5 = closure_12;
}
}
return tmp5;
};
prototype["canChatInGuild"] = function canChatInGuild(guild_id) {
return this.getCheck(guild_id).canChat;
};
GuildVerificationStore.displayName = "GuildVerificationStore";
const guildVerificationStore = new GuildVerificationStore(dispatcherDefault, {
CONNECTION_OPEN: function handleConnectionOpen() {
set.clear();
for (const key10008 in closure_14) {
let tmp5 = key10008;
let tmp6 = dependencyMap;
let tmp7 = dependencyMap[key10008];
if (null != tmp7) {
let _clearTimeout = clearTimeout;
let clearTimeoutResult = clearTimeout(tmp7.timeoutRef);
}
delete tmp[tmp2];
continue;
}
},
CONNECTION_CLOSED: function handleConnectionClosed() {
const keys = DISCORD_EPOCHDefault.keys(closure_14);
const item = keys.forEach(clearGuild);
},
CURRENT_USER_UPDATE: function handleCurrentUserUpdate() {
set.clear();
},
GUILD_CREATE: handleCreateOrUpdateGuild,
GUILD_UPDATE: handleCreateOrUpdateGuild,
GUILD_DELETE: function handleDeleteGuild(arg0) {
if (null != dependencyMap[arg0.guild.id]) {
const _clearTimeout = clearTimeout;
clearTimeout(tmp3.timeoutRef);
}
delete tmp[tmp2];
},
GUILD_MEMBER_UPDATE: function handleGuildMemberUpdate(guildId) {
guildId = guildId.guildId;
const currentUser = authStore.getCurrentUser();
let id;
if (currentUser != null) {
id = currentUser.id;
}
if (guildId.user.id !== id) {
return false;
} else {
set.delete(guildId);
recomputeGuild(guildId);
}
},
GUILD_VERIFICATION_CHECK: function handleGuildVerificationCheck(guildId) {
recomputeGuild(guildId.guildId);
}
});
let result = set.fileFinishedImporting("stores/GuildVerificationStore.tsx");
export default guildVerificationStore;