// Module ID: 13452 // Function ID: 13453 // Name: OnlineFriendsStore // Dependencies: [4885, 4508, 1074, 2061, 504, 573, 2] // Module 13452 (OnlineFriendsStore) import initializeDefault from "initialize" /* 504 */; import DispatcherDefault from "Dispatcher" /* 573 */; import SetUtils from "SetUtils" /* 2061 */; import PresenceStore from "PresenceStore" /* 4885 */; import RelationshipStore from "RelationshipStore" /* 4508 */; require = fn; function upsert(id) { if (RelationshipStore.isFriend(id)) { if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) { const hasItem = set.has(id); let flag = !hasItem; if (!hasItem) { set.add(id); flag = true; } let deleteResult = flag; } return deleteResult; } deleteResult = set.delete(id); } function rebuild() { set = new Set(); const friendIDs = RelationshipStore.getFriendIDs(); for (const item10014 of friendIDs) { let tmp2 = item10014; if (PresenceStore.getStatus(item10014) !== StatusTypes.OFFLINE) { let addResult = set.add(tmp2); } continue; } return !SetUtils.areSetsEqual(set, set); } const StatusTypes = fn(1074).StatusTypes; let set = new Set(); const Store = initializeDefault.Store; class OnlineFriendsStore extends Store { } const prototype = OnlineFriendsStore.prototype; prototype["initialize"] = function initialize() { this.waitFor(PresenceStore, RelationshipStore); }; prototype["getOnlineFriendCount"] = function getOnlineFriendCount() { return set.size; }; OnlineFriendsStore.displayName = "OnlineFriendsStore"; const onlineFriendsStore = new OnlineFriendsStore(DispatcherDefault, { CONNECTION_OPEN: rebuild, CONNECTION_OPEN_SUPPLEMENTAL: rebuild, OVERLAY_INITIALIZE: rebuild, PRESENCES_REPLACE: rebuild, GUILD_CREATE: rebuild, GUILD_DELETE: rebuild, GUILD_MEMBER_REMOVE: function handleGuildMemberRemove(user) { const id = user.user.id; if (RelationshipStore.isFriend(id)) { if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) { const hasItem = set.has(id); let flag = !hasItem; if (!hasItem) { set.add(id); flag = true; } let deleteResult = flag; } return deleteResult; } deleteResult = set.delete(id); }, PRESENCE_UPDATES: function handlePresenceUpdates(arg0) { let flag = false; while (tmp !== undefined) { let tmp4 = upsert(tmp2.user.id) || flag; flag = tmp4; continue; } return flag; }, RELATIONSHIP_ADD: function handleRelationshipAdd(relationship) { const id = relationship.relationship.id; if (RelationshipStore.isFriend(id)) { if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) { const hasItem = set.has(id); let flag = !hasItem; if (!hasItem) { set.add(id); flag = true; } let deleteResult = flag; } return deleteResult; } deleteResult = set.delete(id); }, RELATIONSHIP_REMOVE: function handleRelationshipRemove(relationship) { const id = relationship.relationship.id; if (RelationshipStore.isFriend(id)) { if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) { const hasItem = set.has(id); let flag = !hasItem; if (!hasItem) { set.add(id); flag = true; } let deleteResult = flag; } return deleteResult; } deleteResult = set.delete(id); }, RELATIONSHIP_UPDATE: function handleRelationshipUpdate(relationship) { const id = relationship.relationship.id; if (RelationshipStore.isFriend(id)) { if (PresenceStore.getStatus(id) !== StatusTypes.OFFLINE) { const hasItem = set.has(id); let flag = !hasItem; if (!hasItem) { set.add(id); flag = true; } let deleteResult = flag; } return deleteResult; } deleteResult = set.delete(id); }, LOGOUT: function handleLogout() { set = new Set(); return set.size > 0; } }); const size = fn(2); const result = size.fileFinishedImporting("modules/friends/OnlineFriendsStore.tsx"); export default onlineFriendsStore;