Finished sidebar
This commit is contained in:
20
src/lib/hypixel/api/guild.ts
Normal file
20
src/lib/hypixel/api/guild.ts
Normal 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
|
||||
}
|
||||
22
src/lib/hypixel/api/mojang.ts
Normal file
22
src/lib/hypixel/api/mojang.ts
Normal 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
|
||||
}
|
||||
20
src/lib/hypixel/api/player.ts
Normal file
20
src/lib/hypixel/api/player.ts
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user