diff --git a/src/index.ts b/src/index.ts index fa4166d..5e5636b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -22,6 +22,7 @@ import { join } from 'path'; import { green, bold, blue, underline, yellow } from 'kleur/colors'; import 'dotenv/config'; +import { getLatestMinecraft } from './utils/minecraftVersion'; export interface Command { name: string; @@ -77,6 +78,12 @@ client.once('ready', async () => { ) ); + if (client.user) { + client.user.presence.set({ + activities: [{ name: `Minecraft ${await getLatestMinecraft()}` }], + }); + } + client.on('messageCreate', async (e) => { if (!e.content) return; if (!e.channel.isText()) return; diff --git a/src/utils/minecraftVersion.ts b/src/utils/minecraftVersion.ts new file mode 100644 index 0000000..6d34f16 --- /dev/null +++ b/src/utils/minecraftVersion.ts @@ -0,0 +1,15 @@ +import fetch from 'node-fetch'; + +interface SimplifiedMetaVersion { + recommended: boolean; + type: 'release' | 'snapshot'; + version: string; +} + +export const getLatestMinecraft = async () => { + const meta = (await fetch( + 'https://meta.polymc.org/v1/net.minecraft/index.json' + ).then((r) => r.json())) as { versions: SimplifiedMetaVersion[] }; + + return meta.versions.filter((v) => v.recommended)[0].version; +};