import { getI18n } from "@/lib/i18n"; import Link from "next/link"; import Image from "next/image"; import { ArrowRight, Compass, MapPin, Timer, Blocks, Upload, Download, } from "lucide-react"; import { Header, Footer } from "@/components/Shell"; import { MapCard } from "@/components/MapCard"; import { catalog } from "@/lib/catalog"; import { leaderboard } from "@/lib/leaderboard"; import { LeaderboardPreview } from "@/components/Leaderboard"; import desktopRelease from "@/shared/desktop-release.json"; import { FirstVisitIntro } from "@/components/FirstVisitIntro"; import { SiteTrailer } from "@/components/SiteTrailer"; import { Suspense } from "react"; export const dynamic = "force-dynamic"; export default async function Home() { const { t, formatNumber } = await getI18n(); const rankings = leaderboard({ limit: 5 }); const maps = await catalog(); const servers = new Set(maps.map((map) => map.server_id)).size; const locations = maps.reduce((total, map) => total + map.panorama_count, 0); return ( <>
{t("A MINECRAFT GUESSING GAME")}

{t("Guess where you are")}
{t("in a")} {t("blocky world.")}

{t("Drop into a random corner of a Minecraft world.")}
{" "} {t("Look around, spot the landmarks, and place your pin")}
{t("before the clock runs out.")}

{t("Start exploring")} {t("Download for Windows")} {t("Meet the top explorers")}
{t("Five rounds. No roads. Just your instincts.")}
{t(
X: ??? Z: ??? {t("Overworld")}
{formatNumber(servers)} {t("COMMUNITY SERVERS")}
{formatNumber(maps.length)} {t("PUBLISHED MAPS")}
{formatNumber(locations)} {t("PLACES TO DISCOVER")}
{t("5 rounds")} {t("EVERY EXPEDITION")}
{t("COMMUNITY MAPS")}

{t("Where will you go today?")}

{t("All maps ({count})", { count: maps.length })}{" "}
{maps.length ? (
{maps.slice(0, 4).map((map, index) => ( ))}
) : (
{t("THE FIRST EXPEDITION STARTS WITH YOU")}

{t("Put your server on the map.")}

{t( "No community maps have been published yet. Export your world with the server plugin, or capture five locations with the Fabric mod. Preview your map and submit it for review.", )}

{t("Get the capture tools")}
)}

{t("THE EXPLORERS’ BOARD")}

} >
{t("HOW TO PLAY")}

{t("Know your blocks?")}

  1. 01

    {t("Pick your world")}

    {t("Choose a community server, map, and difficulty.")}

  2. 02

    {t("Look for the clues")}

    {t( "Rotate the panorama. Find builds, biomes, and landmarks.", )}

  3. 03

    {t("Make your guess")}

    {t( "Drop a pin on the map. Closer guesses earn more points.", )}

{t("Read the field guide")}
{t("CHOOSE YOUR CHALLENGE")}

{t("Find your challenge.")}

{[ { name: t("Easy"), time: t("180 seconds"), detail: t("Take your time. Rotate and zoom."), color: "green", }, { name: t("Normal"), time: t("90 seconds"), detail: t("Trust your eye. Rotate and zoom."), color: "gold", }, { name: t("Hard"), time: t("30 seconds"), detail: t("Think fast. No zoom allowed."), color: "red", }, { name: t("Void"), time: t("10 seconds"), detail: t("The ultimate test. Fixed view, strict scoring."), color: "void", }, ].map((mode) => (

{t(mode.name)} {t(mode.time)}

{t(mode.detail)}

))}

{t("Up to 5,000 points per round. How close can you get?")}

{t("BUILT BY THE COMMUNITY")}

{t("Your world deserves to be explored.")}

{t("Share your builds and your favorite corners of Minecraft.")}

{t("Create a map")}