Next.js 16 + Tailwind v4 + shadcn v4 dashboard for managing a modded Forge 1.20.1 server. Includes server controls, player management, mod manager with Modrinth search and dependency resolution, world backups, snapshots, analytics, logs, and chat bridge. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
import { auth } from "@/lib/auth";
|
|
import { redirect } from "next/navigation";
|
|
import { Navbar } from "@/components/Navbar";
|
|
import { ClientOnly } from "@/components/ClientOnly";
|
|
import { ServerControls } from "@/components/ServerControls";
|
|
import { Analytics } from "@/components/Analytics";
|
|
import { PlayerManager } from "@/components/PlayerManager";
|
|
import { ChatBridge } from "@/components/ChatBridge";
|
|
import { ModManager } from "@/components/ModManager";
|
|
import { BackupManager } from "@/components/BackupManager";
|
|
import { LogViewer } from "@/components/LogViewer";
|
|
import Link from "next/link";
|
|
|
|
export default async function AdminPage() {
|
|
const session = await auth();
|
|
if (!session) redirect("/login");
|
|
|
|
return (
|
|
<>
|
|
<Navbar />
|
|
|
|
<div className="border-b border-border bg-card py-4 sm:py-6">
|
|
<div className="max-w-5xl mx-auto px-3 sm:px-6">
|
|
<h1 className="text-xl sm:text-2xl font-bold tracking-tight">Admin Panel</h1>
|
|
<p className="text-sm text-muted-foreground mt-1">
|
|
Manage your Minecraft server
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<ClientOnly>
|
|
<div className="max-w-5xl mx-auto px-3 py-4 sm:p-6 space-y-4 sm:space-y-6 w-full overflow-x-hidden">
|
|
<ServerControls />
|
|
<Analytics />
|
|
<PlayerManager />
|
|
<ChatBridge />
|
|
<ModManager />
|
|
<BackupManager />
|
|
<LogViewer />
|
|
|
|
<div className="text-center">
|
|
<Link
|
|
href="/"
|
|
className="text-sm text-muted-foreground hover:text-foreground transition"
|
|
>
|
|
Back to dashboard
|
|
</Link>
|
|
</div>
|
|
</div>
|
|
</ClientOnly>
|
|
</>
|
|
);
|
|
}
|