lavacord
Version:
A simple by design lavalink wrapper made for any discord library.
1 lines • 3.3 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/wrappers/detritus.ts"],"names":["BaseManager"],"mappings":";;;;;;AAQO,IAAM,OAAA,GAAN,cAAsBA,SAAA,CAAY;AAAA,EACjC,WAAA,CACU,MAAA,EAChB,KAAA,EACA,OAAA,EACC;AACD,IAAA,KAAA,CAAM,OAAO,OAAO,CAAA;AAJJ,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAMhB,IAAA,MAAA,CAAO,IAAA,CAAK,SAAS,MAAM;AAC1B,MAAA,IAAI,CAAC,KAAK,MAAA,EAAQ,IAAA,CAAK,SAAS,MAAA,YAAkB,aAAA,GAAgB,MAAA,CAAO,aAAA,GAAgB,MAAA,CAAO,QAAA;AAAA,KAChG,CAAA;AAED,IAAA,MAAA,CAAO,EAAA,CAAG,KAAA,EAAO,CAAC,MAAA,KAAkC;AACnD,MAAA,QAAQ,OAAO,CAAA;AAAG,QACjB,KAAK,qBAAA,CAAsB,iBAAA;AAC1B,UAAA,IAAA,CAAK,iBAAA,CAAkB,OAAO,CAAC,CAAA;AAC/B,UAAA;AAAA,QAED,KAAK,qBAAA,CAAsB,gBAAA;AAC1B,UAAA,IAAA,CAAK,gBAAA,CAAiB,OAAO,CAAC,CAAA;AAC9B,UAAA;AAAA,QAED,KAAK,qBAAA,CAAsB,WAAA;AAC1B,UAAA,KAAA,MAAW,KAAA,IAAS,MAAA,CAAO,CAAA,CAAE,YAAA,IAAgB,EAAC;AAC7C,YAAA,IAAA,CAAK,gBAAA,CAAiB;AAAA,cACrB,GAAG,KAAA;AAAA,cACH,QAAA,EAAU,OAAO,CAAA,CAAE;AAAA,aACnB,CAAA;AACF,UAAA;AAGA;AACF,KACA,CAAA;AAAA;AACF,EA1CD;AAQyC,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA,EAoCrB,KAAK,MAAA,EAAiC;AACxD,IAAA,MAAM,YAAY,IAAA,CAAK,MAAA;AACvB,IAAA,MAAM,UAAU,IAAA,CAAK,MAAA;AAErB,IAAA,IAAI,OAAA,CAAQ,QAAQ,OAAO,OAAA,CAAQ,QAAQ,IAAA,CAAK,MAAA,CAAO,EAAA,EAAI,MAAA,CAAO,CAAC,CAAA;AACnE,IAAA,IAAI,UAAU,MAAA,EAAQ;AACrB,MAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,GAAA,CAAI,MAAA,CAAO,CAAA,CAAE,QAAQ,CAAC,CAAA;AAC1E,MAAA,IAAI,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAK,MAAA,CAAO,EAAA,EAAI,OAAO,CAAC,CAAA;AAAA;AAClD;AAEF","file":"detritus.mjs","sourcesContent":["import { GatewayDispatchEvents, GatewayReceivePayload, GatewayVoiceStateUpdate } from \"discord-api-types/v10\";\nimport { Manager as BaseManager } from \"../lib/Manager\";\nimport type { ManagerOptions, LavalinkNodeOptions } from \"../lib/Types\";\n\nimport { ClusterClient, ShardClient } from \"detritus-client\";\n\nexport * from \"../index\";\n\nexport class Manager extends BaseManager {\n\tpublic constructor(\n\t\tpublic readonly client: ClusterClient | ShardClient,\n\t\tnodes: LavalinkNodeOptions[],\n\t\toptions?: ManagerOptions\n\t) {\n\t\tsuper(nodes, options);\n\n\t\tclient.once(\"ready\", () => {\n\t\t\tif (!this.userId) this.userId = client instanceof ClusterClient ? client.applicationId : client.clientId;\n\t\t});\n\n\t\tclient.on(\"raw\", (packet: GatewayReceivePayload) => {\n\t\t\tswitch (packet.t) {\n\t\t\t\tcase GatewayDispatchEvents.VoiceServerUpdate:\n\t\t\t\t\tthis.voiceServerUpdate(packet.d);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase GatewayDispatchEvents.VoiceStateUpdate:\n\t\t\t\t\tthis.voiceStateUpdate(packet.d);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase GatewayDispatchEvents.GuildCreate:\n\t\t\t\t\tfor (const state of packet.d.voice_states ?? [])\n\t\t\t\t\t\tthis.voiceStateUpdate({\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\tguild_id: packet.d.id\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected override send(packet: GatewayVoiceStateUpdate) {\n\t\tconst asCluster = this.client as ClusterClient;\n\t\tconst asShard = this.client as ShardClient;\n\n\t\tif (asShard.guilds) return asShard.gateway.send(packet.op, packet.d);\n\t\tif (asCluster.shards) {\n\t\t\tconst shard = asCluster.shards.find((c) => c.guilds.has(packet.d.guild_id));\n\t\t\tif (shard) shard.gateway.send(packet.op, packet.d);\n\t\t}\n\t}\n}\n"]}