diff options
author | V <vendicated@riseup.net> | 2023-04-22 03:18:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-22 01:18:19 +0000 |
commit | 63fc354d483b86857bbee7f540c66ba614fc0f1f (patch) | |
tree | 6ebe100e5ff63254adfdb0c44cb473dcc339cf35 /src/plugins/relationshipNotifier/index.ts | |
parent | c6f0c84935db37e2a18578a081404d84292fe36a (diff) | |
download | Vencord-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.ts | 25 |
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, |