From 1f4bb39748830a2e99905683d10c2986af636b39 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Thu, 15 Feb 2024 19:48:41 +0100 Subject: [PATCH] Implemented version checking in the CreationDialog.jsx --- .../CreationDialog/CreationDialog.jsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/webui/src/states/Root/pages/Overview/components/CreationDialog/CreationDialog.jsx b/webui/src/states/Root/pages/Overview/components/CreationDialog/CreationDialog.jsx index b5e6bb7..4f6f360 100644 --- a/webui/src/states/Root/pages/Overview/components/CreationDialog/CreationDialog.jsx +++ b/webui/src/states/Root/pages/Overview/components/CreationDialog/CreationDialog.jsx @@ -19,13 +19,14 @@ import {useContext, useEffect, useState} from "react"; import {ServerContext} from "@/common/contexts/Server/index.js"; import {t} from "i18next"; import {Trans} from "react-i18next"; +import {VersionContext} from "@/common/contexts/Version"; export const CreationDialog = ({dialogOpen, setDialogOpen}) => { const EULA_URL = "https://www.minecraft.net/en-us/eula"; const {updateServer} = useContext(ServerContext); - + const versions = useContext(VersionContext); const [creating, setCreating] = useState(false); @@ -34,7 +35,7 @@ export const CreationDialog = ({dialogOpen, setDialogOpen}) => { const [serverName, setServerName] = useState(""); const [serverDescription, setServerDescription] = useState(""); const [serverSoftware, setServerSoftware] = useState("spigot"); - const [serverVersion, setServerVersion] = useState("1.20.4"); + const [serverVersion, setServerVersion] = useState(versions[0]); const [eulaAccepted, setEulaAccepted] = useState(false); const createServer = async () => { @@ -54,6 +55,14 @@ export const CreationDialog = ({dialogOpen, setDialogOpen}) => { setCreating(true); + const {valid} = await (await request("check_version?version=" + serverVersion + "&software=" + serverSoftware, "GET", {}, {}, false)).json(); + + if (!valid) { + setCreating(false); + setErrorMessage(t("server.creation.error.not_supported", {software: serverSoftware})); + return; + } + await request("server/setup", "POST", { name: serverName, description: serverDescription || t("server.creation.default_description"), type: serverSoftware, version: serverVersion, @@ -75,7 +84,7 @@ export const CreationDialog = ({dialogOpen, setDialogOpen}) => { {t("server.creation.title")} - {errorMessage && {errorMessage}} + {errorMessage && {errorMessage}} {