import { Alert, Button, Checkbox, Dialog, DialogActions, DialogContent, DialogTitle, FormControlLabel, Link, MenuItem, Select, Stack, TextField } from "@mui/material"; import SpigotImage from "@/common/assets/software/spigot.webp"; import PaperImage from "@/common/assets/software/paper.webp"; import PurpurImage from "@/common/assets/software/purpur.webp"; import {PROXY_URL, request} from "@/common/utils/RequestUtil.js"; import {useContext, useEffect, useState} from "react"; import {ServerContext} from "@/common/contexts/Server/index.js"; import {t} from "i18next"; import {Trans} from "react-i18next"; export const CreationDialog = ({dialogOpen, setDialogOpen}) => { const EULA_URL = "https://www.minecraft.net/en-us/eula"; const {updateServer} = useContext(ServerContext); const [creating, setCreating] = useState(false); const [errorMessage, setErrorMessage] = useState(""); const [serverName, setServerName] = useState(""); const [serverDescription, setServerDescription] = useState(""); const [serverSoftware, setServerSoftware] = useState("spigot"); const [serverVersion, setServerVersion] = useState("1.20.4"); const [eulaAccepted, setEulaAccepted] = useState(false); const createServer = async () => { if (creating) return; if (serverName === "") { setErrorMessage(t("server.creation.error.name")); return; } if (!eulaAccepted) { setErrorMessage(t("server.creation.error.eula")); return; } setErrorMessage(""); setCreating(true); await request("server/setup", "POST", { name: serverName, description: serverDescription, type: serverSoftware, version: serverVersion, memory: 4096, autoStart: false }, {}, false); setCreating(false); setDialogOpen(false); updateServer(); } useEffect(() => { if (errorMessage !== "") setErrorMessage(""); }, [serverName, serverDescription, serverSoftware, serverVersion, eulaAccepted]); return ( setDialogOpen(false)}> {t("server.creation.title")} {errorMessage && {errorMessage} } setServerName(e.target.value)}/> setServerDescription(e.target.value)}/> } checked={eulaAccepted} onChange={(e) => setEulaAccepted(e.target.checked)} label={}}> server.creation.eula}/> {!creating && } {!creating && } {creating && } ) }