From a67f53a4c96243fe1055c9b86b371445538d2f93 Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 28 Dec 2023 18:34:35 -0500 Subject: [PATCH 1/5] Fix bukkit and downstream fork MOTD crash --- app/classes/minecraft/mc_ping.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/classes/minecraft/mc_ping.py b/app/classes/minecraft/mc_ping.py index c5cb9916..84b69505 100644 --- a/app/classes/minecraft/mc_ping.py +++ b/app/classes/minecraft/mc_ping.py @@ -34,8 +34,13 @@ class Server: lines = [] description = self.description + if "text" in description.keys(): + lines.append(description["text"]) if "extra" in description.keys(): for e in description["extra"]: + if not isinstance(e, dict): + lines.append(e) + continue # Conversion format code needed only for Java Version lines.append(get_code_format("reset")) if "bold" in e.keys(): From 60ac3bf630fa9efe252e2a9d5390637089b7caf5 Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 29 Dec 2023 12:11:29 -0500 Subject: [PATCH 2/5] Check type in extra so we don't iterate thru str --- app/classes/minecraft/mc_ping.py | 41 +++++++++++++++----------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/app/classes/minecraft/mc_ping.py b/app/classes/minecraft/mc_ping.py index 84b69505..72a91351 100644 --- a/app/classes/minecraft/mc_ping.py +++ b/app/classes/minecraft/mc_ping.py @@ -12,6 +12,7 @@ from app.classes.minecraft.bedrock_ping import BedrockPing from app.classes.shared.console import Console logger = logging.getLogger(__name__) +MOTD_CODES = ["bold", "italic", "underlined", "strikethrough"] class Server: @@ -37,28 +38,24 @@ class Server: if "text" in description.keys(): lines.append(description["text"]) if "extra" in description.keys(): - for e in description["extra"]: - if not isinstance(e, dict): - lines.append(e) - continue - # Conversion format code needed only for Java Version - lines.append(get_code_format("reset")) - if "bold" in e.keys(): - lines.append(get_code_format("bold")) - if "italic" in e.keys(): - lines.append(get_code_format("italic")) - if "underlined" in e.keys(): - lines.append(get_code_format("underlined")) - if "strikethrough" in e.keys(): - lines.append(get_code_format("strikethrough")) - if "color" in e.keys(): - lines.append(get_code_format(e["color"])) - # Then append the text - if "text" in e.keys(): - if e["text"] == "\n": - lines.append("§§") - else: - lines.append(e["text"]) + if isinstance(description["extra"], list): + for e in description["extra"]: + if not isinstance(e, dict): + lines.append(e) + continue + # Conversion format code needed only for Java Version + lines.append(get_code_format("reset")) + for item in MOTD_CODES: + if e.get(item, False): + lines.append(get_code_format(item)) + if "color" in e.keys(): + lines.append(get_code_format(e["color"])) + # Then append the text + if "text" in e.keys(): + if e["text"] == "\n": + lines.append("§§") + else: + lines.append(e["text"]) total_text = " ".join(lines) self.description = total_text From dc09f478715a58a5fda01652ccc29f320ee737c4 Mon Sep 17 00:00:00 2001 From: Silversthorn Date: Wed, 3 Jan 2024 21:10:33 +0100 Subject: [PATCH 3/5] Fixing issues for forge installation for versions >= 1.20 --- app/classes/shared/server.py | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index 8448f656..035824c5 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -725,8 +725,9 @@ class ServerInstance: server_obj.execution_command = execution_command Console.debug("SUCCESS! Forge install completed") - else: - # NEW VERSION >= 1.17 + elif version_major <= 1 and version_minor < 20: + # NEW VERSION >= 1.17 and <= 1.20 + # (no jar file in server dir, only run.bat and run.sh) run_file_path = "" if self.helper.is_os_windows(): @@ -771,6 +772,37 @@ class ServerInstance: ) server_obj.execution_command = execution_command Console.debug("SUCCESS! Forge install completed") + else: + # NEW VERSION >= 1.20 + # (executable jar is back in server dir) + + # Retrieving the executable jar filename + file_path = glob.glob( + f"{server_obj.path}/forge-{version[0][0]}*.jar" + )[0] + file_name = re.findall( + r"(forge-[\-0-9.]+-shim.jar)", + file_path, + )[0] + + # Let's set the proper server executable + server_obj.executable = os.path.join(file_name) + + # Get memory values + memory_values = re.findall( + r"-Xms([A-Z0-9\.]+) -Xmx([A-Z0-9\.]+)", + server_obj.execution_command, + ) + + # Now lets set up the new run command. + # This is based off the run.sh/bat that + # Forge uses in 1.17 and < + execution_command = ( + f"java -Xms{memory_values[0][0]} -Xmx{memory_values[0][1]}" + f' -jar "{file_name}" nogui' + ) + server_obj.execution_command = execution_command + Console.debug("SUCCESS! Forge install completed") except: logger.debug("Could not find run file.") # TODO Use regex to get version and rebuild simple execution From c43749cc7cb5c8555fd33274192c259a375d58d1 Mon Sep 17 00:00:00 2001 From: Zedifus Date: Tue, 16 Jan 2024 17:53:21 +0000 Subject: [PATCH 4/5] Update changelog !686 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71b8b4b6..a2c3c9e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ### New features TBD ### Bug fixes -TBD +- Fix bukkit and downstream fork MOTD crash ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/686)) ### Tweaks TBD ### Lang From b76636ed994accfba69b0e4fffd8650417b090ee Mon Sep 17 00:00:00 2001 From: Zedifus Date: Tue, 16 Jan 2024 18:04:59 +0000 Subject: [PATCH 5/5] Update changelog !687 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2c3c9e5..6e94d0db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ TBD ### Bug fixes - Fix bukkit and downstream fork MOTD crash ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/686)) ### Tweaks -TBD +- Refactor Forge server initialisation flow for newer versions ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/687)) ### Lang TBD