From 2a7fd6f2dd6b2d5af817ba83ae465c784e2438b1 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs <me@danielgibbs.co.uk>
Date: Wed, 9 Jun 2021 22:35:53 +0100
Subject: [PATCH 1/3] fix(mc): add Java 16 as a dependency requirement for
 Ubuntu 20.04 and above (#3482)

* Added java info to details for game servers that require it
* added openjdk-16-jre option for Ubuntu server
---
 lgsm/functions/check_deps.sh    | 16 ++++++++++++++--
 lgsm/functions/info_distro.sh   |  4 ++++
 lgsm/functions/info_messages.sh |  3 +++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/lgsm/functions/check_deps.sh b/lgsm/functions/check_deps.sh
index 50109b2f6..722a0a4da 100755
--- a/lgsm/functions/check_deps.sh
+++ b/lgsm/functions/check_deps.sh
@@ -414,8 +414,20 @@ fn_deps_build_debian(){
 	# Hurtword/Rust
 	elif [ "${shortname}" == "hw" ]||[ "${shortname}" == "rust" ]; then
 		array_deps_required+=( lib32z1 )
-	# Minecraft, Rising World, Wurm
-	elif [ "${shortname}" == "mc" ]||[ "${shortname}" == "pmc" ]||[ "${shortname}" == "wmc" ]||[ "${shortname}" == "rw" ]; then
+	# Minecraft, Rising World
+	elif [ "${shortname}" == "mc" ]||[ "${shortname}" == "pmc" ]||[ "${shortname}" == "wmc" ]; then
+		javaversion=$(java -version 2>&1 | grep "version")
+		if [ "${javaversion}" ]; then
+			# Added for users using Oracle JRE to bypass the check.
+			javacheck=1
+		else
+			if { [ "${distroid}" == "ubuntu" ]&&[ "${distroversion}" == "20.04" ]; }||{ [ "${distroid}" == "ubuntu" ]&&[ "${distroversion}" == "20.10" ]; }||{ [ "${distroid}" == "ubuntu" ]&&[ "${distroversion}" == "21.04" ]; }||{ [ "${distroid}" == "pop" ]&&[ "${distroversion}" == "20.04" ]; }||{ [ "${distroid}" == "pop" ]&&[ "${distroversion}" == "20.10" ]; }||{ [ "${distroid}" == "pop" ]&&[ "${distroversion}" == "21.04" ]; }; then
+				array_deps_required+=( openjdk-16-jre )
+			else
+				array_deps_required+=( default-jre )
+			fi
+		fi
+	elif [ "${shortname}" == "rw" ]; then
 		javaversion=$(java -version 2>&1 | grep "version")
 		if [ "${javaversion}" ]; then
 			# Added for users using Oracle JRE to bypass the check.
diff --git a/lgsm/functions/info_distro.sh b/lgsm/functions/info_distro.sh
index 283d8ed39..7f0dc2b19 100755
--- a/lgsm/functions/info_distro.sh
+++ b/lgsm/functions/info_distro.sh
@@ -83,6 +83,10 @@ else
 	fi
 fi
 
+if [ "$(command -V java 2>/dev/null)" ]; then
+	javaversion=$(java -version 2>&1 | grep "version")
+fi
+
 ## Uptime
 uptime=$(</proc/uptime)
 uptime=${uptime/[. ]*/}
diff --git a/lgsm/functions/info_messages.sh b/lgsm/functions/info_messages.sh
index 391964c2a..0c81175fe 100755
--- a/lgsm/functions/info_messages.sh
+++ b/lgsm/functions/info_messages.sh
@@ -100,6 +100,9 @@ fn_info_message_distro(){
 		echo -e "${lightblue}Uptime:\t${default}${days}d, ${hours}h, ${minutes}m"
 		echo -e "${lightblue}tmux:\t${default}${tmuxv}"
 		echo -e "${lightblue}glibc:\t${default}${glibcversion}"
+		if [ -n "${javaram}" ]; then
+			echo -e "${lightblue}Java:\t${default}${javaversion}"
+		fi
 	} | column -s $'\t' -t
 }
 

From d3768620abeccf5af42fc17b2df027172679e4c9 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs <me@danielgibbs.co.uk>
Date: Wed, 9 Jun 2021 22:42:06 +0100
Subject: [PATCH 2/3] fix(steamcmd): resolve disk write failure bug (#3483)

---
 lgsm/functions/check_steamcmd.sh | 1 +
 lgsm/functions/core_steamcmd.sh  | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/lgsm/functions/check_steamcmd.sh b/lgsm/functions/check_steamcmd.sh
index 9b84686dc..030cbbf03 100755
--- a/lgsm/functions/check_steamcmd.sh
+++ b/lgsm/functions/check_steamcmd.sh
@@ -17,5 +17,6 @@ if [ ${shortname} == "ark" ]; then
 fi
 fn_check_steamcmd_dir
 fn_check_steamcmd_dir_legacy
+fn_check_steamcmd_steamapp
 fn_check_steamcmd_user
 fn_check_steamcmd_exec
diff --git a/lgsm/functions/core_steamcmd.sh b/lgsm/functions/core_steamcmd.sh
index ece274f0f..5fbd5db9f 100755
--- a/lgsm/functions/core_steamcmd.sh
+++ b/lgsm/functions/core_steamcmd.sh
@@ -97,6 +97,13 @@ fn_check_steamcmd_dir_legacy(){
 	fi
 }
 
+fn_check_steamcmd_steamapp(){
+	# Check that steamapp directory fixes issue #3481
+	if [ ! -d "${serverfiles}/steamapps" ]; then
+		mkdir -p "${serverfiles}/steamapps"
+	fi
+}
+
 fn_check_steamcmd_ark(){
 	# Checks if SteamCMD exists in
 	# Engine/Binaries/ThirdParty/SteamCMD/Linux

From 54aa34a40516777fd62188800c3e5f82170d8ef4 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs <me@danielgibbs.co.uk>
Date: Wed, 9 Jun 2021 22:46:18 +0100
Subject: [PATCH 3/3] v21.2.4

---
 lgsm/functions/core_functions.sh | 2 +-
 tests/tests_fctrserver.sh        | 2 +-
 tests/tests_jc2server.sh         | 2 +-
 tests/tests_mcserver.sh          | 2 +-
 tests/tests_ts3server.sh         | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lgsm/functions/core_functions.sh b/lgsm/functions/core_functions.sh
index ec1a98531..55b23a590 100755
--- a/lgsm/functions/core_functions.sh
+++ b/lgsm/functions/core_functions.sh
@@ -8,7 +8,7 @@
 
 functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
-modulesversion="v21.2.3"
+modulesversion="v21.2.4"
 
 # Core
 
diff --git a/tests/tests_fctrserver.sh b/tests/tests_fctrserver.sh
index f31d4ac96..a4686684a 100644
--- a/tests/tests_fctrserver.sh
+++ b/tests/tests_fctrserver.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="v21.2.3"
+version="v21.2.4"
 shortname="fctr"
 gameservername="fctrserver"
 commandname="CORE"
diff --git a/tests/tests_jc2server.sh b/tests/tests_jc2server.sh
index 7203ac0d2..f39dc0476 100644
--- a/tests/tests_jc2server.sh
+++ b/tests/tests_jc2server.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="v21.2.3"
+version="v21.2.4"
 shortname="jc2"
 gameservername="jc2server"
 commandname="CORE"
diff --git a/tests/tests_mcserver.sh b/tests/tests_mcserver.sh
index 420732839..a426a07e9 100644
--- a/tests/tests_mcserver.sh
+++ b/tests/tests_mcserver.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="v21.2.3"
+version="v21.2.4"
 shortname="mc"
 gameservername="mcserver"
 commandname="CORE"
diff --git a/tests/tests_ts3server.sh b/tests/tests_ts3server.sh
index afc68811a..32cb17c49 100644
--- a/tests/tests_ts3server.sh
+++ b/tests/tests_ts3server.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="v21.2.3"
+version="v21.2.4"
 shortname="ts3"
 gameservername="ts3server"
 commandname="CORE"