From d6d854cdd3f47785e7145de223b9efee660492d3 Mon Sep 17 00:00:00 2001 From: KingRainbow44 Date: Wed, 31 May 2023 01:32:23 -0400 Subject: [PATCH] Fix handbook server details --- src/handbook/src/backend/server.ts | 23 +++++++++++-------- .../src/ui/widgets/ServerSettings.tsx | 10 ++++---- src/handbook/src/utils.ts | 9 +++++--- .../http/documentation/HandbookHandler.java | 6 ++--- 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/handbook/src/backend/server.ts b/src/handbook/src/backend/server.ts index d35c5ab17..72ac47d19 100644 --- a/src/handbook/src/backend/server.ts +++ b/src/handbook/src/backend/server.ts @@ -64,15 +64,20 @@ export function setTargetPlayer(player: number, token: string | null = null): vo * @param newAddress The server's address. * @param newPort The server's port. */ -export async function setServerDetails(newAddress: string | null, newPort: string | null): Promise { - // Apply the new details. - if (newAddress != null) { - address = newAddress; - localStorage.setItem("address", newAddress); - } - if (newPort != null) { - port = newPort; - localStorage.setItem("port", newPort); +export async function setServerDetails(newAddress: string | null, newPort: string | number | null): Promise { + if (!getWindowDetails().disable) { + if (typeof newPort == "number") + newPort = newPort.toString(); + + // Apply the new details. + if (newAddress != null) { + address = newAddress; + localStorage.setItem("address", newAddress); + } + if (newPort != null) { + port = newPort; + localStorage.setItem("port", newPort); + } } // Check if the server is encrypted. diff --git a/src/handbook/src/ui/widgets/ServerSettings.tsx b/src/handbook/src/ui/widgets/ServerSettings.tsx index 86aa4f71b..6621c42df 100644 --- a/src/handbook/src/ui/widgets/ServerSettings.tsx +++ b/src/handbook/src/ui/widgets/ServerSettings.tsx @@ -2,9 +2,9 @@ import React from "react"; import emitter from "@backend/events"; import { targetPlayer, address, port, setServerDetails, url, setTargetPlayer } from "@backend/server"; +import { getWindowDetails } from "@app/utils"; import "@css/widgets/ServerSettings.scss"; -import { getWindowDetails } from "@app/utils"; interface IState { webview: boolean; @@ -51,7 +51,7 @@ class ServerSettings extends React.Component<{}, IState> { * @private */ private authenticate(): void { - setServerDetails(null, null).then(() => { + setServerDetails(this.state.address, this.state.port).then(() => { this.setState({ webview: true }); }); @@ -133,7 +133,8 @@ class ServerSettings extends React.Component<{}, IState> { }} disabled={disable} style={{ - cursor: disable ? "not-allowed" : "text" + cursor: disable ? "not-allowed" : "text", + userSelect: disable ? "none" : "auto" }} /> @@ -155,7 +156,8 @@ class ServerSettings extends React.Component<{}, IState> { }} disabled={disable} style={{ - cursor: disable ? "not-allowed" : "text" + cursor: disable ? "not-allowed" : "text", + userSelect: disable ? "none" : "auto" }} /> diff --git a/src/handbook/src/utils.ts b/src/handbook/src/utils.ts index d20dff55f..26a570497 100644 --- a/src/handbook/src/utils.ts +++ b/src/handbook/src/utils.ts @@ -174,8 +174,11 @@ export function getWindowDetails(): WindowDetails { const { address, port, disable } = details; return { - address: address == "{{DETAILS_ADDRESS}}" ? "127.0.0.1" : address, - port: port == "{{DETAILS_PORT}}" ? 443 : parseInt(port), - disable: disable == "{{DETAILS_DISABLE}}" ? false : disable == "true" + address: (address as string).includes("DETAILS_ADDRESS") + ? "127.0.0.1" : address, + port: (port as string).includes("DETAILS_PORT") + ? 443 : parseInt(port), + disable: (disable as string).includes("DETAILS_DISABLE") + ? false : disable == "true" }; } diff --git a/src/main/java/emu/grasscutter/server/http/documentation/HandbookHandler.java b/src/main/java/emu/grasscutter/server/http/documentation/HandbookHandler.java index b7a43ba19..07bfa709f 100644 --- a/src/main/java/emu/grasscutter/server/http/documentation/HandbookHandler.java +++ b/src/main/java/emu/grasscutter/server/http/documentation/HandbookHandler.java @@ -1,7 +1,5 @@ package emu.grasscutter.server.http.documentation; -import static emu.grasscutter.config.Configuration.HANDBOOK; - import emu.grasscutter.Grasscutter; import emu.grasscutter.auth.AuthenticationSystem.AuthenticationRequest; import emu.grasscutter.server.http.Router; @@ -13,6 +11,8 @@ import io.javalin.Javalin; import io.javalin.http.ContentType; import io.javalin.http.Context; +import static emu.grasscutter.config.Configuration.HANDBOOK; + /** Handles requests for the new GM Handbook. */ public final class HandbookHandler implements Router { private String handbook; @@ -32,7 +32,7 @@ public final class HandbookHandler implements Router { this.handbook .replace("{{DETAILS_ADDRESS}}", server.address) .replace("{{DETAILS_PORT}}", String.valueOf(server.port)) - .replace("{{DETAILS_DISABLE}}", Boolean.toString(server.canChange)); + .replace("{{DETAILS_DISABLE}}", Boolean.toString(!server.canChange)); } }