Files
discord-decomp/modules/rpc/server/commands/config.tsx
T
2026-11-01 12:12:55 +02:00

39 lines
1.3 KiB
TypeScript

// Metro module 13531 (f13532).
import { TransportTypes, RPC_AUTHENTICATED_SCOPE } from "../../Constants";
import { RPCErrors, RPCCommands } from "../../../../Constants";
import createRpcJoiSchemaObject from "../../helpers/createRpcJoiSchemaObject";
import RPCError from "../../RPCError";
import Dispatcher from "../../../../Dispatcher";
const r20 = {};
r20[RPCCommands.SET_CONFIG] = {
scope: RPC_AUTHENTICATED_SCOPE,
validation: (a0) => createRpcJoiSchemaObject(a0).required().keys({
use_interactive_pip: a0.boolean()
}),
handler: (a0) => {
const socket = a0.socket;
const use_interactive_pip = a0.args.use_interactive_pip;
if (socket.transport !== TransportTypes.POST_MESSAGE) {
throw new RPCError({
errorCode: RPCErrors.INVALID_COMMAND
}, `command not available from "${socket.transport} transport`);
}
if (socket.application.id == null) {
throw new RPCError({
errorCode: RPCErrors.INVALID_COMMAND
}, "invalid application");
}
Dispatcher.dispatch({
type: "EMBEDDED_ACTIVITY_SET_CONFIG",
applicationId: socket.application.id,
config: {
useInteractivePIP: use_interactive_pip
}
});
return Promise.resolve({
use_interactive_pip
});
}
};
export default r20;