Minecraft server dashboard (Next.js)
Find a file
hurkicorgi 3a69dc9243 Rich per-player stats + pick-your-metric leaderboard
- lib/player-stats.ts: single computePlayerStats() reads every
  world/stats/<uuid>.json plus world/advancements/<uuid>.json and joins
  with usercache.json. Returns a flat PlayerStats record per player:
  playtime, longest life, mob/player kills, deaths, K/D, damage dealt
  and taken (HP-scaled), blocks mined, items used / crafted / picked up
  (+ unique), distance (summed across all _one_cm stats), chest opens,
  nether/end trips, villager trades, fish caught, animals bred, and
  advancements (non-recipe) / recipes unlocked.
- New GET /api/players/stats (authed, 60s memo). Existing
  /api/players/playtime now returns a thin projection of the same
  computed data (shared cache key keeps both endpoints cheap).
- New components/Leaderboard.tsx with a metric select grouped into
  Time / Combat / World / Exploration / Progression / Economy (22
  metrics). Sorts descending, top 10 with "show all" toggle, smart
  number formatting (1.2k / 3.4M / HP / km). Replaces the old
  PlaytimeLeaderboard in the Players tab.
- PlayerDrawer upgraded: uses the full stats payload, shows small
  tiles for Kills / Deaths / K/D / Advs / Mined / Crafted / Distance
  alongside Playtime + Last seen.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 06:37:50 -06:00
app Rich per-player stats + pick-your-metric leaderboard 2026-04-13 06:37:50 -06:00
components Rich per-player stats + pick-your-metric leaderboard 2026-04-13 06:37:50 -06:00
lib Rich per-player stats + pick-your-metric leaderboard 2026-04-13 06:37:50 -06:00
public SSE events bridge, PWA service worker, offline banner, lazy admin tabs 2026-04-13 05:48:00 -06:00
scripts Expanded scheduled tasks + keyboard shortcuts 2026-04-13 05:57:39 -06:00
.gitignore Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
AGENTS.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
bun.lock Bundle analyzer, task run-now/toggle/weekly, error reporter, OG image, a11y 2026-04-13 06:08:48 -06:00
CLAUDE.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
components.json Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
eslint.config.mjs Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
middleware.ts Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
next.config.ts Bundle analyzer, task run-now/toggle/weekly, error reporter, OG image, a11y 2026-04-13 06:08:48 -06:00
package.json Bundle analyzer, task run-now/toggle/weekly, error reporter, OG image, a11y 2026-04-13 06:08:48 -06:00
postcss.config.mjs Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
README.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
tsconfig.json Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.