import { FormNotice } from "@/components/form-controls"; import { Input } from "@/components/ui/input"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { TabsContent } from "@/components/ui/tabs"; import { Textarea } from "@/components/ui/textarea"; import { CheckboxField, Field } from "./fields"; import type { ServerFormData, ServerFormPanelProps, ServerType } from "./types"; const toMode = (value: string): ServerFormData["mode"] => { if (value === "creative" || value === "adventure" || value === "spectator") return value; return "survival"; }; const toDifficulty = (value: string): ServerFormData["difficulty"] => { if (value === "peaceful" || value === "normal" || value === "hard") return value; return "easy"; }; export function ServerPanel({ formData, updateField }: ServerFormPanelProps) { return ( {formData.type === "CUSTOM" && ( Custom jars may ignore built-in server settings. Configure extra values via custom environment variables if needed. )} {formData.type !== "CUSTOM" && ( updateField("version", event.target.value)} placeholder="LATEST" /> )} {formData.type === "PAPER" && ( updateField("paperBuild", event.target.value)} placeholder="Leave empty for latest" /> )} {formData.type === "CUSTOM" && ( updateField("customJarUrl", event.target.value)} placeholder="https://example.com/server.jar" />

Sets CUSTOM_SERVER for the itzg/minecraft-server image.

)}