From 1a029fdc23cf54198c3db012ba3e2b2089bb1fd7 Mon Sep 17 00:00:00 2001 From: jacob Date: Sat, 25 May 2024 15:17:17 -0500 Subject: [PATCH] more consumable --- src/content/docs/v4/snippets/presence.mdx | 83 ++++------------------- 1 file changed, 13 insertions(+), 70 deletions(-) diff --git a/src/content/docs/v4/snippets/presence.mdx b/src/content/docs/v4/snippets/presence.mdx index d9cc19105..68dc81aa0 100644 --- a/src/content/docs/v4/snippets/presence.mdx +++ b/src/content/docs/v4/snippets/presence.mdx @@ -1,80 +1,23 @@ --- -title: Plugins +title: Presence sidebar: order: 4 --- -import { Tabs, TabItem } from '@astrojs/starlight/components'; +```js title="src/presence.js" +import { Presence } from '@sern/handler' +import { ActivityType, ClientPresenceStatus } from 'discord.js'; - - - ```js title="src/presence.js" - import { Presence } from '@sern/handler' - import { ActivityType, ClientPresenceStatus } from 'discord.js'; +const data = [{ type: ActivityType.Listening, name: "what's bofa" }, "idle"]; - function shuffleArray(array) { - for (let i = array.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [array[i], array[j]] = [array[j], array[i]]; +export default Presence.module({ + execute: () => { + const [activity, status] = data; + return Presence + .of({ activities: [activity], data }) + .once(); } - return [...array]; - } - - const statuses = [[ActivityType.Watching, "the sern community", "online"], - [ActivityType.Listening, "Evo", "dnd"], - [ActivityType.Watching, "github stars go brrr", "online"], - [ActivityType.Listening, "what's bofa", "idle"]]; - - export default Presence.module({ - execute: () => { - const [type, name, status] = statuses.at(-1)!; - return Presence - .of({ activities: [ { type, name } ], status }) //start your presence with this. - .repeated(() => { - const [type, name, status] = [...shuffleArray(statuses)].shift()!; - return { - status, - activities: [{ type, name }] - }; - }, 60_000); //repeat and setPresence with returned result every minute - } - }) - ``` - - - ```ts title="src/presence.ts" - import { Presence } from '@sern/handler' - import { ActivityType, ClientPresenceStatus } from 'discord.js'; - - function shuffleArray(array: T[]) { - for (let i = array.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [array[i], array[j]] = [array[j], array[i]]; - } - return [...array]; - } - - const statuses = [[ActivityType.Watching, "the sern community", "online"], - [ActivityType.Listening, "Evo", "dnd"], - [ActivityType.Watching, "github stars go brrr", "online"], - [ActivityType.Listening, "what's bofa", "idle"]] satisfies - Array<[ActivityType, string, ClientPresenceStatus]>; - export default Presence.module({ - execute: () => { - const [type, name, status] = statuses.at(-1)!; - return Presence - .of({ activities: [ { type, name } ], status }) //start your presence with this. - .repeated(() => { - const [type, name, status] = [...shuffleArray(statuses)].shift()!; - return { - status, - activities: [{ type, name }] - }; - }, 60_000); //repeat and setPresence with returned result every minute - } - }) - ``` - - + }) +```