Finished sidebar

This commit is contained in:
2025-08-16 23:39:11 +02:00
parent 1921efc76a
commit c79d06f272
35 changed files with 1307 additions and 9 deletions

View File

@@ -0,0 +1,20 @@
import { env } from "../../env/server"
import { guildSchema } from "../../schema/guild"
const guildApi = "https://api.hypixel.net/v2/guild"
export async function getGuild(id: string, type: "id" | "player" | "name" = "player") {
const res = await fetch(`${guildApi}?${type}=${id}`, {
headers: {
"API-Key": env.HYPIXEL_API_KEY
}
})
if (!res.ok) return null
const { success, data } = guildSchema.safeParse(await res.json())
if (!success) return null
return data.guild
}

View File

@@ -0,0 +1,22 @@
import z from "zod"
const mojangApi = "https://api.mojang.com/users/profiles/minecraft"
const schema = z.object({
name: z.string().min(1),
id: z.string().min(1)
})
export async function getUuid(ign: string) {
const res = await fetch(`${mojangApi}/${ign}`)
if (!res.ok) return null
const data = await res.json()
const parsed = schema.safeParse(data)
if (!parsed.success) return null
return parsed.data.id
}

View File

@@ -0,0 +1,20 @@
import { env } from "../../env/server"
import { playerSchema } from "../../schema/player"
const playerApi = "https://api.hypixel.net/v2/player"
export async function getPlayer(uuid: string) {
const res = await fetch(`${playerApi}?uuid=${uuid}`, {
headers: {
"API-Key": env.HYPIXEL_API_KEY
}
})
if (!res.ok) return null
const { success, data } = playerSchema.safeParse(await res.json())
if (!success) return null
return data.player
}