feat: initial commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import { Client } from "discord-rpc";
|
||||
|
||||
import { config } from "./config";
|
||||
|
||||
// internal state
|
||||
let rpc: Client;
|
||||
|
||||
export async function initDiscordRpc() {
|
||||
if (!config.discordRpc) return;
|
||||
|
||||
try {
|
||||
rpc = new Client({ transport: "ipc" });
|
||||
|
||||
rpc.on("ready", () =>
|
||||
rpc.setActivity({
|
||||
state: "stoat.chat",
|
||||
details: "Chatting with others",
|
||||
largeImageKey: "qr",
|
||||
// largeImageText: "Communication is critical – use Revolt.",
|
||||
largeImageText: "",
|
||||
buttons: [
|
||||
{
|
||||
label: "Join Stoat",
|
||||
url: "https://stoat.chat/",
|
||||
},
|
||||
],
|
||||
}),
|
||||
);
|
||||
|
||||
rpc.on("disconnected", reconnect);
|
||||
|
||||
rpc.login({ clientId: "872068124005007420" });
|
||||
} catch (err) {
|
||||
reconnect();
|
||||
}
|
||||
}
|
||||
|
||||
const reconnect = () => setTimeout(() => initDiscordRpc(), 1e4);
|
||||
|
||||
export async function destroyDiscordRpc() {
|
||||
rpc?.destroy();
|
||||
}
|
||||
Reference in New Issue
Block a user