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

80 lines
2.8 KiB
TypeScript

// Metro module 11555 (f11556).
import GuildMemberStore, { getGuildIdFromCommunicationDisabledUserKey, getUserIdFromCommunicationDisabledUserKey } from "../../stores/GuildMemberStore";
import UserStore from "../../stores/UserStore";
import { isMemberCommunicationDisabled, isCommunicationDisabled } from "./CommunicationDisabledUtils";
import Dispatcher from "../../Dispatcher";
import AutomaticLifecycleManager from "../../lib/AutomaticLifecycleManager";
let c7882_7;
const clearGuildMemberTimeout = function clearGuildMemberTimeout(guildIdFromCommunicationDisabledUserKey, userIdFromCommunicationDisabledUserKey) {
const member = GuildMemberStore.getMember(guildIdFromCommunicationDisabledUserKey, userIdFromCommunicationDisabledUserKey);
const user = UserStore.getUser(userIdFromCommunicationDisabledUserKey);
if (member != null && user != null && !isMemberCommunicationDisabled(member)) {
let nick = member.nick;
if (nick == null) {
nick = user.username;
}
let avatar = member.avatar;
if (avatar == null) {
avatar = void 0;
}
const avatarDecoration = member.avatarDecoration != null ? {
...member.avatarDecoration
} : void 0;
let premiumSince = member.premiumSince;
if (premiumSince == null) {
premiumSince = void 0;
}
let isPending = member.isPending;
if (isPending == null) {
isPending = false;
}
let email = user.email;
if (email == null) {
email = void 0;
}
let phone = user.phone;
if (phone == null) {
phone = void 0;
}
Dispatcher.dispatch({
type: "GUILD_MEMBER_UPDATE",
...{
...member,
guildId: guildIdFromCommunicationDisabledUserKey,
nick,
avatar,
avatarDecoration,
premiumSince,
isPending,
user: {
...user,
email,
phone
},
communicationDisabledUntil: null
}
});
}
};
c7882_7 = null;
class CommunicationDisabledManager extends AutomaticLifecycleManager {
clearGuildMemberTimeout = clearGuildMemberTimeout;
_initialize() {
c7882_7 = setInterval(() => {
const communicationDisabledUserMap = GuildMemberStore.getCommunicationDisabledUserMap();
Object.keys(communicationDisabledUserMap).forEach((item) => {
const guildIdFromCommunicationDisabledUserKey = getGuildIdFromCommunicationDisabledUserKey(item);
const userIdFromCommunicationDisabledUserKey = getUserIdFromCommunicationDisabledUserKey(item);
if (!isCommunicationDisabled(communicationDisabledUserMap[item])) {
clearGuildMemberTimeout(guildIdFromCommunicationDisabledUserKey, userIdFromCommunicationDisabledUserKey);
}
});
}, 10000);
}
_terminate() {
clearInterval(c7882_7);
}
}
const communicationDisabledManager = new CommunicationDisabledManager();
export default communicationDisabledManager;