Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4943.js (118.4 MB)
142 lines
4.1 KiB
TypeScript
142 lines
4.1 KiB
TypeScript
// Module ID: 13970
|
|
// Function ID: 13971
|
|
// Name: OnlineFriendsStore
|
|
// Dependencies: [4798, 4409, 1078, 2062, 504, 577, 2]
|
|
|
|
// Module 13970 (OnlineFriendsStore)
|
|
import initializeDefault from "initialize" /* 504 */;
|
|
import DispatcherDefault from "Dispatcher" /* 577 */;
|
|
import SetUtils from "SetUtils" /* 2062 */;
|
|
import PresenceStore from "PresenceStore" /* 4798 */;
|
|
import RelationshipStore from "RelationshipStore" /* 4409 */;
|
|
|
|
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(1078).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;
|