aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/relationshipNotifier/index.ts
diff options
context:
space:
mode:
authorV <vendicated@riseup.net>2023-04-22 03:18:19 +0200
committerGitHub <noreply@github.com>2023-04-22 01:18:19 +0000
commit63fc354d483b86857bbee7f540c66ba614fc0f1f (patch)
tree6ebe100e5ff63254adfdb0c44cb473dcc339cf35 /src/plugins/relationshipNotifier/index.ts
parentc6f0c84935db37e2a18578a081404d84292fe36a (diff)
downloadVencord-63fc354d483b86857bbee7f540c66ba614fc0f1f.tar.gz
Vencord-63fc354d483b86857bbee7f540c66ba614fc0f1f.tar.bz2
Vencord-63fc354d483b86857bbee7f540c66ba614fc0f1f.zip
feat: auto-managed flux subscriptions via plugin.flux (#959)
Diffstat (limited to 'src/plugins/relationshipNotifier/index.ts')
-rw-r--r--src/plugins/relationshipNotifier/index.ts25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/plugins/relationshipNotifier/index.ts b/src/plugins/relationshipNotifier/index.ts
index 6319142..7300fba 100644
--- a/src/plugins/relationshipNotifier/index.ts
+++ b/src/plugins/relationshipNotifier/index.ts
@@ -18,12 +18,10 @@
import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
-import { FluxDispatcher } from "@webpack/common";
-import { forEachEvent } from "./events";
-import { removeFriend, removeGroup, removeGuild } from "./functions";
+import { onChannelDelete, onGuildDelete, onRelationshipRemove, removeFriend, removeGroup, removeGuild } from "./functions";
import settings from "./settings";
-import { syncAndRunChecks } from "./utils";
+import { syncAndRunChecks, syncFriends, syncGroups, syncGuilds } from "./utils";
export default definePlugin({
name: "RelationshipNotifier",
@@ -55,15 +53,24 @@ export default definePlugin({
}
],
+ flux: {
+ GUILD_CREATE: syncGuilds,
+ GUILD_DELETE: onGuildDelete,
+ CHANNEL_CREATE: syncGroups,
+ CHANNEL_DELETE: onChannelDelete,
+ RELATIONSHIP_ADD: syncFriends,
+ RELATIONSHIP_UPDATE: syncFriends,
+ RELATIONSHIP_REMOVE(e) {
+ onRelationshipRemove(e);
+ syncFriends();
+ },
+ CONNECTION_OPEN: syncAndRunChecks
+ },
+
async start() {
setTimeout(() => {
syncAndRunChecks();
}, 5000);
- forEachEvent((ev, cb) => FluxDispatcher.subscribe(ev, cb));
- },
-
- stop() {
- forEachEvent((ev, cb) => FluxDispatcher.unsubscribe(ev, cb));
},
removeFriend,