import definePlugin from "@utils/types"; import { FluxDispatcher } from "@webpack/common"; let muted = false; let socket: WebSocket; export default definePlugin({ name: "muter", description: "muter companion plugin. Mirrors system mutes to Discord.", authors: [{ name: "isitreallyalive", id: 1269669249056510026n }], start() { socket = new WebSocket("ws://localhost:3034"); socket.onmessage = (event) => { muted = event.data.size > 0; FluxDispatcher.dispatch({ type: "AUDIO_SET_SELF_MUTE", context: "default", mute: muted }); }; // todo: try to fix weird virtual bug }, flux: { AUDIO_TOGGLE_SELF_MUTE: () => { const buf = new ArrayBuffer(1); const view = new Uint8Array(buf); if (!muted) view[0] = 1; socket.send(new Blob([buf])); } } });